在具有工作流的模型中,当您创建新记录时,它会启动一个新的workflow instance
。然后它会在“活动”之间转换,直到达到flow stop
,通常是cancel
或done
状态。
我在OpenERP 6.1中遇到的问题是,一旦workflow instance
到达flow stop
,它已经死了,你就无法对它进行更多的转换。
但是我希望在表单上有一个Reset to draft
按钮,允许重新启动已终止的工作流。有没有办法实现这一点,比如说,通过Python调用Openerp工作流服务的方法?
答案 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
;它完全符合您的要求。