チュートリアル: 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 2012Visual Studio 2013Visual Studio 2015 用の NuGet Package Manager

  • UII でホストされたコントロール プロジェクト テンプレートを含む Visual Studio 用 Microsoft Dynamics 365 SDK テンプレート。 次のいずれかの方法で取得できます。

ステップ 1: サンプル外部アプリケーションの構築

  1. UII SDK パッケージをダウンロードします。

  2. パッケージ ファイルをダブルクリックして、ドキュメントを解凍します。

  3. <ExtractedFolder>\UII\SampleCode\UII\AIF\QsExternalApp フォルダーに移動し、Visual Studio で Microsoft.Uii.QuickStarts.QsExternalApp.csproj ファイルをオープンします。

  4. F5 キーを押すか、[デバッグ] > [デバッグの開始] を選択し、サンプル外部アプリケーションを作成します。 アプリケーション (Microsoft.Uii.QuickStarts.QsExternalApp.exe) は、プロジェクトの /bin/debug フォルダーに作成されます。

    サンプルの外部アプリ

ステップ 2: 外部アプリケーションを Microsoft Dynamics 365 で構成します。

このステップでは、外部のホストされたアプリケーションの種類のホストされたアプリケーションを作成し、Windows フォーム アプリケーションを表示します。

  1. Microsoft Dynamics 365 にサインインします。

  2. ナビゲーション バーで、Microsoft Dynamics 365 をクリックまたはタップし、次に [設定] を選択します。

  3. [設定] > [統合サービス デスク] > [ホストされたコントロール] をクリックまたはタップします。

  4. [新規] をクリックします。

  5. [新しいホストされたコントロール] ページで、次の値を指定します。

    フィールド

    名前

    QsExternalApp

    [USD コンポーネント]

    CCA ホステッド アプリケーション

    ホステッド アプリケーション

    外部ホステッド アプリケーション

    アプリケーションはグローバル

    チェック済み

    表示グループ

    MainPanel

    アダプター

    アダプターを使用しない

    アプリケーションは動的

    無効化しない

    外部アプリ URI

    Microsoft.Uii.QuickStarts.QsExternalApp.exe

    アプリケーション アダプターの構成画面

    Unified Service Desk 外部アプリケーション ホスト設定

  6. 保存 をクリックします。

ステップ 3: 外部アプリケーションのテスト

  1. Visual Studio プロジェクト出力フォルダー (<ProjectFolder>\bin\debug) から Unified Service Desk アプリケーション ディレクトリにアプリケーションをコピーします。 この場合は、Microsoft.Uii.QuickStarts.QsExternalApp.exefile を C:\Program Files\Microsoft Dynamics CRM USD\USD ディレクトリにコピーします。

  2. Unified Service Desk クライアントを実行し、Microsoft Dynamics 365 サーバーに接続します。

  3. サインインに成功すると、デスクトップに [サンプルの外部アプリケーション] ボタンが表示されます。

  4. Unified Service Desk にホストされた外部アプリケーションを表示するには、[サンプルの外部アプリケーション] をオンにします。

Unified Service Desk サンプル外部アプリケーション

注意

この時点では、アプリケーションは Unified Service Desk でのみホストされているため、フィールドは空です。Unified Service Desk からの値を事前に設定するには、アプリケーション アダプターを次のステップの説明に従い作成する必要があります。

ステップ 4: アプリケーション アダプターの作成

  1. Microsoft Visual Studioを起動し、新しいプロジェクトを作成します。

  2. 新しいプロジェクト ダイアログ ボックスで以下を実行します。

    1. インストール済みテンプレートの一覧から、Visual C# を展開し、[Dynamics 365 SDK のテンプレート] > [Unified Service Desk] > UII アプリケーション アダプターを選択します。

    2. プロジェクトの場所と名前を指定し、[OK] をクリックして新しいプロジェクトを作成します。

      Visual Studio での外部アプリケーション アダプター

  3. ソリューション エクスプ ローラーで、参照セクションを展開し、すべてのアセンブリ参照が正しく解決されていることを確認します。

  4. 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;
    
  5. 次のコードを 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);
    
            }
    
  6. 次のコードを 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);
            }
    
  7. プロジェクトを保存してプロジェクトを作成します ([ビルド] > [ソリューションの作成])。 プロジェクトのビルドに作成すると、プロジェクト フォルダーの \bin\debug フォルダーにアセンブリ (ExternalApplicationAdapter.dll) が生成されます。 このアセンブリは、アプリケーション アダプターをテストおよび使用するために後で必要になります。

ステップ 4: Dynamics 365 でのアプリケーション アダプターの構成

  1. Microsoft Dynamics 365 にサインインします。

  2. ナビゲーション バーで、Microsoft Dynamics 365 を選択し、次に [設定] を選択します。

  3. [設定] > [Unified Service Desk] > [ホストされたコントロール] を選択します。

  4. ホストされたコントロールの一覧から、QsExternalApp のホストされたコントロールを選択します。

    Unified Service Desk でのホストされたコントロール

  5. [アダプターの構成] セクションで、次の値を指定します。

    フィールド

    アダプター

    アダプターを使用する

    URI

    ExternalApplicationAdapter

    種類

    ExternalApplicationAdapter.AppAdapter

    Dynamics 365 の外部アダプターの構成

    注意

    URI はアセンブリ名で、種類は後ろにドット (.) が付いたアセンブリ (dll) の名前です。 それから Visual Studio プロジェクト内のクラス名。 この例では、アセンブリの名前は ExternalApplicationAdapter で、クラスの名前は AppAdapter です。このクラス名は、アプリケーション アダプターを作成するときの既定のクラス名です。

  6. [保存] をクリックして変更を保存します。

ステップ 5: アプリケーション アダプターのテスト

  1. アプリケーション アダプター定義を含むアセンブリを、Visual Studio のプロジェクト出力フォルダー (<ProjectFolder>\bin\debug) から Unified Service Desk のアプリケーション ディレクトリにコピーします。 この場合は、ExternalApplicationAdapter.dll ファイルを c:\Program Files\Microsoft Dynamics CRM USD\USD ディレクトリにコピーします。

  2. Unified Service Desk クライアントを実行し、Microsoft Dynamics 365 サーバーに接続します。

  3. サインインに成功すると、デスクトップにサンプルの外部アプリケーションが表示されます。

  4. [検索] を選択し、次に [取引先担当者] を選択して取引先担当者を選択します。 ここでは、Patrick Sands を選択します。

    Unified Service Desk での取引先担当者リスト

  5. [サンプルの外部アプリケーション] をクリックすると、自動的に入力された顧客の名、姓、アドレス、および ID が表示されます。

    外部アプリケーションの顧客情報

注意

このチュートリアルでは、外部アプリケーションで、 Unified Service Desk のデータを表示または読取る方法を示しました。 外部アプリケーションから Unified Service Desk のデータを更新するには、チュートリアル: UII Windows フォームのホストされたコントロールの作成を参照してください。

関連項目

UII アダプターを使用して外部および Web アプリケーションとやり取りする

Unified Service Desk 2.0

© 2017 Microsoft. All rights reserved. 著作権