v60流程平台开发文档_第1页
v60流程平台开发文档_第2页
v60流程平台开发文档_第3页
v60流程平台开发文档_第4页
v60流程平台开发文档_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

V6.0流程平台开发文档NC_UAP 基础技术部2009-4参考文档:NCV5-流程平台技术红皮书.docV5.1流程平台详细设计.docV5.02流程平台详细设计.docV5.5流程平台详细设计.docV5.5工作流开发文档.docV5.5流程平台-元数据应用.docNCV55-元数据建模及管理红皮书.docNCV55-元数据开发红皮书.docNCV6流程平台概要需求-评审lhp.doc版本日期修订人修订0.32009-6-23雷军设计评审后的较大改动:1. 去掉系统类型,改用模块;2. 单据类型必须关联元数据实体;去掉单据VO对照、单据项目的注册;目录1 流程平台中的本体41.1单据类型41.1.1元数据实体51.2交易类型61.3单据函数61.3.1参数格式71.3.2返回值81.4单据动作及脚本81.4.1单据动作组102审批流平台102.1流程定义112.1.1流程模型122.1.2流程用户组142.1.3多版本142.1.4定义查找算法152.2执行引擎152.3工作项162.3.1设置动态代理人162.3.2工作项消息定制172.3.3工作项的处理172.4动作处理182.4.1动作组192.5流程结果与单据状态202.5.1单据审批状态的回写222.6流程管理中心223业务流平台243.1业务流程243.2流程配置253.2.1参与者配置263.2.2单据来源设置273.2.3动作执行前约束设置283.2.4 动作执行后约束设置293.2.5动作事件控制配置303.2.6 动作驱动配置323.2.7上游消息配置333.2.8 VO交换333.2.9流程显示343.3单据VO交换343.3.1交换规则343.3.2前台交换373.3.3后台交换383.3.4单据VO交换前后处理接口393.4参照制单393.4.1获得业务类型393.4.2参照制单393.5动作驱动413.5动作处理413.6业务流相关接口423.6.1动作执行后返回界面的初始化接口423.6.2参照制单 查询UI初始化接口423.6.3业务类型调整接口433.6.4单据VO查询接口443.6.5动作处理异常接口443.6.6动作驱动前的校验接口453.6.7 动作驱动单据VO交换前的检查接口453.6.8 下游消息接收者用户自定义接口464工作流平台464.1流程定义464.1.1流程模型464.1.2工作流组件474.1.3多版本484.1.4流程模板484.2执行引擎494.3工作项494.4动作处理514.5流程结果与单据状态514.6流程管理中心515消息中心511 流程平台中的本体这里一并对流程平台中的一些基本概念进行阐述。了解流程平台的前提是了解这些基本要素。1.1单据类型单据类型是对单据的分类,也被称作交易。其他本体都是基于单据类型来定义。在定义单据类型时,单据类型必须属于某个模块。单据类型由功能点客户化-二次开发工具-单据管理-单据类型管理维护,如图所示,一般由各业务产品预置。项目说明: 类型代码:手工输入,最大长度为4个字符,可以输入字母和数字,不允许重复。 类型名称:业务单据名称,手工输入,不允许重复。 单据大类:表示单据类别(应收应付101-),用于区分单据类型的主子关系(估计在V6.0废弃?)。 节点编号:单据类型关联的管理功能节点编号。用于根据单据类型联查打开单据UI。 审批节点编号:单据类型关联的审批功能节点编号。用于审批时,根据单据类型联查打开单据UI。 主表参照的固定条件语句:被其它单据参照时自己填写的固定的SQL条件语句。 参照查询对应的DMO类:应该统一为业务扩展类? 审批流检查类:应该统一为业务扩展类?实现IcheckState,IbackCheckState(可不实现)的接口的DMO类文件 会计平台类:财务会计平台所需的类。实现IaccountProcMsg IAccountRetVoucher的接口的DMO类文件 是否项目核算:NC210以后不再使用。 是否为根节点:针对单据大类,用于实现单据主子关系。 是否发送会计平台:用于财务会计平台。如果该单据不直接传送财务会计平台,则不选择 是否可扩展交易类型:标识该单据类型是否可以定制扩展交易类型。 元数据组件:如果进行了元数据实体建模,则可将元数据组件与单据类型进行关联。单据类型还可注册一些扩展类(如交易类型扩展类、流程用户组规则器),保存在单据类型子表中。1.1.1元数据实体NC从5.5版本开始支持元数据建模。对象元数据是对业务实体对象及其相互间关系的抽象描述,也称作实体对象模型。它为系统运行中的数据提供了更加确切的语义。元数据业务模型中的一些关键概念包括模块,组件,实体,值对象,业务接口,属性,业务操作,方法,参数,元素,容器,IBean等。业务对象元模型是按照模块-组件-实体三层关系进行组织的。对于流程平台而言,单据类型必须与元数据主实体进行关联。同时,元数据实体还需要实现流程平台业务接口IFlowBizItf、IPfBillLock和IHeadBodyQueryItf,并进行属性的映射。1.2交易类型是对单据类型(交易)的分类。最明显的例子是报销单据,可以把不同类型的费用报销进行细分,如差旅报销、部门活动报销、交通费报销等,这些细分的类型就可以理解为交易类型。可直接理解为是交易的细分,基于横向基于行业/企业的不同、纵向基于企业的不同发展阶段的不同而不同。扩展交易类型只是在单据类型支撑的功能模型基础之上再描述一些规则、模板、流程的差异,所以是用户可定制的。交易类型区分全局级与集团级。预制的交易类型在全局级,所有集团均可用;用户新增的交易类型只做到集团级。由功能点客户化-流程平台-交易类型管理维护,如图所示。交易类型支持扩展属性。如果交易类型有自己的特殊属性,则还需把交易类型的扩展编辑器类、扩展业务类注册在其所属的单据类型上。交易类型可发布为新的功能节点。1.3单据函数是对服务于单据的业务功能的抽取,是进行业务逻辑处理的组件。可用于动作脚本和条件判定。由功能点客户化-二次开发工具-单据管理-单据函数注册维护,如图所示。项目说明: 函数说明:函数所实现的功能的说明性文字,建议尽量说明清晰,以便于系统实施。如果以“”括起来,表示自定义函数。 返回类型:该功能函数返回数据的类型。 函数类名称:功能函数所属的全路径类名。 函数方法名称:该函数在类中所对应的方法名称。 函数参数:该函数正确调用所需的参数。参数的格式见下。 是否组件:标识该方法是否为组件。单据组件一般是没有返回值的一段业务处理逻辑,它不可应用于审批条件、动作约束、工作项配置中。1.3.1参数格式函数参数以逗号“,”隔开,每个参数具有特定的格式。参数分为运行参数、属性参数和VO参数三种。每个参数还可定义是否为数组类型。格式示例:nc.vo.pub.AggregatedValueObject:01nc.vo.pub.AggregatedValueObject:01,OBJuser:OBJECTnc.vo.po.OrderVO:21&sAction:STRING,nc.vo.pub.AggregatedValueObject:01注意:VO参数和属性参数的实际值由工作流上下文在运行时赋予。运行参数可在动作脚本中赋值。1.3.2返回值函数方法返回值支持的类型有:UFBooleanStringIntegerUFDouble1.4单据动作及脚本是对单据业务处理行为的抽象,具有可定制的动作脚本。业务单据正是通过单据动作与流程平台进行交互的,从而驱动流程的流转。可对应于单据UI上的某个菜单。由功能点客户化-二次开发工具-单据管理-单据动作管理维护,如图所示。项目说明: 动作选择:提供四种动作各供选择:保存、审核、推式动作、其它。保存、审核是单据的基本动作,动作代码有严格规定;推式动作表示该动作可被其他单据推式驱动。 动作编码:当前单据动作的编码。注意,当动作选择为“保存”时,动作编码必须为以“SAVE”结尾;而当动作选择为“审核”时,动作编码必须为以“APPROVE”开头。长度限制为20个英文字符。 动作名称:当前单据动作的显示名称 动作执行前提示:如此处输入文字,则在该动作被触发时,会弹出一个带有提示性文字的对话框,如:是否保存? 动作控制:提供三个选项:动作可配置、进行驱动配置、进行约束检查。勾选“动作可配置”,表示该动作可在流程配置中进行配置;勾选“进行驱动配置”,则该动作在流程配置中可以对其他单据动作进行推式操作,驱动其他单据;勾选“进行约束检查”,则此动作要根据业务流程的配置在执行前进行条件检验,满足条件动作才执行,否则就不执行。动作脚本编辑由功能点客户化-二次开发工具-单据管理-单据动作执行脚本维护,界面如下图所示1.4.1单据动作组对单据动作的分组,一个动作组下可以包含多个单据动作。由功能点客户化-二次开发工具-单据管理-单据动作组管理维护,如图所示。2审批流平台审批流平台为单据的审批处理提供平台支持。基于任务驱动的执行引擎使得流程流转与用户交互分离开来,具有更强的健壮性。支持分支/汇总(Split/ Join)、优先级(Priority)、子流程(Subflow)、可指派、抢占/会签、消息配置、代理人、弃审等流程特性。在5.02版本中,流程平台还加强了短信和邮件的移动应用功能。2.1流程定义NC的审批流定义模型遵循WfMC的XPDL1.1过程定义规范,具有严格的语义和丰富的描述能力。流程定义在集团建立和管理。流程定义三要素:单据(或交易)类型+组织单元+流程启动者。(该组织单元必须为元数据实体上的主组织类型)审批流定义按照单据类型(+交易类型)进行了分类。用户可以基于单据类型定义审批流,也可以基于单据类型+交易类型来定义审批流。一个单据类型(+交易类型)下可以定义多个审批流。2.1.1流程模型一个审批流程的定义由诸多的元素共同构成。过程(Process)由许多被执行的活动和一系列决定活动执行次序的转移构成。活动(Activity)审批流程中的一个个步骤统称为活动(或任务),包括制单活动、审批活动、虚活动、子流程。第一个拖放到审批流设计器中的参与者所属的活动为制单活动。虚活动主要用于对分支/汇总进行建模。子流程可实施流程重用。参与者(Participant)活动的一个属性,即活动的执行者,是对系统中组织模型的引用。目前支持操作员、角色和动态组织三种类型的参与者(HR岗位就是一种动态组织实现,具体扩展机制可参考附录)。第一个拖放到审批流设计器中的组织元素为制单活动的参与者。在流程设计器中,活动和参与者由同一个图元来展现。转移(Transition)活动间的流转,是两个活动间的有向连接。每个转移都具有转移条件(Condition),只有满足条件的转移才可流转。转移条件表达式支持:审批结果表达式、单据函数表达式、单据项目表达式(对于表体项目还支持统计函数:最大值MAX、最小值MIN、乘积MUL、和SUM、平均值AVG)、元数据表达式。每个转移还具有优先级(Priority),优先级高的转移分支将被优先选择。分支/汇总(Split/Join)活动具有前驱条件(Join)和后继条件(Split)两个属性,可通过Split/Join-AND/XOR属性组合为过程的选择、并行结构进行建模。加上顺序和循环,这四个基本结构就可描述大多数过程结构。同时,审批流还支持两种反向流转模式:驳回和弃审。抢占和会签(Completion Strategy)审批活动的一个属性。会签:只有审批活动的参与者中所有用户完成审批后,该审批活动才能结束。抢占:只要审批活动的参与者中任何一人完成审批后,该审批活动即结束。可指派(Performer Dispatch)审批活动的一个属性。如果审批活动定义了可指派属性,则该审批活动的实际执行者需要从其参与者中手工选择。指派的分支优先被选择。查询当前环节的后继可指派审批活动时,预先判断当前环节到指派活动的转移路径的条件。不再返回不符合转移条件的可指派活动。判定时,先忽略审批结果条件表达式;同时审批对话框中选择“批准”或“不批准”会对指派对话框产生联动影响。流程限定(Participant Relation)审批活动的一个属性。用于设定前后两个活动的参与者之间的关系。统一为参与者“限定模式”,内置通用模式(动态限定(更正为费用承担者)、上级限定、同公司、同部门、同公司且同部门),并支持单据扩展(比如“与调入行同公司”、“与调出行同公司”等)。代理人(Agent)审批活动的一个属性。这里设置的代理人为静态代理人。制单活动不可设置代理人;只可为参与者为操作员类型的审批活动设置多级代理人;代理人只可为操作员。还可以在流程管理-代理人设置处为不同单据类型统一设置动态代理人。消息配置(Message Config)审批活动的一个属性。可为每个审批活动配置额外的消息通知机制。即在满足触发条件时,以消息、短信、邮件方式通知相关人员。可以为每个审批活动配置额外的消息发送机制。对于制单活动,发送条件必须为“无条件”。对于审批活动,发送条件可为“无条件”、“审核通过”和“审核不通过”三种。在消息内容中我们可以使用宏表达式来获取一些业务相关数据。目前可从系统获取的宏对象变量仅有:operater=当前登录操作员PKvo=当前操作的单据VOvos=当前操作的单据VO数组paravo=当前单据的审批流参数VO 参数VO可直接访问的变量列表。这样,在我们的宏表达式中可以直接引用这些对象变量,并调用这些对象的方法(注:完全支持Java语法)。比如:宏表达式含义%paravo.m_billNo%当前单据号%vo.getParentVO().getAttributeValue(“dwbm”)%当前单据VO中的某数据%paravo.m_workFlow.getCheckNote()%当前审批步骤的批语2.1.2流程用户组NC5.5中流程定义的参与者支持“用户”、“角色”、“动态组织”(目前已有HR人员组、HR岗位、虚拟角色)。NC6.0需要增加“流程用户组”。支持离散型、规则型两种“流程用户组”。离散选取用户或角色或用户组或角色组;规则型“流程用户组”需要基于单据类型定义。定义一个规则型“流程用户组”时,需要指定单据类型、依赖属性(由规则器决定是否需要指定)、规则器。规则器系统默认两种:“上级主管”、“员工”,这两种规则器都需要指定依赖属性(比如H_pk_corp, H_pk_dept)。并支持代码扩展的规则器,注册在bd_billtype2辅表中。(注:这种规则器的实现方式类似于NC5.5中的参与者限定器。)【注意】流程用户组不能作为流程启动者。2.1.3多版本1) 流程定义的三个状态:“未启用”、“启用”、“停用”。2) 新增流程定义保存时,版本号默认为1.1。以后每次修改后保存,自动增加0.1(【注意】应该严格保证某单据(或交易)类型下,所有流程定义版本唯一)。新建流程的处于“未启用”状态。3) 流程停用后不能够使用,已经生成流程实例的流程能够还是按照原有定义运行。4) 如果修改的流程定义已经有流程实例,则保存时自动产生新的流程定义。同时停用旧的流程定义。5) 如果流程定义没有生成实例,修改流程定义的话,就只更新版本号,但不保存以前的流程定义。6) 能够将停用的流程定义重新启用。7) 停用的流程是不能修改的。8) 不允许删除已有流程实例的流程定义。2.1.4定义查找算法由于可以在单据类型和交易类型上都定义流程,所以流程启动时优先选用交易类型上定义的流程。2.2执行引擎执行引擎运行过程中会产生如下对象:流程实例、活动实例、任务实例、工作项,并对它们进行持久化处理。工作流引擎支持两种反向流转模式:驳回和弃审。驳回是审批人直接将单据退回到制单人,导致单据处于自由态,但流程实例仍运行中。制单人收到驳回工作项,双击可打开单据UI。制单人修单后提交,会新启实例,重新产生工作项;若是其他人修单(更改了制单人),如果找到审批流定义,则新启实例,删除旧实例。如果找不到审批流定义,则删除旧实例,走直批模式。弃审是审批人审批完成后,再撤销自己的操作。有两种弃审模式:逐级弃审和一弃到底,可以在流程定义上进行选择。弃审是通过调用“UNAPPROVE”动作来实现的,具有特殊的动作脚本。第一个审批人弃审会将单据置为自由态。修单后再提交,会新启实例,旧实例被删除。必须在单据审批完成后才可一弃到底,一弃到底将单据置为自由态,会向制单人发送通知消息,修单后再提交不会新启实例。2.3工作项工作流引擎将产生的工作项直接推给用户,同时用户登录后可选择优先执行哪些任务。审批人出差后,审批工作项将会分配到代理人。2.3.1设置动态代理人图 1替换新截图?集团管理员可使用该节点为所有集团用户设置代理人。普通用户可使用该节点为自己设置代理人。个性化中心也可设置登录用户的代理人。2.3.2工作项消息定制活动实际执行过程中产生的任务项,表现为待办消息。工作项的标题可以根据不同的单据类型进行定制。标题内容可以由五个部分(单据项目、单据函数、元数据、流程信息、自定义文本)拼接而成。如图所示。2.3.3工作项的处理提供对工作项的管理(邮件催办、转交、加签);催办的逾期时限支持:全局级流程级提交态制单后通过执行单据动作SAVE/EDIT将单据送审。提交态-进行中送审后只要有人已审核,即为进行中进行中-完成态流程实例按照定义一步步审批,直至正常流转结束。完成态-自由态一弃到底自由态-完成态提交即审批通过完成态-进行中逐级弃审提交态-自由态驳回到制单人进行中-自由态1 驳回到制单人;2 流程流转到制单活动;3 第一个审批人弃审在各个状态下对单据的业务处理(比如是否可删除、是否可编辑等)由业务组自己控制。流程正常结束时,单据如果审批通过,会给制单人发送“审批通过”的通知消息;单据如果审批不通过,则给参与流程的所有人员发送“审批不通过”的通知消息。2.5.1单据审批状态的回写单据审批状态在流程流转过程中需要回写到单据VO对象以及单据数据库表中。审批流流转过程中,需要把单据的审批状态回写到单据数据库表以及单据VO中。 必须让元数据实体实现业务接口IFlowBizItf。2.6流程管理中心提供对流程实例的监控(终止、挂起/恢复);可根据流程定义查询正运行、已完成的流程实例、启动新流程实例。可查询所有已审批通过、审批中、提交但尚未审批的单据,而不仅仅是查询工作项。流程分析流程实例、活动执行时间的分析报表。对于系统中运行的审批流程实例,可监控它们现在所处的状态,并强制终止。同时还可查询到某单据的审批状态。当前操作员可查询的审批记录受审批查询权限(由审批流用户管理功能节点维护)的限制。图 2流程实例查询图 3流程图与工作项管理3业务流平台NC业务流平台设计思想是基于以下认识:业务流程是由单据组成的,而单据是由动作驱动的,动作又是由组件组成的;单据、动作以及组件可以由业务系统开发实现。NC业务流提供一种平台机制,在此可以根据用户的实际业务重新组织这些单据、动作及组件,包括每种单据的来源单据是什么、又驱动生成哪些单据、完成什么动作、动作生效的约束条件以及动作生效后将配置哪些组件等,以此更好满足企业个性化的需求。图 4普通采购流程业务流程的最大特点是流程实例中上下游单据是不同的对象,id不同,单据类型可能相同也可能不同。业务流程引擎要处理上下游单据对象之间的数据映射、转换、合并或分单。工作流程中可以包含审批流程;业务流程中可以包含工作流程。3.1业务流程V6中业务流程为集团级,必须属于某个集团,各集团可以定义自己的业务流程。产品发版时可预置业务流程。比如集中采购流程:请购单-采购订单-到货单-入库单-采购发票-应付单。由功能点客户化-流程平台-业务流程管理维护。3.2流程配置流程配置定义了单据之间的动作驱动关系(推式)和来源参照关系(拉式)。业务流不是由流程实例来驱动流转,由于涉及到单据数据之间分拆和合并,难以监控到整个业务流的运行情况。一个业务流程由相互关联的多个单据组成,通过定义单据间来源与动作驱动关系来定义业务流程,由功能点客户化-流程平台-流程配置维护。项目说明: 单据类型:该字段为参照选择,参照内容为NC安装过的功能模块的所有业务单据。每个业务类型每张单据只能选择一次。 交易类型:该字段为参照选择,参照内容为该行第一列选择的单据业务单据类型下的交易类型。每个业务类型单据的每个交易类型只能选择一次 参照单据:勾选此项,表示该单据的业务数据可以参照其他单据(来源单据)的数据生成。勾选此项,在流程配置中才可配置该单据的来源单据,否则不可配置。 自制单据:勾选此项,表示该单据的业务数据可以手工输入。 上游消息:上游消息是下游单据完成某种处理之后,向上游单据的操作员发出的通知消息。 下游消息:上游单据审批通过后,则单据可以被其下游单据作为参照,会给下游单据的参与者发送拉式消息。上游单据的推式动作执行完后会驱动下游单据的动作,并给下游单据的参与者发送推式消息。 推式消息流程配置中动作驱动如果产生了下游单据,且下游单据尚未走审批流,则给下游单据的负责人发送这种消息。消息处理方式为直接打开该单据UI进行维护。 拉式消息流程配置中如果某单据审批通过,则给下游单据的负责人发送这种消息。消息处理方式为打开该单据UI,并参照上游单据。 目的业务流程:参照列出了当前登录公司和集团的业务流程。在定义VO交换规则时,新增系统变量DEST_BUSITYPE。实际交换时,该变量的取值=当前业务流程下该目的单据配置的值。【注意】参照单据、自制单据两项可以同时选择,表示该单据在本业务流程中既可以参照来源单据生成单据数据,也可以手工制单。但此两个选项必须选择其一。3.2.1参与者配置设置下游消息的接收者为该组织中属于该角色的相关用户。如果用户注册了IPfPersonFilter2接口的实现类,则优先使用此过滤器返回用户PK数组,详见3.6.103.2.2单据来源设置是对当前单据类型的数据来源单据进行定义的界面。被定义为当前单据来源单据的业务单据,可以在业务流程中为当前单据提供业务数据(使用单据VO交换),以保持业务数据的一致性。在“单据来源配置”流程向导界面,单击“配置”,进入单据来源配置操作界面。在此操作界面中,用户可以设置来源单据并定义约束条件图 2-3单据来源设置3.2.3动作执行前约束设置配置业务单据的单据动作(可能为单据界面上的某些功能按钮)在发生前需要进行的条件检查。若发生的业务满足定义的条件,则该单据动作将被执行,否则不允许执行。流程配置通过本步骤,即可实现对当前业务环节的事前控制。图 5动作约束配置3.2.4 动作执行后约束设置配置业务单据的单据动作(可能为单据界面上的某些功能按钮)在发生后进行的条件检查。若业务发生后满足定义的条件,则流程将继续执行,否则不允许此动作执行。流程配置通过本步骤,即可实现对当前业务环节的事后控制。图 2-5 动作约束后配置项目说明:见3.2.4 动作约束前配置。3.2.5动作事件控制配置在“动作事件控制配置”流程向导界面,单击“配置”,进入动作事件控制配置。单击选择左侧单据动作,右侧列示该动作的代码,可以手工编写代码,也可以通过“应用函数”、“常用语法”、“数据类型”、“VO类型定义”来编写代码。图 2-6 动作控制配置项目说明:应用函数:选择应用函数,可以将直接将NC业务单据的函数插入到单据动作中。常用语法:提供了JAVA标准语法的快速选择。数据类型:包括JAVA标准数据类型及NC定义的各种数据类型。VO类型定义:包括NC业务单据的VO类型。3.2.6 动作驱动配置图 2-7 消息驱动配置项目说明:目的单据:在当前单据动作完成时,将要产生动作的单据。操作员相关:选择与操作员或组有关,则该动作仅在所选择的操作员或组执行时,才会“推”式生成目的单据的动作。动作:参照选择,选择目的单据可以“推”式生成的动作,该类动作在单据动作管理中被定义为“推式动作”3.2.7上游消息配置图 2-7 上游消息配置3.2.8 VO交换用于定义该业务流程中,不同单据(或交易)类型之间的VO交换规则。业务流程必须属于某个集团,所以该处定义的业务流程均为集团级。3.2.9流程显示图 2-9 流程显示项目说明:流程示意图中,红色箭头线表示“拉”式生成(单据来源)的单据数据走向,即上游单据为红色箭头所指单据的来源单据;灰色箭头线表示“推”式生成(消息驱动)的单据数据走向,即上游单据某动作将驱动产生灰色箭头所指单据的某动作。3.3单据VO交换3.3.1交换规则单据VO之间存在相互转换的场景,流程平台提供了定义单据元数据实体间的相互转换规则的机制。转换规则保存在表pub_vochange以及其子表pub_vochange_b中。VO交换规则可以在单据类型和交易类型之间相互定义。VO交换规则区分集团级和全局级,可以定义在业务流程上也可以定义为与业务流程无关。V6流程平台中可以在两个功能点管理VO交换规则: 功能点客户化-流程平台-流程配置 流程向导中的VO交换见3.2.8 功能点二次开发工具-流程配置-数据交换管理这里可以定义与业务流程无关的VO交换规则,可以区分集团级和全局级。新增VO交换需要选择来源以及目的单据类型,选择界面如下:VO交换的编辑界面:表格编辑界面:NC6.0只支持元数据实体间的交换,交换规则示例如下:交换规则类型说明pk_corp-pk_corp映射目的表头属性来源于源表头属性vapproveid-details.pk_goods映射目的表头属性来源于源表体属性makedate-SYSDATE赋值目的属性来源于环境变量details.mny-totalmny映射目的表体属性来源于源表头属性details.price-details.price映射目的表体属性来源于源表体属性totalmny-iff()公式目的属性来源于公式billno-getColValue()公式目的属性来源于公式xxx-N赋值字符串常量abc-23.56赋值数值型常量details.pk_jldw-getKJQJ(H_b)公式目的属性来源于自定义函数3.3.2前台交换单据VO交换可发生在前后或后台,并在交换后可进行特殊的业务处理。调用PfUtilUITools中的方法,单张单据VO交换调用方法/* * 进行前台VO交换 * param sourceBillType 源单据类型PK * param destBillType 目的单据类型PK * param sourceBillVO 源单据聚合VO * return 目的单据聚合VO * throws Exception */public static AggregatedValueObject runChangeData(String sourceBillType,String destBillType,AggregatedValueObject sourceBillVO) throws BusinessException批量交换调用方法/* * 运行前台VO数组交换 * param sourceBillType 源单据类型PK * param destBillType 目的单据类型PK * param sourceBillVOs 源单据聚合VO数组 * return 目的单据聚合VO数组 * throws Exception */public static AggregatedValueObject runChangeDataAry(String sourceBillType,String destBillType, AggregatedValueObject sourceBillVOs) throws BusinessException3.3.3后台交换调用PfUtilTools中的方法单张单据VO交换调用方法/* * 进行VO交换 * param srcTranstype 源交易类型PK * param destTranstype 目的交易类型PK * param sourceBillVO 源单据聚合VO * param paraVo 工作流参数VO * return 目的单据聚合VO * throws BusinessException */public static AggregatedValueObject runChangeData(String srcTranstype, String destTranstype,AggregatedValueObject sourceBillVO, PfParameterVO paraVo) throws BusinessException批量交换调用方法/* * 运行数据交换类(VO数组) * param sourceBillType 源单据类型PK * param destBillType 目的单据类型PK * param sourceBillVOs 源单据聚合VO数组 * param paraVo 工作流参数VO,仅用于获取一些系统变量 * return 目的单据聚合VO数组 * throws BusinessException */public static AggregatedValueObject runChangeDataAry(String sourceBillType,String destBillType, AggregatedValueObject sourceBillVOs, PfParameterVO paraVo) throws BusinessException3.3.4单据VO交换前后处理接口由元数据实体实现业务接口IVoChangeAdjustItf。3.4参照制单需要进行参照制单的交易类型,需要在流程配置首页选择 “参照制单”选项。在流程配置向导中的单据来源设置界面是对当前单据类型的数据来源单据进行定义。被定义为当前单据来源单据的业务单据,可以在业务流程中为当前单据提供业务数据(使用单据VO交换),以保持业务数据的一致性。调用PfUtilClient里的方法。3.4.1获得业务类型用于获取某单据类型配置的所有业务类型(流程),以便用户可以选择不同的业务流程。public static void retBusinessBtn(ButtonObject inoutBoBusiness, String groupId, String billType)功能:返回指定公司、某单据类型配置过的所有业务类型,并作为“业务类型”菜单按钮的子按钮。子按钮的tag被赋值为“业务类型PK”。参数说明:参数名含义及取值inoutBoBusiness待填充的“业务类型”菜单按钮groupId集团PKbillType单据类型PK3.4.2参照制单 获得“新增”子按钮获得某业务类型下,该单据所配置的来源单据,以便参照制单。/* 为新增按钮添加子菜单按钮* 这些子菜单按钮即为可参照的来源单据* 获得某单据类型(或交易类型)在某业务类型下配置的所有来源单据类型* param boAdd 新增按钮* param groupId 公司PK* param billOrTranstype 当前单据类型(或交易类型)PK* param boBusiness 业务类型按钮(为空时添加与该单据类型(或交易类型)相关的所有业务流程下的来源单据类型)* param includeBillType billOrTranstype为交易类型时候,是否返回所属单据类型的来源*/public static void retAddBtn(ButtonObject boAdd, String groupId, String billOrTranstype,ButtonObject boBusiness, boolean includeBillType)功能:返回指定公司、单据类型、业务类型的来源单据类型,并作为“增加”菜单按钮的子按钮。子按钮的tag被赋值为“单据类型PK:业务类型PK”。当busitype为空时则添加所有与此单据类型相关的业务类型下的来源单据类型public static void retCopyBtn(ButtonObject boCopy, String corpId, String billOrTransype,boolean includeBillType)功能:为按钮boCopy添加子菜单按钮,获得该单据在所有相关业务类型下为自制单据的按钮,子按钮的tag被赋值为 “MAKEFLAG:业务类型PK”。/* * 返回某单据类型(或交易类型)某动作组的所有动作,并作为子按钮填充 * param boElse 其他按钮 * param billType 单据类型(或交易类型)PK * param actionStyle 动作组编码 */public static void retElseBtn(ButtonObject boElse, String billType, String actionStyle)功能:返回某单据类型(或交易类型)某动作组的所有动作,并作为子按钮填充 子按钮响应1如果某单据类型配置为“自制单据”,则会出现“自制单据”的子菜单。2对于通过平台获取的来源单据按钮,可以一种统一的方式来处理响应。public static void childButtonClicked(ButtonObject btnObj, String pkGroup, String pkOperator, String currentTransType, Container parent, Object userObj,String sourceBillId)功能:主要是对单据来源 子菜单的响应。包括:1、查询来源单据;2、显示来源单据,并进行选择;3、获取选择的来源单据;4、单据VO交换。参数说明:参数名含义及取值

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论