流程引擎API调用说明.docx

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

流程引擎API调用说明.docx

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

流程引擎API调用说明.docx

流程引擎API调用说明

慧正工作流引擎API说明

(试用版)

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

2012年5月

一、总体

1.业务操作说明

业务操作说明

功能

方法

参数说明

1.

XMLWorkxWork=newXMLWork(Stringuserid,Stringusername,Stringdeptname)

必要参数:

Userid:

用户Id

UserName:

用户名称

DeptName:

部门名称

intinit=(””,flowID,””);

根据流程定义Id,启动流程实例

必要参数:

flowID:

流程定义Id

2.

XMLWorkxWork=newXMLWork(Stringuserid,Stringusername,Stringdeptname)

设置XMLWork的基本属性

必要参数:

Userid:

用户Id

UserName:

用户名称

DeptName:

部门名称

intinit=(workid,””,””);

根据流程实例Id,打开流程实例

必要参数:

workid:

流程实例Id

2.流程参数说明

具体可参考/horizon/workflow/include2/

流程参数总体说明

参数名

含义

格式要求

必须赋值

flowIdentifier

流程数据源标识

或者配置,具体参考

dataIdentifier

业务数据源标识

UserID

操作人用户Id

UserName

操作人用户名称

DeptName

操作人部门名称

WorkID

流程实例id

NodeID

流程实例当前节点Id

NodeName

流程实例当前节点名称

TrackID

路径Id

果提交到下一点,只有一个节点时,请不要赋值,置为空;

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|

如果在中配置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名称

默认

临时信息记录(目前用于存储当前人填写的意见信息)

3.流程执行操作说明

流程执行操作

1.

(具体点击上面链接)

引入的包:

从request中获取的相关参数参考流程参数总体说明,以及要执行下面具体操作的说明

(1)传入request对象,调用doAction

XMLAppapp=newXMLApp();

LinkedHashMapbackMap=(request);

(具体点击上面链接)

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.启动流程实例整体说明

引入类:

执行方法

初始化XMLWork,设置相关属性

1.XMLWorkxWork=newXMLWork(userid,username,deptname);

启动具体的流程实例

(返回值说明见下面)

init=(””,flowID,””);

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

参数名

含义

要求

userid

启动实例的操作人的用户Id

不能为空

username

启动实例的操作人的用户名称

可以为空

deptname

启动实例的操作人的部门名称

可以为空

flowID

流程定义Id

不能为空

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

初始化XMLWork,设置相关属性(根据业务,如有需要,可以设置以下内容)

()

设置流程数据所使用的数据源标识符。

中设置的默认数据源和中的设置不一致时,设置为空和设置成null(或者不设置)是有区别的,设置为空时,系统使用中设置的默认数据源,设置成null(或者不设置)时,使用的是中的设置。

数据源无效时,系统默认使用中设置的默认数据源。

如果flowIdentifier跟dataIdentifier一样可以直接使用(“”)对两个变量同时赋值

xWork.setDataIdentifier()

设置业务数据所使用的数据源标识符。

xWork.setUserAuthType()

如果需要设置外部办理人获取方式。

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

返回值

含义

init=

初始化成功。

init=

当前人员无权启动流程

init=

锁定当前实例失败,启动流程时不影响,可以等同成功

init=

其他原因失败从();可以获取错误信息

启动流程实例成功后,可以从xWork对象中获取相关的信息,具体参考

5.启动实例代码样例

/**启动流程实例操作,从前台获取参数,获取流程定义Id等信息,具体可参考horizon/workflow/include2/*/

程定义Id,必须有此值

StringflowID=("flowid");

部权限设置分类,XMLWork额外属性,可以不用设置

StringuserAuthType=("userAuthType");

得数据源,XMLWork额外属性,可以不用设置

StringdbIdentifier=("dbIdentifier");

前用户信息,根据应用系统的区别,灵活获取。

下面是产品中的自带的用户获取方式

Stringuserid=(session);始化XMLWork属性

XMLWorkxWork=newXMLWork(userid,username,deptname);

动流程实例,第一个参数是流程实例Id,第二个参数是流程定义Id,第三个参数是业务数据Id,如果三个都有值,获取流程数据的优先顺序:

