使用取代參數來設定 Unified Service Desk
發行︰ 2016年11月
適用於: Dynamics 365 (online)、Dynamics 365 (on-premises)、Dynamics CRM 2013、Dynamics CRM 2015、Dynamics CRM 2016
取代參數可以用於特定商務程序期間透過動作和視窗導覽規則來自訂互動。其他資訊:取代參數
本主題提供取代索引鍵的相關資訊,可以在取代參數中使用取代索引鍵,表示在某些特殊情況下如何使用Unified Service Desk取代參數的特殊處理。
本主題內容
取代索引鍵
特製化的處理常式
取代索引鍵
下表提供可用於取代參數之取代索引鍵的相關資訊。
取代索引鍵 |
描述 |
---|---|
+ |
這個索引鍵存在時,會將 null 或不存在的索引鍵取代為空字串。 例如:在 account.name 未定義的情況下,呼叫 [[account.name]] 會產生「動作呼叫 <ActionName> 中並非所有參數都可用,正在中止動作呼叫」 錯誤。 這會停止處理正在執行的規則或明細項目。 不過,[[account.name]+] 會傳回空白,並不會引發取代索引鍵錯誤。 |
NT$ |
此索引鍵允許逸出引號和分行符號。 叫用 scriptlet 或傳回多行字串時,它通常會做為運算子使用。 例如:[[script.MyMultiLineString]$] |
^ |
此索引鍵可防止逸出引號和分行符號,用來簡維多行結果集。 例如: MyMultiline=[[myvalue]^] |
u |
這個索引鍵是用來 URL 編碼 (也稱為百分比編碼) 取代參數。 例如,考慮下列 URL 中的取代參數:http://mysite?something=[[opportunity.name]u。 傳回下列字串:http://mysite?something=My%20Opportunity。 |
x |
這個索引鍵是用來 XML 編碼取代參數。 這允許逸出 XAML 字元 (例如 <),並在輸出中正確顯示。 例如:[[myvalue]x]。 |
g |
此索引鍵用來從全域工作階段中傳回值。 如果在全域工作階段中找不到索引鍵,將會導致找不到索引鍵錯誤。 |
a |
此索引鍵用來從目前使用中 (有焦點的) 工作階段傳回值。 如果在使用中工作階段中找不到索引鍵,將會導致找不到索引鍵錯誤。 |
v |
此索引鍵用來取代取代索引鍵內的索引鍵。 例如,考量下列兩個值:
當您叫用 [[mytemplate.value]],會傳回下列字串:"My Template is [[account.name]+]"。 不過,當您叫用 [[mytemplate.value]v],會傳回下列字串:"My template is My Account"。 |
特製化的處理常式
有時會需要執行一些簡單的程式碼,如不保證建立 scriptlet 的 if/then/else 型別建構。 這些情況都需要在動作呼叫內部使用 scriptlet。 在動作呼叫中建置內嵌 scriptlet 時,有兩個特製化的處理常式可協助:$Expression 和 $Multiline。
$Expression
請考慮您要根據目前實體的實體型別程式碼 (etc) 來切換顯示名稱的情況。 您要建置需要這項資訊的 URL。 在此情況下,只能載入一個客戶或連絡人。
在此情況下,我們會在 [標準 Web 應用程式] 託管控制項上呼叫 [導覽] 動作,藉由在 [資料] 欄位中使用下列值:
url= http://mysite/showmessage.aspx?displayname={either the account or contact display name}
若要達到此目的,我們會使用 $Expression,如下所示:
url= http://mysite/showmessage.aspx?displayname=$Expression("[[$Context.etc]]" == "1" ? "[[account.name]u+]" : "[[contact.fullname]u+]")
處理動作時,這可以有效地建立並執行 scriptlet。
$Multiline
在 $Expression 區段中,我們討論在動作內執行內嵌 scriptlet。 在需要執行更複雜的 scriptlet,但仍不想要使用 scriptlet 物件來儲存 scriptlet 的情況中,$Multiline 命令可以用來儲存較複雜的 scriptlet。
例如,使用 $Expression 一節中我們稍早所用的範例,它可以分解為:
url= http://mysite/showmessage.aspx?displayname=$Multiline( $Expression(
function doWork()
{
If ("[[$Context.etc]]" == "1")
return "[[account.name]u+]"
else
return "[[contact.fullname]u+]"
}
doSomeWork();
))
另請參閱
取代參數
在 Unified Service Desk 使用 scriptlet 執行指令碼
Unified Service Desk 設定逐步解說
Unified Service Desk 2.0
© 2017 Microsoft. 著作權所有,並保留一切權利。 著作權