首页> 中国专利> 异构系统间不同工作流进行任务处理的方法

异构系统间不同工作流进行任务处理的方法

摘要

本发明公开了一种异构系统间不同工作流进行任务处理的方法,通过主系统和从系统间预先构建统一任务框架,所述统一任务框架封装任务基本属性,并设置有任务注册API、任务获取API和任务注销API。该方法解决了用户不用在多个系统来回切换登陆的繁琐体验,也解决了了多个异构系统之间的任务统一展现查询统计,并且对任务的业务处理调用原来系统的处理大大降低了整合的难度。

著录项

  • 公开/公告号CN102903030A

    专利类型发明专利

  • 公开/公告日2013-01-30

    原文格式PDF

  • 申请/专利权人 方正国际软件有限公司;

    申请/专利号CN201210371393.8

  • 发明设计人 姜楠;夏帮国;王长尧;

    申请日2012-09-28

  • 分类号G06Q10/06;

  • 代理机构苏州创元专利商标事务所有限公司;

  • 代理人范晴

  • 地址 215123 江苏省苏州市工业园区星湖街328号创意产业园7栋方正国际大厦

  • 入库时间 2024-02-19 17:23:11

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2016-10-12

    授权

    授权

  • 2013-03-13

    实质审查的生效 IPC(主分类):G06Q10/06 申请日:20120928

    实质审查的生效

  • 2013-01-30

    公开

    公开

说明书

技术领域

本发明属于异构系统数据处理技术领域,具体涉及一种异构系统间不同 工作流进行任务处理的方法。

背景技术

现有技术中构架不同的业务系统并且使用的不同的工作流产品,往往需 要用户在多个系统之间来回切换去审批任务,对用户来说是很大的不方便, 但是异构系统的之间的任务格式不同、处理方式不同、表单不同,导致整合 十分困难。

使用iframe内嵌页将其他系统的页面直接嵌入到一个系统中去,这 样做的会导致多个系统的任务没有办法统一查询、排序、统计,因为iframe 都不是一个系统的页面根本没有办法实现多个系统的任务在一起查询统计。

直接查询两个系统的不同的任务表,如果两个系统数据库不在一起就很 难操作,而且这样的查询需要多表进行合并查询性能消耗很大。

现有技术不采用任务统一处理的系统用户需要在多个系统之间不停的 切换登陆去处理任务。当采用iframe用来将各个系统任务读取到当前系统 中的时候没有办法对所有任务做查询统计。只能是每个系统里操作每个系统 的任务。采用读取多个数据库的方式,第一多个系统数据结构不一致导致 没有办法做查询,第二就算结构一致也需要对多个表做union操作之后 再查询任务,这样做会有巨大的性能消耗。本发明因此而来。

发明内容

本发明目的在于提供一种异构系统间不同工作流进行任务处理的方法, 解决了现有技术中异构系统工作流之间数据处理带来巨大的性能消耗等问 题。

为了解决现有技术中的这些问题,本发明提供的技术方案是:

一种异构系统间不同工作流进行任务处理的方法,其特征在于所述方法 中主系统和从系统间预先构建统一任务框架,所述统一任务框架封装任务基 本属性,并设置有任务注册API、任务获取API和任务注销API,所述包括 以下步骤:

(1)从系统将工作流中所有任务通过调用注册API向统一任务框架进 行注册,并提供相应从系统的任务系统表单URL以及单点登陆信息;(2) 主系统向统一任务框架发送任务获取请求,然后通过调用任务获取API从统 一任务框架中获取任务列表;(3)统一任务框架将任务列表传输给主系统, 当主系统进行任务处理时,主系统通过统一任务框架中任务系统表单URL 以及单点登陆信息发送到相应从系统进行逻辑处理;(4)当主系统任务处理 完毕时,统一任务框架通过任务注销API进行任务注销。

优选的,所述统一任务框架包括任务数据库,所述任务数据库设置有任 务表和任务操作人表。

