电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

深入理解OpenERP的工作流(Workflow)

5页
  • 卖家[上传人]:海天
  • 文档编号:23991230
  • 上传时间:2017-12-04
  • 文档格式:DOCX
  • 文档大小:17.03KB
  • / 5 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、深入理解 OpenERP的工作流(Workflow) 一、工作流定义:workflow.nameresource.modelTrue | Falsemodel:固定取值workflowid:任意值,唯一标识本工作流name: 工作流的名称,任意定义osv: 本工作流关联的对象类型,是 OpenERP模块中定义的某对象名,如采购单对象(purchase.order)。是本工作流处理的数据对象。on_create:每当系统新产生一个 osv 中定义的对象的实例时候,是否对应的产生一个和该对象实例关联的工作流实例。默认是 True.工 作流和工作流实例:工作流定义了对某一类型的对象,如采购订单(PO)的处理流程。例如,PO 单的一般处理流程也许是:1)新建 PO,State = draft;2)审批 PO,审批的同时,a)系统自动产生收货单,工仓库收货;b)系统自动产生凭据(Invoice),供财务确认付款;c)系统自动产 生 PDF的采购订单,并自动 EMail给该 PO单对应的供应商。但对于特定的某个 PO对象,需要一个工作流实例,以记录本 PO对象处在流程的哪个阶段,如 PO1 尚在

      2、draft状态,PO2 已经审批通过。PO单的审批,以及对应的 a)、b)、c)的动作,都可以在 OE的工作流中定义解决,而不需要全编码在 PO对象上。即工作流实现了流程处理相关的代码和被处理对象的代码相分离,降低了不同处理代码的耦合性,增加了系统功能的柔软性。二、活动(Activity)定义activity.name dummy | function | subflow | stopallsubflow_id(.)(.)XOR | OR | ANDXOR | AND(.)True | FalseTrue | Falsemodel:固定取值 workflow.activitywkf_id:本 Activity所属的工作流 idname: 本 Activity名称,任意值kind:本 Activity类型,有 Dummy, Function, Subflow, Stop All 四种。kind说明,如果流程到达本节点,系统应执行的动作类别。Dummy 表示不执行任何动作,即 action中定义的代码不会被执行。Function 表示执行 action中定义的 python代码,且,执行

      3、action_id中定义的 server action。常见情况是,action 中定义一个 write方法,修改流程关联的对象的状态。对于 Function类型的节点,action 中定义的代 码或者返回 False,或者返回一个客户端动作 id(A client action should be returned)。Subflow类型表示触发“subflow_id”中指定的工作流。仔细的读者或许要问,工作流的执行总是和某个被处理的对象关联,是的,如果定义了 action,subflow 关联的对象 id 由 action中定义的代码返回。如果没有定义action,系统默认 subflow关联的对象和本节点所属的工作流处理的对象 id一致。stopall 类型表示,流程到此节点则结束,但结束前,系统仍会执行action中的代码。signal_send:执行完本节点的动作 (action 及 action_id定义的动作)后,应向别的工作流发往的 signal,格式是:subflow.signal。subflow_id 和 signal_send必须配合使用,subflow_id 表示

      4、,触发子工作流 subflow_id,在该子工作流中,通常必须定义 signal_send,signal_send 定义父流程中的某个 signal,表示,子流程处理结束后触发父流程中的信号 subflow.signal。注意,用于父子流程通信的工作流 signal必须是形如 subflow.* 。例如,在HR模块的 workflow wkf_expenses中,需要开发票时候,它触发流程account模块中的工作流“account.wkf”()。account.wkf 处理完成后,发出信号 subflow.paid 通知 wkf_expenses流程(subflow.paid)。wkf_expenses 中定义了信号 subflow.paid(subflow.paid)。split_mode: 有三个选项,XOR,OR,AND,默认是 XOR。XOR 表示,由本节点始发的出迁移中,沿着第一个满足迁移条件的迁移跳转。OR 表示由本节点始发的出迁移中,只要满足迁移条件即沿该迁移跳转。AND 表示由本节点始发的出迁移中,只有所有迁移皆满足迁移条件才跳转,而且是同时沿所有迁移跳转。XOR 只

      5、有一个跳转,OR 有零或多个跳转,AND 有零或全部跳转。join_mode:有两个选项,XOR,AND,默认是 XOR。XOR 表示,以本节点为终点的入迁移中,只要有一个跳至本节点,即执行本节点的 action。AND 表示,以本节点为终点的入迁移中,只有所有迁移都已经跳至本节点,才执行本节点的action。flow_start:表示流程的开始节点。flow_stop:表示流程的结束节点。三、迁移(Transition)的定义迁移的完整 XML 定义格式如下。(.)(.)(.)(.)act_from:本迁移的起始节点,引用之前定义的 Activity。act_to:本迁移的结束节点,引用之前定义的 Activity。signal: 触发本迁移的信号,表示,如果系统收到 signal定义的信号,则触发本迁移。触发信号有三种方式,1)最常见的是用户点击视图中的“name = 本处定义的 signal”的 button,此时相当于向系统发送迁移信号量。系统会根据视图中的对象 id,找到对象关联的 workflow,再找到与 button name 相同的 signal,触发之。2)调用 w

      6、orkflow_service的方法:trg_validate(self, uid, res_type, res_id, signal, cr),此方法表示,触发对象类型 res_type关联的 workflow的 signal信号,工作流实例关联的对象实例是 res_id。3)子流程的 signal_send 发出的信号,此种情况前文已说过。condition:迁移的条件,是一段 Python代码,通常是一个函数调用。当系统收到 signal中定义的信号时候,检查此处的条件,条件为真则实际触发迁移。trigger_model 和 trigger_expr_id:此二字段表示启动一个新工作流实例。trigger_model定义对象类型,trigger_expr_id 定义一段 Python代码,返回trigger_model类型的对象 id。此二字段表示,如果 act_from 中的 action 执行完毕,且 condition 条件 OK,则系统中插入一个 trigger_model类型,trigger_expr_id返回的对象 id关联的工作流实例。然后,可以调用 workflo

      7、w_service的方法 trg_trigger(self, uid, res_type, res_id, cr)实际执行该工作流。实际使用例子请参考 Sale模块的工作流定义 wkf_sale:procurement.orderprocurement_lines_get() 最后编辑时间 : 六月 27, 2011, 03:31:46 下午 作者 NewZN 迁移(Transition)的定义漏了权限组 group_id,修正如下。表示只有该权限组可以触发本迁移。迁移的完整 XML 定义格式如下。(.)(.)(.)(.)上文关于 Trigger model和 Trigger expr_id的解释不够清楚,更清楚的解释参看链接:http:/ explain here what these two fields do: trigger_model and trigger_expr_id, for people looking for help :- These fields let you ask for an evaluation of the condition when a spe

      8、cific object changed.For example, suppose you want to set a Sale Order into the state Done once it has been shipped. The first the time the condition will be evaluated, it will be False. But later (some days after), we will confirm the shipping order. But our workflow condition is not checked again. Unless you define trigger_model and trigger_expr_id.- Trigger model: The object type which will trigger an evaluation of your condition.- Trigger expr_id: A list of model ids which will trigger the c

      9、ondition.For example, to take the example of our Sale Order, we dont want to check the condition each time a shipping order is confirmed, but only when the shipping order associated to our sale order is confirmed !Note: You can put a call to a function into trigger_expr_id, like get_shipping_ids(), or you can directly put a python value (like in my example in the previous post).WARNING: Currently (OpenERP 6.0) you can only use trigger_model and trigger_expr_id a few objects: account.move.line, procurement.order and stock.move !

      《深入理解OpenERP的工作流(Workflow)》由会员海天分享,可在线阅读,更多相关《深入理解OpenERP的工作流(Workflow)》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    信息化课堂中的合作学习结业作业七年级语文 发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2 2022年小学体育教师学期工作总结
     
    收藏店铺
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.