Uso de adaptadores basados en datos (DDA) en Unified Service Desk
Los adaptadores basados en datos (DDAs) son adaptadores aprovechados normalmente por el Kit de herramientas de aplicaciones hospedadas (HAT). Estos adaptadores son ensamblados genéricos que administran sólo la interacción con la interfaz de usuario y no contienen procesos de negocios. El SDK de Unified Service Desk se suministra con un DDA que proporciona un conjunto común de funciones que permiten hospedar y tener acceso a un gran número de aplicaciones. Sin embargo, es posible que requiera funcionalidad adicional según el tipo de aplicación. Existen varias formas de extender la funcionalidad existente, como crear un nuevo DDA (y usarlo en un DDA compuesto con DDAs externos) y ampliar un DDA existente.
En esta sección
Tipos de adaptadores basados en datos
Ampliación de un DDA existente
Uso de DDA en adaptadores de aplicación personalizados
Tipos de adaptadores basados en datos
Existen cuatro tipos de DDAs:
Crear un DDA
Puede crear un nuevo DDA simplemente heredando la clase DataDrivenAdapterBase.
La clase tiene el constructor que puede sobrecargarse.
Extender un DDA existente
En la sección anterior vimos cómo crear un DDA. No obstante, si la personalización es nominal, puede usar el DDA existente y extenderlo de acuerdo con los requisitos.
Puede usar las siguientes clases para ampliar los DDAs de la UII existentes:
WinDataDrivenAdapter: crea un adaptador basado en el elemento WinDDA.
WebDataDrivenAdapter: crea un adaptador basado en el elemento WebDDA.
JavaDataDrivenAdapter: crea un adaptador basado en el elemento JavaDDA.
UIADataDrivenAdapter: crea un adaptador basado en el elemento UIADDA.
Todas las clases anteriores se derivan de la clase DataDrivenAdapterBase.
Enlaces
Un adaptador basado en datos usa datos, denominados enlaces, para definir la forma en que se identifica un componente de interfaz de usuario de una aplicación hospedada. Por ejemplo, los enlaces pueden consistir en rutas de Document Object Model (DOM) para describir elementos en una página web. El siguiente ejemplo muestra una cadena de inicialización de la aplicación con un subárbol de enlace de DDA incrustado. Este es un ejemplo general, pero indica el patrón usado para implementar controles Acc
en enlaces Windows.
Nota
Algunos de los parámetros de configuración se han quitado para mayor claridad.
<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>
Si usa HAT Software Factory, creará la InitString
. La aplicación a continuación se puede implementar al servidor desde la fábrica de software.
Si va a agregar directamente una aplicación hospedada mediante la interfaz de usuario de administración, no es necesario crear toda la InitString
. Solo debe especificar la sección <DataDrivenAdapterBindings
> y agregarla a la pestaña Automation Xml
.
Uso de DDAs en adaptadores de aplicación personalizados
Aunque los DDAs se concibieron inicialmente para admitir automatizaciones dentro del Kit de herramientas de aplicaciones hospedadas (HAT), también pueden ser utilizados por adaptadores personalizados para lograr resultados útiles. El siguiente código de ejemplo, tomado de un adaptador personalizado, ilustra cómo los adaptadores personalizados pueden usar DDAs, e ilustra las ventajas generales de los DDAs. Como ilustra el ejemplo, el uso de DDAs permite una separación de código e información de configuración.
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");
}
}
La configuración de DDA, que se incrusta en la InitString
de la aplicación, es XML, como en el siguiente ejemplo.
<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>
El elemento <Type/>
indica a la UII que cree una instancia dinámica del tipo indicado en tipo, formato de ensamblado, permitiendo así la carga y el uso de DDAs personalizados. El elemento <Controls/>
contiene la lista de controles configurados, especificada de forma requerido por el DDA cargado.