《用友NCV5-流程平台技术红皮书》由会员分享,可在线阅读,更多相关《用友NCV5-流程平台技术红皮书(78页珍藏版)》请在金锄头文库上搜索。
1、 流程平台技术红皮书 NC-UAP 5.0 用友 NC-UAP 2010-07-28 目 录 第一章第一章 .1 工作流与工作流与BPM 1. .1 信息系统的演变 2. .1 企业业务流程 3. .2 工作流 4. .2 BPM 第二章第二章 3 流程平台流程平台 1. .4 单据元模型 1.1 单据类型.4 1.2 单据动作及脚本.7 1.3 单据函数.9 1.4 单据UI 11 1.5 单据项目.11 1.6 单据VO对照.12 2. .13 业务流平台 2.1 业务类型.14 2.2 流程配置.15 2.3 单据VO交换.19 3. .21 审批流平台 3.1 流程定义.21 3.2
2、工作项.25 3.3 流程结果与单据状态.26 3.4 反向流转.28 3.5 流程监控.29 3.6 短信审批.30 第三章第三章 34 开发规范开发规范 1. .34 平台缓存数据 2. .35 动作处理 2.1 37 UI端调用-PfUtilClient 2.2 41 BS端调用 2.3 返回值.42 3. .42 动作脚本 3.1 执行脚本编写.43 3.2 返回值.46 4. .46 审批流平台 4.1 审批状态回写与查询.46 4.2 送审.47 4.3 审批.49 第 2 页 第 3 页 4.4 弃审.51 4.5 删除.53 4.6 审批流相关接口.54 5. .60 业务流平
3、台 5.1 动作驱动.60 5.2 单据VO交换.60 5.3 单据UI菜单填充与响应.62 5.4 业务流相关接口.65 第四章第四章 71 开发流程 附录 开发流程 附录.72 1. .72 NC5.0 短信服务 1.1 应用模式.72 1.2 短信发送.73 1.3 短信接收.74 第一章第一章 工作流与 工作流与BPM 1. 信息系统的演变信息系统的演变 从简单的办公信息系统,到事务处理系统,再到复杂的知识管理和决策支持系统,我们 可以看到,越来越多的通用任务已被从应用程序中分离出来并放入分解的管理系统中。图1 说明了这种演进。 图 1 通用功能分解 1975-1985 分离的应用 信
4、息系统由被分解的应用组成,每个应用都有自己的数据库和定义。 1985-1995 数据库管理 将数据管理从应用程序中抽取出来。关系数据库的出现。 1995-2002 用户界面管理 将用户界面从应用程序中抽取出来。人机工程。 1998-2005 工作流管理 将业务过程从应用程序中抽取出来。跨企业,跨系统。 2. 2. 企业业务流程 企业业务流程 企业的经营过程是指企业为了实现一定的经营目标,在组织机构和人员的参与下,利 用企业资源(设备、计算机软硬件等) ,按照预先确定的业务规则,在参与者之间进行文档、 信息、任务的传递与处理。 企业的经营管理也是遵循一定规律的, 其业务也需要按照一定的业务规则运
5、行。 业务按 照一定的业务规则运行或处理就形成了企业的业务流程。 第 1 页 图 2 企业经营过程 3. 3. 工作流 工作流 The automation of a business process, in whole or part, during which documents, information or tasks are passed from one participant to another for action, according to a set of procedural rules(WFMC). 工作流是一个能够完全或部分自动执行的业务过程,根据一系列过程规则,文
6、档、信息 或任务能够在不同参与者之间传递和处理(WFMC)。比如保险索赔、抵押申请、税收申报、 产品设计生产过程等。 工作流管理系统(Workflow Management System,WFMS)的主要功能是通过计算机技术 的支持去定义、执行和管理工作流,协调工作流执行过程中的任务(活动)以及群体成员之 间的信息交互。强调的是业务过程的自动化。 4. 4. BPM BPM 业务过程管理(Business process management),非企业绩效管理(Business Performance Management)。包括了过程建模、过程自动化、企业应用集成、业务活动监控 与优化的全生
7、命周期。强调的是业务过程的分析与优化。比较常用的分析项为: 1业务流程的瓶颈在哪? 2给定时间内有多少案例(Case,也可称作实例)可被处理? 3改变案例数量后,需要增加多少资源? 4案例的平均完成时间? 第 2 页 第二章第二章 流程平台 流程平台 NC流程平台是对企业的流程进行建模的平台。其工作流模型由四部分组成,分别是过 程模型、组织模型、功能模型以及信息模型(工作流相关数据) 。过程模型用来定义工作流 的过程逻辑, 包括组成工作流的所有活动以及活动之间的依赖关系。 组织模型用来定义企业 人员的组织结构, 包括几种不同形式的组织元素以及每种组织元素内部的递阶层次关系。 功 能模型说明企业
8、中需要完成的工作或者任务是什么, 或者说功能模型说明了企业的目标是通 过哪些具体的功能活动来实现的。 它确定了企业业务功能的逻辑结构和相互关系。 信息模型 说明了企业处理的业务对象中所包含的信息以及业务对象间的关系。 过程模型采取基于活动网络图的过程模型, 与其他的过程模型 (如事件驱动过程链 EPC、 Petri 网、语义-行为模型等)比较,活动网络图具有直观自然、可读性好的特性。 NC流程平台包括业务流程和审批流程两个部分。 图 3 业务流程框架 整个业务流程框架的核心是工作流引擎。 它负责解释执行由业务流设计器和审批流设计 器设计的流程定义。流程定义可以引用NC系统建立的功能模型、组织模
9、型以及各种元数据。 NC用户可从工作列表中查看到工作流引擎分配给他的工作项。通过单据动作(比如提交、审 批、弃审、驳回等)来处理工作项,从而驱动流程流转。工作流引擎在流转过程中还可以调 Workflow Framework Process Definition Work List Administration setParameter(“PFBILLTYPE“,null); setParameter(“PFDATE“,getUserDate().toString(); setParameter(“PFVO“,null); setParameter(“PFUSEROBJ“,null); setP
10、arameter(“PFFLOW“,null); runClassCom“nc.bs.pub.pf.PfUtilBO“,“processAction“,“ 单 据 动 作 处 理 runClass(“nc.bs.pub.pf.PfUtilBO“,“processAction“,“ if (retObj != null) m_methodReturnHas.put(“processAction“,retObj); 第 44 页 setParameter(“PFACTION“,null); setParameter(“PFBILLTYPE“,null); setParameter(“PFDATE“
11、,getUserDate().toString(); setParameter(“PFVOS“,null); setParameter(“PFUSEROBJS“,null); setParameter(“PFFLOW“,null); runClassCom“nc.bs.pub.pf.PfUtilBO“,“processBatch“,“ 单 据 动 作 批 处 理 runClass(“nc.bs.pub.pf.PfUtilBO“,“processBatch“,“ if (retObj != null) m_methodReturnHas.put(“processBatch“,retObj); p
12、rocActionFlow; 审 批 处 理 Object m_sysflowObj= procActionFlow(vo); /#返回值:流程仍处于审批进行中时直接返回 IWorkFlowRet if (m_sysflowObj!=null) return m_sysflowObj; Hashtable m_sysHasNoPassAndGonging= procFlowBacth; 批 审 批 处 理 Hashtable m_sysHasNoPassAndGonging= procFlowBacth(vo) ; procUnApproveFlow; 弃 审 boolean isFinish
13、ToGoing = procUnApproveFlow(vo); 处 /#返回值:true-审批流程由完成态返回到运行态;false-其他情况 理 procUnFlowBatch; 批 弃 审 处 理 for (int i = 0; i 7D_PUSHSAVE 7D_APPROVE 7D_APPROVE 4F_SAVE 4F_SAVE 5G_NIKE 5G_NIKE 执行完 7D_PUSHSAVE 之后,如果启动了审批流,仍然遍历被驱动的动作,但不会执行同 单据类型的动作。也就是说,仍然会执行 4F_SAVE 和 5G_NIKE 动作脚本,但不会执行 7D_APPROVE。 不执行动作驱动的情
14、形: 1 动作脚本返回值为 IWorkFlowRet。 2 动作脚本返回值为 Object,且 Object0类型为 IWorkflowBatch,并指明了不进行动作 驱动。 3 当前动作非单据类型注册的结束动作。 5.2 单据VO交换 业务单据 VO 之间存在着相互转换的需求,可在前台或后台进行。VO 交换前后可执行 额外的处理,即源单据 VO 或目的单据 VO 必须实现交换前后的一些接口,参见 5.4.8 节。 第 60 页 前台交换: 单张单据 VO 交换调用方法 批量交换调用方法 /*根据原单据聚合 VO 数组返回目的单据 VO 数组*/ AggregatedValueObject P
15、fUtilUITools.runChangeDataAry( String sourceBillType, /源单据类型 PK String destBillType, /目的单据类型 PK AggregatedValueObject vos) /源单据聚合 VO 数组 /*根据原单据聚合 VO 返回目的单据 VO*/ AggregatedValueObject nc.ui.pf.change.PfUtilUITools.runChangeData( String sourceBillType, /源单据类型 PK String destBillType, /目的单据类型 PK Aggrega
16、tedValueObject vo) /源单据聚合 VO 后台交换: 单张单据 VO 交换调用方法 /*根据原单据聚合 VO 返回目的单据 VO*/ AggregatedValueObject nc.bs.pub.pf.PfUtilTools.runChangeData( String sourceBillType, /源单据类型 PK String destBillType, /目的单据类型 PK AggregatedValueObject vo) /源单据聚合 VO 批量交换调用方法 第 61 页 /*根据原单据聚合 VO 数组返回目的单据 VO 数组*/ AggregatedValueObject nc.bs.pub.pf.PfUtilTools.runChangeDataAry( String sourceBillType, /源单据类型 PK String destBillType, /目的单据