工作流引擎api说明_第1页
工作流引擎api说明_第2页
工作流引擎api说明_第3页
工作流引擎api说明_第4页
工作流引擎api说明_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

慧正工作流引擎API说明慧正工作流引擎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.采用系统提供的默认类处理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说明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.暂停流程实例代码样例3311.已阅33A.流程实例已阅参数说明33B.流程实例已阅返回值cp说明33C.流程实例已阅代码样例3312.催办34A.催办流程实例参数说明34B.催办流程实例返回值cp说明34C.催办流程实例代码样例3413.替换办理人35A.流程实例替换办理人参数说明35B.流程实例替换办理人返回值cp说明35C.流程实例替换办理人代码样例3514.暂存36A.暂存流程实例参数说明36B.暂存流程实例返回值cp说明36C.暂存代码样例3615.终止流程36A.终止流程实例参数说明36B.终止流程实例返回值cp说明37C.终止流程代码样例3716.启动子流程37A.启动子流程实例参数说明37B.启动子流程实例返回值cp说明37C.启动子流程代码样例38附录:XMLWork方法摘要40一、 总体1. 业务操作说明业务操作说明功能方法参数说明1.启动实例1.1 XMLWork xWork = new XMLWork(String userid,String username,String deptname)设置XMLWork的基本属性必要参数:Userid:用户IdUserName:用户名称DeptName:部门名称1.2 int init = xWork.openWorkFlow(”,flowID,”);根据流程定义Id,启动流程实例必要参数:flowID:流程定义Id2.打开实例2.1 XMLWork xWork = new XMLWork(String userid,String username,String deptname)设置XMLWork的基本属性必要参数:Userid:用户IdUserName:用户名称DeptName:部门名称2.2 int init = xWork.openWorkFlow(workid,”,”);根据流程实例Id,打开流程实例必要参数:workid:流程实例Id2. 流程参数说明具体可参考/horizon/workflow/include2/xmlwork.index.hidden.jsp流程参数总体说明参数名含义格式要求必须赋值flowIdentifier流程数据源标识configuration.xml或者workflow.xml配置,具体参考启动流程初始化XMLWork额外属性说明dataIdentifier业务数据源标识UserID操作人用户IdUserName操作人用户名称DeptName操作人部门名称WorkID流程实例idNodeID流程实例当前节点IdNodeName流程实例当前节点名称TrackID路径Id/如果当前人在多个分支节点都具有权限,还需要指定路径ID/如果不指定,系统会自动获取所有分支,返回前台供选择actionFlag操作权限设置1:允许操作selectAuthor办理人员的Id单个节点(或者不需要传入节点)时为user1|user2或者node=user1|user2多个节点时node1=user1|user2&node2=user3流程节点的办理人无值时为必填项selectAuthorCN办理人员的中文名称secondAuthor选择的协办人员格式同selectAuthornextNodeID下一个节点Id1.如果提交到下一点,只有一个节点时,请不要赋值,置为空;2.当下一节点有多个节点,根据路由条件无法确定时,可以指定其中一个或者多个来确定流程走向。传入格式:(必须从返回格式中获取传入数据)rId1nId1|rId2nId2&rId3nId3路由ID节点ID。3. 如果从当前节点(A)到目标节点(C)之间有其他节点(B)被跳过时格式为:路由B节点B|路由C节点C 4. 多个节点被选择时,使用&连接msgSendFlag发送消息方式ToDo|Mail|Msg|Note|RTF|Other|如果在workflow.xml中配置ReChgMsgFlag节点为true时需要传入发送消息的方式ActionName操作类型Save等,具体参考总体中的流程执行操作allowUnitNext合并节点,是否允许执行提交操作1:允许,其他不允许合并节点时为必填项cancelFlag撤销时的标志,默认删除1=删除,2=回收站只有执行撤销操作时为必填项urlapp待办链接地址如果为空则默认使用流程框架页面打开Comments意见内容selectFlag当前节点如果替换处理人和转办时,是否允许选择多人1:允许,其他不允许执行替换和转办时为必填项submitflag操作提交状态(1)提交操作时的含义:1=获取下一节点信息,返回是否选择节点,是否需要选择人员,用于跟前台交互,0=执行提交到下一节点办理人,如果处理中遇到节点不明确或者办理人不明确时,跟1效果一样。当需要跟前台操作人进行交互,比如获取是否需要选择节点或者选择办理人,是否需要操作人进行确认等,建议使用1,处理速度会快一点。(2)跳转操作时的含义:1=获取可以跳转的节点列表,0=执行跳转到指定节点。(3)退回操作时的含义:1=获取可以退回的节点列表,0=执行退回到指定节点操作。(4)启动子流程时的含义:如果系统提供了启动子流程的ID(参数selectFlowID),则忽略此参数,不提供selectFlowID参数时,如果当前人没有启动过子流程时忽略此参数,直接根据定义判断是否有多个子流程定义,如果只有一个子流程定义,则直接启动,否则返回;如果当前人已经启动过子流程,1=获取已经启动的子流程列表,并返回,0=根据定义判断是否有多个子流程定义,如果只有一个子流程定义,则直接启动,否则返回。(5)催办操作时的含义:1=催办次数如果已经达到上限则停止,0=催办次数已经达到上限也继续催办curNodeAuthorSendFlag当前节点的作者消息发送方式,用于执行会签,加签,替换,转办格式同msgSendFlagcurNodeReaderSendFlag当前节点的读者消息发送方式,用于执行阅知操作时显示在前台供操作者选择selectFlowID启动子流程的Id启动子流程时为必填项FormAction流程提交操作的URLtmpAuthor选择人员时,临时获取选择范围格式同SelectAuthorpreFlag如果有选择节点页面,在确认页面上出现上一步按钮1:显示,其他不出现ActionClass执行业务的action名称默认com.horizon.workflow.flowengine.impl.entity.XMLApptmpSaveInfo临时信息记录(目前用于存储当前人填写的意见信息)3. 流程执行操作说明流程执行操作1.系统默认处理过程(具体点击上面链接)引入的包:com.horizon.workflow.flowengine.impl.entity.XMLAppcom.horizon.workflow.flowengine.pub.XMLWork从request中获取的相关参数参考流程参数总体说明,以及要执行下面具体操作的说明(1)传入request对象,调用doActionXMLApp app = new XMLApp();LinkedHashMap backMap = app.doAction(request);/返回结果int cp = Integer.parseInt(String)backMap.get(iResult);/获取提交后的流程信息XMLWork xWork = (XMLWork)backMap.get(xWork);(2)把参数放入的LinkedHashMap,调用doActionLinkedHashMap dataHashMap = new LinkedHashMap();XMLApp app = new XMLApp();LinkedHashMap backMap = app.doAction(dataHashMap);/返回结果int cp = Integer.parseInt(String)backMap.get(iResult);/获取提交后的流程信息XMLWork xWork = (XMLWork)backMap.get(xWork);根据操作的类型,组织dataHashMap的数据,具体参考流程参数总体说明,以及要执行下面具体操作的说明2.自行编写处理过程(具体点击上面链接)LinkedHashMap hashMap = new LinkedHashMap();2.在自定义的类中执行int result = doAction(null,hashMap);组织流程操作需要的参数具体根据流程参数总体说明以及对应的操作设置相关参数,放入到hashMap中。4. 流程实例流转操作操作名称英文标识说明提交Submit提交到下一节点退回reject退回到某个节点拿回getback拿回已提交的流程阅知addreader发送待阅撤销cancel撤销流程跳转goto跳转到某个节点会签huiqian发送给相关人员会签加签jiaqian发送给相关人员加签转办move转交给其他人办理暂停pause暂停流程已阅readed阅读待阅的信息催办remsg催办流程实例替换办理人replace替换流程的办理人暂存save暂存流程实例终止流程stopflow终止流程实例启动子流程subflow启动子流程二、 启动实例1. 启动流程实例整体说明引入类:com.horizon.workflow.flowengine.pub.XMLWork执行方法初始化XMLWork,设置相关属性1. XMLWork xWork = new XMLWork(userid,username,deptname);启动具体的流程实例(返回值说明见下面)2.int init = xWork.openWorkFlow(”,flowID,”);2. 启动流程实例参数说明参数名含义要求userid启动实例的操作人的用户Id不能为空username 启动实例的操作人的用户名称可以为空deptname启动实例的操作人的部门名称可以为空flowID流程定义Id不能为空3. 启动流程初始化XMLWork额外属性说明初始化XMLWork,设置相关属性(根据业务,如有需要,可以设置以下内容)xWork.setFlowIdentifier()设置流程数据所使用的数据源标识符。 configuration.xml中设置的默认数据源和workflow.xml中的设置不一致时,设置为空和设置成null(或者不设置)是有区别的,设置为空时,系统使用configuration.xml中设置的默认数据源,设置成null(或者不设置)时,使用的是workflow.xml中的设置。数据源无效时,系统默认使用configuration.xml中设置的默认数据源。如果flowIdentifier跟dataIdentifier一样可以直接使用xWork.setIdentifier(“”)对两个变量同时赋值xWork .setDataIdentifier()设置业务数据所使用的数据源标识符。xWork .setUserAuthType()如果需要设置外部办理人获取方式。4. 启动流程实例返回值init说明返回值含义init= StaticVar.Init_Success初始化成功。init = StaticVar.Init_NoRole当前人员无权启动流程init = StaticVar.Init_ReadMsg锁定当前实例失败,启动流程时不影响,可以等同成功init = StaticVar.Init_Failed其他原因失败从xWork.getBackMsg();可以获取错误信息启动流程实例成功后,可以从xWork对象中获取相关的信息,具体参考XMLWork方法摘要5. 启动实例代码样例/*启动流程实例操作,从前台获取参数,获取流程定义Id等信息,具体可参考horizon/workflow/include2/xmlwork.index.head.jsp */1.流程定义Id,必须有此值String flowID = request.getParameter(flowid);/2.外部权限设置分类,XMLWork额外属性,可以不用设置String userAuthType = request.getParameter(userAuthType);/3.获得数据源,XMLWork额外属性,可以不用设置String dbIdentifier = request.getParameter(dbIdentifier);/4.当前用户信息,根据应用系统的区别,灵活获取。下面是产品中的自带的用户获取方式String userid = SessionUtil.getUserId(session); /用户Id必须有值String username = SessionUtil.getUserName(session);String deptname = SessionUtil.getDeptName(session);/5.初始化XMLWork属性XMLWork xWork = new XMLWork(userid,username,deptname);/如果需要设置XMLWork额外属性xWork.setIdentifier(dbIdentifier);xWork.setUserAuthType(userAuthType);/6.启动流程实例,第一个参数是流程实例Id,第二个参数是流程定义Id,第三个参数是业务数据Id,如果三个都有值,获取流程数据的优先顺序:workID flowID dataIDint init = xWork.openWorkFlow(“”,flowID,”);/7.启动流程实例成功后,对业务数据的处理/在启动流程实例的界面中,如果提交流程操作时,同时保存业务数据,使用自定义的编写处理类方式流转,业务数据可以在对应的getAppSQL()方法中具体处理。具体可参考自行编写处理类过程。/获取当前节点当前人所具有的表单信息(包含表单域和操作信息),具体可参考horizonworkflowinclude2xmlwork.index.form.jspString formId = “”;/业务的表单ID,根据业务随机修改String dataid=xWork.getIDByFormID(formId, “DataID”);com.horizon.workflow.flowengine.xmldb.XMLForm xmlForms = xWork .getCurForm(dataid);for(int i=0;iform.length;i+) String formid = formi.getID();/流程跟踪表单if(formid.equalsIgnoreCase(FlowTrack) /如果是流程跟踪表单,可以执行链接到流程跟踪界面else if(formi.getFormtype().equals(HTML) /静态Html页面else if(formi.getFormtype().equals(JSP) /自定义的JSP页面/获取表单信息LinkedHashMap formFieldMap = xWork.getFieldsTypeByFormID(i);/业务数据IdString dataID = formi.getDataID()/表单IdString formid=formi.getID();/库表名称String tablename=formi.getTableID();/该节点的只读字段列表String mpread=formFieldMap.get(read).toString();/该节点的编辑字段列表String mpedit=formFieldMap.get(edit).toString();/该节点的必填字段列表String mpmust=formFieldMap.get(check).toString();/该节点的隐藏字段列表String mphide=formFieldMap.get(hidden).toString();/该节点的其他标识(比如表单自己的按钮之类的标识)列表String mpother=formFieldMap.get(other).toString();else /其他使用整体框架功能三、 打开实例1. 打开流程实例整体说明引入类:com.horizon.workflow.flowengine.pub.XMLWork执行方法初始化XMLWork,设置相关属性1. XMLWork xWork = new XMLWork(userid,username,deptname);打开具体的流程实例(返回值说明见下面)2.int init = xWork.openWorkFlow(workid,”,”);2. 打开流程实例参数说明参数名含义要求userid启动实例的操作人的用户Id不能为空username启动实例的操作人的用户名称可以为空deptname启动实例的操作人的部门名称可以为空workid流程实例Id不能为空3. 打开流程初始化XMLWork额外属性说明初始化XMLWork,设置相关属性(根据业务,如有需要,可以设置以下内容)xWork.setFlowIdentifier()设置流程数据所使用的数据源标识符。 (1) configuration.xml中设置的默认数据源和workflow.xml中的设置不一致时,设置为空和设置成null(或者不设置)是有区别的,设置为空时,系统使用configuration.xml中设置的默认数据源,设置成null(或者不设置)时,使用的是workflow.xml中的设置。数据源无效时,系统默认使用configuration.xml中设置的默认数据源。(2) 如果flowIdentifier跟dataIdentifier一样可以直接使用xWork.setIdentifier(“”)对两个变量同时赋值xWork.setDataIdentifier()设置业务数据所使用的数据源标识符。xWork.setOpenTrackID()设置指定路径Id打开流程实例时可以设置此值(1)如果当前人在多个分支节点都具有权限,还需要指定路径ID(2)如果不指定,系统会自动获取所有分支,返回前台供选择4. 打开流程实例返回值init说明返回值含义init= StaticVar.Init_SelectNode选择需要打开的节点String allnodes = xWork.getBackMsg();String nodes = allnodes.split(|);选择后的结果赋值给xWork.setOpenTrackID(“”);return;init = StaticVar.Init_Success打开实例成功init = StaticVar.Init_NoRole当前人员无权查看此流程实例init = StaticVar.Init_ReadMsg当前人只能以只读权限打开(此时不能执行任何操作)init = StaticVar.Init_Locked当前实例被其他人锁定(此时不能执行任何操作)init = StaticVar.Init_LockFailed锁定当前实例失败,此时其他人仍然可以打开实例进行操作,可能会出现数据冲突问题,建议退出重新打开init = StaticVar.Init_Failed其他原因失败从xWork.getBackMsg();可以获取错误信息打开流程实例成功后,可以从xWork对象中获取相关的信息,具体参考XMLWork方法摘要5. 打开实例代码样例/*打开流程实例操作,从前台获取参数,获取流程实例Id等信息,具体可参考horizon/workflow/include2/xmlwork.index.head.jsp */1.流程实例Id,必须有此值String workid = request.getParameter(workid);/2.外部权限设置分类,XMLWork额外属性,可以不用设置String userAuthType = request.getParameter(userAuthType);/3.获得数据源,XMLWork额外属性,可以不用设置String dbIdentifier = request.getParameter(dbIdentifier);/4. 设置指定路径Id,XMLWork额外属性,如果没有分支,可以不用设置String openTrackID = request.getParameter(openTrackID );/5.当前用户信息,根据应用系统的区别,灵活获取。下面是产品中的自带的用户获取方式String userid = SessionUtil.getUserId(session); /用户Id必须有值String username = SessionUtil.getUserName(session);String deptname = SessionUtil.getDeptName(session);/5.初始化XMLWork属性XMLWork xWork = new XMLWork(userid,username,deptname);/如果需要设置XMLWork额外属性xWork.setIdentifier(dbIdentifier);xWork.setUserAuthType(userAuthType);xWork. setOpenTrackID(openTrackID);/6.打开流程实例int init = xWork.openWorkFlow(workid,”,”);/7.打开流程实例成功后,对业务数据的处理/在打开流程实例的界面中,如果提交流程操作时,同时保存业务数据,使用自定义的编写处理类方式流转,业务数据可以在对应的getAppSQL()方法中具体处理。具体可参考自行编写处理类过程。/获取当前节点当前人所具有的表单信息(包含表单域和操作信息),具体可参考horizonworkflowinclude2xmlwork.index.form.jspString formId = “”;/业务的表单ID,根据业务随机修改String dataid=xWork.getIDByFormID(formId, “DataID”);com.horizon.workflow.flowengine.xmldb.XMLForm xmlForms = xWork .getCurForm(dataid);for(int i=0;iform.length;i+) String formid = formi.getID();/流程跟踪表单if(formid.equalsIgnoreCase(FlowTrack) /如果是流程跟踪表单,可以执行链接到流程跟踪界面else if(formi.getFormtype().equals(HTML) /静态Html页面else if(formi.getFormtype().equals(JSP) /自定义的JSP页面 /获取表单信息LinkedHashMap formFieldMap = xWork.getFieldsTypeByFormID(i);/业务数据IdString dataID = formi.getDataID()/表单IdString formid=formi.getID();/库表名称String tablename=formi.getTableID();/该节点的只读字段列表String mpread=formFieldMap.get(read).toString();/该节点的编辑字段列表String mpedit=formFieldMap.get(edit).toString();/该节点的必填字段列表String mpmust=formFieldMap.get(check).toString();/该节点的隐藏字段列表String mphide=formFieldMap.get(hidden).toString();/该节点的/该节点的其他标识(比如表单自己的按钮之类的标识)列表String mpother=formFieldMap.get(other).toString();else /其他使用整体框架功能四、 执行操作此步必须在执行过实例打开或者启动流程成功后方可执行(否则会出现操作失败)1. 采用系统提供的默认类处理如果流程需要的信息都在request里,可以使用系统默认提供的方法com.horizon.workflow.flowengine.impl.entity.XMLApp类中提供默认处理方法,此类可以自行编写。操作名称从request中的ActionName自动获取当前人id从request中的userid自动获取当前实例id从request中的workid自动获取其他参数参考方法二中的说明下面的XMLApp实例化过程是系统默认的处理方式,可以根据业务需要参考自行编写处理类过程,实现自己的业务。XMLApp app = new XMLApp(); /也可以使用XMLAppInterface app = StaticFun.getXMLApp();来获取在workflow.xml中配置的类LinkedHashMap backMap = app.doAction(request);根据返回结果进行后续处理系统默认Map中存放三个值,如果是自行编写的类可能跟下面的描述不一致,请自行处理。下面对系统默认提供的方法进行说明。request:success和error标识成功和失败/iResult=0时为SuccessiResult:执行结果编号,需要转换为数字后进行判断backMsg:执行处理的信息xWork:本次处理中的XMLWork对象,可以从中获取一些信息,比如选择节点时,获取所有可能的节点。具体各种情况说明见下面描述。2. 自行编写处理类自行编写类,必须继承com.horizon.workflow.flowengine.fun.XMLWorkApp此类需要实现三个接口方法,getAppSQL用来获取业务数据保存的sql和参数,如果已经自行处理,可以直接返回turegetAppDelSQL用来在撤办时删除业务数据,如果业务数据自行处理,可以直接返回truesetFlowVarValue用来对流程变量进行赋值,如果没有可以为空在类中创建一个方法(比如doAction),在方法中包含下面的代码定义一个LinkedHashMap,在此map中放入流程需要的参数如下LinkedHashMap hashMap = new LinkedHashMap(); /根据需要往hashMap中放入以下信息。 hashMap.put(Comments.toUpperCase(),); /填写的意见信息,存放到流程跟踪中。如果不需要记录则忽略此参数传入hashMap.put(selectAuthor.toUpperCase(),);/如果下一节点没有设置办理人或者根据设置获取办理人为空时,且不允许跳过,可以在此传入下一节点办理人。传入格式:单个节点(或者不需要传入节点)时为user1|user2或者node=user1|user2多个节点时node1=user1|user2&node2=user3hashMap.put(nextNodeID.toUpperCase(),); /如果下一点只有一个时,请不要赋值;当下一节点有多个节点,根据路由条件无法确定时,可以指定其中一个或者多个来确定流程走向。传入格式:(必须从返回格式中获取传入数据)rId1nId1|rId2nId2&rId3nId3路由ID节点ID。如果从当前节点(A)到目标节点(C)之间有其他节点(B)被跳过时格式为:路由B节点B|路由C节点C 多个节点被选择时,使用&连接hashMap.put(submitflag.toUpperCase(), 0); 提交操作时的含义,1=获取下一节点信息,返回是否选择节点,是否需要选择人员,用于跟前台交互,0=执行提交到下一节点办理人,如果处理中遇到节点不明确或者办理人不明确时,跟1效果一样。当需要跟前台操作人进行交互,比如获取是否需要选择节点或者选择办理人,是否需要操作人进行确认等,建议使用1,处理速度会快一点。跳转操作时的含义:1=获取可以跳转的节点列表,0=执行跳转到指定节点。退回操作时的含义:1=获取可以退回的节点列表,0=执行退回到指定节点操作。启动子流程时的含义:如果系统提供了启动子流程的ID(参数selectFlowID),则忽略此参数,不提供selectFlowID参数时,如果当前人没有启动过子流程时忽略此参数,直接根据定义判断是否有多个子流程定义,如果只有一个子流程定义,则直接启动,否则返回;如果当前人已经启动过子流程,1=获取已经启动的子流程列表,并返回,0=根据定义判断是否有多个子流程定义,如果只有一个子流程定义,则直接启动,否则返回。催办操作时的含义:1=催办次数如果已经达到上限则停止,0=催办次数已经达到上限也继续催办启动子流程时可能需要的参数, 指定子流程IDhashMap.put(selectFlowID.toUpperCase(), );/合并节点提交时需要传入的参数1=可以提交下一节点,0=程序自行确定hashMap.put(setAllowUnitNext.toUpperCase(), );/操作名称hashMap.put(ActionName.toUpperCase(), Submit);/当前执行的操作 Submit,Save,Reject,JiaQian,HuiQian,Replace,StopFlow,Pause,AddReader,GetBack,ReMsg,Move,Goto,Cancel,Readed,SubFlow 提交,暂存,退回,加签,会签,替换办理人,终止,暂停,阅知,拿回,催办,转办,跳转,撤办,已阅,启动子流程 hashMap.put(workID.toUpperCase(), workID);/当前实例id hashMap.put(userid.toUpperCase(), userid);/当前操作者id /业务数据跟流程关联字段 hashMap.put(FORMID,);所有需要关联数据对应的表单id,多个表单使用分号分隔 hashMap.put(32位formid_ID,);/把业务数据id放入此字段中,如果为空,系统会默认生成一个,但是不会自动插入一条数据,业务数据处理时自行判断是否需要插入 hashMap.put(32位formid_TABLENAME,);/业务数据对应的库表名称 /其它非必需的信息 hashMap.put(flowIdentifier.toUpperCase(),);/流程数据对应的数据源标识符,如果不提供,则使用打开实例时指定的数据源。如果指定的数据源跟打开时不一致,系统会保存数据到当前指定的数据源,而打开时数据源中的数据不会被改变。一般不建议设置此参数。hashMap.put(dataIdentifier.toUpperCase(),);/业务数据对应的数据源标识符,如果不提供,则使用打开时指定的数据源。如果指定的数据源跟打开时不一致,系统会保存数据到当前指定的数据源,而打开时数据源中的数据不会被改变。一般不建议设置此参数。数据源获取顺序:优先使用指定数据源,如果没有设置参数或者传入null,系统从实例XML中查找打开时指定的数据源。 hashMap.put(msgSendFlag.toUpperCase(), );/如果在workflow.xml中配置ReChgMsgFlag节点为true时需要传入发送消息的方式。/其他参数设置cancelFlag =1 指定撤办时系统删除流程实例,否则不删除仅做标记撤办参数设置完毕后,请执行父类方法doAction传入参数hashMapint result = doAction(null,hashMap);最后根据result和ActionName进行不同情况的处理,比如选择节点、或者选择人员五、 流程实例具体功能操作1. 提交A. 提交流程实例参数说明除了整体参数值必有之外,下面是补充的参数说明:参数名/Key值含义要求actionname操作名称不能为空,必须为submitnextNodeID提交到某个节点的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()获取下一节点办理人,用于显示xWork.getSelectedNodesIds ()获取到下一节点的路径,用于给nextNodeID赋值xWork.getSelectedNodesAuthors ()获取下一节点办理人,用于给selectAuthor赋值xWork.getSelectedNodesSecondAuthors()获取下一节点的协办人用于给secondAuthor赋值2.Submitflag=0时,系统提交并保存数据cp=StaticVar.F_STATUS_ SelectAuthor需要设置下一节点的办理人:xWork.getManualSelectUser()获取节点设置的办理人xWork.getSelectNextUserFlag (),根据节点办理类型确定是单选1还是多选2xWork.isFreeSelectUser(),是否允许自由选择cp=StaticVar.F_STATUS_ SelectNode需要选择提交的路由:XMLRouter tpRouter = xWork.getSelectRouter();获取所有路由列表tpRouter.getSelectID()获取选择的节点路径,用于赋值给nextNodeIDtpRouter.isDone=true当前节点是否已经走过tpRouter.isSelected=true当前节点已经被选中,根据tpRouter.getResult()获取当前节点初始化结果/获取节点在列表中的位置int pos = xWork.getNextNodePosByNodeID(tpRouteri.getNodeID();(tpRouter.getResult()=StaticVar.F_STATUS_Success),获取当前节点已经选择的办理人, 用于赋值给selectAuthorxWork.getNextSelectAuhorID(pos)/需要选择办理人时(tpRouter.getResult()=StaticVar.F_STATUS_SelectAuthor), xWork.getManualSelectUser(pos)获取节点设置的办理人xWork.getSelectUserFlag(pos),根据节点办理类型确定是单选1还是多选2xWork.isFreeSelectUser(pos),是否允许自由选择其他状态参考:xmlwork.submit.selectnode.jspcp=StaticVar.F_STATUS_OtherError不确定失败原因,从xWork.get BackMsg()获取具体信息cp=StaticVar.F_STATUS_ NoFound没有找

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论