如何重启已终止的工作流程?

时间:2012-09-20 07:43:52

标签: workflow openerp

在具有工作流的模型中,当您创建新记录时,它会启动一个新的workflow instance。然后它会在“活动”之间转换,直到达到flow stop,通常是canceldone状态。

我在OpenERP 6.1中遇到的问题是,一旦workflow instance到达flow stop,它已经死了,你就无法对它进行更多的转换。

但是我希望在表单上有一个Reset to draft按钮,允许重新启动已终止的工作流。有没有办法实现这一点,比如说,通过Python调用Openerp工作流服务的方法?

2 个答案:

答案 0 :(得分:6)

您可以在帐户付款模块中找到一个示例。

def set_to_draft(self, cr, uid, ids, *args):
    self.write(cr, uid, ids, {'state': 'draft'})
    wf_service = netsvc.LocalService("workflow")
    for id in ids:
        wf_service.trg_create(uid, 'your.model.name', id, cr)
    return True

答案 1 :(得分:1)

您需要删除工作流实例并重新创建它。检查action_cancel_draft模型中的方法purchase.order;它完全符合您的要求。