flex解析osworkflow定义文件

flex解析osworkflow的定义文件实现思路  :

充分利用flex的ArrayCollection 和 Dictionary 去解析其XML

1、osworkflow定义文件如下:XML头部已去掉   后台保存的时候再加上

<?xml version="1.0" encoding="GBK"?>
<!DOCTYPE workflow PUBLIC "-//OpenSymphony Group//DTD OSWorkflow 2.8//EN" "http://www.opensymphony.com/osworkflow/workflow_2_8.dtd">
<workflow>
 <initial-actions>
  <action id="100" name="启动请假申请工作流">
   <results>
    <unconditional-result old-status="Finished"
     status="Underway" step="1"  owner="${caller}"/>
   </results>
  </action>
 </initial-actions>
 <steps>
  <step id="1" name="请假申请">
   <actions>
    <action id="1" name="提交需求申请" view="TEST1">
     <results>
      <result old-status="Finished" status="Underway" step="3"  owner="${caller}">
       <conditions type="AND">
        <condition type="beanshell">
         <arg name="script">
          Integer.parseInt(transientVars.get("dayCount"))>=3
         </arg>
        </condition>
       </conditions>
       <post-functions>
        <function type="beanshell">
         <arg name="script">
          System.out.println("步骤 1 提交需求申请满足条件结果 需boss审批...");
         </arg>
        </function>
       </post-functions>
      </result>
      <unconditional-result old-status="Finished" status="Underway" step="2"  owner="${caller}"/>
     </results>
    </action>
   </actions>
  </step>
  <step id="2" name="经理审批">
   <actions>
    <action id="2" name="经理审批审批请假申请" view="TEST2">
     <restrict-to>
      <conditions type="AND">
       <condition type="class">
        <arg name="class.name">
         com.opensymphony.workflow.util.StatusCondition
        </arg>
        <arg name="status">Underway</arg>
       </condition>
      </conditions>
     </restrict-to>
     <results>
      <result old-status="Finished" status="Underway" step="1"  owner="${caller}">
       <conditions type="AND">
        <condition type="beanshell">
         <arg name="script">
          transientVars.get("opinion")=="N"
         </arg>
        </condition>
       </conditions>
       <post-functions>
        <function type="beanshell">
         <arg name="script">
          System.out.println("步骤 2 请假申请审核经理审批没有通过,驳回到第一环节 ...");
         </arg>
        </function>
       </post-functions>
      </result>
      <unconditional-result old-status="Finished" status="Underway" step="4"  owner="${caller}"/>
     </results>
    </action>
   </actions>
  </step>
  <step id="3" name="老板审批">
   <actions>
    <action id="3" name="老板审批" view="TEST3">
     <restrict-to>
      <conditions type="AND">
       <condition type="class">
        <arg name="class.name">
         com.opensymphony.workflow.util.StatusCondition
        </arg>
        <arg name="status">Underway</arg>
       </condition>
      </conditions>
     </restrict-to>
     <results>
      <result old-status="Finished" status="Underway" step="1"  owner="${caller}">
       <conditions type="AND">
        <condition type="beanshell">
         <arg name="script">
          transientVars.get("opinion")=="N"
         </arg>
        </condition>
       </conditions>
       <post-functions>
        <function type="beanshell">
         <arg name="script">
          System.out.println("步骤3 请假申请审核老板审批没有通过,驳回到第一环节 ...");
         </arg>
        </function>
       </post-functions>
      </result>
      <unconditional-result old-status="Finished" status="Underway" step="4"  owner="${caller}"/>
     </results>
    </action>
   </actions>
  </step>
  <step id="4" name="结束"></step>
 </steps>
</workflow>

2、通过flex解析后生成流程图

(tip:界面上的节点可以任意拖动。后续需要保存其节点坐标入库。默认的坐标展示通过计算出来的)

 

3、目前已实现上述功能 。接下来通过flex实现osworkflow的节点定义 通过界面来配置osworkflow的定义文件并发布到服务器供流程引擎读取并能发起这个流程

 

4、代码我共享在csdn中 有需要的同道中人可以去下载  这demo花了两天时间  所以下载这文件要5个辛苦积分。csdn木有积分了 发此贴以求分。。。。靠技术求分不丢人。。

下载链接:http://download.csdn.net/detail/huqingyun69/6000205

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值