流程引擎API调用说明.docx

上传人:b****4 文档编号:4050383 上传时间:2022-11-27 格式:DOCX 页数:60 大小:38.32KB
下载 相关 举报
流程引擎API调用说明.docx_第1页
第1页 / 共60页
流程引擎API调用说明.docx_第2页
第2页 / 共60页
流程引擎API调用说明.docx_第3页
第3页 / 共60页
流程引擎API调用说明.docx_第4页
第4页 / 共60页
流程引擎API调用说明.docx_第5页
第5页 / 共60页
点击查看更多>>
下载资源
资源描述

流程引擎API调用说明.docx

《流程引擎API调用说明.docx》由会员分享,可在线阅读,更多相关《流程引擎API调用说明.docx(60页珍藏版)》请在冰豆网上搜索。

流程引擎API调用说明.docx

流程引擎API调用说明

慧正工作流引擎API说明

V6.0(试用版)

 

北京慧正通软科技有限公司

2012年5月

目录

一、总体4

1.业务操作说明4

2.流程参数说明4

3.流程执行操作说明8

4.流程实例流转操作9

二、启动实例9

1.启动流程实例整体说明9

2.启动流程实例参数说明10

3.启动流程初始化XMLWork额外属性说明10

4.启动流程实例返回值[init]说明10

5.启动实例代码样例11

三、打开实例12

1.打开流程实例整体说明12

2.打开流程实例参数说明13

3.打开流程初始化XMLWork额外属性说明13

4.打开流程实例返回值[init]说明14

5.打开实例代码样例14

四、执行操作16

1.采用系统提供的默认类处理16

2.自行编写处理类17

五、流程实例具体功能操作19

1.提交19

A.提交流程实例参数说明19

B.提交流程实例返回值[cp]说明19

C.提交流程实例代码样例20

2.退回23

A.退回流程实例参数说明23

B.退回流程实例返回值[cp]说明23

C.退回代码样例24

3.拿回24

A.拿回流程实例参数说明24

B.拿回流程实例返回值[cp]说明25

C.拿回代码样例25

4.阅知25

A.流程实例阅知参数说明25

B.流程实例阅知返回值[cp]说明26

C.流程实例阅知代码样例26

5.撤销26

A.撤销流程实例参数说明26

B.撤销流程实例返回值[cp]说明26

C.撤销流程实例代码样例27

6.跳转27

A.流程实例跳转参数说明27

B.流程实例跳转返回值[cp]说明27

C.流程实例跳转代码样例28

7.会签29

A.流程实例会签参数说明29

B.流程实例会签返回值[cp]说明29

C.流程实例会签代码样例30

8.加签30

A.流程实例加签参数说明30

B.流程实例加签返回值[cp]说明30

C.流程实例加签代码样例31

9.转办31

A.转办流程实例参数说明31

B.转办流程实例返回值[cp]说明31

C.转办流程实例代码样例32

10.暂停32

A.暂停流程实例参数说明32

B.暂停流程实例返回值[cp]说明32

C.暂停流程实例代码样例33

11.已阅33

A.流程实例已阅参数说明33

B.流程实例已阅返回值[cp]说明33

C.流程实例已阅代码样例33

12.催办34

A.催办流程实例参数说明34

B.催办流程实例返回值[cp]说明34

C.催办流程实例代码样例34

13.替换办理人35

A.流程实例替换办理人参数说明35

B.流程实例替换办理人返回值[cp]说明35

C.流程实例替换办理人代码样例35

14.暂存36

A.暂存流程实例参数说明36

B.暂存流程实例返回值[cp]说明36

C.暂存代码样例36

15.终止流程36

A.终止流程实例参数说明36

B.终止流程实例返回值[cp]说明37

C.终止流程代码样例37

16.启动子流程37

A.启动子流程实例参数说明37

B.启动子流程实例返回值[cp]说明37

C.启动子流程代码样例38

附录:

XMLWork方法摘要40

一、总体

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=al

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1