workID>flowID>dataID

intinit=(“”,flowID,””);

动流程实例成功后,对业务数据的处理

etCurForm(dataid);

for(inti=0;i<;i++){

{

Stringformid=form[i].getID();

etFormtype().equals("HTML")){

etFormtype().equals("JSP")){

etDataID()

etID();

etTableID();

oString();

oString();

oString();

oString();

oString();

}else{

6.

XMLWorkxWork=newXMLWork(userid,username,deptname);

打开具体的流程实例

(返回值说明见下面)

init=(workid,””,””);

7.打开流程实例参数说明

参数名

含义

要求

userid

启动实例的操作人的用户Id

不能为空

username

启动实例的操作人的用户名称

可以为空

deptname

启动实例的操作人的部门名称

可以为空

workid

流程实例Id

不能为空

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

初始化XMLWork,设置相关属性(根据业务,如有需要,可以设置以下内容)

()

设置流程数据所使用的数据源标识符。

(1)中设置的默认数据源和中的设置不一致时,设置为空和设置成null(或者不设置)是有区别的,设置为空时,系统使用中设置的默认数据源,设置成null(或者不设置)时,使用的是中的设置。

数据源无效时,系统默认使用中设置的默认数据源。

(2)如果flowIdentifier跟dataIdentifier一样可以直接使用(“”)对两个变量同时赋值

()

设置业务数据所使用的数据源标识符。

()

设置指定路径Id

打开流程实例时可以设置此值

(1)如果当前人在多个分支节点都具有权限,还需要指定路径ID

(2)如果不指定,系统会自动获取所有分支,返回前台供选择

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

返回值

含义

init=

选择需要打开的节点

Stringallnodes=();

String[]nodes=("\\|");

选择后的结果赋值给(“”);

return;

init=

打开实例成功

init=

当前人员无权查看此流程实例

init=

当前人只能以只读权限打开(此时不能执行任何操作)

init=

当前实例被其他人锁定(此时不能执行任何操作)

init=

锁定当前实例失败,此时其他人仍然可以打开实例进行操作,可能会出现数据冲突问题,建议退出重新打开

init=

其他原因失败从();可以获取错误信息

打开流程实例成功后,可以从xWork对象中获取相关的信息,具体参考

10.打开实例代码样例

/**打开流程实例操作,从前台获取参数,获取流程实例Id等信息,具体可参考horizon/workflow/include2/*/

程实例Id,必须有此值

Stringworkid=("workid");

部权限设置分类,XMLWork额外属性,可以不用设置

StringuserAuthType=("userAuthType");

得数据源,XMLWork额外属性,可以不用设置

StringdbIdentifier=("dbIdentifier");

设置指定路径Id,XMLWork额外属性,如果没有分支,可以不用设置

StringopenTrackID=("openTrackID");

前用户信息,根据应用系统的区别,灵活获取。

下面是产品中的自带的用户获取方式

Stringuserid=(session);始化XMLWork属性

XMLWorkxWork=newXMLWork(userid,username,deptname);

setOpenTrackID(openTrackID);

开流程实例

intinit=(workid,””,””);

开流程实例成功后,对业务数据的处理

etCurForm(dataid);

for(inti=0;i<;i++){

{

Stringformid=form[i].getID();

etFormtype().equals("HTML")){

etFormtype().equals("JSP")){

etDataID()

etID();

etTableID();

oString();

oString();

oString();

oString();

oString();

}else{

oUpperCase(),"");oUpperCase(),"");oUpperCase(),"");oUpperCase(),"0");

提交操作时的含义,1=获取下一节点信息,返回是否选择节点,是否需要选择人员,用于跟前台交互,0=执行提交到下一节点办理人,如果处理中遇到节点不明确或者办理人不明确时,跟1效果一样。

当需要跟前台操作人进行交互,比如获取是否需要选择节点或者选择办理人,是否需要操作人进行确认等,建议使用1,处理速度会快一点。

跳转操作时的含义:

1=获取可以跳转的节点列表,0=执行跳转到指定节点。

退回操作时的含义:

