データ駆動型アダプター (DDA) の使用

 

公開日: 2016年11月

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

データ駆動型アダプター (DDA) は、一般的に ホストされたアプリケーション ツールキット (HAT) によって活用されるアダプタです。 このアダプタは UI とのやり取りのみを処理する汎用アセンブリであり、これにはビジネス プロセスは含まれていません。Unified Service Desk SDK には、幅広いアプリケーションをホストし、それにアクセスできるようにする、よく使用する一式の関数を提供する DDA が付属しています。 ただし、アプリケーションの種類に応じて、追加の機能が必要な場合があります。 新しい DDA を作成 (および外部の DDA 持つ複合 DDA 内でそれを使用) して既存の機能を拡張するなどの、既存の機能を拡張するさまざまな方法があります。

このセクションの内容

データ駆動型アダプターの種類

DDA の作成

既存の DDA の拡張

バインディング

DDA をユーザー定義アプリケーション アダプターで使用する

データ駆動型アダプターの種類

4 種類の DDA があります。

DDA の作成

新しい DDA は、DataDrivenAdapterBase クラスを継承するだけで作成できます。

このクラスには、オーバーロードが可能なコンストラクタがあります。

既存の DDA の拡張

前のセクションでは、DDA の作成方法を確認しました。 ただし、カスタマイズが名目だけの場合は、既存の DDA を使用して、要件の通りに拡張できます。

次のクラスを使用して、既存の UII DDA を拡張できます。

上述のすべてのクラスは、DataDrivenAdapterBase クラスから派生します。

バインディング

データ駆動型アダプターは、バインディングという名前のデータを使用して、ホストされたアプリケーションの UI コンポーネントを特定する方法を定義します。 たとえば、バインディングが、Web ページ上の要素を記述するためのドキュメント オブジェクト モデル (DOM) のパスから構成されることがあります。 次の例は、DDA バインディングのサブツリーが埋め込まれたアプリケーション初期化文字列を示します。 これは一般的な例ですが、Acc コントロールを Windows バインディングに実装するために使用されるパターンを示しています。

注意

明確にするために、一部の構成パラメーターは除去されています。

<initstring>
    <interopAssembly>
      <URL>path to executable</URL>
      <Arguments>test argument</Arguments>
      <WorkingDirectory>c:\</WorkingDirectory>
      <hostInside/>
    </interopAssembly>
<!—- notice there is no custom application adapter specified here-->
    <displayGroup>None</displayGroup>
    <optimumSize x="800" y="600"/>
    <minimumSize x="640" y="480"/>
    <DataDrivenAdapterBindings>
      <Type>typeName, assemblyName</Type>
      <Controls>
        <AccControl name="combobox1">
          <Path>
            <FindWindow>
              <ControlID>1003</ControlID>
            </FindWindow>
          </Path>
        </AccControl>
</Controls>
    </DataDrivenAdapterBindings>
</initstring>

HAT ソフトウェア ファクトリを使用する場合、これによって InitString が生成されます。 次に、アプリケーションをソフトウェア ファクトリからサーバーに展開できます。

ホストされたアプリケーションを管理 UI を使用して直接追加する場合は、完全な InitString を作成する必要はありません。 必要なことは、DataDrivenAdapterBindings セクションを指定し、それを Automation Xml タブに追加するだけです。

DDA をユーザー定義アプリケーション アダプターで使用する

DDA は ホストされたアプリケーション ツールキット (HAT) 内でオートメーションをサポートするためと最初は思われていましたが、ユーザー定義アダプタで使用して有用な結果を達成することもできます。 ユーザ定義アダプタから取り込んだ次のコード サンプルは、ユーザー定義アダプターが DDA を使用できる方法を説明し、また DDA の一般的な利点について説明します。 サンプルが示すように、DDA の使用によって、コードと構成情報を分離ができます。

DataDrivenAdapter Dda;
public overrIDe bool Initialize()
{
   Dda=DataDrivenAdapter.CreateInstance(ApplicationInitString,ApplicationObject);
   return (Dda != null);
}
public overrIDe bool DoAction(Action action, ref string data)
{
if (action.Name == "AddToHistory")
   {
   Dda.ExecuteControlAction("combobox1");
   Dda.SetControlValue("textbox1", data);
   Dda.ExecuteControlAction("button1");
   }
}

アプリケーションの InitString に埋め込まれている DDA 構成は、次の例のように XML です。

<DataDrivenAdapterBindings>
<Type> Microsoft.UII.HostedApplicationToolkit.DataDrivenAdapter.WinDataDrivenAdapter, Microsoft.UII.HostedApplicationToolkit.DataDrivenAdapter</Type>
  <Controls>
    <AccControl name="combobox1">
      <Path>
        <FindWindow>
          <ControlID>1003</ControlID>
        </FindWindow>
      </Path>
    </AccControl>
    <AccControl name="textbox1">
      <Path>
        <FindWindow>
          <ControlID>1001</ControlID>
        </FindWindow>
      </Path>
    </AccControl>
    <AccControl name="button1">
      <Path>
        <FindWindow>
          <ControlID>1002</ControlID>
        </FindWindow>
      </Path>
    </AccControl>
  </Controls>
</DataDrivenAdapterBindings>

この <Type/> 要素は、アセンブリ フォーマットのタイプで指定したタイプを動的にインスタンス化して、その結果、ユーザー定義の DDA を読み込んで使用できるようにします。<Controls/> 要素には、ロードされた DDA が要求する方法で指定された、構成済みコントロールのリストが含まれています。

関連項目

HAT ソフトウェア ファクトリの使用

Unified Service Desk 2.0

© 2017 Microsoft. All rights reserved. 著作権