Navigation

    Odoo 中文社区

    • Register
    • Login
    • Search
    • Categories
    • Tags
    • Popular
    • Users
    • Groups

    Odoo中文社区可以通过以下两个域名访问:shine-it.net , odoo.net.cn

    由于系统升迁的原因,本论坛部分较早期的内容存在格式和链接损坏失效的问题,并非本论坛系统本身的缺陷,望谅解

    本社区没有维护任何QQ群讨论组,任何与本社区同名的QQ群讨论组的言论与本社区无关!

    开发人员可以登录gitter讨论组: http://gitter.im/odoo-china/Talk, 需要github账号

    如果您登录系统碰到问题,请在微信公众号留言:

    有关工作流反审问题

    Odoo 开发与实施交流
    2
    4
    3268
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • 1
      18684036 last edited by

      我在工作流中碰到一个问题,不知道是不是bug,提出来给大家参考一下,
      工作流中我加入了state字段,分别为draft  submit  examine open  ,分别为:开发中-》提交-》审核-》终审,
      正向流下去是没问题的,也就是从 开发中一--》终审,
      反审流程,从open--->submit也是没问题的,就是回不到draft状态,
      写法应该没有问题,在submit->draft中,函数没有执行,但工作流的状态是已经回到了draft的状态,这个测试过,而examine-》submit是没有问题的,工作流状态正确,函数也执行,都正常,于是我把该节点的act_to 改成 draft,就变成了函数不执行了,跟submit->draft一样

      <?xml version="1.0" encoding="utf-8"?>
      <openerp>
          <data>
              <record id="wkf_bom" model="workflow">
                  <field name="name">mrp.bom.expand</field>
                  <field name="osv">mrp.bom</field>
                  <field name="on_create">True</field>
              </record>

              <!-- Activity -->
              <record id="act_draft" model="workflow.activity">
                  <field name="wkf_id" ref="wkf_bom"/>
                  <field name="flow_start">True</field>
                  <field name="name">draft</field>
              </record>
               
              <record id="act_submit" model="workflow.activity">
                  <field name="wkf_id" ref="wkf_bom"/>
                  <field name="name">submit</field>
                  <field name="kind">function</field>
                  <field name="action">draft_submit()</field>
              </record> 
             
              <record id="act_examine" model="workflow.activity">
                  <field name="wkf_id" ref="wkf_bom"/>
                  <field name="name">examine</field>
                  <field name="kind">function</field>
                  <field name="action">submit_examine()</field>
              </record> 
             
              <record id="act_open" model="workflow.activity">
                  <field name="wkf_id" ref="wkf_bom"/>
                  <field name="name">open</field>
                  <field name="kind">function</field>
                  <field name="action">examine_open()</field>
              </record>
             
              <record id="act_open_examine" model="workflow.activity">
                  <field name="wkf_id" ref="wkf_bom"/>
                  <field name="name">open_examine</field>
                  <field name="kind">function</field>
                  <field name="action">open_examine()</field>
              </record> 
              <record id="act_examine_submit" model="workflow.activity">
                  <field name="wkf_id" ref="wkf_bom"/>
                  <field name="name">examine_submit</field>
                  <field name="kind">function</field>
                  <field name="action">examine_submit()</field>
              </record> 
              <record id="act_submit_draft" model="workflow.activity">
                  <field name="wkf_id" ref="wkf_bom"/>
                  <field name="name">submit_draft</field>
                  <field name="kind">function</field>
                  <field name="action">submit_draft()</field>
              </record> 
             
              <record id="act_close" model="workflow.activity">
                  <field name="wkf_id" ref="wkf_bom"/>
                  <field name="name">close</field>
                  <field name="flow_stop">True</field>
                  <field name="kind">stopall</field>
                  <field name="action">close()</field>
              </record>
                         
              <!-- Transistion -->

              <record id="trans_draft_submit" model="workflow.transition">
                  <field name="act_from" ref="act_draft"/>
                  <field name="act_to" ref="act_submit"/>
                  <field name="signal">draft_submit</field>
              </record>
              <record id="trans_submit_examine" model="workflow.transition">
                  <field name="act_from" ref="act_submit"/>
                  <field name="act_to" ref="act_examine"/>
                  <field name="signal">submit_examine</field>
              </record>
             
              <record id="trans_examine_open" model="workflow.transition">
                  <field name="act_from" ref="act_examine"/>
                  <field name="act_to" ref="act_open"/>
                  <field name="signal">examine_open</field>
              </record>
              <!--反审流程 -->
              <record id="trans_open_examine" model="workflow.transition">
                  <field name="act_from" ref="act_open"/>
                  <field name="act_to" ref="act_examine"/>     
                  <field name="signal">open_examine</field>
              </record>
              <record id="trans_examine_submit" model="workflow.transition">
                  <field name="act_from" ref="act_examine"/>
                  <field name="act_to" ref="act_submit"/>      <!-- 只要把这个节点改成 act_draft ,该处就失效了-->
                  <field name="signal">examine_submit</field>
              </record>
              <!--  先注释掉,因为该段不起作用
              <record id="trans_submit_draft" model="workflow.transition">
                  <field name="act_from" ref="act_submit"/>
                  <field name="act_to" ref="act_draft"/>    <!--[color=pink][color=orange] 该处,工作流已经流回到draft 节点了[/color][/color] -->
                  <field name="signal">submit_draft</field>  <!-- 但这个函数即不能执行 -->
              </record>
              -->
              <!-- 作废 -->
              <record id="trans_submit_close" model="workflow.transition">
                  <field name="act_from" ref="act_submit"/>
                  <field name="act_to" ref="act_close"/>
                  <field name="signal">close</field>
              </record>     
          </data>
      </openerp>


      如有人也碰到该问题,希望可以帮解决一下,不胜感谢,

      1 Reply Last reply Reply Quote 0
      • digitalsatori
        digitalsatori 管理员 last edited by

        名字搞混了吧。

        &lt;record id=&quot;trans_submit_draft&quot; model=&quot;workflow.transition&quot;&gt;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;field name=&quot;act_from&quot; ref=&quot;act_submit&quot;/&gt;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;field name=&quot;act_to&quot; ref=&quot;act_draft&quot;/&gt;&nbsp; &nbsp;  &lt;!-- 该处,工作流已经流回到draft 节点了 --&gt;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;field name=&quot;signal&quot;&gt;submit_draft&lt;/field&gt;&nbsp;  &lt;!-- 但这个函数即不能执行 --&gt;<br />&nbsp; &nbsp; &nbsp; &nbsp; &lt;/record&gt;<br /><br />
        


        这里的sumbit_draft只是那个按钮的名字,这里没有问题,所以当你按那个按钮时工作流返回draft的节点,但是你可能有一个submit_draft函数在返回draft节点后需要做一些处理,比如在界面上更新状态显示等, 但是你的函数是定义在这里的:

        &lt;record id=&quot;act_submit_draft&quot; model=&quot;workflow.activity&quot;&gt;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;field name=&quot;wkf_id&quot; ref=&quot;wkf_bom&quot;/&gt;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;field name=&quot;name&quot;&gt;submit_draft&lt;/field&gt;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;field name=&quot;kind&quot;&gt;function&lt;/field&gt;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;field name=&quot;action&quot;&gt;submit_draft()&lt;/field&gt;<br />&nbsp; &nbsp; &nbsp; &nbsp; &lt;/record&gt;&nbsp; 
        


        而这个act_sumit_draft节点你从来没访问到过,当然里面的sumbit_draft函数不会被执行

        1 Reply Last reply Reply Quote 0
        • 1
          18684036 last edited by

          我看这个回贴,也研究了几天,还是不知道怎么改,惭愧啊
          而我draft是建立时就默认的值
              _defaults={
                      'state':lambda *a:'draft',

          那个节点到底如何访问,我还得再搞搞

          1 Reply Last reply Reply Quote 0
          • First post
            Last post