本发明能够解决多个异构系统之间的业务流程任务,集成到统一个系统 中做统一处理。本发明采用一套统一的任务框架体系,封装了各种任务上的 基本属性,其他异构系统可以将自己系统生成的任务通过统一任务框架提 供的API(java代码、webservice、tcp)注册到统一任务框架中,这样我们 在一个系统上部署统一任务框架,就可以通过框架提供的查询统计功能对多 个系统的任务进行统一的处理,用户可以不用切换多个系统在一个系统中处 理多所有任务,还解决了现在方案中多系统任务不能统一查询,以及操作多 个数据库技术上的难度和性能消耗的问题。

对于任务的处理,框架在任务注册的时候需要任务系统表单URL以及 单点登陆信息,这样框架里查询出的任务在点击的时候可以进去原来系统的 处理页面完成任务的处理。同时告知任务框架任务处理完毕。这样也解决了 多个不同系统任务处理方式不一样导致的整合难度。

相对于现有技术中的方案,本发明的优点是:

本发明解决了用户不用在多个系统来回切换登陆的繁琐体验,也解决了 了多个异构系统之间的任务统一展现查询统计,并且对任务的业务处理调用 原来系统的处理大大降低了整合的难度。

附图说明

下面结合附图及实施例对本发明作进一步描述:

图1为服务器控制浏览器界面数据刷新的系统的架构图。

具体实施方式

以下结合具体实施例对上述方案做进一步说明。应理解,这些实施例是 用于说明本发明而不限于限制本发明的范围。实施例中采用的实施条件可以 根据具体厂家的条件做进一步调整,未注明的实施条件通常为常规实验中的 条件。

实施例

本实施例的统一任务框架封装提供了任务的注册口和获取口,其他异构 系统通过API层将任务注册到统一任务框架中,然后通过统一任务框架对任 务做出查询和统计,打开任务的处理还是调用各个系统的表单去自己处理逻 辑,在表单处理完成之后再次调用统一任务处理框架的API注销任务。

具体流程:

如图1所示,甲系统生成了任务task 1、2、3,乙系统生成了任务task 4、5、6,其中以甲系统为例,甲系统启动一个流程,并在甲系统产生一个 流程任务task1。甲系统调用统一任务框架,将产生的task1,转换成统一 任务框架提供的任务模板。

统一任务框架的任务分为任务信息和候选人信息(任务操作人的信 息),转换task1的信息成为统一任务。甲系统调用统一任务框架的 webservice接口将转换过的任务数据传送给统一任务框架。统一任务框架 将接收过来的任务存储进任务表和候选人表中。表的结构见下面的介绍。

统一任务展现层读取出任务数据展现到UI层。用户访问统一任务框架 中心,点击查看任务,弹出嵌入的原系统的处理表单完成任务的处理。甲系 统在完成任务之后继续调用统一任务框架注销任务。

统一任务框架数据库结构:

1、任务表字段:

"IDBASE"."FIXFLOW_RUN_TAKSINSTANECE"IS'运行时任务实 例';"FIXFLOW_RUN_TAKSINSTANECE"."TASKINSTANCE_ID"IS'任 务实例编号';

"FIXFLOW_RUN_TAKSINSTANECE"."PROCESSINSTANCE_ID"IS '流程实例编号';

"FIXFLOW_RUN_TAKSINS TANECE"."PROCESSDEFINI TION_ID" IS'流程定义编号';"FIXFLOW_RUN_TAKSINSTANECE"."VERSION"IS '流程定义版本号';"FIXFLOW_RUN_TAKSINSTANECE"."TOKEN_ID"IS '令牌编号';

"FIXFLOW_RUN_TAKSINSTANECE"."NODE_ID"IS'节点编号';

"FIXFLOW_RUN_TAKSINSTANECE"."DESCRIPTION"IS'任务主 题';"FIXFLOW_RUN_TAKSINSTANECE"."PARENTTASK_ID"IS'父任 务编号,不为空说明是会签(多实例)任务';

