一种驱动流程的系统及方法技术方案

技术编号:21004772 阅读:13 留言:0更新日期:2019-04-30 21:41
本发明专利技术公开了一种驱动流程的系统及方法,属于逻辑处理技术领域,解决现有技术中的流程引擎作为软件系统,耦合度高,灵活度差,流程逻辑高度相关,并发逻辑实现困难等问题。本发明专利技术包括项目单元,项目单元包括链式存储设备、用户‑岗位表单元、操作‑岗位‑服务通知表单元、并发操作表单元、服务表单元和任务‑岗位表单元,所述链式存储设备包括执行链结构,执行链结构包括执行节点结构,执行节点结构包括操作用户单元、操作代码单元。本发明专利技术用于驱动流程运行。

A Driving Process System and Method

【技术实现步骤摘要】
一种驱动流程的系统及方法
一种驱动流程的系统及方法,用于驱动流程,属于逻辑处理

技术介绍
当前的流程引擎作为软件系统的一部分,存在耦合度高,灵活度差;流程逻辑高度相关,并发逻辑实现困难等。无论是基于状态机方式,还是基于流程图的驱动方式,它们仅仅是项目中可有可无的一部分,无法完全依靠这种流程引擎来驱动项目,始终要配合大量的人工代码,才能完成项目。如关系数据库设计缺乏“流程级”的标准,数据耦合度高;更由于相同“任务”在相同流程的不同位置,可能会对应不同的数据表,不同的处理函数。导致相同的“任务”代码无法被重用;这种方式导致了各种表单(任务报告)无法标准化,每升级一次系统,需要考虑整个系统,然后重新设计。项目集成时,各个子系统只能在API,或数据库上对接,成本极高。
技术实现思路
本专利技术的目的在于:针对上述不足之处提供了一种驱动流程的系统及方法,解决了现有技术中的流程引擎作为软件系统,耦合度高,灵活度差,流程逻辑高度相关,并发逻辑实现困难等问题。本专利技术采用的技术方案如下:一种驱动流程的系统,包括用户-岗位表单元、操作-岗位-通知表单元、并发操作表单元、服务表单元和任务-岗位表单元;用户-岗位表单元:用于存储用户-岗位表,用户-岗位表一行包括用户ID,即该用户拥有的岗位ID;操作-岗位-服务通知表单元:用于存储操作-岗位-服务通知表,操作-岗位-服务通知表包括操作号、0个或多个输入岗位ID、与输入岗位ID相对应的0个或多个后继岗位ID,以及0个或多个服务ID;并发操作表单元:用于存储并发操作表,并发操作表每一行包括请求操作号、一个或多个响应操作号;服务表单元:用于存储服务表,服务表每一行包括服务ID,即服务地址及参数;任务-岗位表单元:用于存储任务-岗位表,任务-岗位表每一行包括执行链ID,即存储0个或多个岗位ID,用于流程引擎任务分配结果;通过用户-岗位表单元获得项目处理事件后,执行链通过操作号在操作-岗位-服务通知表单元中查找输入岗位ID的后继岗位;通过操作号在并发操作表单元中查询未完成并发操作,并通过当前操作号操作-岗位-服务通知表单元中查询后继岗位,进行后继岗位合并去重,直到完成执行链的最后一个节点处理,通过服务表单元中的服务ID发送消息并通过任务-岗位表单元进行任务分配。一种驱动流程的方法,包括如下步骤:(1)项目获得处理事件后,查询获得执行链内各执行节点结构的主链,其中,主链的每个节点包括用户ID和操作号;(2)从执行链末尾开始,取最后一个未处理节点的操作号到“操作-岗位-服务通知表”中查询匹配的记录,如果查询失败,重新执行步骤(2),如果查询成功,检查记录中的输入岗位是否是当前节点用户拥有的岗位,如果是,转到步骤(3),否则判定为非法节点,记录告警信息后重新执行(2);(3)在步骤(2)查询出的结果记录中,取出后继岗位,和当前执行链的ID形成一个任务结果;(4)取最后一个未处理节点的操作号在“并发操作表”中查询,如果查询失败,那么重新执行步骤(4),如果查询成功,那么检查并发操作的响应节点是否存在于当前节点之后;如果存在,那么并发操作已经完成,如果没有,那么并发操作未完成,转到步骤(5);(5)并发操作未完成时,以当前节点的操作号到“操作-岗位-服务通知表”中查询对应记录,如果查询失败,返回步骤(4),如果成功,将查询结果中的后继岗位与步骤(3)中的结果合并,去除重复的岗位ID,如果已完成最后一个节点的处理,转到步骤(6),否则返回步骤(4);(6)在步骤(2)查询成功的结果记录中,取出输出的记录包含服务ID,使用服务ID到“服务表”中查询,查询成功后,按照配置的协议及地址,发送通知消息,转到步骤(7);(7)检查当前执行链的最终任务分配结果,如果任务结果中包含“流程结束岗位”,那么该执行链需要从“任务-岗位表”移除,否则转到步骤(1)。进一步地,所述步骤(1)中项目获得处理事件的具体步骤如下:(11)用户在用户服务登录后,使用用户ID连接到流程引擎;(12)流程引擎在“用户-岗位表”使用用户ID查询,查询失败,返回错误信息,查询成功,获得用户的岗位列表;判断用户角色,如果用户是管理员,那么返回流程引擎内的所有任务,否则转到步骤(13);(13)遍历“任务-岗位表”,只要用户的岗位表,和任务的岗位表存在交集,那么该用户便需要处理该任务。综上所述,由于采用了上述技术方案,本专利技术的有益效果是:1.一种驱动流程的系统及方法,强调岗位报告标准化,强调对每个活动的输出结果进行编码,这种编码表简洁,清晰,可以有效规范软件开发过程,更可以极大程度地提高流程软件的模块重用能力。2.本专利技术的流程引擎以追流程的高度灵活为目标,支持并发逻辑,支持活动的重复使用,以达到岗位报告标准化的目的。附图说明为了更清楚地说明本专利技术实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本专利技术的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图,其中:图1是本专利技术的流程引擎组成及依赖结构示意图;图2是本专利技术的服务进程视图;图3为本专利技术的流程数据内容视图;图4为有卡系统部署设备示意图;图5为本专利技术在线协同工作模式示意图。具体实施方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本专利技术,并不用于限定本专利技术,即所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本专利技术实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本专利技术的实施例的详细描述并非旨在限制要求保护的本专利技术的范围,而是仅仅表示本专利技术的选定实施例。基于本专利技术的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本专利技术保护的范围。需要说明的是,术语“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。一种驱动流程的系统及方法,解决了现有技术中的流程引擎作为软件系统,耦合度高,灵活度差,流程逻辑高度相关,并发逻辑实现困难等问题。流程引擎可以运行在云端,也可以运行在局域网固定环境。它可以是只管理几千个任务的小型项目,也可以管理上亿用户的固化任务;使用简单的驱动逻辑,让流程运行有更简单的规则,有更好的适应性。在流程引擎内部主要包括用户-岗位表单元、操作-岗位-通知表单元、并发操作表单元、服务表单元和任务-岗位表单元,用户-岗位表单元、操作-岗位-通知表单元、并发操作表单元、服务表单元和任务-岗位表单元数据内容分别包括:用户本文档来自技高网...

