次の方法で共有


統合サービス デスクでスクリプトレットを使用してスクリプトを実行

 

公開日: 2016年11月

対象: Dynamics 365 (online)、Dynamics 365 (on-premises)、Dynamics CRM 2013、Dynamics CRM 2015、Dynamics CRM 2016

スクリプトレットは、置換パラメーターの特殊な構文を使用するときに実行される JavaScript のスニペットです。 システム生成の置換パラメーターにはこれらの関数に必要な適切なデータが格納されていることもありますが、データが必要な形式で格納されていないかもしれません。 たとえば、コンピューター電話統合 (CTI) では、電話番号は通常、電話システムから、「3035551212」などの書式設定のない数字の文字列として到着します。 ただし、Microsoft Dynamics 365 は、電話番号を、(303) 555-1212 のように、ダッシュなどの書式指定文字を通常含んだ文字列として格納します。 電話システムから直接提供されたデータを使用して Dynamics 365 エンティティを検索する場合、変更はわずかであり、一致はかってないほど見つかります。 これには、Unified Service Desk のスクリプトレットを使用して対処します。

このトピックの内容

スクリプトレットの使い方

スクリプトレットからグローバルのホストされたコントロールを参照

スクリプトレットの使い方

Microsoft Dynamics 365 の [スクリプトレット] 領域 ([設定] > [スクリプトレット]) でスクリプトレットを定義します。 スクリプトレットを定義した後、スクリプトレットを次の形式で、クエリ内の置換パラメーターとして、またはアクション呼び出しのパラメーターとして使用します。

[[script.<Scriptlet_Name>]]

システムが script. で始まる置換パラメーターを確認すると、後ろに続くテキストに一致する名前を持つスクリプトをスクリプトレット リストから検索します。 指定した名前のスクリプトレットが見つかると、最初にそのスクリプト内のパラメーターを置き換え、次に JavaScript 式としてそのスクリプトを実行します。 その式の値を使用して、上記の置き換えの値を置換します。

警告

スクリプトレットの置換パラメーターに別のスクリプトレットによる置換が含まれるということが繰り返されて、ループが形成される場合、システムはパラメータを次々と置き換え、スタック オーバーフローが発生します。 その結果として、[[script.ReplacementParameters]] をスクリプトレットで絶対に使用しないことを強くお勧めします。

スクリプトレットからグローバルのホストされたコントロールを参照

スクリプトレットは実行中に、ホストされたコントロールのグローバル メソッドを参照できます。 すべてのグローバル (非動的) なホストされたコントロールは、起動時に、スクリプトレットのエンジンにスクリプト可能なオブジェクトとして追加されます。 JavaScript はスペースを含んだ名前は参照できないので、スクリプトレット エンジンは、グローバルなホストされたコントロールの名前に含まれる空白を自動的にアンダー スコア「_」に置き換えます。 したがって、次の有効な JavaScript を使用できます。

Connection_Manager.ConfigurationReader.ReadAppSettings(“maxNumberOfSessions”);

グローバル マネージャーについて、特殊ケースのシナリオが存在します。 また、構成に含まれる名前に関係なく、CRMGlobalManager を通して参照されます。

If (CRMGlobalManager.SessionCount == 0) // 顧客のセッションが読み込まれていません。 グローバル セッションのみが読み込まれます。

注意

パブリック関数だけがこのメソッドでアクセスできます。

セッション行コンポーネント内のセッション概要情報の表示を必要としているが、情報が実際には外部システムに存在し、その情報に Dynamics 365 サーバー内でアクセスできず、Web サービス経由でアクセスできると仮定しましょう。 この場合、外部 Web サービスを呼び出す、パブリック関数を公開するホストされたコントロールを作成できます。 次に、このホストされたコントロールをグローバルなホストされたコントロールとして構成し、HiddenPanel に配置します。 これで、この関数と Web サービス呼び出しをスクリプトレットから使用できるようになりました。 次に、新しい関数を呼び出す、次のスクリプトレットを作成できます。

My_Global_Application.CallExternalWebService(“[[account.accountnumber]$]”);

このコードは、取引先企業の取引先企業番号を関数にパラメーターとして渡します。 このスクリプトレットに [Web サービス呼び出し] という名前を付けた場合、次のセッション行を使用して、Web サービス呼び出しの結果を表示できます。

<Grid Margin="0"
  xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml"
  xmlns:CCA="clr-namespace:Dynamics;assembly=Dynamics">
<Grid.RowDefinitions>
 <RowDefinition Height="auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
 <ColumnDefinition Width="100"/>
 <ColumnDefinition Width="*" />
 <ColumnDefinition Width="auto" />
</Grid.ColumnDefinitions>
<Label Margin="3,0,5,3" Content="Web Service Data" Padding="0" Grid.Row="4" HorizontalAlignment="Right" FontFamily="Tohoma" FontSize="12" FontWeight="Bold" />
<TextBlock Text="[[script.Call Web Service]]" Margin="0" Grid.Column="1" Grid.Row="4" Padding="3,0,0,3" FontFamily="Tohoma" FontSize="12"/>
</Grid>

関連項目

置換パラメーター
グローバルおよびセッション ベースの Unified Service Desk のホストされたコントロール

Unified Service Desk 2.0

© 2017 Microsoft. All rights reserved. 著作権