工作流活动是工作流的构建基块。 可以使用本节中的过程将活动添加到工作流;删除、复制和粘贴活动;并配置专用活动以将 Windows PowerShell 脚本导入工作流。
将活动添加到工作流
使用此过程可从 Service Manager 创作工具中的 “活动工具箱 ”窗格将活动添加到工作流。
在 Woodgrove Bank 自定义方案中,Ken 使用此过程将 Windows Workflow Foundation (WF) 活动 添加到组 ,并将 活动状态设置为“已完成 ”添加到工作流。
若要将活动添加到工作流,请执行以下步骤:
在管理包资源管理器中,展开“工作流”,右键单击所需的工作流,然后选择“编辑”。 这会在创作窗格中打开工作流。 例如,右键单击 AddComputerToADGroupWF,然后选择“ 编辑”。
在 “活动工具箱 ”窗格中,找到相应的活动组。
将想要的活动拖动到创作窗格,然后在工作流“开始”和“结束”图标之间或两个现有活动之间放置它。 创作窗格中显示的活动序列(从上到下)表示活动将运行的顺序。 若要在循环或 if-else 结构中运行活动,请先将结构活动(如 For Each 循环)拖到创作窗格中,然后将活动拖放到结构活动中。
例如,将 AD DS 计算机从 Active Directory 活动组拖到创作窗格中,然后将其拖放到工作流“开始”和“结束”图标之间。 然后,将“设置活动状态”拖 到“已完成 ”,并将其拖放到上一个活动与“结束”图标之间。
可以在将活动添加到创作窗格后立即设置活动的属性,也可以稍后设置这些属性。
注意
如果此时未设置属性,则活动可能标有红色感叹号图标。 此图标指示必须先设置活动的一个或多个属性,然后才能运行活动。 若要查看这些必需属性的列表,请选择图标。
在工作流中复制和粘贴活动
如果工作流使用同一类型的多个活动(例如多个添加 AD DS 计算机到组活动),则可以使用 Service Manager 创作工具中的复制和粘贴功能快速复制活动。 若要使用活动复制活动属性的值,请设置属性的值,然后复制并粘贴活动。
复制和粘贴活动
在管理包资源管理器中,展开“工作流”,右键单击所需的工作流,然后选择“编辑”。 这会在创作窗格中打开工作流。
在创作窗格中,右键单击活动,然后选择“ 复制”。
执行下列操作之一:
若要在工作流末尾粘贴活动,请右键单击创作窗格,然后选择“ 粘贴”。
若要在现有活动之后立即粘贴活动,请右键单击现有活动,然后选择“ 粘贴”。
将脚本添加到工作流
活动库包括将 Windows PowerShell 脚本、VBScript 脚本或命令行脚本合并到工作流中的专用活动。 使用脚本活动导入脚本的内容并定义脚本运行所需的参数。 Service Manager 创作工具在管理包中创建一个任务,用于管理脚本并存储脚本内容和参数。
Service Manager 不验证脚本参数;因此,必须确保脚本逻辑处理验证。 此外,使用扩展属性创建事件时,不为扩展属性提供值,则不会分析参数的值,并且它作为$Data/属性传递。
脚本活动作为工作流中的单独过程运行;但是,它们还在 Service Manager 工作流帐户的安全上下文中运行。
使用以下过程将脚本添加到工作流。
若要将脚本添加到工作流,请执行以下步骤:
在管理包资源管理器中,展开“工作流”,右键单击所需的工作流,然后选择“编辑”。 这会在创作窗格中打开工作流。
在 “活动工具箱 ”窗格中,找到活动组 脚本活动 及其子组 通用脚本活动。 拖动要用于工作流开始和工作流结束图标之间或两个现有活动之间的位置的脚本活动。
设置脚本活动属性:
在“详细信息”窗格中,选择“活动输入”类别中的任何属性,然后选择属性旁边的省略号按钮(...)。
在 “配置脚本活动 ”对话框中,选择“ 导入脚本”。 在 “导入 ”对话框中,选择要使用的脚本文件,然后选择“ 打开”。
注意
为脚本活动导入脚本后,如果再次选择“ 导入脚本 ”,则导入的任何新脚本将完全替换以前的脚本。
选择“ 脚本属性”。 若要为脚本创建参数,请选择“新建”,然后在“名称”列中输入名称。
注意
对于 VBScript 脚本和命令脚本活动,没有 Name 列。
若要为参数设置值,请在 “值 ”列中输入常量值。 如果适合参数,请输入“/t”等开关字符,这是命令脚本的典型参数。
若要将参数绑定到另一个属性,以便参数从该属性获取其值,请选择相应的省略号按钮(...)。在 “将”参数“绑定到”活动属性 “对话框中,选择要使用的属性。
如果使用的是需要 Windows PowerShell 管理单元才能运行的脚本, 请在 Windows PowerShell 管理单元 框中输入管理单元的名称,用分号分隔。
选择“确定”关闭“配置脚本活动”对话框。
将控制流活动添加到工作流
使用控制流活动为工作流提供结构(分支、循环或计时器延迟)。 Service Manager 创作工具提供四个内置控制流活动:
延迟活动 - 引入工作流中的活动之间的延迟。
对于每个循环活动 - 作为对象的数组(集合)的输入,并重复集合中 For Each 循环对象中的一组活动。
IfElse 活动 - 基于布尔值(True/False)条件控制工作流中的活动序列。
并行活动 - 将活动序列分叉为两个同时的活动序列。
若要使用 Delay 活动,只需将 Delay 活动拖到工作流中,然后将活动的 TimeoutDuration 属性设置为要使用的延迟间隔。 若要使用 IfElse 或 Parallel 活动,请将活动拖到工作流中,然后将常规活动拖放到 IfElse 或 Parallel 活动中。
使用 For Each 循环活动类似于使用 IfElse 或 Parallel 活动;但是,你可能希望为 For Each 循环中的活动设置其他属性。 使用以下过程将 For Each 循环添加到工作流。
将每个循环添加到工作流
在管理包资源管理器中,展开“工作流”,右键单击所需的工作流,然后选择“编辑”。 这会在创作窗格中打开工作流。
在 “活动工具箱 ”窗格中,找到活动组 控制流。
将 For Each 循环 活动拖到“工作流开始”和“工作流结束”图标之间或两个现有活动之间的位置。
将要循环执行的活动添加到 循环容器(ForEachChildActivity)。 添加每个活动:
在 “活动工具箱 ”窗格中,展开包含要使用的活动的活动组。
将活动拖到循环容器活动顶部的位置。 如果循环容器活动已包含其他活动,请将新活动拖到现有活动之前、之后或之间的位置。
在此容器中放置的大多数工作流活动都有两个附加属性: 当前项 和 要绑定的属性。 对于循环容器中的每个活动,请按如下所示设置这些属性:
注意
设置属性不是必需的,仅当想要从循环容器的输入集合中获取对象时,它才有用。
将当前项设置为 ForEach 活动的循环容器活动的 Current Item 属性。
注意
如果此活动是 For Each 循环中的第一个活动,则会自动设置当前项。
将 Property to Bind 属性的值设置为将使用当前项值的当前活动的属性的值。
从工作流中删除活动
使用此过程从 Service Manager 创作工具中的工作流中删除活动。 此操作不会从“活动库”或 “活动工具箱 ”窗格中删除活动。
若要从工作流中删除活动,请执行以下操作:
- 在创作窗格中,右键单击活动,然后选择“ 删除”。
后续步骤
- 配置活动管理和传递信息的方式。