`
stworthy
  • 浏览: 526203 次
  • 来自: ...
社区版块
存档分类
最新评论

我也工作流

阅读更多

最近做的一个项目用到工作流,由于不想使用其他的工作流产品,所以依照OSWORKFLOW写了一个,使用效果还不错。现贴上一个信访流程的定义:

ruby 代码
  1. workflow:   
  2.   init-actions:   
  3.     1:   
  4.       name: 开始   
  5.       results:   
  6.         -   
  7.           step: 1   
  8.           status: 在登记   
  9.           owner: @wf_params['caller']+':信访登记人'   
  10.     2:   
  11.       name: 开始复查申请   
  12.       results:   
  13.         -   
  14.           step: 8   
  15.           status: 待复查   
  16.           owner: @wf_params['caller']+':信访办理人'   
  17.     3:   
  18.       name: 开始复核申请   
  19.       results:   
  20.         -   
  21.           step: 9   
  22.           status: 待复核   
  23.           owner: @wf_params['caller']+':信访办理人'   
  24.   steps:   
  25.     1:   
  26.       name: 登记   
  27.       actions:   
  28.         12:   
  29.           name: 修改   
  30.           condition: curr_instance_step(1).status=='在登记'   
  31.           params:   
  32.             action-name: edit   
  33.           results:   
  34.             -   
  35.               step: 1   
  36.               status: 在登记   
  37.               owner: @wf_params['caller']+':信访登记人'   
  38.         13:   
  39.           name: 删除   
  40.           condition: curr_instance_step(1).status=='在登记'   
  41.           params:   
  42.             action-name: destroy   
  43.           results:   
  44.             -   
  45.               step: 1   
  46.               status: 在登记   
  47.               owner: @wf_params['caller']+':信访登记人'   
  48.         11:   
  49.           name: 提交拟办   
  50.           condition: curr_instance_step(1).status=='在登记'   
  51.           params:   
  52.             action-name: comm_proc   
  53.           results:   
  54.             -   
  55.               step: 2   
  56.               status: 待拟办   
  57.               owner: @wf_params['caller'] + ':信访受理人'   
  58.     2:   
  59.       name: 拟办   
  60.       actions:   
  61.         21:   
  62.           name: 签收   
  63.           condition: curr_instance_step(2).status=='待拟办'   
  64.           params:    
  65.             action-name: sign   
  66.           results:   
  67.             -   
  68.               step: 2   
  69.               status: 在拟办   
  70.               owner: @wf_params['caller'] + ':信访受理人'   
  71.         22:   
  72.           name: 填写拟办意见   
  73.           condition: curr_instance_step(2).status=='在拟办'   
  74.           params:    
  75.             action-name: comm_proc   
  76.           results:   
  77.             -   
  78.               step: 2   
  79.               status: 在拟办   
  80.               owner: @wf_params['caller'] + ':信访受理人'   
  81.         23:   
  82.           name: 请示领导   
  83.           condition: curr_instance_step(2).status=='在拟办'   
  84.           params:   
  85.             action-name: comm_proc   
  86.           results:   
  87.             -   
  88.               step: 3   
  89.               status: 待审批   
  90.               owner: @wf_params['caller'] + ':信访审批人'   
  91.         24:   
  92.           name: 提交受理   
  93.           condition: curr_instance_step(2).status=='在拟办'   
  94.           params:    
  95.             action-name: comm_proc   
  96.           results:   
  97.             -   
  98.               step: 4   
  99.               status: 待受理   
  100.               owner: @wf_params['caller'] + ':信访受理人'   
  101.     3:   
  102.       name: 审批   
  103.       actions:   
  104.         31:   
  105.           name: 签收   
  106.           condition: curr_instance_step(3).status=='待审批'   
  107.           params:    
  108.             action-name: sign   
  109.           results:   
  110.             -   
  111.               step: 3   
  112.               status: 在审批   
  113.               owner: @wf_params['caller'] + ':信访审批人'   
  114.         32:   
  115.           name: 填写审批意见   
  116.           condition: curr_instance_step(3).status=='在审批'   
  117.           params:    
  118.             action-name: comm_proc   
  119.           results:   
  120.             -   
  121.               step: 3   
  122.               status: 在审批   
  123.               owner: @wf_params['caller'] + ':信访审批人'   
  124.         33:   
  125.           name: 审批回复   
  126.           condition: curr_instance_step(3).status=='在审批'   
  127.           params:    
  128.             action-name: comm_proc   
  129.           results:   
  130.             -   
  131.               step: 4   
  132.               status: 待受理   
  133.               owner: @wf_params['caller'] + ':信访受理人'   
  134.     4:   
  135.       name: 受理   
  136.       actions:   
  137.         41:   
  138.           name: 签收   
  139.           condition: curr_instance_step(4).status=='待受理'   
  140.           params:   
  141.             action-name: sign   
  142.           results:   
  143.             -   
  144.               step: 4   
  145.               status: 在受理   
  146.               owner: @wf_params['caller'] + ':信访受理人'   
  147.         42:   
  148.           name: 受理   
  149.           condition: curr_instance_step(4).status=='在受理'   
  150.           params:   
  151.             action-name: comm_proc   
  152.             doc-template: doc_proc   
  153.             req-receiver: false  
  154.           after-action: |   
  155.             letter_visit = LetterVisit.find_by_wf_instance_id(@wf_instance.id)   
  156.             if letter_visit   
  157.               human = Human.find letter_visit.letter_visit_tracks.last.human_id   
  158.               letter_visit.proced_at = Time.now   
  159.               letter_visit.proc_department_id = human.com_id   
  160.               letter_visit.save!   
  161.             end  
  162.           results:   
  163.             -   
  164.               step: 4   
  165.               status: 已受理   
  166.               owner: @wf_params['caller'] + ':信访受理人'   
  167.         43:   
  168.           name: 告知   
  169.           condition: curr_instance_step(4).status=='在受理'   
  170.           params:   
  171.             action-name: comm_proc   
  172.             doc-template: doc_tell   
  173.             req-receiver: false  
  174.           results:   
  175.             -   
  176.               step: 6   
  177.               status: 办结   
  178.         44:   
  179.           name: 不再受理   
  180.           condition: curr_instance_step(4).status=='在受理'   
  181.           params:   
  182.             action-name: comm_proc   
  183.             doc-template: doc_never_proc   
  184.             req-receiver: false  
  185.           after-action: |   
  186.             letter_visit = LetterVisit.find_by_wf_instance_id @wf_instance.id   
  187.             if letter_visit   
  188.               letter_visit.result = '不再受理'   
  189.               letter_visit.save!   
  190.             end  
  191.           results:   
  192.             -   
  193.               step: 6   
  194.               status: 办结   
  195.         45:   
  196.           name: 不予受理   
  197.           condition: curr_instance_step(4).status=='在受理'   
  198.           params:   
  199.             action-name: comm_proc   
  200.             doc-template: doc_not_proc   
  201.             req-receiver: false  
  202.           after-action: |   
  203.             letter_visit = LetterVisit.find_by_wf_instance_id @wf_instance.id   
  204.             if letter_visit   
  205.               letter_visit.result = '不予受理'   
  206.               letter_visit.save!   
  207.             end  
  208.           results:   
  209.             -   
  210.               step: 6   
  211.               status: 办结   
  212.         46:   
  213.           name: 指派   
  214.           condition: curr_instance_step(4).status=='已受理'   
  215.           params:   
  216.             action-name: comm_proc   
  217.             doc-template: doc_empty   
  218.             req-receiver: humen   
  219.           results:   
  220.             -   
  221.               step: 5   
  222.               status: 待办理   
  223.               owner: @wf_params['caller'] + ':信访办理人'   
  224.         47:   
  225.           name: 转送   
  226.           condition: curr_instance_step(4).status=='已受理'   
  227.           params:   
  228.             action-name: comm_proc   
  229.             doc-template: doc_forward   
  230.             req-receiver: departments   
  231.           results:   
  232.             -   
  233.               step: 7   
  234.               status: 待接收   
  235.               owner: @wf_params['recv_com_id'] + ':信访受理人'   
  236.         48:   
  237.           name: 交办   
  238.           condition: curr_instance_step(4).status=='已受理'   
  239.           params:   
  240.             action-name: comm_proc   
  241.             doc-template: doc_handto   
  242.             req-receiver: departments   
  243.           results:   
  244.             -   
  245.               step: 7   
  246.               status: 待接收   
  247.               owner: @wf_params['recv_com_id'] + ':信访受理人'   
  248.     5:   
  249.       name: 办理   
  250.       actions:   
  251.         51:   
  252.           name: 签收   
  253.           condition: curr_instance_step(5).status=='待办理'   
  254.           params:   
  255.             action-name: sign   
  256.           results:   
  257.             -   
  258.               step: 5   
  259.               status: 在办理   
  260.               owner: @wf_params['caller'] + ':信访办理人'   
  261.         52:   
  262.           name: 处理   
  263.           condition: curr_instance_step(5).status=='在办理'   
  264.           params:   
  265.             action-name: comm_proc   
  266.             doc-template: doc_reply   
  267.           after-action: |   
  268.             letter_visit = LetterVisit.find_by_wf_instance_id(@wf_instance.id)   
  269.             if letter_visit   
  270.               letter_visit.result = '处理'   
  271.               letter_visit.save!   
  272.             end  
  273.           results:   
  274.             -   
  275.               step: 6   
  276.               status: 办结   
  277.     7:   
  278.       name: 接收上级案件   
  279.       actions:   
  280.         71:   
  281.           name: 签收   
  282.           condition: curr_instance_step(7).status=='待接收'   
  283.           params:   
  284.             action-name: sign   
  285.           results:   
  286.             -   
  287.               step: 7   
  288.               status: 待指派   
  289.               owner: @wf_params['caller'] + ':信访受理人'   
  290.         72:   
  291.           name: 指派   
  292.           condition: curr_instance_step(7).status=='待指派'   
  293.           params:   
  294.             action-name: comm_proc   
  295.             doc-template: doc_empty   
  296.             req-receiver: humen   
  297.           results:   
  298.             -   
  299.               step: 5   
  300.               status: 待办理   
  301.               owner: @wf_params['caller'] + ':信访办理人'   
  302.     6:   
  303.       name: 完成   
  304.       actions:   
  305.         61:   
  306.           name: 办结处理   
  307.           auto: true  
  308.           after-action: |   
  309.             letter_visit = LetterVisit.find_by_wf_instance_id @wf_instance.id   
  310.             if letter_visit   
  311.               human = Human.find letter_visit.letter_visit_tracks.last.human_id   
  312.               letter_visit.finished_at = Time.now   
  313.               letter_visit.finish_department_id = human.com_id   
  314.               letter_visit.status = '办结'   
  315.               letter_visit.wf_instance_id = nil  
  316.               letter_visit.save!   
  317.             end  
  318.             @wf_instance.destroy   
  319.           results:   
  320.             -   
  321.               step: 6   
  322.               status: 办结   
  323.     8:   
  324.       name: 复查办理   
  325.       actions:   
  326.         1:   
  327.           name: 签收   
  328.           condition: curr_instance_step(8).status=='待复查'   
  329.           params:   
  330.             action-name: sign   
  331.           results:   
  332.             -   
  333.               step: 8   
  334.               status: 在复查   
  335.               owner: @wf_params['caller'] + ':信访办理人'   
  336.         2:   
  337.           name: 复查   
  338.           condition: curr_instance_step(8).status=='在复查'   
  339.           params:   
  340.             action-name: comm_proc   
  341.             doc-template: doc_rescan   
  342.           after-action: |   
  343.             letter_visit = LetterVisit.find_by_wf_instance_id(@wf_instance.id)   
  344.             if letter_visit   
  345.               letter_visit.result = '复查'   
  346.               letter_visit.save!   
  347.             end  
  348.           results:   
  349.             -   
  350.               step: 6   
  351.               status: 办结   
  352.     9:   
  353.       name: 复核办理   
  354.       actions:   
  355.         1:   
  356.           name: 签收   
  357.           condition: curr_instance_step(9).status=='待复核'   
  358.           params:   
  359.             action-name: sign   
  360.           results:   
  361.             -   
  362.               step: 9   
  363.               status: 在复核   
  364.               owner: @wf_params['caller'] + ':信访办理人'   
  365.         2:   
  366.           name: 复核   
  367.           condition: curr_instance_step(9).status=='在复核'   
  368.           params:   
  369.             action-name: comm_proc   
  370.             doc-template: doc_recheck   
  371.           after-action: |   
  372.             letter_visit = LetterVisit.find_by_wf_instance_id(@wf_instance.id)   
  373.             if letter_visit   
  374.               letter_visit.result = '复核'   
  375.               letter_visit.save!   
  376.             end  
  377.           results:   
  378.             -   
  379.               step: 6   
  380.               status: 办结   
  381.             
分享到:
评论
2 楼 likeblood 2007-08-14  
是啥项目
1 楼 ryebread 2007-06-21  
比较感兴趣,有没有源码共享

相关推荐

    工作流资料+DEMO源代码

    在给定的资源中,“工作流资料+DEMO源代码”包含了一个名为“NetronLight工作流软件源码.rar”的压缩包,以及一份“工作流资料”,这为我们提供了一个研究和学习工作流管理系统实现的宝贵机会。 首先,我们来详细...

    工作流演示内容 工作流设计

    此外,工作流审计记录也有助于满足合规性要求,提供审计线索。 6. **工作流演示内容**:这个标签可能指的是包含工作流系统演示的文件,如“工作流内容.exe”。这样的文件通常是一个交互式应用,展示了工作流系统的...

    Windchill工作流数据库字典

    在Windchill的工作流模块中,主要包括了工作流模板、工作流实例、工作流任务等多个方面。这些元素共同构成了一个完整的工作流框架。 #### 二、工作流管理模块 ##### 1.1 工作流模板(WfProcessTemplateMaster) ...

    ABAP 工作流配置示例

    这种工作流的应用有助于提高业务流程的自动化水平,减少人工干预的同时也能提升工作效率。 请注意,本文档仅供学习参考,如果您在实际操作过程中遇到问题或有任何疑问,请咨询SAP官方文档或相关技术支持人员。

    工作流实例 工作流实例

    工作流实例是业务自动化中的一个重要概念,它涵盖了组织内各种任务、活动和决策的系统化管理,以确保流程的高效性和一致性。工作流实例是指在特定时间启动并按预定顺序执行的一系列工作流程活动。这些实例是根据预先...

    工作流学习笔记-工作流语言

    另一方面,自动化工作流源自规则引擎和生产流程,逐渐也开始支持基于人的工作流。 编制和编排是工作流中的两个重要概念。编制是强制执行顺序和节奏,类似于音乐指挥,适用于自动化工作流。编排则更为复杂,涉及处理...

    jquery工作流插件

    这种方式使得非程序员也能理解并参与到工作流的设计中,降低了理解和使用门槛。 2. **任务管理**:每个节点代表一个任务,可以包含任务的详细信息,如执行人、状态(待办、进行中、已完成等)、时间限制等。用户...

    工作流和DevExpress

    DevExpress的工作流组件允许开发者轻松实现复杂的工作流逻辑,提供了可视化的工作流设计器,使得非程序员也能参与到流程的设计中来。 在DevExpress中,工作流主要由以下几部分组成: 1. **工作流设计器**:...

    jeecg 开源免费版工作流

    1. 易用性:Jeecg提供了友好的界面和直观的工作流设计器,使得非技术人员也能参与流程设计。 2. 高效性:通过代码生成器和低代码开发,Jeecg能显著提高开发效率。 3. 灵活性:支持多种部署模式,包括单体应用、...

    WorkFlow C++ 工作流图形

    "WorkFlow C++ 工作流图形"是一个专注于在C++环境中实现工作流管理的图形化库。工作流,简单来说,就是一系列按照特定顺序执行的任务或活动,它在企业管理、软件开发、流程自动化等领域中广泛应用。C++作为一门强大...

    sharepoint工作流开发

    此外,熟悉XML和XAML(用于定义工作流的图形表示)也是必要的,因为它们常常在自定义工作流中起到关键作用。通过这种方式,SharePoint工作流开发可以帮助企业实现更高效的协作和自动化,提高生产力。

    php 工作流源码

    在IT行业中,工作流(Workflow)是一种用于管理组织内业务过程的方法,它通过定义、实施和自动化业务规则来实现流程的有序流转。PHP作为一种流行的开源脚本语言,被广泛应用于Web开发,包括构建工作流系统。这个...

    工作流技术综述 讲工作流的论文

    - 随着技术的不断进步和社会需求的变化,工作流技术也将面临更多的挑战和发展机遇。 #### 五、结论与展望 工作流技术作为连接业务流程与信息技术的重要桥梁,在推动企业数字化转型的过程中发挥着至关重要的作用。...

    工作流小demo

    在这个“工作流小demo”中,我们可以看到一个针对博客工作流-helloworld的实现,这是一个典型的入门级示例,帮助初学者理解工作流的基本概念和操作。 工作流(Workflow)的核心概念包括工作流模型、任务、参与者和...

    工作流引擎平台解决方案

    工作流引擎平台解决方案 工作流引擎平台解决方案是企业业务流程自动化的基础平台产品核心产品,旨在帮助企业实现业务流程自动化和流程再造。该解决方案由三个阶段组成:模型建立阶段、模型实例化阶段和模型执行阶段...

    Java工作流源码

    Java工作流源码是用于实现工作流自动化的一种编程资源,它可以帮助开发者构建高效、可扩展的企业级业务流程管理系统。在Java领域,工作流通常涉及到BPM(Business Process Management)技术,用于管理和优化组织内的...

    工作流概述、工作流模式介绍

    - **90年代的发展**:随着企业信息资源变得越来越异构和分布化,工作流技术也得到了进一步的发展,被更多地应用于解决跨平台、跨网络的企业级问题。 - **标准化**:1993年,国际工作流管理联盟(WfMC)成立,致力于...

    普元EOS 工作流介绍

    **普元EOS工作流介绍** 普元EOS工作流系统是一种基于服务导向架构(SOA)的企业级业务流程管理(BPM)解决方案。它提供了一种可视化的工作流设计工具,帮助企业快速构建、部署和管理复杂的业务流程,从而提高运营...

    工作流表结构

    简单的系统工作流数据结构表,轻量级简单系统工作流的源码轻量级简单系统工作流的源码轻量级简单系统工作流的源码轻量级简单系统工作流的源码轻量级简单系统工作流的源码轻量级简单系统工作流的源码轻量级简单系统...

    php工作流引擎,可视化设计,兼容PHP8

    在PHP工作流引擎中,开发者可以利用拖放方式创建节点、连接线,定义流程走向,使得非技术人员也能参与流程设计。这种设计方式降低了工作流的实施难度,提高了效率。 四、PHP8兼容性 PHP8作为PHP语言的最新版本,...

Global site tag (gtag.js) - Google Analytics