ユーザー定義イベントの作成
Unified Service Desk は、ホストされたコントロールの種類に基づいて、ホストされたコントロールのあらかじめ定義されたイベントを提供します。 これらのあらかじめ定義されたイベントとは別に、Unified Service Desk で独自のイベントを作成することもできます。これは、ユーザー定義のイベントと呼ばれます。 FireEvent アクションまたはイベントの名前を使用して、ユーザー定義のイベントを実行できます。
FireEvent アクションの使用
CCA にホストされたアプリケーションを除く、すべての定義済みおよびカスタムの Unified Service Desk でホストされたコントロールの種類には、FireEvent と呼ばれる特別な UII アクションがあります。 この操作を呼び出して、そのコントロールからユーザー定義のイベントを開始することができます。 これは、複数のアクション呼び出しを 1 つの呼び出しにまとめるのに便利な方法で、Unified Service Desk 内で効果的に関数を作成することができます。 展開前に、イベントおよびアクションのシーケンスをテストする妥当な方法でもあります。
FireEvent の最初のパラメーターは、イベントの名前です。
name=MyEvent
すべての後続の名前/値のペアは、イベントのパラメーターになります。したがって、結果として呼び出されるアクションの置換パラメーターとして使用できます。 たとえば、次のパラメーターの一覧を渡します。
name=MyEvent
var1=[[account.name]]
以下のように var1
パラメーターを使用するアクション コールの作成機能を有効にする、カスタム イベントの MyEvent イベントを発生させます。
Hosted Control=Some Hosted Control
UII Action=Some action on the Hosted Control
Data=[[var1]]
これは、イベント パラメーターをデータ パラメーターとして、ホストされたコントロールのアクションに渡します。 つまり、この例では、ホストされたコントロールのデータ パラメーターは、セッションの account.name 値になります。
イベント名称の使用
ホストされたコントロールでカスタム イベントを作成し、以下のイベント名称構文を使用して呼出すことができます。
http://event/?EventName=<EVENT_NAME>&key=value&key=value&…
構文では、イベントのトリガー時に使用されるパラメーター一覧をパスする、key=value
のペアを指定します。
サポート案件フォームのサポート案件タイトルが Microsoft Dataverse で変更されるとき、ユーザー定義イベントを起動する例を考慮してください。 実行する操作:
Dataverse のインシデントのホストされたコントロールのために、
TitleChanged
という名前のイベントを新規作成します。次の値を使用して、
Action Call for Title Change
という名前のアクション コールを作成します。フィールド 値 件名 タイトルの変更に対するアクションの呼び出し ホストされたコントロール インシデント 目的 RunXrmCommand データ function titleChangeReaction() {
window.open(http://event/?EventName=TitleChanged&NewTitle="+encodeURIComponent(Xrm.Page.getAttribute("title").getValue()
));
}
Xrm.Page.getAttribute("title").addOnChange(titleChangeReaction);インシデントのホストされたコントロールの BrowserDocumentComplete イベントに対し、作成済みの新規アクション コールを追加します。 詳細: イベントへのアクション コールの追加
TitleChanged
イベントがトリガーされるとき、以下の要求が発生します。http://event/?EventName=TitleChanged&NewTitle=<NEW_TITLE>
これにより、
TitleChanged
イベントは次のデータ パラメータを使用してトリガーされます。NewTitle=<NEW_TITLE>
Dataverse の JavaScript を使用し、イベント名称を使用して Unified Service Desk でイベントを起動 (
http://event/?EventName=<EVENT_NAME>&key=value&key=value&…
) している場合、window.IsUSD
プロパティを使用して、イベントの起動時に JavaScript コードが Unified Service Desk で実行されているかどうかを確認することができます。 次のコード サンプルには、呼び出した JavaScript が Unified Service Desk で実行している時にのみイベントが起動されることを確認するため、独自の JavaScript コードを含めることができます。
if ((window.IsUSD != null) && (window.IsUSD == true))
{
window.open(http://event/?EventName=<EVENT_NAME>&key=value&key=value&…);
}
参照
イベント
ホストされたコントロールの種類とアクション/イベント リファレンス
ホストされたコントロール、アクション、およびイベントの管理
MSDN: Microsoft Dynamics CRM での JavaScript の使用