内嵌工作流模块中的设计问题请教

jackyrong 发布于 2017/02/21 11:19
阅读 149
收藏 1

问个问题,对于一些内嵌工作流程的系统(就是不像请假之类的,单独可以启动流程的系统),比如资产审批系统,是选了要变更的资产,再提交工作流的;这样有个问题要请教下如何搞比较好,目前是:
JSON                                                流程实例ID  
{"id":4,"departmentname":ABC}             123
这样保存,比如用户某次提交了N个资产,就会JSON字段中全部保存这N个资产的当时的情况;
但明显的,JSON的方式有坏处,除非把字段设置LONGTEXT,否则用户资产一多,就超长了;
现在我想的办法是,不使用JSON字段,直接把要提交审批的资产ID字段保存,比如:
ID     流程实例ID   日期
123     234            2017-02-20
但也有个缺点,比如2-20日,修改了资产ID=123的部门名称为A,审批通过;但2-21日,又修改了部门名称为B,则
ID   流程实例ID  时间
123   235          2017-02-21
 这个时候,部门名称又改为B了,如果我要追溯2-20日的当时的记录,会发现资产的名称居然是最新的B,而不是当时的A了,就是说,无办法保留记录,有什么好的解决办法?

加载中
0
pantrick
pantrick

你这个问题,我觉得这个属于业务一致性问题,对每一个 流程实例应该有它的变量存储,你可以把这些信息存储到变量表中,就可以回朔,比如os_variable 根据实例id 和变量名做主键,存储资产信息,这样即使以后修改了资产部门,也可以保留以前实例的值.流程业务的内容个人觉得不应该依赖外部系统,否则,无穷变化无法应付

0
j
jackyrong

@抓瓦工人,不错,这个也是个办法,但如果是业务系统比如资产,用户每次选定多个资产,一起提交审批的话,一般来说,这些资产的ID,是组成字符串那样保存在ACTIVITI的流程变量表中好呢,还是单独用个表,比如上文中提到的
  流程变量   流程实例ID    TABLEID(自定义表或者标识来自哪个业务系统表)

  2,3,4,......         1234         ASSETS

   这样好呢?

返回顶部
顶部