1=获取可以退回的节点列表,0=执行退回到指定节点操作。

启动子流程时的含义:

如果系统提供了启动子流程的ID(参数selectFlowID),则忽略此参数,不提供selectFlowID参数时,如果当前人没有启动过子流程时忽略此参数,直接根据定义判断是否有多个子流程定义,如果只有一个子流程定义,则直接启动,否则返回;如果当前人已经启动过子流程,1=获取已经启动的子流程列表,并返回,0=根据定义判断是否有多个子流程定义,如果只有一个子流程定义,则直接启动,否则返回。

催办操作时的含义:

1=催办次数如果已经达到上限则停止,0=催办次数已经达到上限也继续催办

启动子流程时可能需要的参数,指定子流程ID

("selectFlowID".toUpperCase(),"");

oUpperCase(),"");

oUpperCase(),"Submit");oUpperCase(),workID);oUpperCase(),userid);oUpperCase(),"");oUpperCase(),"");oUpperCase(),"");

A.

etNodeID());

()==,获取当前节点已经选择的办理人,用于赋值给selectAuthor

(pos)

B.

1”sgFlagCN();

StringmsgFlag="";

Stringother="";

if(xWork!

=null){

C.

D.

1”ubstring(nodes[i].indexOf("~")+1);

ubstring(0,nodes[i].indexOf("~"));

}

}

}else{

E.

F.

G.

H.

要把selectAuthor变量赋值,此值是阅知人员Id

if(cp=={

I.

J.

要将(“ActionName”,”cancel”);

if(cp=={

K.

L.

要把selectAuthor变量赋值,此值是会签人员Id

if(cp>{

1”ubstring(nodes[i].indexOf("~")+1);

ubstring(0,nodes[i].indexOf("~"));

}

}

}else{0”sgFlagCN();

StringmsgFlag=?

():

"";

Stringother=?

(msgFlag):

"";

M.

N.

要把selectAuthor变量赋值,此值是会签人员Id

if(cp=={

O.

P.

要把selectAuthor变量赋值,此值是加签人员Id

if(cp=={

Q.

R.

要把selectAuthor变量赋值,此值是转办人员Id

if(cp=={

S.

T.

U.

V.

W.

X.

要将催办的内容Comments赋值,放到dataHashMap的Comments对应的值

if(cp=={

Y.

ZZ.

要把selectAuthor变量赋值,此值是替办人员Id

if(cp=={

AA.

BB.

CC.

DD.

EE.

FF.

要将selectFlowID选择的子流程放入到dataHashMap中.

if(cp=={

plit("\\|");

for(inti=0,n=;i

if(list[i].length()==0)continue;

ubstring(0,list[i].indexOf("~"));

ubstring(list[i].indexOf("~")+1);

If(“1”)){

plit("\\|");

for(inti=0,n=;i

intpos=flowlist[i].indexOf("=");

ubstring(0,pos);

ubstring(pos+1);

}

ode_Parallel:

多人处理

StaticVar.Node_Order:

多人顺序

StaticVar.Node_Everyone:

多人单一签核

()

获取当前节点的办理方式

()

获取当前节点事件列表

()

获取当前节点当前人所具有的表单信息(包含表单域和操作信息)

dataid)

获取当前节点当前人所具有的表单信息(包含表单域和操作信息)在已有数据上启动流程时,增加查找主表单,并判断是否有dataid,如果没有则使用参数赋值

()

获取当前节点ID

()

获取当前节点名称

()

获取当前节点的读者消息发送方式

()

获取当前节点所有未办理人员列表中文名称,多个值用“|”分隔。

backSplit)

获取当前节点所有未办理人员列表中文名称,使用指定分隔符

()

获取当前节点所有未办理人员列表ID,多个值用“|”分隔。

()

获取当前节点的可能路由条件

()

获取当前执行人ID

()

获取当前执行人的中文名称

()

业务数据源名称

(inti)

获取当前表单域信息,用于表单引擎解析

formID)

获取当前表单域信息,用于表单引擎解析

()

获取流程ID

()

获取流程的数据源

()

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

当前位置:首页 > 经管营销 > 经济市场

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

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