工作流任务数据一致性解决方案应用案例

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

工作流任务数据一致性解决方案案例

冯文化黎庆剑

一、系统概述

工作流系统和业务系统的部署关系

核心征管系统包括纳税人管理、申报征收、发票管理、风险管理等4个业务子系统和1个工作流子系统。它们在部署上分成前端和后端,前端是一个统一Web应用,工作流引擎在后端,与其他子系统分布部署。各子系统通过集成平台联合在一起。

应用部署逻辑架构如下图所示。

工作流接口调用序列图

以推送任务为例,其序列图如下:

1)服务消费方通过ESB调用业务子系统的业务服务,业务子系统执行该业务服务;

2)业务子系统业务处理结束后,再通过ESB调用工作流子系统的推送任务服务;

3)工作流子系统的推送任务服务结束后返回消息到业务子系统,业务子系统把相关处理

结果最终返回给服务消费方。

二、任务数据一致性方案设计

方案概述

本方案采取任务对账机制,解决工作流异常时造成的业务系统和工作流系统任务数据不一致的问题。这是一种事后的补救机制。

这种机制的目的是,当业务成功、流程失败时(约定系统一般先处理业务,再处理工作流),系统允许任务重做,保证任务可以再次被正确办理。

方案思路

在核心征管的后端子系统和工作流子系统中分别记录任务的基本信息,用来进行任务对账。业务系统,对账信息记录在“任务对账信息表(BIZ_WF)”里;工作流系统,记录在“流转历史表”里,如下图所示:

核心征管工作流数据库

核心征管业务数据库(前端)核心征管业务数据库(后端)

任务的对账机制保证任务重做时,业务表单的相关信息被自动带入,不必重新填写,直接提交进行工作流操作。

任务对账信息表

任务对账信息表(BIZ_WF)、工作流的流转历史表里的任务对账信息应包含以下内容:

对账信息的记录

1、业务系统的任务对账信息表BIZ_WF:

1)业务调工作流而工作流异常时,业务系统首先把异常任务对账信息记录到log日志中,然后再向“任务对账信息表”里插入该对账信息。

2)异常任务被再次提交,成功处理后,业务系统首先把处理信息记录到log日志中,然后再向“任务对账信息表”里插入该信息。

以上log日志比BIZ_WF表里的信息多个字段:记录类型:【1(异常保存),2(重做删除)】。

2、工作流系统的流转历史表:

工作流的每步流转,工作流引擎向“流转历史表”中插入任务对账信息。

三、任务对账过程说明

任务对账,分任务办理时系统自动对账和手工对账两种方式。

手工对账是指当工作流异常但在业务系统里的“任务对账信息表”里没有写入异常对账信息时,系统管理员使用任务对账用例工具通过对日志文件、工作流的流转历史表里的信息对比,在“任务对账信息表BIZ_WF”中重新插入对账信息的过程。

任务办理时系统自动对账是指在异常任务在重新办理时,系统根据流程实例号、工作项项代码等信息通过“任务对账信息表”里的异常对账信息进行对账而重新办理任务的过程。

下面描述一下手工对账和自动对账的过程。

手工对账过程

手工任务对账,系统管理员通过一个独立的对账用例完成。

手工对账过程如下:

1)根据时间段解析异常任务对账信息日志文件(比如bizlog_20141010_01.log),与BIZ_WF里的信息对比,如果BIZ_WF表里缺少记录则自动补录异常对账信息;

2)如果log中的异常任务的对账信息为“状态不明(即为工作流超时异常)”,则根据流程实例号、工作项代码再到工作流系统中的流转历史表里进行信息对账,矫正BIZ_WF表里的“状态不明”为“正常”或者“异常”。

对账情况如下表所示。

任务办理自动对账过程

通过待办列表办理任务的对账过程如下图所示:

上图中的“对账”过程是系统根据“工作项代码”到BIZ_WF表里查询流程状态的过程。

1)系统列出待办任务列表;

2)用户选择待办列表里的一条任务进行办理;

3)系统根据流程实例号、工作项代码到“任务对账信息表”进行对账,如果为“流程异

常”,则走重做流程,否则正常处理;

4)重做任务,系统自动加载显示已填的业务表单数据,并有“重做提醒”;

5)用户直接提交重做任务,系统不做业务而直接推送任务;

6)任务重做成功后,系统自动删除BIZ_WF该条对账信息,重做任务结束。

相关文档
最新文档