2 Introduccin En mltiples ocasiones disponemos de ciertas aplicaciones satlite en nuestra estructura que se usan para infinidad de cosas y en algn que otro momento deben sincronizar sus datos con nuestro ERP. Dynamics AX incorpora el AIF (Application Integration Framework) que nos brinda todo un abanico de posibilidades de sincronizacin tanto de datos como de funcionalidad. Caractersticas principales : AIF incorpora un conjunto de interfaces ya diseadas y adems nos permite aadir nuestros propios desarrollos. Se puede usar para llamadas a servicios web en lnea o para intercambio de documentos completos mediante colas de proceso. Al trabajar con documentos XML y webservices es posible usarlo desde herramientas como InfoPath y otras que nos facilitan mucho el trabajo.
Objetivo Nuestro objetivo consistir en conseguir realizar una conexin satisfactoria con alguno de los Webservices estndar que incorpora Dynamics AX. Veremos como se pueden consumir dichos webservices desde InfoPath y como se crea de forma automtica un cliente para consumir dichos webservices desde C#.
Cmo se hace? Para empezar debemos revisar la lista de webservices de que disponemos desde Dynamics AX y activar aquellos que deseemos usar. Cmo se hace?
3
En el men BASE / CONFIGURAR / MARCO DE INTEGRACIN DE LA APLICACIN / SERVICIOS podremos ver la lista de servicios de que disponemos y se nos permitir activar aquellos servicios que necesitemos.
En nuestro ejemplo usaremos el servicio InventItemService y por tanto lo marcaremos como habilitado. Si pulsamos el botn Operaciones de servicio veremos las diferentes operaciones que ofrece este servicio, que en nuestro caso se corresponde con algunas de las operaciones estndar que ofrecen la mayora de servicios. Find : Se utiliza para buscar un conjunto de entidades que se correspondan con unos criterios de bsqueda que se especifican en los parmetros Create : Usado para crear una nueva entidad Read : Para leer el contenido completo de una entidad que se corresponda con los criterios de bsqueda que se especifiquen. FindKeys : Devuelve la lista de campos clave de aquellas entidades que se correspondan con los criterios de bsqueda especificados por parmetro. Otros servicios adems ofrecen operaciones como : Cmo se hace?
4 Delete : Para borrar una entidad. Update: Para actualizar los datos de una entidad. Cuando ya hayamos activado el servicio que nos interesa le damos al botn Generar para que Dynamics AX genere el servicio web.
Para poder comprobar si funciona correctamente podemos acceder a la pgina web siguiente : http://servidor/MicrosoftDynamicsAXAif50/ItemService.svc Nos debera aparecer una pgina parecida a esta:
Llegados a este punto ya tenemos en marcha nuestro WebService dentro de Dynamics AX, ahora solo falta acceder a el desde el exterior. Podemos acceder a estos webservices desde cualquier aplicacin o lenguaje de programacin que nos permita consumir webservices, pero en nuestro ejemplo vamos a mostrar como podemos acceder a dichos servicios desde InfoPath 2007. 1. Comenzaremos creando una nueva plantilla de InfoPath
Seleccionamos plantilla en blanco : Cmo se hace?
5
2. Luego vamos a aadir una nueva conexin de datos:
Cmo se hace?
6
a. Elegimos Recibir Datos y Siguiente:
b. Marcamos Servicio Web y Siguiente:
c. Ahora introducimos la URL de nuestro servicio Web (como cuando hemos realizado la prueba de conexin pero aadiendo al final ?WSDL) y Siguiente. Cmo se hace?
7
d. Nos aparecen las distintas operaciones disponibles en nuestro servicio y elegimos una (READ) y Siguiente:
e. Vamos pulsando siguiente hasta la ltima pgina en la que debemos desmarcar la opcin Recuperar datos automticamente cuando se abre un formulario y le damos a Finalizar.
3. Ahora ya tenemos creada la conexin de datos, vamos a probarla, aadiremos datos en nuestra vista de InfoPath. a. En el panel de tareas de diseo pulsamos la opcin Origen de datos: Cmo se hace?
8
b. Seleccionamos la conexin READ que hemos aadido anteriormente y desplegamos todo el rbol de campos para ver que contiene.
c. Seleccionamos el nodo InventTable de dentro de la rama dataFields y con el botn de la derecha le damos a la opcin Tabla Extensible: Cmo se hace?
9
Esto nos insertar una tabla con tantas columnas como campos tengamos dentro del elemento InventTable.
4. Ya tenemos la tabla (de momento vaca), ahora vamos a aadir un control de texto para que el usuario pueda usarlo a modo de filtro. a. Ahora hacemos clic en alguna zona por encima de dicha tabla y pulsamos 3 o 4 veces la tecla intro (para hacer un poco de espacio por encima de la tabla ya que vamos a insertar algn control en la parte superior).
b. Luego volvemos a la zona de origen de datos y seleccionamos Principal. c. Botn de la derecha Agregar Cmo se hace?
10
d. En la pantalla de aadir campo escribimos FltItemId como nombre del campo y Aceptar:
e. Luego arrastramos el nuevo campo al espacio que queda por encima de la tabla extendida:
5. Ahora aadimos un botn que realizar el filtro cuando el usuario lo pulse. a. Pulsamos de nuevo sobre Tareas de diseo Cmo se hace?
11
b. Luego sobre Controles
c. Y arrastramos un botn hacia la vista justo al lado del cuadro de texto que hemos aadido anteriormente. Cmo se hace?
12
d. Hacemos doble clic sobre el botn y le cambiamos la etiqueta por Filtrar Cmo se hace?
13
6. Luego hacemos un clic en el botn Reglas donde definiremos el comportamiento del botn cuando sea pulsado por el usuario. a. Le damos a Agregar con lo que crearemos la Regla 1
b. Ahora comenzaremos a aadir acciones a la Regla 1 Cmo se hace?
14
c. Para nuestro ejemplo crearemos la primera accin que establecer el valor de un campo:
d. Ahora seleccionamos el campo que realmente ser un campo de query para realizar la consulta de la conexin de datos. Cmo se hace?
15
e. Seleccionamos el campo Field
f. Ahora en Valor introducimos ItemId que es el nombre del campo por el que queremos filtrar y le damos a Aceptar. Cmo se hace?
16
g. Aadimos otra accin de establecer valor de un campo, pero esta vez en lugar de hacerlo sobre el campo Field, lo haremos sobre el campo Value.
h. Y en valor, en lugar de asignar una constante, asignaremos el campo FltItemId que es el que almacena el texto que haya introducido el usuario para realizar el filtro.
Cmo se hace?
17
i. Por ltimo aadiremos la accin que realizar la consulta a la conexin de datos:
Cmo se hace?
18 7. Aceptamos hasta volver a la pantalla de la vista de InfoPath y ya podemos probar nuestro pequeo proyecto. a. Pulsamos sobre el botn Vista previa
8. Si introducimos un cdigo de artculo vlido y pulsamos filtrar deberan aparecernos los datos relativos a ese artculo.