流程管理工作流引擎API说明DOC 50页.docx
- 文档编号:4104055
- 上传时间:2022-11-27
- 格式:DOCX
- 页数:58
- 大小:239KB
流程管理工作流引擎API说明DOC 50页.docx
《流程管理工作流引擎API说明DOC 50页.docx》由会员分享,可在线阅读,更多相关《流程管理工作流引擎API说明DOC 50页.docx(58页珍藏版)》请在冰豆网上搜索。
流程管理工作流引擎API说明DOC50页
【流程管理】工作流引擎API说明(DOC50页)
部门:
xxx
时间:
xxx
整理范文,仅供参考,可下载自行编辑
慧正工作流引擎API说明
V6.0(试用版)
北京慧正通软科技有限公司
2012年5月
一、总体
1.业务操作说明
业务操作说明
功能
方法
参数说明
1.启动实例
1.1XMLWorkxWork=newXMLWork(Stringuserid,Stringusername,Stringdeptname)
设置XMLWork的基本属性
必要参数:
Userid:
用户Id
UserName:
用户名称
DeptName:
部门名称
1.2intinit=xWork.openWorkFlow(””,flowID,””);
根据流程定义Id,启动流程实例
必要参数:
flowID:
流程定义Id
2.打开实例
2.1XMLWorkxWork=newXMLWork(Stringuserid,Stringusername,Stringdeptname)
设置XMLWork的基本属性
必要参数:
Userid:
用户Id
UserName:
用户名称
DeptName:
部门名称
2.2intinit=xWork.openWorkFlow(workid,””,””);
根据流程实例Id,打开流程实例
必要参数:
workid:
流程实例Id
2.流程参数说明
具体可参考/horizon/workflow/include2/xmlwork.index.hidden.jsp
流程参数总体说明
参数名
含义
格式要求
必须赋值
flowIdentifier
流程数据源标识
configuration.xml或者workflow.xml配置,具体参考启动流程初始化XMLWork额外属性说明
dataIdentifier
业务数据源标识
UserID
操作人用户Id
■
UserName
操作人用户名称
DeptName
操作人部门名称
WorkID
流程实例id
■
NodeID
流程实例当前节点Id
■
NodeName
流程实例当前节点名称
TrackID
路径Id
//如果当前人在多个分支节点都具有权限,还需要指定路径ID
//如果不指定,系统会自动获取所有分支,返回前台供选择
actionFlag
操作权限设置
1:
允许操作
selectAuthor
办理人员的Id
单个节点(或者不需要传入节点)时为[user1|user2或者node=user1|user2]
多个节点时[node1=user1|user2&node2=user3]
流程节点的办理人无值时为必填项
selectAuthorCN
办理人员的中文名称
secondAuthor
选择的协办人员
格式同selectAuthor
nextNodeID
下一个节点Id
1.如果提交到下一点,只有一个节点时,请不要赋值,置为空;
2.当下一节点有多个节点,根据路由条件无法确定时,可以指定其中一个或者多个来确定流程走向。
传入格式:
(必须从返回格式中获取传入数据)
rId1~nId1|rId2~nId2&rId3~nId3
路由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
当前节点的作者消息发送方式,用于执行会签,加签,替换,转办
格式同msgSendFlag
curNodeReaderSendFlag
当前节点的读者消息发送方式,用于执行阅知操作时显示在前台供操作者选择
selectFlowID
启动子流程的Id
启动子流程时为必填项
FormAction
流程提交操作的URL
■
tmpAuthor
选择人员时,临时获取选择范围
格式同SelectAuthor
preFlag
如果有选择节点页面,在确认页面上出现上一步按钮
1:
显示,其他不出现
ActionClass
执行业务的action名称
默认com.horizon.workflow
.flowengine.impl.entity.XMLApp
tmpSaveInfo
临时信息记录(目前用于存储当前人填写的意见信息)
3.流程执行操作说明
流程执行操作
1.
系统默认处理过程
(具体点击上面链接)
引入的包:
com.horizon.workflow.flowengine.impl.entity.XMLApp
com.horizon.workflow.flowengine.pub.XMLWork
从request中获取的相关参数参考流程参数总体说明,以及要执行下面具体操作的说明
(1)传入request对象,调用doAction
XMLAppapp=newXMLApp();
LinkedHashMapbackMap=app.doAction(request);
//返回结果
intcp=Integer.parseInt((String)backMap.get("iResult"));
//获取提交后的流程信息
XMLWorkxWork=(XMLWork)backMap.get("xWork");
(2)把参数放入的LinkedHashMap,调用doAction
LinkedHashMapdataHashMap=newLinkedHashMap();
XMLAppapp=newXMLApp();
LinkedHashMapbackMap=app.doAction(dataHashMap);
//返回结果
intcp=Integer.parseInt((String)backMap.get("iResult"));
//获取提交后的流程信息
XMLWorkxWork=(XMLWork)backMap.get("xWork");
根据操作的类型,组织dataHashMap的数据,具体参考流程参数总体说明,以及要执行下面具体操作的说明
2.
自行编写处理过程
(具体点击上面链接)
LinkedHashMaphashMap=newLinkedHashMap();
2.在自定义的类中执行
intresult=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.XMLWorkxWork=newXMLWork(userid,username,deptname);
启动具体的流程实例
(返回值说明见下面)
2.intinit=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,必须有此值
StringflowID=request.getParameter("flowid");
//2.外部权限设置分类,XMLWork额外属性,可以不用设置
StringuserAuthType=request.getParameter("userAuthType");
//3.获得数据源,XMLWork额外属性,可以不用设置
StringdbIdentifier=request.getParameter("dbIdentifier");
//4.当前用户信息,根据应用系统的区别,灵活获取。
下面是产品中的自带的用户获取方式
Stringuserid=SessionUtil.getUserId(session);//用户Id必须有值
Stringusername=SessionUtil.getUserName(session);
Stringdeptname=SessionUtil.getDeptName(session);
//5.初始化XMLWork属性
XMLWorkxWork=newXMLWork(userid,username,deptname);
//如果需要设置XMLWork额外属性
xWork.setIdentifier(dbIdentifier);
xWork.setUserAuthType(userAuthType);
//6.启动流程实例,第一个参数是流程实例Id,第二个参数是流程定义Id,第三个参数是业务数据Id,如果三个都有值,获取流程数据的优先顺序:
workID>flowID>dataID
intinit=xWork.openWorkFlow(“”,flowID,””);
//7.启动流程实例成功后,对业务数据的处理
//在启动流程实例的界面中,如果提交流程操作时,同时保存业务数据,使用自定义的编写处理类方式流转,业务数据可以在对应的getAppSQL()方法中具体处理。
具体可参考自行编写处理类过程。
//获取当前节点当前人所具有的表单信息(包含表单域和操作信息),具体可参考horizon\workflow\include2\xmlwork.index.form.jsp
StringformId=“”;//业务的表单ID,根据业务随机修改
Stringdataid=xWork.getIDByFormID(formId,“DataID”);
com.horizon.workflow.flowengine.xmldb.XMLForm[]xmlForms=xWork.getCurForm(dataid);
for(inti=0;i
{
Stringformid=form[i].getID();
//流程跟踪表单
if(formid.equalsIgnoreCase("FlowTrack")){
//如果是流程跟踪表单,可以执行链接到流程跟踪界面
}elseif(form[i].getFormtype().equals("HTML")){
//静态Html页面
}elseif(form[i].getFormtype().equals("JSP")){
//自定义的JSP页面
//获取表单信息
LinkedHashMapformFieldMap=xWork.getFieldsTypeByFormID(i);
//业务数据Id
StringdataID=form[i].getDataID()
//表单Id
Stringformid=form[i].getID();
//库表名称
Stringtablename=form[i].getTableID();
//该节点的只读字段列表
Stringmpread=formFieldMap.get("read").toString();
//该节点的编辑字段列表
Stringmpedit=formFieldMap.get("edit").toString();
//该节点的必填字段列表
Stringmpmust=formFieldMap.get("check").toString();
//该节点的隐藏字段列表
Stringmphide=formFieldMap.get("hidden").toString();
//该节点的其他标识(比如表单自己的按钮之类的标识)列表
Stringmpother=formFieldMap.get("other").toString();
}else{
//其他使用整体框架功能
}
}
三、打开实例
1.打开流程实例整体说明
引入类:
com.horizon.workflow.flowengine.pub.XMLWork
执行方法
初始化XMLWork,设置相关属性
1.XMLWorkxWork=newXMLWork(userid,username,deptname);
打开具体的流程实例
(返回值说明见下面)
2.intinit=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
选择需要打开的节点
Stringallnodes=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,必须有此值
Stringworkid=request.getParameter("workid");
//2.外部权限设置分类,XMLWork额外属性,可以不用设置
StringuserAuthType=request.getParameter("userAuthType");
//3.获得数据源,XMLWork额外属性,可以不用设置
StringdbIdentifier=request.getParameter("dbIdentifier");
//4.设置指定路径Id,XMLWork额外属性,如果没有分支,可以不用设置
StringopenTrackID=request.getParameter("openTrackID");
//5.当前用户信息,根据应用系统的区别,灵活获取。
下面是产品中的自带的用户获取方式
Stringuserid=SessionUtil.getUserId(session);//用户Id必须有值
Stringusername=SessionUtil.getUserName(session);
Stringdeptname=SessionUtil.getDeptName(session);
//5.初始化XMLWork属性
XMLWorkxWork=newXMLWork(userid,username,deptname);
//如果需要设置XMLWork额外属性
xWork.setIdentifier(dbIdentifier);
xWork.setUserAuthType(userAuthType);
xWork.setOpenTrackID(openTrackID);
//6.打开流程实例
intinit=xWork.openWorkFlow(workid,””,””);
//7.打开流程实例成功后,对业务数据的处理
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 流程管理工作流引擎API说明DOC 50页 流程 管理 工作流 引擎 API 说明 DOC 50