捆绑包与工作流

当捆绑包用于集体工作流处理时,有几个重要事项需要了解。

启动捆绑包中的工作流

与其他项目不同,捆绑包不会为响应触发器而自动进入工作流程,相反,您必须手动启动工作流。 在捆绑包上启动工作流会将捆绑包本身及其包含的所有项目置于工作流中。

请注意,要在捆绑包上启动工作流,捆绑包必须仅包含可进入捆绑包工作流的项目,即:
  • 组件
  • 页面
  • 组件模板
  • 页面模板
  • 模板构建基块
  • 其他捆绑包

捆绑包中的项目可能已成为完全独立的工作流程的一部分。如果是这样,捆绑包的工作流程仅可在其所有项目已完成自身的工作流程时启动。

必须处在捆绑包中的项目

可以配置组件和其他类型的项目(在其模式中),以便必须将它们添加到工作流的捆绑包中。在这种情况下,创建或编辑项目后,系统将提示您选择捆绑包。

当捆绑包包含必须处在捆绑包中的项目时,在捆绑包已启动并完成其工作流程之前,无法检入对这些项目所作的任何更改。这意味着,即使在捆绑包进入工作流之前,对其强制性项目所作的更改也无法检入。

为理解其中的含义,请想象以下一系列事件:

  1. Alice 打开了一个包含在捆绑包中的强制性项目。该捆绑包有所属的工作流,但尚未进入工作流。
  2. Alice 修改了该项目,并选择了保存并关闭该项目以提交她的更改。这些更改将会提交,但不会检入。
  3. Boris 打开了同一项目(或明确检出了该项目)并作出了更改,但他在编辑到中途时改变了主意。
  4. Boris 选择了撤销检出以放弃他所作的更改。
  5. Content Manager 会放弃所有未检入的更改,包括 Alice 所作的更改

为提醒 Boris,他在打开(或明确检出)该项目时会看到一条提示,提醒他除了他本人要进行的更改之外,他还将获得其他用户对该项目所做更改的所有权。如果 Boris 明确检出了该项目并获得其所有权,他将不会再次收到该提示。

在工作流中修改捆绑包

当捆绑包已进入工作流时,只有在当前活动允许的情况下,才能执行以下任务:

  • 在捆绑包中添加或移除项目
  • 在捆绑包中编辑项目
  • 编辑捆绑包的元数据

嵌套捆绑包和捆绑包解析

捆绑包可以包含其他捆绑包。当包含另一个捆绑包的捆绑包进入工作流时,工作流程也应用于嵌套捆绑包和该捆绑包中包含的所有项目。这包括其他嵌套捆绑包。

根据捆绑包模式中的工作流设置,Content Manager 可能会在工作流程完成后解散捆绑包。这意味着该捆绑包将被销毁,但其项目仍将保留。在涉及嵌套捆绑包的工作流程中,是否解析特定捆绑包取决于(已启用解析设置的)该捆绑包自身的模式。

例如,我们来考虑一个场景,捆绑包“A”包含在捆绑包“B”中。如果工作流在捆绑包“B”上启动,则捆绑包“B”及其所有内容都通过与其捆绑包模式关联的工作流程进行。其中包括捆绑包“A”及其内容。此外,如果捆绑包“A”基于选择了此捆绑包解析选项的捆绑包模式。为外部捆绑包“B”的模式选择该选项。当工作流程完成时,不会解析捆绑包“B”,因为其模式没有选择该选项。但是,捆绑包“A”将被解析,因为所有捆绑包都在模式中设置了该选项。