合明PURUS工作流引擎和第三方系统集成方案第1页目录第一部分:流程系统和其它系统交换数据第二部分:其它系统调用Purus流程系统接口第三部分:调用PURUS的API第2页第3页流程系统和其它系统交换数据1.流程系统可定义多个外部数据源,表单使用外部数据源2.在流程中定义流入/流出与外部数据源交互3.用SQL直接操作其它系统的数据库4.流程表单调用外部系统某网页,交互数据5.在流程中调用外部DotNet接口、外部可执行程序、WebService、文件6.Web平台管理基础数据,表单调用基础数据第4页1.1流程系统定义外部数据源建立外部数据源,以便表单、流程和外部数据源交互1.2流程表单使用外部数据源第5页第6页2.1在流程中定义流入应用场合:流程某环节的部分表单数据是来自外部某个业务系统的数据。利用流程的流入环节来设定。第7页2.2在流程中定义流入设定第8页2.3在流程中定义流出活动应用场合:流程某环节的部分表单数据要流出到外部某个业务系统的某个表,以便外部业务系统进行业务逻辑数据处理。利用流程的流出环节来设定。举例:譬如,中山移动的领导业务留号订购流程。领导通过流程订购了外部留号管理系统的号码,号码管理员办理后,要通过流出活动及时将订购的号码流出到外部业务系统的某个表,业务系统就知道这些号码被订购了。2.4在流程中定义流出活动设定第9页3.1用流程sql活动直接处理外部数据源应用场景:某些情况下,流程走到某个环节,需要根据流程表单信息来处理外部数据源某个表的数据。这里流程变量、表单信息均可充当数据和过虑条件。通过流程中的SQL节点或表单中的外部数据浏览,直接访问其它系统的数据库,把表单数据插入或更新到其它系统,或读其它系统的数据来判断流程流转规则。第10页4.1流程表单调用外部系统网页应用场景:流程某个环节某个表单,数据来源于外部某个系统某个页面查询得来的数据。系统选取后,将这些数据保存到流程表单中。譬如,中山移动的业务留号订购,领导选取号码是调用业务留号系统的某个页面,进行复杂的组合查询,返回数据填充到表单里,然后供下面环节办理。第11页4.2流程表单调用外部系统网页效果一第12页4.3流程表单调用外部系统网页效果二第13页4.3流程表单调用外部系统网页效果三第14页5.1调用外部DotNet接口第15页5.2调用外部可执行程序第16页第17页5.3调用外部WebService调用其它系统提供的WebService接口,在流入/流出中获得接口的方法和参数。第18页5.4WebService调用调用定义调用webservice接口的参数映射关系,在流程实际运行中,自动调用流程中定义好的接口,把数据流入/流出。适合与提供了Webservice接口的系统进行集成。第19页5.5文本文件之间的数据交换把表单数据导出成固定格式的文本文件(如定长/用”,”/”|”等分隔符分开等),或把固定格式的数据导入到流程系统。适合于象SAP,金蝶等支持固定格式数据导入导出的ERP系统。第20页5.6文件之间的数据交换6.1Web平台基础数据管理应用场合:某些情况下,系统需要Web平台录入一些基础数据,以便某些流程某些表单使用。譬如,某流程提单环节需要选择业务类型,每种业务类型对应一个人,流程的第二个审批环节就是该业务类型对应的人。第21页6.2Web平台基础数据管理第22页6.3Web平台管理基础数据第23页第24页第25页其它系统调用Purus流程系统1.PurusDotNet接口调用2.PurusWebservice接口调用3.平台SPS调用PurusWebPart4.数据库直接查询相关数据1.1启动一个流程,填写表单数据并提单背景:有时候,外部系统需要启动一个流程,外部系统填写单据,并提交处理。调用例子代码如下:具体参考1_其它系统调用某流程并填单提单InvocationLoglog=null;Stringm_sServerName=127.0.0.1;//流程引擎所在电脑intm_nPort=31001;//流程引擎端口Stringm_sAccount=wftest;//提单人用户帐号Stringm_sPassword=1;//提单人用户密码StringsProcessBH=wf_lcbh;//要启动的流程编号idStringsRemark=Ok同意了;//处理意见BPMConnectionbpmCnt=newBPMConnection();try{if(bpmCnt.Open(m_sServerName,m_sAccount,m_sPassword,m_nPort)==true){//根据流程编号后去流程idProcessprocess=ProcessManager.GetProcessByCode(bpmCnt,sProcessBH,);VariableCollectionvars=newVariableCollection();//流程变量//优先级Variablevar=newVariable(SystemVariable.TASKPRIORITY,1);vars.Add(var.Name,var);//要填写的表单数据Variablevar1=newVariable(SystemVariable.FORMCONTENT,MyFieldtxt_name王飞/txt_nametxt_sex男/txt_sex/MyField);vars.Add(var1.Name,var1);WorkItemDetailworkItemDetail=TaskManager.GetWorkItemDetail(bpmCnt,m_sAccount,process.ProcessId,process.StartActivityId,,,WorkItemDetailType.Edit);if(workItemDetail.Transitions.Count0){Transitiontran=(Transition)(workItemDetail.Transitions[0]);log=TaskManager.StartTask(bpmCnt,m_sAccount,process.ProcessId,tran.Id,false,sRemark,vars);}}}finally{bpmCnt.Close();}第26页1.2启动一个流程,填写表单数据并提单效果图第27页1.3流程表单分离实现,使用外部系统表单应用背景:有时候,很多系统需要使用自己系统的表单,以便更好的进行业务逻辑控制,而流程使用合明流程引擎来灵活设计,即流程和表单分离实现。在佛山移动,很多业务系统涉及到流程电子审批都由合明流程中心来实现,而表单逻辑由各个厂家各个业务系统来实现。这样,各个业务系统彻底的从复杂的流程审批解放,而更好的关注系统的业务逻辑。具体参考:2_流程表单分离实现,该例子示范了两个应用。A某用户进入某环节,表单使用自己的表单,进行处理。B列举某用户待处理流程,选择某流程进行处理。第28页2.1PurusWebservice接口调用启动流程启动一个流程,产生一个新的任务待办处理列出某用户的待处理任务,选中一条处理退回处理列出某用户的待处理任务,选中一条退回具体参考4.webservice调用实例.doc第29页3.1平台SPS调用PurusWebPart整个工作流Web可作为WebPart供外部调用工作流Web部分可作为WebPart供外部调用工作流Web通过单点登录验证与外部系统有机融合.第30页4.1数据库直接查询相关数据具体参考文档19:数据字典.doc第31页第32页第33页PURUS系统提供完善的API接口第34页TKS!