3

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

我在 OpenERP 6.1 中遇到的是,一旦 aworkflow instance到达flow stop,它就死了,你不能在它上面执行更多的转换。

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

4

2 回答 2

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
于 2012-09-20T10:45:53.707 回答
1

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

于 2012-09-20T08:10:52.710 回答