一般的,我们将流程用定义期工具定义好后导入到运行期即可运行,但有时会被告知流程名称必须变更,这时候问题来了,如何将运行期中废弃不用的流程模板删除。
首先,我们清楚MQ 工作流运行期和定义期是相对独立的系统,两者有独立的数据库保存各自的信息,所以删除掉定义期的流程不会作用到运行期。
然后,我们知道运行期数据存储在BD2数据库中,如果通过删除DB2中流程模板相关数据可以清楚流程模板,但是我们可以发现,我们需要清楚掌握其中的所有E/R关系,稍有不慎,可能导致严重后果,基于DB2中数据关系未公开的情况下,擅自动作会有安全问题,所以该方法不是一种安全的方式。
那么安全可行的方式在哪里呢?我们发现,通过fmcibie工具可以导入fdl脚本到运行期里执行,fdl脚本中有insert,update脚本动作,那么,delete动作可否执行呢?我们可以尝试一下。
仿照insert脚本,如insert process xxx,我们变更为delete process xxx,通过fmcibie运行期工具以命令行的形式执行,成功了!
执行原理:fmcibie+script==>mq series通讯==>mq workflow 服务解析生产SQL脚本==>DB2执行。
通过以上分析可以发现,通过fdl脚本操作运行期数据是一种安全的模式,删除流程模板可以这样,对定义期中其他的数据变更同样可以执行,比如插入,更新,删除流程人员,角色,组织,数据结构,执行程序等同样有效。
注:
1.fdl语句可以参考从运行期或定义期导出的脚本文件
2.似乎不能对流程实例和任务有效