1、Lombardi 技术进阶(源自中国区 Lombardi 客户案例)自 IBM 收购 Lombardi 以来,软件部在国内推广 Lombardi 已经 9 月有余。作为 CDL 的Lombardi 产品研发团队,我们前后参与 30 多个售前 POC 案例和多个售后项目实施,在此过程中积累了一定的技术经验,希望能抛砖引玉,与各位一起探讨。考虑到技术积累的持续性,本文内容将不断更新。本文分两部分。第一部分是从售前案例中提炼的工程文件的介绍及运行说明。第二部分是从售前/售后案例中归纳的、有普遍意义、有一定难度的技术点。1. Lombardi 工程文件简介1.1 研发领料电子流.twx研发领料电子流覆
2、盖 Lombardi 技术点相对较多,业务需求实现完整,可以在未来的 POC案例中复用。运行说明如下:(1)预定义 user- 研发人员: employee01, employee02- 部门主管: manager01, manager02- 信息安全专员: security01, security02- 副总: vice01, vice02, vice03- 物控: material01, material02(2)预定义 group- hw_managers: manager01, manager02- hw_security: security01, security02- hw_vic
3、e: vice01, vice02, vice03- vice_managers: vice01, vice02, vice03(3)在 tw_proc 数据库创建审批记录表(create.ddl)(4)启动流程实例:运行 Human Service “填写研发领料申请“1.2 流程实例管理演示.twx流程实例管理主要实现 3 个技术点:My Request,My Observation,Task Reassignment(参见技术点#7, #8, #9) 。运行说明如下:(1)预定义 user:employee01, employee02(2)运行几个 Demonstration Proce
4、ss 流程实例:一部分停留在节点 Complete Secion 1,另一部分则完成整个流程实例。(3)My Request:以 employee01 或者 employee02 登录 Process Portal,点击 My projects-MyRequests,可以看到由登录用户启动的所有 Demonstration Process 实例。(4)My Observation:以 tw_admin 登录 Process Portal,点击 My projects-My Observations,可以看到所有 Demonstration Process 实例,因为 tw_admin 在 De
5、monstration Process 的 start 节点就被设为该流程的 observer。(5)Task Reassignment:启动几个 Demonstration Process 流程实例,以 employee01 来claim 几个任务,然后启动 Human Service TaskReassignment,可以将 employee01 的任务reassign 给其他人。1.3 统一待办.twx统一待办要求 Lombardi 在创建任务时,能自动将新任务推送到 custom 任务库;Lombardi完成任务时,又能自动将 custom 任务库对应的任务清除。由于 Lombardi
6、 没有类似 WPS的 Event Handler 机制,我们探索出一种基于 Timer 和 Adhoc Process 的实现机制。该工程文件是这一方法的完美实现,在流程结构上考察了并行和会签结构,在任务分配上考察了Lane Participant,Custom 和 List of Users 等方式。运行说明如下:(1)预定义 user:l00171012,s53871,employee01,employee02(2)预定义 group- hw_ldap: employee01, employee02(3)由于没有实际 Custom 任务库,我们对任务推送和删除做了如下模拟:任务推送为被推送
7、任务的 Subject 添加前缀“:” ,任务删除则将被删除任务的前缀“: ”删除。1.4 测试环境清理.twx测试环境清理是我们为清理 SVT 环境而开发的一些小功能,其中流程实例删除和Performance Data Warehouse 清理可以复用。运行说明如下:(1)启动 Performance Data Warehouse,并将流程 ProcessEngineHA 的 tracking definition 发送到 Performance Data Warehouse。(2)在 tw_proc 数据库创建流程执行轨迹表(createTrackingTable.ddl) 。(3)运行
8、Human Service “WLE SVT 环境清理” 。2. Lombardi 技术点列表序号 技术点 分类 详细描述 实现方法1 复杂会签 Workflow 副总会签,60%同意,则审批通过。 流程实例管理演示.twx 流程:研发领料电子流 节点:计划外领料会签 属性:Step-Multi Instance Looping2 分单审批 Workflow 一张申请单包含多种物料的申请,不同种类的物料需要不同的人审批。流程实例管理演示.twx 流程:研发领料电子流 节点:系统自动分单(分单规则) ,物控分单审批(会签) 属性:Step-Multi Instance Looping,Routi
9、ng3 条件并发 Workflow 对并发分支设置条件,运行时,只有满足条件的分支才会被执行。 流程实例管理演示.twx 流程:研发领料电子流 节点:并行审批 属性:Implementation4 联想输入 UI design Coach 上的控件可通过 AJAX 和 Server 交互 流程实例管理演示.twx Human Service:填写研发领料申请 Coach:填写基本信息 Control:Custom HTML(“是否信息安全风险评估”下面)5 历史审批记录 UI design 审批者可看到所有已经发生的审批记录,包括自己的和他人的;并发审批(包括会签)时,后审批者可看到先审批者的
10、审批结果;流程实例管理演示.twx Human Service:Review(写) Human Service:ShowApproveRecords(读)6 统一待办 Workflow Lombardi 创建任务时,自动将新任务推送到 custom 任务库; 统一待办.twxLombardi 完成任务时,自动将 custom 任务库对应的任务清除。7 My Requests Process Monitor用户在 portal 上可以看到自己提交的所有申请,并查看申请单的详细信息和审批路径流程实例管理演示.twx Human Service:My Requests Integration Ser
11、vice: Get Instances Requested By User注:增加一个记录 requestor 的流程变量,并将其设为 available in search,参见 Demonstration Process 的 request.requestor。8 My ObservationProcess Monitor用户在 portal 上可以看到自己被 cc 的所有申请,并查看申请单的详细信息和审批路径流程实例管理演示.twx Human Service:My Observations Integration Service: Get Instances Observed By U
12、ser注:增加一个记录 observer 的流程变量,并将其设为 available in search。可以在流程的任意节点对 observer 增加新的 user,表示对该环节设定observer。参见 Demonstration Process 的observer。9 流程运行时管理Administration 流程管理员可以对流程实例及任务进行各种管理操作,例如: 终止流程实例 Reassign any task to any one流程实例管理演示.twx Human Service:Task Reassignment Integration Service: GetTasksByU
13、ser注:可增加一个 administrator 的流程变量,并将其设为 available in search,将来作为 search 的一个条件。10 流程实例删除 Administration Lombardi 仅提供删除流程实例的存储过程LSW_BPD_INSTANCE_DELETE,且 1 次仅能删除 1 条实例。为使用方便,特开发一个 Human Service,提供如下功能:测试环境清理.twx Human Service:Delete Process Instances 删除所有流程实例 删除指定流程的流程实例11 清除Performance Data WarehouseAdministration Lombardibi 不提供清除 Performance Data Warehouse 的功能。为使用方便,特开发一个 Human Service,可清除 Performance Data Warehouse 已经 tracked 的所有业务数据,但是不清除 tracking definition。测试环境清理.twx Human Service:WLE SVT 环境清理 节点:Initialize - Clean PDW - Loop - All deleted?