触发器对象会监视插件所定义的事件触发器。例如,vCenter Server 插件将这些事件定义为 Task 对象。当任务结束时,触发器会向基于等待触发器的长时间运行工作流元素发送一条消息,重新启动该工作流。

基于触发器的长时间运行工作流所等待的耗时事件必须返回一个 VC:Task 对象。例如,用来启动虚拟机的 startVM 操作会返回一个 VC:Task 对象,以便工作流中的后续元素可监视其进度。基于触发器的长时间运行工作流触发器事件需要此 VC:Task 对象作为输入参数。

您在可编辑脚本任务元素的 JavaScript 函数中创建 Trigger 对象。可编辑脚本任务元素可以属于等待触发器事件的基于触发器的长时间运行工作流。或者,可属于另一个为基于触发器的长时间运行工作流提供输入参数的工作流。触发器函数必须实现 vRealize Orchestrator API 中的 createEndOfTaskTrigger() 方法。

重要事项: 您必须为所有触发器定义超时时段,否则工作流会无限期等待。

前提条件

    • 创建工作流。
    • 在工作流编辑器中打开要编辑的工作流。
    • 向工作流架构添加一些元素。
  • 在工作流中,将 VC:Task 对象声明为变量或输入参数,例如工作流中的 VC:Task 对象或用于启动或克隆虚拟机的工作流元素。

过程

  1. 可编辑脚本任务元素从左侧窗格的通用菜单拖放到工作流架构中。
    可编辑脚本任务元素之前的某个元素必须生成一个 VC:Task 对象作为其输出参数。
  2. 单击可编辑脚本任务元素。
  3. 在右侧窗格的详细信息属性选项卡中,输入触发器的名称和说明。
  4. 单击输入/输出选项卡。
  5. 搜索或创建一个类型为 VC:Task 的输入变量。
    VC:Task 对象表示由另一工作流或元素启动的耗时事件。
  6. (可选) 搜索或创建一个类型为数字的输入参数,以秒为单位定义超时期限。
  7. 创建包含以下属性的输出参数。
    1. 创建值为 trigger 的名称属性。
    2. 创建值为 Trigger 的类型属性。
    3. 单击创建
  8. 异常处理菜单中定义任何异常行为。
  9. 脚本选项卡上,定义一个用于生成 Trigger 对象的函数。

    例如,可以实现以下 JavaScript 函数来创建 Trigger 对象。

    trigger = task.createEndOfTaskTrigger(timeout);

    createEndOfTaskTrigger() 方法会返回一个 Trigger 对象,用于监视名为 taskVC:Task 对象。

  10. 单击保存并确认您的选择。

结果

您即定义了一个可为基于触发器的长时间运行工作流创建触发器事件的工作流元素。触发器元素会生成一个 Trigger 对象作为其输出参数,等待事件元素可绑定到该输出参数。

后续步骤

您必须将此触发器事件绑定到基于触发器的长时间运行工作流中的等待事件元素。