版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、慧正工作流引擎API说明V6.0 (试用版)北京慧正通软科技有限公司2012年5月目录、总体41. 业务操作说明42. 流程参数说明43. 流程执行操作说明 84. 流程实例流转操作9二、启动实例91. 启动流程实例整体说明 92. 启动流程实例参数说明 103. 启动流程初始化 XMLWork额外属性说明104. 启动流程实例返回值init说明105. 启动实例代码样例11三、打开实例121. 打开流程实例整体说明 122. 打开流程实例参数说明 133. 打开流程初始化 XMLWork额外属性说明134. 打开流程实例返回值init说明145. 打开实例代码样例14四、执行操作161. 采
2、用系统提供的默认类处理 162. 自行编写处理类17五、流程实例具体功能操作 191. 提交19A. 提交流程实例参数说明 19B. 提交流程实例返回值 cp说明19C. 提交流程实例代码样例 202. 退回23A. 退回流程实例参数说明 23B. 退回流程实例返回值cp说明23C. 退回代码样例243. 拿回24A. 拿回流程实例参数说明 24B. 拿回流程实例返回值cp说明25C. 拿回代码样例254. 阅知25A. 流程实例阅知参数说明 25B. 流程实例阅知返回值 cp说明26C. 流程实例阅知代码样例 265. 撤销26A. 撤销流程实例参数说明 26B. 撤销流程实例返回值 cp说
3、明 26C. 撤销流程实例代码样例 276. 跳转27A. 流程实例跳转参数说明 27B. 流程实例跳转返回值cp说明 27C. 流程实例跳转代码样例 287. 会签29A. 流程实例会签参数说明 29B. 流程实例会签返回值 cp说明 29C. 流程实例会签代码样例 308. 加签30A. 流程实例加签参数说明 30B. 流程实例加签返回值 cp说明30C. 流程实例加签代码样例 319. 转办31A. 转办流程实例参数说明 31B. 转办流程实例返回值 cp说明31C. 转办流程实例代码样例 3210. 暂停32A. 暂停流程实例参数说明 32B. 暂停流程实例返回值 cp说明32C. 暂
4、停流程实例代码样例 3311. 已阅33A. 流程实例已阅参数说明 33B. 流程实例已阅返回值cp说明33C. 流程实例已阅代码样例 3312. 催办34A. 催办流程实例参数说明 34B. 催办流程实例返回值 cp说明34C. 催办流程实例代码样例 3413. 替换办理人35A. 流程实例替换办理人参数说明 35B. 流程实例替换办理人返回值 cp说明35C. 流程实例替换办理人代码样例 3514. 暂存36A. 暂存流程实例参数说明 36B. 暂存流程实例返回值 cp说明36C. 暂存代码样例3615. 终止流程36A. 终止流程实例参数说明 36B. 终止流程实例返回值 cp说明 37
5、C. 终止流程代码样例3716. 启动子流程37A. 启动子流程实例参数说明 37B. 启动子流程实例返回值 cp说明37C. 启动子流程代码样例 38附录:XMLWork方法摘要40、 总体1. 业务操作说明业务操作说明功能方法参数说明1.启动实例1.1XMLWorkxWork= newXMLWork(Stri nguserid,Stri nguser name,Stri ng dept name)设置XMLWor啲基本属性必要参数:Userid:用户 IdUserName用户名称DeptName部门名称1.2intin it=xWork.openWorkFlow( ”,flowlD, ”
6、);根据流程定义Id,启动流程 实例必要参数:flowID:流程定义Id2.打开实例2.1XMLWorkxWork= newXMLWork(Stri nguserid,Stri nguser name,Stri ng dept name)设置XMLWor的基本属性 必要参数:Userid:用户 IdUserName用户名称DeptName部门名称2.2intin it=xWork.openWorkFlow(workid , ” , ” );根据流程实例Id,打开流程 实例必要参数:workid :流程实例Id2. 流程参数说明具体可参考 流程参数总体说明参数名含义格式要求必须赋值flowIde
7、 ntifier流程数据源标 识configuration.xml或者workflow.xml 配置,具体参 考启动流程初始化 XMLWork额dataIde ntifier业务数据源标 识外属性说明UserID操作人用户IdUserName操作人用户名 称DeptName操作人部门名 称WorkID流程实例idNodelD流程实例当前 节点IdNodeName流程实例当前 节点名称TrackID路径Id/如果当前人在多个分支 节点都具有权限,还需要指 定路径ID/如果不指定,系统会自动 获取所有分支,返回前台供 选择actionF lag操作权限设置1:允许操作selectAuthor办理人
8、员的Id单个节点(或者不需要传入节点)时为 user1|user2或者node=user1|user2多个节点时node1=user1|user2&n ode2=user3流程节点的 办理人无值 时为必填项selectAuthorCN办理人员的中 文名称sec on dAuthor选择的协办人 员格式同 selectAuthorn extNodeID下一个节点Id1. 如果提交到下一点,只有 一个节点时,请不要赋值, 置为空;2. 当下一节点有多个节点, 根据路由条件无法确定时, 可以指定其中一个或者多 个来确定流程走向。传入格式:(必须从返回格 式中获取传入数据) rld1 nld1
9、|rld2 nld2&rld 3 nld3路由ID节点ID。3. 如果从当前节点(A)到 目标节点(C)之间有其他节 点(B)被跳过时格式为:路 由B节点B|路由C节点C4.多个节点被选择时,使 用&连接msgSe ndFlag发送消息方式ToDo|Ma il|M sg|Note|RTF| Other|如果在workflow.xml中配置ReChgMsgFl ag节点为 true 时需 要传入发送 消息的方式Actio nName操作类型Save等,具体参考总体中的 流程执行操作allowU ni tNext合并节点,是 否允许执行提 交操作1:允许,其他不允许合并节点时 为必
10、填项can celFlag撤销时的标 志,默认删除仁删除,2=回收站只有执行撤 销操作时为 必填项urlapp待办链接地址如果为空则默认使用流程 框架页面打开Comme nts意见内容selectFlag当前节点如果 替换处理人和 转办时,是否 允许选择多人1:允许,其他不允许执行替换和 转办时为必 填项submitflag操作提交状态(1) 提交操作时的含义:1-获取下一节点信息,返回 是否选择节点,是否需要选 择人员,用于跟前台交互, 0=执行提交到下一节点办 理人,如果处理中遇到节点 不明确或者办理人不明确 时,跟1效果一样。当需要 跟前台操作人进行交互,比 如获取是否需要选择节点 或者
11、选择办理人,是否需要 操作人进行确认等,建议使 用1,处理速度会快一点。(2) 跳转操作时的含义: 仁获取可以跳转的节点列 表,0=执行跳转到指定节 点。(3) 退回操作时的含义: 仁获取可以退回的节点列表,0=执行退回到指定节点 操作。(4) 启动子流程时的含义:如果系统提供了启动子流 程的ID (参数selectFlowID ),则忽略此 参数,不提供selectFlowID 参数时,如果当前人没有启 动过子流程时忽略此参数, 直接根据定义判断是否有 多个子流程定义,如果只有 一个子流程定义,则直接启 动,否则返回;如果当前人 已经启动过子流程,1二获取 已经启动的子流程列表,并 返回,0
12、-根据定义判断是否 有多个子流程定义,如果只 有一个子流程定义,则直接 启动,否则返回。(5) 催办操作时的含义: 仁催办次数如果已经达到 上限则停止,0二催办次数已 经达到上限也继续催办curNodeAuthorSe ndFlag当前节点的作 者消息发送方 式,用于执行 会签,加签,替 换,转办格式同 msgSendFlagcurNodeReaderSe ndFlag当前节点的读 者消息发送方 式,用于执行 阅知操作时显 示在前台供操 作者选择selectFlowID启动子流程的Id启动子流程 时为必填项FormActio n流程提交操作的URLtmpAuthor选择人员时, 临时获取选择
13、范围格式同 SelectAuthorpreFlag如果有选择节 点页面,在确 认页面上出现1:显示,其他不出现上一步按钮Acti on Class执行业务的action 名称默认com.horizo n. workflow.flowe ngin e.impl.e ntity .XMLApptmpSavel nfo临时信息记录 (目前用于存 储当前人填写 的意见信息)3. 流程执行操作说明流程执行操作1.引入的包:从request中获系统com.horiz on .workflow.flowe ngi ne.impl.e ntity.XMLApp取的相关参数默认参考流程参数处理(1)传入 req
14、uest 对象,调用 doAction总体说明,以及过程XMLApp app =new XMLApp();要执行下面具Lin kedHashMap backMap = app.doAct ion( request);体操作的说明(具/返回结果体点int cp = In teger.parse In t(Stri ng)backMap.get("iResult");击上/获取提交后的流程信息面链XMLWork xWork = (XMLWork)backMap.get("xWork");接)(2)把参数放入的 LinkedHashMap,调用 doActio
15、n根据操作的类Li nkedHashMap dataHashM ap = new Li nkedHashMap();型,组织XMLApp app =new XMLApp();dataHashM ap 的Lin kedHashMap backMap = app.doAct ion( dataHashMap);数据,具体参考/返回结果流程参数总体int cp = In teger.parse In t(Stri ng)backMap.get("iResult");说明,以及要执/获取提交后的流程信息行下面具体操XMLWork xWork = (XMLWork)backMap.g
16、et("xWork");作的说明2.LinkedHashMap hashMap = new LinkedHashMap();组织流程操作自行2.在自定义的类中执行需要的参数编写int result = doAct ion(n ull,hashMap);具体根据流程处理参数总体说明过程以及对应的操(具作设置相关参体点数,放入到击上 面链hashMap 中。接)4. 流程实例流转操作操作名称英文标识说明提交Submit提交到下一节点退回reject退回到某个节点拿回getback拿回已提交的流程阅知addreader发送待阅撤销cancel撤销流程跳转goto跳转到某个节点会签
17、huiqia n发送给相关人员会签加签jiaqia n发送给相关人员加签转办move转交给其他人办理暂停pause暂停流程已阅readed阅读待阅的信息催办remsg催办流程实例替换办理人replace替换流程的办理人暂存save暂存流程实例终止流程stopflow终止流程实例启动子流程subflow启动子流程启动实例1. 启动流程实例整体说明引 入类:执行方 法初始化XMLWork设置相关属性1.XMLWorkxWork=newXMLWork(userid,user name,dept name);启动具体的流程实例 (返回值说明见下面)2.i ntin it=xWork.openWorkF
18、low( ” ,flowID, ” );2. 启动流程实例参数说明参数名含义要求userid启动实例的操作人 的用户Id不能为空user name启动实例的操作人 的用户名称可以为空dept name启动实例的操作人 的部门名称可以为空flowID流程定义Id不能为空3. 启动流程初始化 XMLWork额外属性说明初始化XMLWork设置相关属性(根据业务,如有需要,可以设置以下内容)xWork.setFlowlde ntifier( )设置流程数据所使 用的数据源标识符。con figurati on. xml中设置的默认数据源和workflow.xml中的设置不 一致时,设置为空和设置成n
19、ull (或 者不设置)是有区别的,设置为空时, 系统使用 con figurati on. xml中设置的默认数据源,设置成 null (或 者不设置)时,使用的是 workflow.xml中的设置。数据源无 效时,系统默认使用 con figurati on. xml中设置的默认数据源。如果 flowIde ntifier跟dataIde ntifier样可以直接使用xWork.setIdentifier()对两个变量同时赋值xWork .setDataIde ntifier()设置业务数据所使 用的数据源标识符。xWork .setUserAuthType()如果需要设置外部 办理人获取
20、方式。4. 启动流程实例返回值init说明返回值含义in it= StaticVar.I ni t Success初始化成功。init = StaticVar.I nit NoRole当前人员无权启动流程init = StaticVar.I nit_ReadMsg锁定当前实例失败,启动流程时不影响,可以等 同成功init = StaticVar.In it_Failed其他原因失败从xWork.getBackMsg();可以获取 错误信息启动流程实例成功后,可以从xWork对象中获取相关的信息,具体参考 XMLWork 方法摘要5. 启动实例代码样例/*启动流程实例操作,从前台获取参数,获取流
21、程定义Id等信息,具体可参考horiz on/workflow/in clude2/xmlwork.i ndex.head.jsp */1.流程定义Id,必须有此值Stri ng flowID = request.getParameter("flowid");2.外部权限设置分类,XMLWork额外属性,可以不用设置Str ing userAuthType = request.getParameter("userAuthType");3.获得数据源,XMLWork额外属性,可以不用设置Stri ng dbIde ntifier = request.get
22、Parameter("dblde ntifier");4.当前用户信息,根据应用系统的区别,灵活获取。下面是产品中的自带的用户获取方式String userid = SessionUtil.getUserld(session); /用户 Id 必须有值Stri ng user name = Sessio nU til.getUserName(sessio n);Stri ng dept name = Sessio nU til.getDeptName(sessio n);/5. 初始化XMLWork属性XMLWork xWork = new XMLWork(userid,u
23、ser name,dept name);/如果需要设置XMLWork额外属性xWork.setIde ntifier(dblde ntifier);xWork.setUserAuthType(userAuthType);6.启动流程实例,第一个参数是流程实例Id,第二个参数是流程定义Id,第三个参数是业务数据Id,如果三个都有值,获取流程数据的优先顺序:workID > flowID > dataIDint in it = xWork.ope nWorkFlow( "”,flowlD, ” );7.启动流程实例成功后,对业务数据的处理在启动流程实例的界面中,如果提交流程操
24、作时,同时保存业务数据,使用自定义的编写处理类方式流转,业务数据可以在对应的getAppSQL()方法中具体处理。具体可参考自行编写处理类过程。/获取当前节点当前人所具有的表单信息(包含表单域和操作信息),具体可参考 String formId =“”;/业务的表单ID,根据业务随机修改String dataid=xWork.getlDByFormlD(formId, “ DataID ”);com.horizo n. workflow.flowe ngin e.xmldb.XMLFormxmlForms=xWork .getCurForm(dataid);for(i nt i=0;i<
25、form .len gth;i+) String formid = formi.getlD();/流程跟踪表单if(formid.equalslg noreCase("FlowTrack")/如果是流程跟踪表单,可以执行链接到流程跟踪界面else if(formi.getFormtype().equals("HTML")/静态Html页面else if(formi.getFormtype().equals("JSP")/自定义的JSP页面/获取表单信息Li nkedHashMap formFieldMap = xWork.getFie
26、ldsTypeByFormlD(i);/业务数据IdString dataID = formi.getDataID()/表单IdString formid=formi.getlD();/库表名称Stri ng table name=formi.getTablelD();/该节点的只读字段列表Stri ng mpread=formFieldMap.get("read").toStr in g();/该节点的编辑字段列表String mpedit=formFieldMap.get("edit").toString();/该节点的必填字段列表Str ing m
27、pmust=formFieldMap.get("check").toStri ng();/该节点的隐藏字段列表Stri ng mphide=formFieldMap.get("hidde n").toStr in g();/该节点的其他标识(比如表单自己的按钮之类的标识)列表Stri ng mpother=formFieldMap.get("other").toStri ng();else/其他使用整体框架功能、 打开实例1. 打开流程实例整体说明引 入类:执行方初始化XMLWork设置相关属性1.XMLWorkxWork=new法X
28、MLWork(userid,user name,dept name);打开具体的流程实例 (返回值说明见下面)2.i ntin it=xWork.openWorkFlow(workid, ” , ” );2. 打开流程实例参数说明参数名含义要求userid启动实例的操作人 的用户Id不能为空user name启动实例的操作人 的用户名称可以为空dept name启动实例的操作人 的部门名称可以为空workid流程实例Id不能为空3. 打开流程初始化XMLWork额外属性说明初始化XMLWork设置相关属性(根据业务,如有需要,可以设置以下内容)xWork.setFlowIde ntifier(
29、 )设置流程数据所使 用的数据源标识符。(1)co nfigurati on .xml中设置的默认数据源和workflow.xml 中的 设置不一致时,设置为空和设置 成null (或者不设置)是有区别 的,设置为空时,系统使用 con figurati on. xml中设置的默认数据源,设置成null (或者不 设置)时,使用的是 workflow.xml中的设置。数据源 无效时,系统默认使用 con figurati on. xml中设置的默认数据源。如果 flowIdentifier跟dataIde ntifier样可以直接使用xWork.setIdentifier(“” )对两个变量同
30、时赋值xWork.setDataIde ntifier( )设置业务数据所使 用的数据源标识符。xWork.setOpe nTracklD()设置指定路径Id打开流程实例时可以设置此值(1) 如果当前人在多个分支节点都具 有权限,还需要指定路径ID(2) 如果不指定,系统会自动获取所有分支,返回前台供选择4. 打开流程实例返回值init说明返回值含义init= StaticVar.I nit_SelectNode选择需要打开的节点Stri ng all nodes = xWork.getBackMsg();Stri ng nodes = all no des.split("|&quo
31、t;);选择后的结果赋值给 xWork.setOpe nTracklD(“”;return;init = StaticVarni t Success打开实例成功init = StaticVar.I nit_NoRole当前人员无权查看此流程实例init = StaticVar.I nit_ReadMsg当前人只能以只读权限打开(此时不能执行任何 操作)init = StaticVar.I nit_Locked当前实例被其他人锁定(此时不能执行任何操 作)init = StaticVar.I nit_LockFailed锁定当前实例失败,此时其他人仍然可以打开实 例进行操作,可能会出现数据冲突问
32、题,建议退 出重新打开init = StaticVar.In it_Failed其他原因失败从xWork.getBackMsg();可以获取 错误信息打开流程实例成功后,可以从xWork对象中获取相关的信息,具体参考 XMLWork 方法摘要5. 打开实例代码样例/*打开流程实例操作,从前台获取参数,获取流程实例Id等信息,具体可参考horiz on/workflow/in clude2/xmlwork.i ndex.head.jsp */1.流程实例Id,必须有此值Stri ng workid = request.getParameter("workid");2.外部权限
33、设置分类,XMLWork额外属性,可以不用设置Str ing userAuthType = request.getParameter("userAuthType");3.获得数据源,XMLWork额外属性,可以不用设置Stri ng dbIde ntifier = request.getParameter("dblde ntifier");4.设置指定路径Id ,XMLWork额外属性,如果没有分支,可以不用设置Stri ng ope nTrackID = request.getParameter("ope nTrackID ");1
34、15.当前用户信息,根据应用系统的区别,灵活获取。下面是产品中的自带的用户获取方式String userid = SessionUtil.getUserld(session); /用户 Id 必须有值Stri ng user name = Sessio nU til.getUserName(sessio n);Stri ng dept name = Sessio nU til.getDeptName(sessio n);5.初始化XMLWork属性XMLWork xWork = new XMLWork(userid,user name,dept name);/如果需要设置XMLWork额外属性
35、xWork.setIde ntifier(dblde ntifier);xWork.setUserAuthType(userAuthType);xWork. setOpe nTracklD(ope nTrackID);6.打开流程实例int init = xWork.openWorkFlow(workid,” , ” );7.打开流程实例成功后,对业务数据的处理在打开流程实例的界面中,如果提交流程操作时,同时保存业务数据,使用自定义的编写处理类方式流转,业务数据可以在对应的getAppSQL()方法中具体处理。具体可参考自行编写处理类过程。获取当前节点当前人所具有的表单信息(包含表单域和操作信
36、息),具体可参考String formId =“”;/业务的表单ID,根据业务随机修改String dataid=xWork.getlDByFormlD(formId, “ DataID ”);com.horizo n. workflow.flowe ngin e.xmldb.XMLFormxmlForms =xWork .getCurForm(dataid);for(i nt i=0;i<form .len gth;i+) Stri ng formid = formi.getID();/流程跟踪表单if(formid.equalslg noreCase("FlowTrack&
37、quot;)/如果是流程跟踪表单,可以执行链接到流程跟踪界面else if(formi.getFormtype().equals("HTML")/静态Html页面else if(formi.getFormtype().equals("JSP")/自定义的JSP页面/获取表单信息Li nkedHashMap formFieldMap = xWork.getFieldsTypeByFormlD(i);/业务数据IdString datalD = formi.getDataID()/表单IdString formid=formi.getID();/库表名称St
38、ri ng table name=formi.getTablelD();/该节点的只读字段列表Stri ng mpread=formFieldMap.get("read").toStr in g();/该节点的编辑字段列表String mpedit=formFieldMap.get("edit").toString();/该节点的必填字段列表Str ing mpmust=formFieldMap.get("check").toStri ng();/该节点的隐藏字段列表Stri ng mphide=formFieldMap.get(&q
39、uot;hidde n").toStr in g();/该节点的/该节点的其他标识(比如表单自己的按钮之类的标识)列表Stri ng mpother=formFieldMap.get("other").toStri ng();else/其他使用整体框架功能四、执行操作此步必须在执行过实例打开或者启动流程成功后方可执行(否则会出现操作失败)1. 采用系统提供的默认类处理如果流程需要的信息都在request里,可以使用系统默认提供的方法com.horizo n.workflow.flowe ngi ne.impl.e ntity.XMLApp类中提供默认处理方法,此类
40、可以自行编写。操作名称从request中的Actio nN ame自动获取 当前人id从request中的userid自动获取 当前实例id从request中的workid自动获取 其他参数参考方法二中的说明下面的XMLApp实例化过程是系统默认的处理方式,可以根据业务需要参考自行编写 处理类过程,实现自己的业务。XMLApp app = new XMLApp();/ 也可以使用 XMLAppInterface app = StaticFun.getXMLApp();来获取在workflow.xml中配置的类Lin kedHashMap backMap = app.doActi on( req
41、uest);根据返回结果进行后续处理系统默认Map中存放三个值,如果是自行编写的类可能跟下面的描述不一致,请自行 处理。下面对系统默认提供的方法进行说明。request: success和 error 标识成功和失败 iResult=0 时为 SuccessiResult :执行结果编号,需要转换为数字后进行判断backMsg :执行处理的信息xWork :本次处理中的 XMLWork对象,可以从中获取一些信息,比如选择节点时,获 取所有可能的节点。具体各种情况说明见下面描述。2. 自行编写处理类XMLWorkApp可以直接返回ture可以直接返回true自行编写类,必须继承 com.hori
42、zo n. workflow.flowe ngi ne.fu n.此类需要实现三个接口方法,getAppSQL用来获取业务数据保存的 sql和参数,如果已经自行处理, getAppDelSQL用来在撤办时删除业务数据, 如果业务数据自行处理, setFlowVarValue用来对流程变量进行赋值,如果没有可以为空在类中创建一个方法(比如 doAction),在方法中包含下面的代码 定义一个LinkedHashMap,在此map中放入流程需要的参数如下Lin kedHashM ap hashMap = new Lin kedHashMap();根据需要往hashMap中放入以下信息。/填写的意见
43、信息,存放到流程hashMap.put("Comme nts".toUpperCase(),""); 跟踪中。如果不需要记录则忽略此参数传入/如果下一节点没有设置办理hashMap.put("selectAuthor".toUpperCase(),"");人或者根据设置获取办理人为空时,且不允许跳过,可以在此传入下一节点办理人。传入格式:单个节点(或者不需要传入节点)时为user1|user2 或者node=user1|user2 多个节点时node1=user1|user2&node2=user3hash
44、Map.put( "n extNodelD".toUpperCase(),"");/ 如果下一点只有一个时,请不要赋值;当下一节点有多个节点,根据路由条件无法确定时,可以指定其中一个或者多个来 确定流程走向。传入格式:(必须从返回格式中获取传入数据)rId1 nId1|rId2 n Id2&rId3 nId3路由ID节点ID。如果从当前节点(A )到目标节点(C)之间有其他节点(B)被 跳过时格式为:路由B节点B|路由C节点C多个节点被选择时,使用&连接hashMap.put("submitflag".toUpperC
45、ase(), "0");比如获取是否需要选择节点或者选 处理速度会快一点。0=执行跳转到指定节点。 0=执行退回到指定节点操作。ID (参数 selectFlowID),则忽略 直接根提交操作时的含义,仁获取下一节点信息,返回是否选择节点,是否需要选择人员,用 于跟前台交互,0=执行提交到下一节点办理人,如果处理中遇到节点不明确或者办理人不 明确时,跟1效果一样。当需要跟前台操作人进行交互, 择办理人,是否需要操作人进行确认等,建议使用1,跳转操作时的含义:仁获取可以跳转的节点列表,退回操作时的含义:仁获取可以退回的节点列表, 启动子流程时的含义:如果系统提供了启动子流程的
46、如果只有一个子流程定义,则直接启动,否则返回;如0=根据定义判断是此参数,不提供selectFlowID参数时,如果当前人 没有启动过 子流程时忽略此参数, 据定义判断是否有多个子流程定义, 果当前人已经启动过子流程,仁获取已经启动的子流程列表,并返回, 否有多个子流程定义,如果只有一个子流程定义,则直接启动,否则返回。催办操作时的含义:1=催办次数如果已经达到上限则停止,0=催办次数已经达到上限也继续催办启动子流程时可能需要的参数,指定子流程IDhashMap.put("selectFlowlD".toUpperCase(),"");合并节点提交时需要
47、传入的参数仁可以提交下一节点,0=程序自行确定hashMap.put("setAllowUnitNext".toUpperCase(),"");操作名称hashMap.put("Actio nN ame".toUpperCase(), "Submit");/ 当前执行的操作Submit,Save,Reject,JiaQia n, HuiQia n,Replace,StopFlow,Pause,AddRead er,GetBack,ReMsg,Move,Goto,Ca ncel,Readed,SubFlow提交,暂存
48、,退回,加签,会签,替换办理人,终止,暂停,阅知,拿回,催办,转办,跳转,撤办, 已阅,启动子流程hashMap.put("worklD".toUpperCase(), workID);/当前实例 idhashMap.put("userid".toUpperCase(), userid);/当前操作者 id/业务数据跟流程关联字段hashMap.put("FORMID","");所有需要关联数据对应的表单id ,多个表单使用分号分隔hashMap.put("32 位formid_ID",&quo
49、t;");把业务数据id放入此字段中,如果为空,系统会默认生成一个,但是不会自动插入一条数据,业务数据处理时自行判断是否需要插入hashMap.put("32 位 formid_TABLENAME","");/业务数据对应的库表名称其它非必需的信息hashMap.put("flowIde ntifier".toUpperCase(),"");/ 流程数据对应的数据源标识符,如果不提供,则使用打开实例时指定的数据源。如果指定的数据源跟打开时不一致,系统会保存数据到当前指定的数据源,而打开时数据源中的数据不会
50、被改变。一般不建议设置此参数。hashMap.put("dataIde ntifier".toUpperCase(),"");/ 业务数据对应的数据源标识符,如果不提供,则使用打开时指定的数据源。如果指定的数据源跟打开时不一致,系统会保存数据到当前指定的数据源,而打开时数据源中的数据不会被改变。一般不建议设置此参数。数据源获取顺序:优先使用指定数据源,如果没有设置参数或者传入null,系统从实例XML中查找打开时指定的数据源。hashMap.put("msgSendFlag".toUpperCase(),"");
51、/如果在 workflow.xml 中配置ReChgMsgFlag节点为true时需要传入发送消息的方式。其他参数设置can celFlag =1指定撤办时系统删除流程实例,否则不删除仅做标记撤办参数设置完毕后,请执行父类方法doAction传入参数hashMapint result = doActi on(n ull,hashMap);最后根据result和Actio nN ame进行不同情况的处理,比如选择节点、或者选择人员五、流程实例具体功能操作1. 提交A. 提交流程实例参数说明除了整体参数值必有之外,下面是补充的参数说明:参数名/Key值含义要求actionn ame操作名称不能为空
52、,必须为submitn extNodeID提交到某个节点的Id要求同整体说明selectAuthor节点办理人要求同整体说明submitflag提交方式1.Submitflag=1时,从xWork.getBackMsg()获取可以提交 的节点列表2.Submitflag=0 时,提交到指定的 节点B. 提交流程实例返回值cp说明返回值含义cp=StaticVar.F_STATUS_Success提交成功:1.submitflag=1 时xWork.getNextNodeName()获取下一节点名称,用于 显示xWork.getNextAuthor("<br>")
53、获取下一节点办理 人,用于显示xWork.getSelectedNodesIds () 获取到下一节点的 路径,用于给nextNodeID赋值 xWork.getSelectedNodesAuthors ()获取下一节点 办理人,用于给selectAuthor 赋值 xWork.getSelectedNodesSeco ndAuthors()获取下 一节点的协办人用于给 secondAuthor赋值2.Submitflag=0时,系统提交并保存数据cp=StaticVar.F_STATUS_ SelectAuthor需要设置下一节点的办理人:xWork.getMa nualSelectUser
54、()获取节点设置的办理人xWork.getSelectNextUserFlag (),根据节点办理类型确疋是单选1还是多选2 xWork.isFreeSelectUser(),是否允许自由选择cp=StaticVar.F_STATUS_ SelectNode需要选择提交的路由:XMLRoutertpRouter=xWork.getSelectRouter();获取所有路由列表tpRouter.getSelectlD()获取选择的节点路径,用于赋值给nextNodeIDtpRouter.isDo ne=true当前节点是否已经走过tpRouter.isSelected=true当前节点已经被选中
55、,根据tpRouter.getResult()获取当前节点初始化结果/获取节点在列表中的位置intpos=xWork.getNextNodePosByNodelD(tpRouteri.getNodelD();仲Router.getResult()=StaticVar.F_STATUS_Success),获取当前节点已经选择的办理人,用于赋值给selectAuthorxWork.getNextSelectAuhorlD(pos)/需要选择办理人时仲Router.getResult()=StaticVar.F_STATUS_SelectAuthor), xWork.getManualSelectUser(pos
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2023年-2024年公司项目部负责人安全教育培训试题附答案【黄金题型】
- 立秋文化在新媒体的传播
- 《材料工程原理绪论》课件
- 《监督培训材料》课件
- 激光打标机打标软件与PLC通信稳定性的研究
- 部编版七年级历史下册期末复习专题课件2024版
- 云安全隐私保护机制-洞察分析
- 营养产业可持续发展-洞察分析
- 外观模式可维护性-洞察分析
- 稀有金属国际市场动态-洞察分析
- 组织协调方案及措施
- 2024-2029年中国IP授权行业市场现状分析及竞争格局与投资发展研究报告
- 北京市海淀区2023-2024学年四年级上学期期末英语试题
- 2024年湖北省汉江国有资本投资集团有限公司招聘笔试参考题库含答案解析
- 广州市九区联考2023-2024学年高一上学期期末教学质量监测数学试卷(原卷版)
- 西方国家的量刑建议制度及其比较
- 游戏方案模板
- 幼儿园大班数学上学期期末考试-试题测试
- 汽车产品定义 培训课件
- NICU患儿常规监测和护理要点
- 数字工程勘察信息平台构建
评论
0/150
提交评论