0

我已经创建了一个工作流程并且它工作得很好。工作流活动调用的函数是这个

  def employee_confirm(self, cr, uid, ids, context=None):  
    print "Entering >>>employee_confirm"
    return self.write(cr, uid, ids, {'state':'confirm'})

我的问题是打印语句执行了两次。这意味着该函数正在执行两次。

这没关系

self.write(cr, uid, ids, {'state':'confirm'})

因为它是一个write.

对于任何其他语句,我们不能允许它两次用于同一记录。

为什么会发生这种情况以及如何覆盖它?

4

1 回答 1

0

在构建新的 OpenERP 模块时,理解和调试工作流代码是最困难的任务之一。我发现在 Eclipse 中跟踪代码是查看发生了什么的唯一方法,但需要很长时间。

这是我为总结工作流转换而编写的 SQL 查询。我打印出工作流程图,然后将这些数据复制到图表上。据我所知,您只能从 GTK 客户端打印图表,而不是 Web 客户端。使用您想要的工作流程打开屏幕,然后从插件菜单中选择执行插件并双击打印工作流程。

    select  wkf.name, 
            f.name || '(' || f.id || ')' as src, 
            f.kind,
            f.action as from_action,
            f.split_mode, 
            f.flow_start,
            t.name || '(' || t.id || ')' as dest, 
            t.kind as dest_kind,
            t.action as dest_action,
            t.join_mode, 
            t.flow_stop, 
            tr.*
    from wkf_transition tr
    join wkf_activity f
    on tr.act_from = f.id
    join wkf_activity t
    on tr.act_to = t.id
    join wkf
    on f.wkf_id = wkf.id
    order by wkf.name, f.name, t.name
于 2012-07-21T00:11:35.547 回答