外部系统整合BPM工作流的方案问题(技术交流)

背景:使用IBM BPM开发了OA系统,现在有一个外部系统A,需要开发工作流,工作流部分想采用BPM平台来实现,方便流程的统一管理。问题:如何使用BPM平台初步考虑的方案如下:方案一:A系统保存自己的业务数据和表单,bpm实现工作流,A系统通过rest接口调用bpm的工作流引擎实现流转,bpm只是提供...显示全部
背景:使用IBM BPM开发了OA系统,现在有一个外部系统A,需要开发工作流,工作流部分想采用BPM平台来实现,方便流程的统一管理。

问题:如何使用BPM平台

初步考虑的方案如下:

方案一:A系统保存自己的业务数据和表单,bpm实现工作流,A系统通过rest接口调用bpm的工作流引擎实现流转,bpm只是提供流程引擎,负责工作流程的流转和控制,不保存任何业务数据和表单。即A系统每次调用接口,获取到的是流程的流转及状态等信息。

方案二:bpm实现工作流,A系统调用bpm提供的rest接口启动流程,并传入业务数据,bpm实现工作流程流转和控制之外,也保存业务数据。即A系统每次调用接口,除了获取流程的流转和状态信息之后,也交互业务数据的信息。

两个方案哪个更合理?各位大神是如何实施的,是否有其他方案。请赐教!
收起
参与63

查看其它 25 个回答snakeaiyu的回答

snakeaiyusnakeaiyu软件开发工程师新锐国际
回复 8# daniewang

流程数据和业务数据永远不可能完全解耦,方案一说的太笼统了,不管什么业务场景,如果业务数据全部外部实现,你通过什么和流程数据对接呢,一样需要有相关关联的字段的。

方案二,业务数据是千变万化的,正如daniewang兄说的,业务如果涉及子表等情况很多。

但是其实只需要有一套统一的数据规范作为流程与业务交互的方式就可以了。
通过IBM BPM,它本身有流程变量那个概念,你完全可以规约好一套流程变量,然后所有的业务流程都传入该类流程变量。以此来实现相关业务与流程的关联和解耦。
当然该定义的流程变量需要考虑好扩展,首先必须保存业务主键ID,保存一些业务的信息,然后你可以外部根据这些业务信息去封装和处理去打开相关的业务页面。
当业务与流程交互的时候也可以通过这些规范的变量去实现,不如金额大于多少走那些线等等。
甚至后续环节处理人都可以通过这些实现的。

不过外部需要封装很多内容,以上说的都是经过我们实践过的内容,而绝非空谈。
这里大概说了一下希望可以开阔下你的思路。
互联网服务 · 2015-05-21
浏览2072

回答者

snakeaiyu
软件开发工程师新锐国际

snakeaiyu 最近回答过的问题

回答状态

  • 发布时间:2015-05-21
  • 关注会员:6 人
  • 回答浏览:2072
  • X社区推广