Set-CsRgsWorkflow

 

上一次修改主题: 2012-03-23

修改现有的响应组工作流。工作流可确定当响应组应用程序接到电话呼叫时所执行的操作。

语法

Set-CsRgsWorkflow -Instance <Workflow> [-Confirm [<SwitchParameter>]] [-Force <SwitchParameter>] [-WhatIf [<SwitchParameter>]]

详细说明

工作流可能是响应组应用程序中的关键元素。每个工作流都唯一地与一个电话号码相关联;当有人呼叫该号码时,工作流可确定如何处理此呼叫。例如,此呼叫可能会路由至一系列互动语音响应 (IVR) 问题,提示呼叫者输入其他信息(例如,“按 1 以获取硬件支持。按 2 以获取软件支持”)。或者,可以将该呼叫放置在队列中,并将呼叫者置于呼叫等待状态,直到代理能够应答该呼叫。工作流也可指示是否有代理能够应答呼叫:工作流用于配置工作时间(代理在一周中的哪几天、一天中的哪些时段能够应答呼叫)和假日(代理无法应答呼叫的日期)。

Set-CsRgsWorkflow cmdlet 提供了一种修改现有工作流的属性的方法,例如,您可以更改工作流的电话号码、与工作流关联的代理组或触发工作流时(即有人拨打与该工作流关联的电话号码时)所执行的默认操作。

Set-CsRgsWorkflow 不会直接修改工作流本身。如需更改工作流,必须首先使用 Get-CsRgsWorkflow 创建对此工作流的对象引用,这就意味着需要检索相应的工作流,并将返回的对象存储到一个变量中。创建对象引用之后,可在内存中修改该对象的属性,然后使用 Set-CsRgsWorkflow 将这些更改写回到实际的响应组应用程序工作流。如果不调用 Set-CsRgsWorkflow,则您的更改将仅存在于内存中,并将在您关闭 Windows PowerShell 或删除对象引用变量后立即消失。

谁能运行此 cmdlet:默认情况下,以下各组的成员有权在本地运行 Set-CsRgsWorkflow cmdlet:RTCUniversalServerAdmins。要返回分配了此 cmdlet 的所有基于角色的访问控制 (RBAC) 角色列表(包括您自己创建的任何自定义 RBAC 角色),请从 Windows PowerShell 提示符处运行以下命令:

Get-CsAdminRole | Where-Object {$_.Cmdlets –match "Set-CsRgsWorkflow"}

参数

参数 必需 类型 描述

Instance

必需

工作流对象

要修改的响应组应用程序工作流的对象引用。通常通过使用 Get-CsRgsWorkflow cmdlet 并将返回值分配给变量来检索对象引用;例如,以下命令可返回对 Help Desk 工作流的对象引用,并将该对象引用存储在名为 $x 的变量中:

$x = Get-CsRgsWorkflow service:ApplicationServer:atl-cs-001.litwareinc.com -Name "Help Desk"

Instance 参数是一个位置参数:只要对工作流的对象引用是命令中使用的第一个参数值,就可以省略该参数。这意味着以下两个命令的功能完全相同:

Set-CsRgsWorkflow –Instance $x

Set-CsRgsWorkflow $x

Force

可选

开关参数

禁止显示运行此命令时可能出现的任何非严重错误消息。

WhatIf

可选

开关参数

描述如果执行命令会发生什么情况(无需实际执行命令)。

Confirm

可选

开关参数

在执行命令之前提示您进行确认。

输入类型

Microsoft.Rtc.Rgs.Management.WritableSettings.Workflow 对象。Set-CsRgsWorkflow 接受通过管道传递的响应组工作流对象的实例。

返回类型

Set-CsRgsWorkflow 不会返回任何对象或值。此 cmdlet 会修改 Microsoft.Rtc.Rgs.Management.WritableSettings.Workflow 对象的现有实例。

示例

-------------------------- 示例 1 --------------------------

$businessHours = Get-CsRgsHoursOfBusiness service:ApplicationServer:atl-cs-001.litwareinc.com -Name "US Business Hours"
$y = Get-CsRgsWorkflow Service:ApplicationServer:atl-cs-001.litwareinc.com -Name "Help Desk"
$y.BusinessHoursId = $businessHours.Identity
Set-CsRgsWorkflow -Instance $y

