[]
流程版本管理在活字格流程引擎中扮演着重要的角色,涵盖了流程定义的创建、编辑、发布以及与数据库的交互。
选择流程数据库:当您在活字格设计器中创建第一个流程时,系统会要求您选择要使用的流程数据库。您可以选择内建数据库或外连数据库。一旦选择后,流程引擎将在目标数据库中初始化所需的数据表和视图,以支持流程的正常运行。这将对后续流程版本的策略产生影响。
创建流程定义文件:之后,活字格设计器会在工程中创建一个初始的 bpmn 文件,即流程定义文件。流程定义文件呈列在活字格设计器的对象管理器的流程列表下,由活字格流程设计器新建、打开、编辑和保存。
发布流程定义文件:在运行活字格应用后,系统会将所有的流程文件发布到数据库中,从而在数据库中存储了完整的流程定义,以便进行流程发起和执行。允许同一个流程定义文件产生多个版本,您可以通过流程定义视图查看流程数据库中所有已发布的流程定义。
流程文件唯一标识:流程定义文件中存储有一个唯一的值,该值用于区分不同的流程定义文件。当您重命名了一个流程,由于这个唯一的值并没有发生变化,所以系统仍旧可以发现它和重命名前的流程是同一个。因此,重命名流程后再发布,不会产生重复的流程定义。复制一个流程文件时,这个唯一的值会在新文件中用新值替换。导入流程定义文件时,若文件名同名,保留旧的的唯一的值;若文件名不同但是唯一的值相同,导入文件中的唯一的值用新值替换。
每当在设计器按F5调试运行时,系统会把所有流程定义文件发布到数据库中,初始版本号为1。若数据库中已经有了当前流程定义文件的版本,系统会覆盖数据库中最新的版本,而不是产生一个新版本,即>设计器F5调试运行不会导致数据库中的已有的流程版本号递增。另外,它也不会触发“数据库已经被修改,确定同步数据库?”的提醒。
对于数据库中已经发布的流程定义,您可以通过对象管理器中流程的右键弹出菜单“删除流程数据”操作删除,该操作会将指定流程定义及其产生的实例数据一并清空。
如果是发布一个新应用,即第一次发布,那么:
内建流程数据库:将把本地流程数库拷贝到服务器,然后发布流程定义文件到数据库,所有的流程定义版本增加1,并且挂起所有旧版本(如果流程数据库中已经存有旧版本)。
外联流程数据库:发布流程定义文件到外连数据库,所有的流程定义版本增加1,并且挂起所有旧版本。
若是更新已有的应用,即覆盖发布已经存在的流程应用,那么:
内建流程数据库:若勾选了“覆盖服务器流程数据库”选项,将把本地流程数库拷贝到服务器,否则,保留服务器已有的流程数据库。若勾选了“覆盖服务器流程文件”,将发布流程定义文件到数据库,所有的流程定义版本增加1,并且挂起所有旧版本,否则,不发布任何流程定义到数据库,流程数据库的数据完全不变。
外联流程数据库:若勾选了“覆盖服务器流程文件”,发布流程定义文件到数据库,所有的流程定义版本增加1,并且挂起所有旧版本。否则,不发布任何流程定义到数据库,流程数据库的数据完全不变。由于发布后的应用和本地调试环境共用一个数据库连接字符串,即它们使用相同的流程数据库,这意味着设计器F5调试运行会影响已发布应用的流程数据,为避免数据混乱,应用最终上线时,请使用“生产环境切换数据库连接字符串”功能。
注意,所有的流程定义版本增加 1的策略未来可能在活字格V10中有所变化,只有流程定义和数据库中的版本不一致时,才追加新版本。这将提高大型项目的流程定义文件发布效率。
在线流程设计器允许您对单个流程进行任意修改。一旦您完成了修改,可以通过设计器里的保存按钮存档修改,即保存最新版本的流程定义到流程文件中。另外,在线的流程文件存储在服务器的应用部署文件夹下。
当您认为在线编辑后的流程已经就绪并满足您的需求时,您可以通过在线流程设计器发布一个新版本。发布后,最新的流程定义将被上传到流程数据库中,其版本号增加1,并挂起所有旧版本。
在线设计器允许流程文件切换到某个历史版本,即用流程数据库中的某个版本覆盖部署文件夹下的流程文件,切换后,仅文件发生了变化,您还需要点击发布按钮,才会让流程定义文件发布到数据库中,并可由用户发起流程。
如果流程使用内建数据库,那么可以在设计器的“菜单栏->发布->获取服务器数据”功能中获取服务器流程数据,即拷贝服务器的流程数据库到本地。另外,该功能不会拉取服务器的流程文件到本地工程中,即获取数据后,本地设计器中的流程文件不会有任何变化。
若要获取服务器的流程文件到设计器,请使用流程导入导出功能,详见:导入导出流程。
如果流程使用外联数据库,那么可以在管理控制台的“应用 > 高级设置”中修改流程数据库的连接字符串。
当修改连接字符串后,流程引擎会尝试初始化或升级目标连数据库中流程所需的数据表或视图,然后发布一次流程定义文件到目标数据库,若目标数据库中已有流程定义,所有的流程定义版本增加1,并且挂起所有旧版本。