Unified Service Desk でデータ駆動型アダプター (DDA) を使用する
データ駆動型アダプター (DDA) は、一般的にHosted Application Toolkit (HAT)によって活用されるアダプタです。 このアダプタは UI とのやり取りのみを処理する汎用アセンブリであり、これにはビジネス プロセスは含まれていません。 Unified Service Desk SDK には、幅広いアプリケーションをホストし、それにアクセスできるようにする、よく使用する一式の関数を提供する DDA が付属しています。 ただし、アプリケーションの種類に応じて、追加の機能が必要な場合があります。 新しい DDA を作成 (および外部の DDA 持つ複合 DDA 内でそれを使用) して既存の機能を拡張するなどの、既存の機能を拡張するさまざまな方法があります。
このセクションの内容
DDA をユーザー定義アプリケーション アダプターで使用する
データ駆動型アダプターの種類
4 種類の DDA があります。
DDA の作成
DataDrivenAdapterBase クラスを継承するだけで DDA を新規作成することができます。
このクラスには、オーバーロードが可能なコンストラクタがあります。
既存の DDA の拡張
前のセクションでは、DDA の作成方法を確認しました。 ただし、カスタマイズが名目だけの場合は、既存の DDA を使用して、要件の通りに拡張できます。
次のクラスを使用して、既存の UII DDA を拡張できます。
WinDataDrivenAdapter: WinDDA に基づいてアダプタを作成します。
WebDataDrivenAdapter: WebDDA に基づいてアダプタを作成します。
JavaDataDrivenAdapter: JavaDDA に基づいてアダプタを作成します。
UIADataDrivenAdapter: UIADDA に基づいてアダプタを作成します。
上述のすべてのクラスは、DataDrivenAdapterBase クラスから派生します。
バインド
データ駆動型アダプターは、バインディングという名前のデータを使用して、ホストされたアプリケーションの UI コンポーネントを特定する方法を定義します。 たとえば、バインディングが、Web ページ上の要素を記述するためのドキュメント オブジェクト モデル (DOM) のパスから構成されることがあります。 次の例は、DDA バインディングのサブツリーが埋め込まれたアプリケーション初期化文字列を示します。 これは一般的な例ですが、Acc
コントロールを Windows バインディングに実装するために使用されるパターンを示しています。
Note
明確にするために、一部の構成パラメーターは除去されています。
<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 は Hosted Application Toolkit (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 が要求する方法で指定された、構成済みコントロールのリストが含まれています。