U8工作流开发手册.doc





《U8工作流开发手册.doc》由会员分享,可在线阅读,更多相关《U8工作流开发手册.doc(18页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、如有侵权,请联系网站删除,仅供学习与交流U8工作流开发手册【精品文档】第 18 页工作流开发手册1 功能介绍:工作流系统是以规格化的流程描述作为输入的软件组件,它维护流程的运行状态,并在人和应用之间分派活动、最终达到协同多人或服务共同完成工作任务的目的。2 使用过程:工作流系统的使用过程分为三个阶段:设计时、配置时、运行时;设计时阶段需要完成流程模型设计;配置时阶段需要完成工作流系统运行环境的配置、工作流模型发布及版本管理等工作;运行时阶段需要负责发起和完成流程实例等工作。U8系统安装完毕后,首先需要进入工作流环境配置模块设置MOM服务器和工作流引擎信息;配置的信息会通知到对应的MOM服务器,
2、使得MOM服务器感知与其协同工作的工作流引擎信息。配置时涉及的功能模块及运行时的流程实例管理模块存在于工作流管理控制台中。环境配置完毕后,可以进行流程模型设计工作。通过流程设计器,设计过程中结合UAP工具中设计出来的业务对象和注册在MOM服务器上的消息和服务信息,生成流程模型。流程设计器设计出来的流程模型还不能直接投入使用,需要通过重定位模块对其消息和服务地址信息从设计时环境的地址转化为运行时地址后,才能正式使用。重定位模块通过“流程发布”动作来完成该动作的。流程模型发布后,业务应用就可通过消息发送接口发送特定类型的消息,消息通过MOM服务器通知工作流引擎,生成对应的流程实例,在流程实例处理过
3、程中调用业务服务、生成需要人工交互的任务项、并最终协调完成流程实例的处理。流程实例可以被流程实例管理模块加以管理、修改。3 开发帮助基于新的工作流平台之上的审批流应用,利用UAP的数据引擎、MOM消息发布订阅和消息转发功能来完成审批这一类特殊流程的管理、配置、设计、使用、维护、监视操作。下图是工作流系统使用流程图:在上述流程涉及到业务系统开发人员的活动中,服务开发、服务注册、预制业务对象、编写预制运行时活动插件、编写客户端审批提交代码等工作是在业务模块中实现审批功能都可能涉及的动作。 3.1 开发与注册服务本处服务是指业务部门提供能、为了能满足特定业务功能而实现的组件中的方法;这些服务可在流程
4、设计过程中运用于流程模型,体现为流程模型中的自动服务。3.2 服务开发服务开发无特别约定,服务内部如果需要CallContext、发起人等工作流系统内置变量信息,可以在流程设计过程中,指定变量 服务传入参数的映射方式来获得。流程模型内置变量:变量名类型说明ActivityNamestring活动名称StartPerformerstring流程发起人工号CurrentPerformerstring执行者工号StartTimestring流程发起时间ActivityStartTimestring活动开始时间ActivityDelaystring延迟时间StartPerformerNamestrin
5、g流程发起人姓名CurrentPerformerNamestring执行者姓名KeySetstring人工活动UNDO接口参数KeySetCalledContextobject人工活动UNDO接口参数CalledContextCallResultstring人工活动UNDO接口返回值LoginContextobject工作流构造LoginContext对象3.3 服务注册在工作流模型中,自动活动所调用的服务需要预先注册到MOM服务器上,注册过程如下:1.如果MOM上没建立所属子产品功能点,则首先建立该子产品功能点;建立方法:打开MOM集成工具,在集成目录U8ERP下加入子产品功能点,如下图:2
6、.在所属子产品功能点的“集成接口”节点上,注册集成接口,如下图:进入注册集成接口界面后,首先设置集成注册码和集成接口名,集成接口注册吗是用于识别该注册服务的,要求在同一子产品节点下注册码惟一。然后需要设置服务调用端点(如果是本地调用,需要考虑调用路径问题!):设置服务路径时可以使用MOM预置的三个宏变量:%U8SOFT% 表示U8安装目录%UFCOMSQL% 表示ufcomsql目录%U8APPSRV% 表示u8应用服务器 例如:注册:D:U8SOFT SAMyLib.DLL 组件,使用宏变量后应该为:%U8SOFT%SAMyLib.DLL自动服务开发中的参数约束1、所有参数类型必须是基本类型
7、和可SOAP序列化的类型;2、非基本类型的参数必须部署在GAC中;3、对于部署在本地的服务,支持ref,out参数(VB的ByRef同ref);4、对于VB中声明为ByRef的参数,必须是Variant类型。 支持的基本类型包括:void,string,(对应设计器变量类型 string )short,(对应设计器变量类型 float )int,(对应设计器变量类型 int )long,(对应设计器变量类型 int )double,(对应设计器变量类型 double )bool,(对应设计器变量类型 bool)datetime,(对应设计器变量类型 datetime)object(对应设计器变
8、量类型 object )如果工作流实例中,对该服务调用后,由于某些原因,流程实例回滚(Rollback)时,该服务也需要回滚,则该服务还需要注册对应的Undo接口信息。约定Undo接口方法名为Un+方法名,参数、返回值同原注册的服务方法一致。为了能正确描述Undo接口,需要在扩展属性中增加3个属性: undo_class:如果是COM就表示为progid,是.Net表示为类的完全限定名 undo_type:assembly,com undo_location:当是.Net程序的时候表示为程序集的名如下图:服务例代码using System;using System.Collections.Ge
9、neric;using System.Text;namespace EployeeSelfSevice public class Employee / / 申请休假 / / 员工号 / 假期类型 / 申请数量 / 申请是否成功 public bool ApplyHoliday(string EmployeeID,int HolidayType, int ApplyDateNumber) /TODO:如果符合申请条件,扣减该员工的可用假期数 return true; / / ApplyHoliday的Undo方法 / / 员工号 / 假期类型 / 申请数量 / 申请是否成功 public boo
10、l UnApplyHoliday(string EmployeeID, int HolidayType, int ApplyDateNumber) return true; 3.4 人工活动插件开发插件必须包含如下三个方法,名称可以不同,但参数必须一致public interface IAuditPluginbool UndoAudition(string primBizData,string auditAction, ref string bizdata,object calledCtx, ref string errMsg);bool DoAudition(string primBizDa
11、ta,string auditAction, ref string bizdata,object calledCtx, ref string errMsg);bool HandleBizException(string primBizData,string auditAction,ref string handleResult,ref string bizdata,object calledCtx, ref string errMsg);primBizData:KeySetauditAction的取值/ / 审批动作枚举类型/ Serializablepublic enum AuditActi
12、onSubmit = 0,/提交Agree = 1,/同意Disagree = 2,/不同意Dispatch = 3,/转签Reject = 4,/打回Revocation = 5,/撤销Return = 6,/退回Abandon = 7,/弃审Bizdata:业务需要传出的参数handleResult:是否需要重做,取值ReHandle/UnHandleusing System;using System.Collections.Generic;using System.Text;using UFSoft.U8.Framework.LoginContext;using UFIDA.U8.Aud
13、it.Interface;using UFSoft.U8.EX.Common;using UFSoft.U8.EX.Common.Args;using UFSoft.U8.EX.Server.BusinessObject;using UFSoft.U8.EX.Framework.DataModel;namespace UFSoft.U8.EX.CreditPlugins class FinalAuditPlugin:IAuditPlugin #region IAuditPlugin 成员 public bool DoAudition(string primBizData, string aud
14、itAction, ref string bizdata, object calledCtx, ref string errMsg) LoginService login = new LoginService(CalledContext)calledCtx); OrderBO bo = new OrderBO(login); AuditArgs auditArg = new AuditArgs(); int id = int.Parse(GetVoucherId(primBizData); bo.GetData(id); Order order = bo.data as Order ; aud
15、itArg.ID = order.orderHeader.id; auditArg.Guid = order.orderHeader.guid; auditArg.ufts = order.orderHeader.ufts; auditArg.cCode = order.orderHeader.ccode; auditArg.VarifyState = order.orderHeader.iverifystate; auditArg.Version = order.orderHeader.iversion; auditArg.UserName = login.UserInfo.UserName
16、; auditArg.VerifierDate = login.UserInfo.operDate; auditArg.Verifier = login.UserInfo.UserName; auditArg.Row = -1; bo.BatchAudit(new AuditArgs auditArg ); return true; /throw new Exception(The method or operation is not implemented.); private string GetVoucherId(string keySetData) KeySetDataReader r
17、eader = new KeySetDataReader(keySetData); return readerVoucherId; private string GetVoucherType(string keySetData) KeySetDataReader reader = new KeySetDataReader(keySetData); return readerVoucherType; private string GetVoucherCode(string keySetData) KeySetDataReader reader = new KeySetDataReader(key
18、SetData); return readerVoucherCode; public bool HandleBizException(string primBizData, string auditAction, string context, ref string handleResult, ref string bizdata, object calledCtx, ref string errMsg) throw new Exception(The method or operation is not implemented.); public bool UndoAudition(stri
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- U8 工作流 开发 手册

限制150内