您可以将工作流程定义或集合传输至隔离式区域。
在工作流程可以运行之前,隔离式区域中必须存在可执行版本的工作流程定义或集合。将工作流程定义或集合保存在对象存储库或库中,将保存文件但是不会使它可执行。
每当传输了工作流程定义或集合时,就会在隔离式区域中创建一个新的工作空间,以指向此工作流程的可执行版本以及先前已传输的其他工作流程定义或集合的最新修订版。(实际上,每个工作空间包含指向工作流程定义或集合的两个指针 - 一个指针指向工作流程定义或集合的作者格式,另一个指针指向其运行时格式。)
在左边的插图中,工作空间的大小会随着传输更多工作流程定义而增大。当存在工作流程定义的新修订版时(例如,插图中的 Alpha),更新的修订版 Alpha_1 将替换工作空间列表中更旧的修订版。此机制充当一种版本控制,使得一个工作流程的多个修订版可以在同一隔离式区域中运行。
在开发环境中,有大量工作空间并且工作空间的大小相当快速地增大是正常的,这是因为工作流程作者将在多次传输和测试工作流程定义之后才将它们发布到生产环境中。在这种情况下,可能会超过工作空间的大小限制。当配置对象或工作项的 BLOB 大小超过允许的最大大小的 95% 时,工作流程系统会在系统事件日志中记录一条警告消息。如果已达到工作空间的大小限制,那么工作流程传输命令将导致“缓冲区溢出”错误。要在开发环境中解决此问题,工作流程作者可以初始化隔离式区域并清除工作空间。
在生产环境中,工作空间通常比开发环境中更少并且更小,这是因为通常只有已测试并且稳定的工作流程定义才会存在于生产环境中。由于通常不太方便初始化生产环境中的隔离式区域以清除未使用的工作空间,因此应稍加注意,以避免向生产系统中的隔离式区域进行大量不必要的传输。
在左边的插图中,工作流程作者通过更改工作流程定义的名称然后重新传输来创建实质上版本完全相同的 Alpha 工作流程定义。请注意,这将导致工作空间的数目和大小快速增大,这是因为这些工作流程定义中的每个都被认为是唯一的。
除了此技术以外,在启动时使用工作流程中的数据字段来更新工作流程的主题,作为一种标识每个正在运行的工作流程的方法。