"FIXFLOW_RUN_TAKSINSTANECE"."ASSIGNEE"IS'任务代理人 ';"FIXFLOW_RUN_TAKSINSTANECE"."CLAIM_TIME"IS'领取时间';

"FIXFLOW_RUN_TAKSINSTANECE"."NAME"IS'任务名称 FlowNode的name属性';

"FIXFLOW_RUN_TAKSINSTANECE"."CREATE_TIME"IS'任务到 达(创建)时间';

"FIXFLOW_RUN_TAKSINSTANECE"."START_TIME"IS'开始时间 ';

"FIXFLOW_RUN_TAKSINSTANECE"."ISBLOCKING"IS'是否阻塞 ';

"FIXFLOW_RUN_TAKSINSTANECE"."END_TIME"IS'结束时间';

"FIXFLOW_RUN_TAKSINSTANECE"."DUEDATE"IS'处理期限';

"FIXFLOW_RUN_TAKSINSTANECE"."PRIORITY"IS'优先级别';

"FIXFLOW_RUN_TAKSINSTANECE"."CATEGORY"IS'任务分类 (最终用户决定分类的意义)';

"FIXFLOW_RUN_TAKSINSTANECE"."OWNER"IS'任务所有者';

"FIXFLOW_RUN_TAKSINSTANECE"."DELEGATIONSTATESTRIN G"IS'任务代理状态';

"FIXFLOW_RUN_TAKSINSTANECE"."BIZKEY"IS'业务关联键值';

"FIXFLOW_RUN_TAKSINSTANECE"."COMMAND_TYPE"IS'处理 命令类型';

"FIXFLOW_RUN_TAKSINSTANECE"."COMMAND_MESSAGE"IS' 处理命令内容';

"FIXFLOW_RUN_TAKSINSTANECE"."TASK_COMMENT"IS'任务 意见';

"FIXFLOW_RUN_TAKSINSTANECE"."NODE_NAME"IS'节点名称 ';

"FIXFLOW_RUN_TAKSINSTANECE"."PROCESSDEFINITION_KEY "IS'流程定义Key';

"FIXFLOW_RUN_TAKSINSTANECE"."FORMURI"IS'表单地址';

"FIXFLOW_RUN_TAKSINSTANECE"."TASKGROUP"IS'会签任务 组编号';

"FIXFLOW_RUN_TAKSINSTANECE"."TASKTYPE"IS'任务类型';

"FIXFLOW_RUN_TAKSINSTANECE"."PROCESSDEFINITION_NA ME"IS'流程名称';

"FIXFLOW_RUN_TAKSINSTANECE"."ISCANCELLED"IS'是否取 消';

"FIXFLOW_RUN_TAKSINSTANECE"."ISSUSPENDED"IS'是否暂 停';

"FIXFLOW_RUN_TAKSINSTANECE"."ISOPEN"IS'是否打开';

"FIXFLOW_RUN_TAKSINSTANECE"."ISDRAFT"IS'是否为草稿';

"FIXFLOW_RUN_TAKSINSTANECE"."EXPECTED_EXECUTIONTI ME"IS'预计执行时间';

2、任务候选表字段包括:

"ID"VARCHAR2(64BYTE),

"TYPE"VARCHAR2(64BYTE),

"USER_ID"VARCHAR2(64BYTE),

"GROUP_ID"VARCHAR2(64BYTE),

"GROUP_TYPE"VARCHAR2(64BYTE),

"TASKINSTANCE_ID"VARCHAR2(64BYTE),

"INCLUDE_EXCLUSION"VARCHAR2(64BYTE)

"FIXFLOW_RUN_TASKIDENTITYLINK"."ID"IS'唯一编号';

"FIXFLOW_RUN_TASKIDENTITYLINK"."TYPE"IS'分配类型';

