チュートリアル: UII アプリケーション アダプターの作成
公開日: 2016年11月
対象: Dynamics 365 (online)、Dynamics 365 (on-premises)、Dynamics CRM 2013、Dynamics CRM 2015、Dynamics CRM 2016
外部アプリケーションを Unified Service Desk と統合する場合は、アプリケーションのアダプターを作成することができます。Microsoft Dynamics 365 には、アプリケーション アダプターを作成するための Microsoft Visual Studio テンプレートが用意されています。 このテンプレートでは、アプリケーション アダプターの作成をすぐ開始するために役立つコメントとして、基本コードが用意されています。
このチュートリアルでは、QsExternalApp と言う名前の外部アプリケーションをビルドし、それを Unified Service Desk でホストします。 次に、Unified Service Desk とやり取りする外部アプリケーション用に、アプリケーション アダプター ExternalApplicationAdapter を作成および構成します。 外部アプリケーションには、顧客の名、姓、住所、および ID の 4 つのラベルと、Unified Service Desk からの値を表示する、4 つの対応するテキスト ボックスがあります。
このセクションの内容
前提条件
ステップ 1: サンプル外部アプリケーションの構築
ステップ 2: 外部アプリケーションを Microsoft Dynamics 365 で構成します。
ステップ 3: 外部アプリケーションのテスト
ステップ 4: アプリケーション アダプターの作成
ステップ 4: Dynamics 365 でのアプリケーション アダプターの構成
ステップ 5: アプリケーション アダプターのテスト
前提条件
Microsoft .NET Framework 4.5.2
Unified Service Desk クライアント アプリケーション - ホストされたコントロールをテストするために必要。
Microsoft Visual Studio 2012、Visual Studio 2013 または Visual Studio 2015
Visual Studio 2012、Visual Studio 2013、Visual Studio 2015 用の NuGet Package Manager
UII でホストされたコントロール プロジェクト テンプレートを含む Visual Studio 用 Microsoft Dynamics 365 SDK テンプレート。 次のいずれかの方法で取得できます。
CRM SDK テンプレートをダウンロードする。CRMSDKTemplates.vsix ファイルをダブルクリックして、Visual Studioにテンプレートをインストールします。
CRM SDK パッケージをダウンロードして展開します。 SDK の SDK\Templates フォルダーに移動し、CRMSDKTemplates.vsix ファイルをダブルクリックして、テンプレートを Visual Studio にインストールします。
ステップ 1: サンプル外部アプリケーションの構築
パッケージ ファイルをダブルクリックして、ドキュメントを解凍します。
<ExtractedFolder>\UII\SampleCode\UII\AIF\QsExternalApp フォルダーに移動し、Visual Studio で Microsoft.Uii.QuickStarts.QsExternalApp.csproj ファイルをオープンします。
F5 キーを押すか、[デバッグ] > [デバッグの開始] を選択し、サンプル外部アプリケーションを作成します。 アプリケーション (Microsoft.Uii.QuickStarts.QsExternalApp.exe) は、プロジェクトの /bin/debug フォルダーに作成されます。
ステップ 2: 外部アプリケーションを Microsoft Dynamics 365 で構成します。
このステップでは、外部のホストされたアプリケーションの種類のホストされたアプリケーションを作成し、Windows フォーム アプリケーションを表示します。
Microsoft Dynamics 365 にサインインします。
ナビゲーション バーで、Microsoft Dynamics 365 をクリックまたはタップし、次に [設定] を選択します。
[設定] > [統合サービス デスク] > [ホストされたコントロール] をクリックまたはタップします。
[新規] をクリックします。
[新しいホストされたコントロール] ページで、次の値を指定します。
フィールド
値
名前
QsExternalApp
[USD コンポーネント]
CCA ホステッド アプリケーション
ホステッド アプリケーション
外部ホステッド アプリケーション
アプリケーションはグローバル
チェック済み
表示グループ
MainPanel
アダプター
アダプターを使用しない
アプリケーションは動的
無効化しない
外部アプリ URI
Microsoft.Uii.QuickStarts.QsExternalApp.exe
保存 をクリックします。
ステップ 3: 外部アプリケーションのテスト
Visual Studio プロジェクト出力フォルダー (<ProjectFolder>\bin\debug) から Unified Service Desk アプリケーション ディレクトリにアプリケーションをコピーします。 この場合は、Microsoft.Uii.QuickStarts.QsExternalApp.exefile を C:\Program Files\Microsoft Dynamics CRM USD\USD ディレクトリにコピーします。
Unified Service Desk クライアントを実行し、Microsoft Dynamics 365 サーバーに接続します。
サインインに成功すると、デスクトップに [サンプルの外部アプリケーション] ボタンが表示されます。
Unified Service Desk にホストされた外部アプリケーションを表示するには、[サンプルの外部アプリケーション] をオンにします。
注意
この時点では、アプリケーションは Unified Service Desk でのみホストされているため、フィールドは空です。Unified Service Desk からの値を事前に設定するには、アプリケーション アダプターを次のステップの説明に従い作成する必要があります。
ステップ 4: アプリケーション アダプターの作成
Microsoft Visual Studioを起動し、新しいプロジェクトを作成します。
新しいプロジェクト ダイアログ ボックスで以下を実行します。
インストール済みテンプレートの一覧から、Visual C# を展開し、[Dynamics 365 SDK のテンプレート] > [Unified Service Desk] > UII アプリケーション アダプターを選択します。
プロジェクトの場所と名前を指定し、[OK] をクリックして新しいプロジェクトを作成します。
ソリューション エクスプ ローラーで、参照セクションを展開し、すべてのアセンブリ参照が正しく解決されていることを確認します。
AppAdapter.cs ファイルをオープンし、次のコード行を追加し、クラス定義のページで各コンポーネントの位置を設定します。
// Set up your locations for each component on the page. // If you wish, you could use Spy++ to get the actual names as well. // First Name text box int intFirstNameCoordX = 47; int intFirstNameCoordY = 32; // Last Name text box int intLastNameCoordX = 223; int intLastNameCoordY = 32; // Address Text box int intAddressCoordX = 47; int intAddressCoordY = 81; // Customer ID text box int intIDCoordX = 47; int intIDCoordY = 126;
次のコードを NotifyContextChange の定義に追加し、内容が変更されたことをアプリケーションに通知します。 詳細については、「NotifyContextChange」を参照してください。
public override bool NotifyContextChange(Context context) { IntPtr ptr = MainWindowHandle; // Find the control (first name) by position IntPtr childHwnd = Win32API.FindWindowByPosition(ptr, new Point(intFirstNameCoordX, intFirstNameCoordY)); // Fill data out Win32API.SetWindowTextAny(childHwnd, context["firstname"]); // Find the control (last name) by position childHwnd = Win32API.FindWindowByPosition(ptr, new Point(intLastNameCoordX, intLastNameCoordY)); // Fill out the data Win32API.SetWindowTextAny(childHwnd, context["lastname"]); childHwnd = Win32API.FindWindowByPosition(ptr, new Point(intAddressCoordX, intAddressCoordY)); Win32API.SetWindowTextAny(childHwnd, context["address1_line1"]); childHwnd = Win32API.FindWindowByPosition(ptr, new Point(intIDCoordX, intIDCoordY)); Win32API.SetWindowTextAny(childHwnd, context["CustomerID"]); // Hands control back over to the base class to notify next app of context change. return base.NotifyContextChange(context); }
次のコードを DoAction の上書き定義に追加し、フォーム フィールドを Unified Service Desk からの値で更新します。
public override bool DoAction(Microsoft.Uii.Csr.Action action, RequestActionEventArgs args) { IntPtr ptr; IntPtr childHwnd; switch (args.Action) { case "UpdateFirstName": // Get locations of what you want to update and handles ptr = MainWindowHandle; childHwnd = Win32API.FindWindowByPosition(ptr, new Point(intFirstNameCoordX, intFirstNameCoordY)); // Populate data into fields Win32API.SetWindowTextAny(childHwnd, args.Data); break; case "UpdateLastName": // Get locations of what you want to update and handles ptr = MainWindowHandle; childHwnd = Win32API.FindWindowByPosition(ptr, new Point(intLastNameCoordX, intLastNameCoordY)); // Populate data into fields Win32API.SetWindowTextAny(childHwnd, args.Data); break; } return base.DoAction(action, args); }
プロジェクトを保存してプロジェクトを作成します ([ビルド] > [ソリューションの作成])。 プロジェクトのビルドに作成すると、プロジェクト フォルダーの \bin\debug フォルダーにアセンブリ (ExternalApplicationAdapter.dll) が生成されます。 このアセンブリは、アプリケーション アダプターをテストおよび使用するために後で必要になります。
ステップ 4: Dynamics 365 でのアプリケーション アダプターの構成
Microsoft Dynamics 365 にサインインします。
ナビゲーション バーで、Microsoft Dynamics 365 を選択し、次に [設定] を選択します。
[設定] > [Unified Service Desk] > [ホストされたコントロール] を選択します。
ホストされたコントロールの一覧から、QsExternalApp のホストされたコントロールを選択します。
[アダプターの構成] セクションで、次の値を指定します。
フィールド
値
アダプター
アダプターを使用する
URI
ExternalApplicationAdapter
種類
ExternalApplicationAdapter.AppAdapter
注意
URI はアセンブリ名で、種類は後ろにドット (.) が付いたアセンブリ (dll) の名前です。 それから Visual Studio プロジェクト内のクラス名。 この例では、アセンブリの名前は ExternalApplicationAdapter で、クラスの名前は AppAdapter です。このクラス名は、アプリケーション アダプターを作成するときの既定のクラス名です。
[保存] をクリックして変更を保存します。
ステップ 5: アプリケーション アダプターのテスト
アプリケーション アダプター定義を含むアセンブリを、Visual Studio のプロジェクト出力フォルダー (<ProjectFolder>\bin\debug) から Unified Service Desk のアプリケーション ディレクトリにコピーします。 この場合は、ExternalApplicationAdapter.dll ファイルを c:\Program Files\Microsoft Dynamics CRM USD\USD ディレクトリにコピーします。
Unified Service Desk クライアントを実行し、Microsoft Dynamics 365 サーバーに接続します。
サインインに成功すると、デスクトップにサンプルの外部アプリケーションが表示されます。
[検索] を選択し、次に [取引先担当者] を選択して取引先担当者を選択します。 ここでは、Patrick Sands を選択します。
[サンプルの外部アプリケーション] をクリックすると、自動的に入力された顧客の名、姓、アドレス、および ID が表示されます。
注意
このチュートリアルでは、外部アプリケーションで、 Unified Service Desk のデータを表示または読取る方法を示しました。 外部アプリケーションから Unified Service Desk のデータを更新するには、チュートリアル: UII Windows フォームのホストされたコントロールの作成を参照してください。
関連項目
UII アダプターを使用して外部および Web アプリケーションとやり取りする
Unified Service Desk 2.0
© 2017 Microsoft. All rights reserved. 著作権