使用数据驱动适配器 (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
绑定
使用自定义应用程序适配器内的 DDA
数据驱动适配器的类型
DDA 拥有四种类型:
创建 DDA
只需承继 DataDrivenAdapterBase 类即可创建新 DDA。
该类拥有可以超载的构造函数。
扩展现有 DDA
在前一节中,我们讲述了如何创建 DDA。 但是,如果您的自定义是名义上的自定义,您可以使用现有 DDA 并根据需要进行扩展。
您可以使用以下类来扩展现有 UII DDA:
WinDataDrivenAdapter:基于 WinDDA 创建适配器。
WebDataDrivenAdapter:基于 WebDDA 创建适配器。
JavaDataDrivenAdapter:基于 JavaDDA 创建适配器。
UIADataDrivenAdapter:基于 UIADDA 创建适配器。
上述所有类皆是从 DataDrivenAdapterBase 类派生的。
绑定
数据驱动适配器使用名为绑定的数据,以定义其确定托管应用程序的 UI 组件的方式。 例如,绑定可以包括描述网页上元素的文档对象模型(DOM)路径。 以下示例显示了带嵌入式 DDA 绑定子树的应用程序初始化字符串。 这是一个常规实例,但却指出用来执行 Windows 绑定模式内 Acc 控件的模式。
备注
为确保清晰度,已删除了某些配置参数。
<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/> 元素会控制 UII 动态实例化类型中指定的类型、程序集格式,从而允许加载和使用自定义 DDA 。<Controls/> 元素包含配置的控件列表,并按照加载的 DDA 规定的方式指定。
另请参阅
Unified Service Desk 2.0
© 2017 Microsoft。 保留所有权利。 版权