您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > 嵌入式工作流客户端接口文档
4工作流客户端文档BusinessKeyBusinessKey是业务系统中用来标识一个流程实例的标识,工作流系统使用该标识可以找到相应的流程实例。例如在检察院系统中,是案件编号。业务系统在创建流程实例时将将值赋予创建的流程实例,以后每次都使用该值于工作流交互,工作流可以找到对应的流程实例。BusinessKey在工作流中,作为一个流程实例变量存储在数据库中。工作流中的变量包括变量名、类型和值这些属性。配置一个作为BusinessKey的变量,需要指定变量名称和类型,供工作流系统使用。配置businesskey示例如下:beanid=businessKeyclass=com.thunisoft.wf.core.jbpm.businesskey.BusinessKeyImplpropertyname=keyNamevalueajbh/value/propertypropertyname=keyTypevaluejava.lang.String/value/property/bean说明:需要配置BusinessKey的变量名称,BusinessKey的Java类型(keyType)。目前支持的Java类型包括:String,Long,Double接口说明:接口列表中,对流程依赖比较严重而不建议使用的接口排在后面。获取工作流接口:嵌入式工作流接口:com.thunisoft.wf.embedded.WorkflowFacade;这个接口是嵌入式工作流的一个门面,集成了嵌入式工作流提供的相关服务集合。可以通过下面这个静态方法获取工作流façade:com.thunisoft.wf.embedded.WorkflowHelper.getWorkflowFacade();关于工作流接口的准确定义和详细情况,请参考javadoc,在这里指出的是一个概要情况。UML图示如下:流程实例相关接口:开始新流程实例/***createanewprocessinstance,ifinstancehasnostarttask,signalinstance*toleavethestartstate.br**ifcontextVariablescontainsakeyequalsBusinesskey,itshouldbecovered.**@paramworkflowNameProcessDefinitionnametocreatenewinstance*@paramkeyValueValueofthenewProcessInstanceBusinesskey*@paramcontextVariablesContextvariablesforthenewprocessinstance*@returnIdofthenewprocessinstance,Iffailed,returnnull*@throwsWorkflowException*@throws{@linkIllegalArgumentException}IfworkflowNameorkeyValueisnull,*orkeyvalue'stypeiserror.*/publicLongstartProcessInstance(StringworkflowName,ObjectkeyValue,MapcontextVariables)throwsWorkflowException;流程实例变量管理存放在流程实例Context内的变量,在整个流程实例范围内可见。获取给定流程实例全流程范围内的变量/***Getallvariablesstoredinprocessinstancecontext*@paramkeyValue*@return*@throwsWorkflowException*/publicMapgetProcessContextVarialbes(ObjectkeyValue)throwsWorkflowException;增加变量到流程实例Context中:一次增加多个流程变量:/***Addvariablestoprocesscontext.Ifavariableisalreadyexists,replaceit*@paramkeyValue*@paramvariablesVariablesmap,usekeyasvariablename,valueasvariablevalue*@throwsWorkflowException*/publicvoidaddProcessVariable(ObjectkeyValue,Mapvariables)throwsWorkflowException;增加一个流程变量:(不要调用多次来代替上一个接口的功能)/***Addavariabletoprocessinstancecontext*@paramkeyValueBusinesskeyvalue*@paramnameVariablename*@paramvalueVariablevalue*@throwsWorkflowException*@throwsIllegalArgumentExceptionIfnameorvalueisnull*/publicvoidaddProcessVarialbe(ObjectkeyValue,Stringname,Objectvalue)throwsWorkflowException;暂停执行流程实例/***resumeaprocessinstance*@paramkeyValue*@throwsWorkflowException*/publicvoidresumeProcessInstance(ObjectkeyValue)throwsWorkflowException;获取当前流程实例状态名称/***Getnameofcurrentstate*@paramkeyValueBusinesskeyvalue*@returnNameofcurrentstate,ornullifnomatchedprocessinstance*@throwsWorkflowException*/publicStringgetCurrentStateName(ObjectkeyValue)throwsWorkflowException;流程跳转:【不建议使用】通常情况下,流程跳转一般应该采用工作流中配置来完成,而不适宜通过业务系统调用下面的接口来完成。因为这使得业务系统代码强制性依赖于工作流程,从而显示流程流转逻辑的变化。相似的功能,可以通过在工作流定义中增加Action来完成。沿默认路径跳转/***singalprocessinstancetonextstate,takingdefaulttransition**@paramkeyValueValueofbusinesskey*@returnifnotrace,returnemptylist*/publicvoidsingalProcessInstance(ObjectkeyValue)throwsWorkflowException;沿给定路径跳转/***signalprocessinstancetonextstate,takinggivedtransition**@paramkeyValue*@paramtransitionTransitionname,ifnull,takingdefaulttransition*@throwsWorkflowExceptionIftransitionisinexistent*/publicvoidsignalProcessInstance(ObjectkeyValue,Stringtransition)throwsWorkflowException;分支沿默认路径跳转/***signalabranchofprocessinstance,takingdefaulttransition*@paramkeyValue*@paramtokenTokenpathofthebranch,Ifnull,takeroottokenasdefault*@throwsWorkflowException*/publicvoidsignalProcessInstanceBranch(ObjectkeyValue,Stringtoken)throwsWorkflowException;分支沿着给定路径跳转/***signalabranchofprocessinstance,takegivedtransition*@paramkeyValue*@paramtokenTokenpathofbranch*@paramtransitionTransitionname,ifnull,takingdefaulttransition*@throwsWorkflowExceptionIftransitionisinexistent*/publicvoidsignalProcessInstanceBranch(ObjectkeyValue,Stringtoken,Stringtransition)throwsWorkflowException;任务管理相关接口方法:获取给定流程当前状态可以创建实例的任务:返回的是可以创建的任务名称组成的列表。/***Gettasknameoftasksoncurrentstate*@paramkeyValue*@returnTodotasksoncurrentstate*@throwsWorkflowException*/publicListgetTodoTasks(ObjectkeyValue)throwsWorkflowException;获取给定流程的历史任务实例:/***getprocessinstancehistorytrace,allthetaskinstancebewrappedwith*{@linkTrace}object,anytaskinstancehasbeenstartedshouldbeloaded*orderbycreate-timeASC*@paramkeyValueValueofbusinesskey*@returnifnotrace,returnemptylist*/publicListgetHistoryTraces(ObjectkeyValue)throwsWorkflowException;在给定流程当前状态上创建新任务实例:/***Createanewtaskofgiventaskoncurrentstate.*@paramkeyValue*@paramtaskNameTaskname*@returnIdofcreatedtaskinstance*@throwsWorkflowExceptionIfcurrentstatehasnogivedtask*/publicLongcreateTaskInstance(ObjectkeyValue,StringtaskName)throwsWorkflowException;结束一个任务(保存任务实例变量)/***Endgiventaskinstance,andsavevariablesforgiventaskinstance*@paramtaskInstanceId*@paramvariableVariablestosave*@throwsWorkflowException*/publicvoidcommitTaskInstance(LongtaskInstanceId,Mapvariable)throwsWorkflowException;结束一个任务(无变量)/***Endgiventaskinstance*@paramtaskInstanceId*/publicvoidcommitTaskInstance(LongtaskInstanceId)
本文标题:嵌入式工作流客户端接口文档
链接地址:https://www.777doc.com/doc-1533704 .html