"FIXFLOW_RUN_TASKIDENTITYLINK"."USER_ID"IS'用户编号 ';

"FIXFLOW_RUN_TASKIDENTITYLINK"."GROUP_ID"IS'组编号';

"FIXFLOW_RUN_TASKIDENTITYLINK"."GROUP_TYPE"IS'组的 类型(1.部门2.角色3.职务......)';

"FIXFLOW_RUN_TASKIDENTITYLINK"."TASKINSTANCE_ID"IS '关联任务编号';

"FIXFLOW_RUN_TASKIDENTITYLINK"."INCLUDE_EXCLUSION" IS'排除包含';

本发明采用统一任务框架,任务采用通用结构形成任务模板,所有的任 务经处理成任务模板后注册到任务数据库中。本发明采用通过多种技术注册 任务,能够让任务开打的时候继续在原来的系统中处理不需要登陆。本发明 解决了可以在一个系统中查询统计的问题,还解决多数据库表联合查询的效 率和难度问题。

以下具体说明统一任务框架中任务注册模块、任务获取模块、任务注销 模块和任务数据库的实现过程。

以下为任务注册、删除、更新、设置处理者、查询的方法示例代码:

查询任务的时候有以下组合可以使用:

TaskQuery taskIsEnd();

TaskQuery category(String category);

TaskQuery taskNotEnd();

TaskQuery initiator(String initiator);

TaskQuery initiatorLike(String initiator);

TaskQuery taskId(String taskId);

TaskQuery taskName(String name);

TaskQuery businessKey(String business Key);

TaskQuery addTaskType(TaskInstance Type taskInstance Type);

TaskQuery taskNameLike(String nameLike);

TaskQuery taskDescription(String description);

TaskQuery taskDescriptionLike(String descriptionLike);

TaskQuery taskPriority(Integer priority);

TaskQuery taskMinPriority(Integer minPriority);

TaskQuery taskMaxPriority(Integer maxPriority);

TaskQuery taskAssignee(String assignee);

TaskQuery taskOwner(String owner);

TaskQuery taskUnnassigned();

TaskQuery taskC andidateUser(String candidate User);

TaskQuery taskInvolvedUser(String involved User);

TaskQuery taskCandidateGroup(Group To candidate Group);

TaskQuery processInstanceId(String processInstanceId);

TaskQuery executionId(String executionId);

TaskQuery taskC reatedOn(Date create Time);

TaskQuery taskCreatedBefore(Date before);

TaskQuery taskCreatedAfter(Date after);

TaskQuery taskDefinitionKey(String key);

TaskQuery taskDefinitionKeyLike(String keyLike);

TaskQuery processDefinitionKey(String process Definition Key);

TaskQuery processDefinitionId(String process DefinitionId);

TaskQuery process Definition Name(String process Definition Name);

TaskQuery dueDate(Date due Date);

TaskQuery dueBefore(Date due Date);

TaskQuery dueAfter(Date due Date);

TaskQuery assignee NotNull();

TaskQuery candidate NotNull();

//排序

TaskQuery orderBy TaskId();

TaskQuery orderBy TaskName();

TaskQuery orderBy TaskDescription();

TaskQuery orderBy TaskPriority();

TaskQuery orderBy TaskAssignee();

TaskQuery orderBy TaskCreateTime();

TaskQuery orderBy ProcessInstanceId();

TaskQuery orderBy ExecutionId();

TaskQuery orderBy DueDate();

TaskQuery orderBy EndTime();

查询组合好之后可以流程引擎根据所设置的查询参数拼接成sql语句到 数据库进行查询。从系统通过向主系统中注册任务、删除任务、更新任务、 设置处理者。

上述实例只为说明本发明的技术构思及特点,其目的在于让熟悉此项技 术的人是能够了解本发明的内容并据以实施,并不能以此限制本发明的保护 范围。凡根据本发明精神实质所做的等效变换或修饰,都应涵盖在本发明的 保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号