【技术保护点】
1.一种驱动流程的系统,其特征在于:包括用户‑岗位表单元、操作‑岗位‑通知表单元、并发操作表单元、服务表单元和任务‑岗位表单元;用户‑岗位表单元:用于存储用户‑岗位表,用户‑岗位表一行包括用户ID,即该用户拥有的岗位ID;操作‑岗位‑服务通知表单元:用于存储操作‑岗位‑服务通知表,操作‑岗位‑服务通知表包括操作号、0个或多个输入岗位ID、与输入岗位ID相对应的0个或多个后继岗位ID,以及0个或多个服务ID;并发操作表单元:用于存储并发操作表,并发操作表每一行包括请求操作号、一个或多个响应操作号;服务表单元:用于存储服务表,服务表每一行包括服务ID,即服务地址及参数;任务‑岗位表单元:用于存储任务‑岗位表,任务‑岗位表每一行包括执行链ID,即存储0个或多个岗位ID,用于流程引擎任务分配结果;通过用户‑岗位表单元获得项目处理事件后,执行链通过操作号在操作‑岗位‑服务通知表单元中查找输入岗位ID的后继岗位;通过操作号在并发操作表单元中查询未完成并发操作,并通过当前操作号操作‑岗位‑服务通知表单元中查询后继岗位,进行后继岗位合并去重,直到完成执行链的最后一个节点处理,通过服务表单元中的服务ID发送消息并通过任务‑岗位表单元进行任务分配。...

【技术特征摘要】
1.一种驱动流程的系统,其特征在于:包括用户-岗位表单元、操作-岗位-通知表单元、并发操作表单元、服务表单元和任务-岗位表单元;用户-岗位表单元:用于存储用户-岗位表,用户-岗位表一行包括用户ID,即该用户拥有的岗位ID;操作-岗位-服务通知表单元:用于存储操作-岗位-服务通知表,操作-岗位-服务通知表包括操作号、0个或多个输入岗位ID、与输入岗位ID相对应的0个或多个后继岗位ID,以及0个或多个服务ID;并发操作表单元:用于存储并发操作表,并发操作表每一行包括请求操作号、一个或多个响应操作号;服务表单元:用于存储服务表,服务表每一行包括服务ID,即服务地址及参数;任务-岗位表单元:用于存储任务-岗位表,任务-岗位表每一行包括执行链ID,即存储0个或多个岗位ID,用于流程引擎任务分配结果;通过用户-岗位表单元获得项目处理事件后,执行链通过操作号在操作-岗位-服务通知表单元中查找输入岗位ID的后继岗位;通过操作号在并发操作表单元中查询未完成并发操作,并通过当前操作号操作-岗位-服务通知表单元中查询后继岗位,进行后继岗位合并去重,直到完成执行链的最后一个节点处理,通过服务表单元中的服务ID发送消息并通过任务-岗位表单元进行任务分配。2.一种驱动流程的方法,其特征在于:包括如下步骤:(1)项目获得处理事件后,查询获得执行链内各执行节点结构的主链,其中,主链的每个节点包括用户ID和操作号;(2)从执行链末尾开始,取最后一个未处理节点的操作号到“操作-岗位-服务通知表”中查询匹配的记录,如果查询失败,重新执行步骤(2),如果查询成功,检查记录中的输入岗位是否是当前节点用户拥有的岗位,如果是,...

【专利技术属性】
技术研发人员:唐棠
申请(专利权)人:成都多用科技有限公司
类型:发明
国别省市:四川,51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1