示例 1 中显示的命令检索现有的工作时间集合,然后将这些工作时间分配给名为 Help Desk 的工作流。为执行此操作,此示例中的第一个命令使用 Get-CsRgsHoursOfBusiness 从 ApplicationServer:atl-cs-001.litwareinc.com 服务检索名为 U.S. Business Hours 的工作时间集合。这些工作时间存储在名为 $businessHours 的变量中。

检索到工作时间后,使用 Get-CsRgsWorkflow cmdlet 从 ApplicationServer:atl-cs-001.litwareinc.com 检索 Help Desk 工作流。此对象存储在名为 $y 的变量中。

在此示例的第三个命令中,将 Help Desk 工作流的 BusinessHoursId 属性设置为检索到的工作时间集合;这是通过将 BusinessHoursId 设置为检索到的集合的 Identity ($businessHours.Identity) 来实现的。在最后一个命令中,使用 Set-CsRgsWorkflow 将新工作时间写入 ApplicationServer:atl-cs-001.litwareinc.com 上实际的 Help Desk 工作流中。最后一步很重要,这是因为到目前为止,所有更改都只在内存中进行。要将这些更改实际保存到 Help Desk 工作流中,必须调用 Set-CsRgsWorkflow,向此 cmdlet 传递包含该工作流的虚拟副本的对象引用 ($y)。

-------------------------- 示例 2 --------------------------

$x = Get-CsRgsWorkflow service:ApplicationServer:atl-cs-001.litwareinc.com -Name "Help Desk"
$x.Description = "Workflow for the Redmond Help Desk" 
Set-CsRgsWorkflow -Instance $x

上述示例向 ApplicationServer:atl-cs-001.litwareinc.com 服务上的 Help Desk 工作流分配一个新描述。为执行此任务,此示例中的第一个命令检索指定的工作流 (-Name "Help Desk"),并将检索到的对象存储在名为 $x 的变量中。在第二个命令中,将新描述(“Workflow for the Redmond Help Desk”)添加到 Help Desk 工作流的虚拟副本中。对描述进行更改后,第三个命令使用 Set-CsRgsWorkflow 将这些更改写入位于 ApplicationServer:atl-cs-001.litwareinc.com 上的实际 Help Desk 工作流。

-------------------------- 示例 3 --------------------------

$musicFile = Get-Content -ReadCount 0 -Encoding Byte C:\MediaFiles\Hold.wav | Import-CsRgsAudioFile -Identity Service:ApplicationServer:atl-cs-001.litwareinc.com -FileName "HelpDeskHoldMusic.wav"
$y = Get-CsRgsWorkflow -Identity Service:ApplicationServer:atl-cs-001.litwareinc.com -Name "Help Desk"
$y.CustomMusicOnHoldFile = $musicFile
Set-CsRgsWorkflow -Instance $y

示例 3 中显示的命令导入新的响应组音频文件,然后将此音频文件分配给现有的工作流。为执行此操作,示例中的第一个命令导入新的音频文件。这是通过调用 Get-Content cmdlet 逐字节地读入音频文件 (C:\MediaFiles\Hold.wav) 来实现的;为确保正确读入该音频文件,必须包含 ReadCount 参数(设置为 0)和 Encoding 参数(设置为 Byte)。读入音频文件后,将数据通过管道传递到 New-CsRgsAudioFile,后者将在 ApplicationServer:atl-cs-001.litwareinc.com 上创建新的文件。对此文件(名称为 HelpDeskHoldMusic.wav)的对象引用存储在名为 $musicFile 的变量中。

音频文件创建完成后,第二个命令从 ApplicationServer:atl-cs-001.litwareinc.com 检索工作流 Help Desk,并将返回的对象存储在名为 $y 的变量中。在第三个命令中,为此工作流的 CustomMusicOnHoldFile 属性分配值 $musicFile,即包含新创建的音频文件的变量。

将 $musicFile 分配给 CustomMusicOnHoldFile 后,最后一个命令使用 Set-CsRgsWorkflow cmdlet 将这些更改写入工作流 Help Desk。