En este artículo puedes encontrar más información acerca de i2factory Studio, el entorno de desarrollo visual para la construcción y depuración de las soluciones de integración en i2factory. 

i2factory Studio  es un editor web drag & drop que permite diseñar de manera visual las soluciones de integración. Es compatible con los principales navegadores actuales. Mediante la configuración de los parámetros de las tareas y conectores se pueden construir soluciones de integración. Para ello cuenta con asistentes visuales de creación de expresiones y de mapeo de datos que te permite configurar sin escribir ni una sola línea de código.

Además, proporciona una validador sintáctico que avisa sobre errores en la conexión o configuración de los distintos elementos gráficos y un depurador integrado dentro del propio entorno de desarrollo, que permite depurar las soluciones de integración de manera visual, aportando gran cantidad de información valiosa para refinar las soluciones antes de ponerlas en ejecución.


XngFnUu_SOLhNvXp35YKUHGNNQB9iuNw_A.png

Una solución de integración es un proceso con varias entradas y salidas, compuesto por un conjunto de conectores a aplicaciones y sistemas externos y otro conjunto de tareas de integración que los conectan a través de slots y canales de comunicación. Las soluciones que creamos en el editor gráfico están basadas en un lenguaje gráfico específico del dominio de la integración de aplicaciones.


U4aggJV-GiO7D3CKBn8B32wVL1cpyWtznA.pngNavegadores compatibles: i2factory es compatible y ha sido probado con los navegadores Internet Explorer v11 (y superiores), Mozilla Firefox v34 (y superiores) y Google Chrome v39 (y superiores). No se descarta que funcione correctamente con otros navegadores como Safari, pero no han sido probados y por lo tanto no lo podemos asegurar.

 

U4aggJV-GiO7D3CKBn8B32wVL1cpyWtznA.pngCómo acceder a i2factory Studio: Puedes acceder a i2factory Studio haciendo click en el icono Editar de una solución existente o seleccionando la acción Nuevo / Studio en la sección de Soluciones del panel de control de i2factory Cloud:

W5cjnOqqqWTt3wN4zjH2XMJIUS0H8sud7g.png

U4aggJV-GiO7D3CKBn8B32wVL1cpyWtznA.pngVolver al panel de control: Utiliza esta opción para salir de i2factory Studio y volver al panel de control. Si tienes cambios pendientes, te preguntará si quieres guardarlos antes de salir.

 

U4aggJV-GiO7D3CKBn8B32wVL1cpyWtznA.pngCerrar barras laterales: Haz click en estos símbolos para cerrar los menús laterales que aparecen a izquierda y derecha.




En i2factory Studio encontrarás los siguientes elementos principales con los que trabajar, ubicados en la posición que figura en la tabla: 

Un listado de Conectores disponibles para ser usados como puertos de entrada, salida, solicitud y respuesta dentro de las propias soluciones

 

Un Área de Modelado en la parte central para realizar el diseño de las soluciones de integración donde es posible arrastrar y conectar el resto de elementos.

 

Una Barra de Propiedades lateral para poder configurar los parámetros principales de la solución, los puertos y las tareas de integración

Un listado con las Tareas de integración disponibles que podrás usar en la construcción del proceso de integración

Una Barra de Acciones inferior para la edición de la solución con los comandos más habituales
 (depurar la solución, guardar, cortar, copiar, pegar, eliminar, deshacer, rehacer, acercar, alejar, expandir, colapsar, capturar, imprimir)

  

EidWzfWLY7OOpIPJt-PrmXVmUwl6B3LQ8A.png

Lista de conectores y tareas



En la parte de la izquierda de i2factory Studio puedes acceder al listado de conectores de aplicaciones disponibles y a las tareas de integración

 

  • Los conectores son los elementos que permiten comunicar la solución de integración con las aplicaciones externas. Una vez incluido un conector a la solución, se le denomina puerto de comunicación y los hay de 4 tipos distintos:
    • Entrada: introduce un mensaje de información desde una aplicación externa a la solución de integración.
    • Salida: envía información en un mensaje desde la solución de integración a una aplicación externa.
    • Solicitud: permite que desde dentro de una solución se solicite información a una aplicación externa
    • Respuesta: permite que un solución pueda recoger y responder peticiones externas.
       

MdDxFA342cFBhpGTuMmKkvnVnkB883Olqg.png

  • Las tareas son unidades mínimas de trabajo basadas en patrones de integración, que tienen diversos slots de entrada y de salida. Según la función que realicen la clasificamos en 4 tipos:
    • Enrutadoras: encauzan o direccionan los mensajes de entrada a cero o más salidas, pero sin realizar ningún cambio en los mensajes que encaminan
    • Modificadoras: añaden o eliminan información a los mensajes entrantes, pero no realizan ningún cambio en los esquemas (estructura de campos y etiquetas) de los mensajes
    • Transformadoras: ayudan a transformar uno o más mensajes de entrada en nuevos mensajes de salida cuyos esquemas son completamente nuevos.




TmQoYNCKD8lwKPbKbOa9XBG8AfUirfvi8g.pngInformación adicional a un clic: Recuerda que al hacer clic en un conector o tarea obtendrás ayuda adicional con la descripción específica de cada puerto o tarea.
y5Bw1U3u1o-S0IvDp5H6vkQZYCQEiK4ecQ.pngNuevos conectores y comandos: En el listado de conectores se muestran aquellos accesibles por el usuario en base a su plan de suscripción ¿No encuentras el conector a una de tus aplicaciones? ¿El conector está en la lista pero no encuentras el comando que necesitas? Haz tu petición a nuestro equipo de soporte técnico y añadiremos la petición a nuestro roadmap.




Área de modelado

En la parte central se encuentra el área o lienzo de dibujo donde podemos arrastrar y colocar tanto las tareas como los puertos. 

Para insertar los conectores y las tareas a una solución, simplemente tienes que pincharlos y arrastrarlos al espacio de trabajo. Luego debemos conectarlos entre ellos haciendo uso de los slots, que son los canales de comunicación por donde viajan los mensajes y están representados como flechas punteadas que van en una dirección. 

Una solución de integración en i2factory puede tener múltiples puertos de entrada y múltiples puertos de salida pero necesitas al menos dos conectores (entrada y salida) y al menos una tarea de integración los conecte para poder crear una solución de integración mínima.

Para conectar puertos con tareas, o tareas entre sí, debemos hacer click en el slot de salida de un elemento y arrastras la flecha hasta el slot de entrada del elemento de destino. Para facilitar la acción, al colocar el ratón sobre un elemento gráfico en el área de modelado, se resaltarán automáticamente sus slots de entrada y salida. En la siguiente animación puedes comprobar lo sencillo que resulta:



WIQo0rhAXf-GGVXGTp7Vb8f6OGqQ4hXrZw.gif


Una vez colocados y conectados los elementos en el área de modelado, puedes arrastrarlos sobre el lienzo para recolocarlos como quieras. Conforme vayas colocando los elementos sobre el lienzo aparecerá el símbolo de advertencia (advertencia) que indica que el elemento debe ser configurado o estar conectado correctamente.


TmQoYNCKD8lwKPbKbOa9XBG8AfUirfvi8g.pngSoluciones ilimitadas: Puedes crear todas las soluciones que desees en i2factory Studio sin límite alguno y luego estas aparecerán automáticamente en el listado de soluciones del panel de control donde podrás gestionarlas. En función del plan de suscripción que tengas contratado, podrás desplegar más o menos soluciones en los servidores de integración.
TmQoYNCKD8lwKPbKbOa9XBG8AfUirfvi8g.pngControl de acceso múltiple: i2factory dispone de un mecanismo de control de acceso a través del cual detecta cuando un usuario de la organización está editando una solución de integración y bloquea el acceso al editor al resto de usuarios hasta que el primero haya guardado los cambios y salido del editor.


Validador sintáctico

i2factory Studio proporciona una validador sintáctico que avisa en tiempo de diseño sobre errores en la conexión o configuración de los distintos elementos gráficos.

Para que una solución sea válida y pueda ser probada, depurada y ejecutada esta debe ser sintácticamente válida, es decir, debemos tener todos los elementos de la solución correctamente conectados, configurados y parametrizados y que no muestre ninguna señal de advertencia (advertencia).

Si ese símbolo aparece es porque falta algún elemento por conectar o algún parámetro obligatorio sin introducir. También puede ocurrir que algunas de las expresiones XPATH o XSLT necesarias en alguna tarea sea sintácticamente inválida. 




RCcCNI68wX2Zs7TJkV7U_o8Oro08VSOLkA.pngSoluciones válidas para desplegar: Sólo si la solución es inválida NO podrás depurar, desplegar ni ejecutar la solución. Una vez que una solución de integración está completamente definida y configurada, podemos desplegarla en un servidor y ponerla en marcha. Una vez arrancada, la solución comenzará a intercambiar mensajes de datos e instrucciones entre aplicaciones.

 

rfg-12RDl4ExcocCGTpC3xXLNtT-nff_MQ.pngVálido no es lo mismo que correcto: Una solución está marcada cómo válida no significa que funcione correctamente o que haga lo que pensabas que tenía que hacer a la primera. Para poder comprobar eso tienes a tu disposición el depurador de soluciones).


Barra de Acciones

En la parte inferior de i2factory Studio encontrarás la barra de acciones donde puedes encontrar las acciones comunes para trabajar con una solución de integración en desarrollo:

 

yBnFgF8pQkNuMgVScgLWqJYZ_ZF2EjHQ-w.png

  • Si haces click en Depuración pasarás del modo edición al modo depuración. Sólo podrás hacerlo si la solución es válida, en caso contrario el botón estará deshabilitado.
  • No olvides Guardar la solución cuando realices cambios importantes o antes de salir de i2factory Studio. 
  • Puedes Cortar elementos individuales o un conjunto de ellos y posteriormente pegarlos. 
  • La función Copiar es muy útil cuando quieres utilizar una parte de tu solución más de una vez: copia y pega después en el lugar adecuado.
  • Tras Cortar o Copiar, puedes utilizar la selección con la opción Pegar.
  • Para borrar parte de tu solución, realiza la selección y a continuación haz clic en Eliminar. También puedes utilizar la tecla Supr en tu teclado.
  • Si te has equivocado y quieres deshacer lo último que has hecho en el diseño, haz clic en Deshacer.
  • También puedes Rehacer los cambios, para que todo esté como antes de utilizar Deshacer.
  • Si tienes problemas para seleccionar algún slot, puedes hacer zoom sobre el elemento para vero más grande con Acercar.
  • También puedes Alejarlo para ver los elementos a menor tamaño o tener una visión global y completa de tu solución.
  • Si quieres volver a ver la solución a tamaño normal haz click en Escalar para que los elementos se vean a su tamaño original.
  • La opción Ajustar es la forma más fácil de adecuar el zoom a tu solución, para que todos sus elementos se muestren en pantalla.
  • Puedes obtener una imagen del estado actual de tu solución con la opción Capturar.
  • Puedes Imprimir tu solución en formato PDF o en papel.
  • Si quieres ver todos estos consejos dentro del propio editor, pulsa en Ayuda.


Barra de Propiedades

En la parte derecha de i2factory Studio podrás ver las propiedades de la solución (si no tienes nada seleccionado o pinchas en un área vacía del lienzo) o las propiedades de la tarea o del conector que selecciones en un momento determinado.

  • Propiedades de la solución: son las mismas que aparecen en la sección Soluciones del panel de control
    • nombre: 16 caracteres máximo. Sólo admiten letras, números, guiones, punto y espacios (no puede empezar ni terminar por espacio ni punto.
    • descripción: 200 caracteres máximo. Sólo admiten letras, números, guiones, punto y espacios (no puede empezar ni terminar por espacio ni punto.
    • proyecto y entorno: es necesario indicar en qué proyecto y entorno se ubicará la solución. Cuando creas una nueva solución te aparece una selección de estos valores por defecto. Ten en cuenta que si mueves una solución de entorno, las credenciales seleccionadas en los puertos dejarán de estar disponibles y tendrás que volver a configurarlas.

  • Propiedades de los puertos: son parámetros específicos que hay que configurar en cada puerto. Algunos son genéricos y comunes para todos los puertos, como el comando o el nombre, y otros son específicos de cada conector. En el caso de los específicos, haz click encima de la etiqueta para obtener ayuda adicional.

  • Propiedades de las tareas: son parámetros que necesitan ser configurados en cada tarea de integración para que esta funcione correctamente. Algunos son tan sencillos como especificar el número de slots salidas o de entradas, pero en la mayoría de los casos son propiedades que requieren de una expresión XPATH válida. En el caso especial de la tarea Translator, necesitarás configurar una transformación XSLT para que la tarea funcione.

y5Bw1U3u1o-S0IvDp5H6vkQZYCQEiK4ecQ.pngAsistentes de XPATH y XSLT: Para facilitar al máximo el uso de i2factory por parte de todos los usuarios, el editor gráfico dispone de dos asistentes visuales para poder configurar las tareas sin tener conocimientos profundos de XML, XPATH y XSLT. Son los asistentes para la creación de expresiones XPATH y de mapeo de datos XSLT que puedes usar haciendo click en el icono de rueda dentada junto a cada propiedad configurable.



4dTr5cIOQt7JGa9QUBv5EmypVcJ806TZzQ.png



Constructor de expresiones XPATH

El constructor de expresiones XPATH permite configurar la mayoría de las tareas de i2factory a través de su herramienta visual que te permite generar la expresión de manera automática seleccionando con el ratón los nodos del esquema y los filtros a aplicar.

El funcionamiento del asistente consiste en crear una expresión válida XPATH a cada paso, que puedes ir concatenando con operadores lógicos AND y OR. Finalmente, cuando hayas terminado, cierra la ventana y te aparecerá la expresión XPATH completa en la propiedad de la tarea.

El asistente se compone de las siguientes partes:

  • Esquema: representación gráfica en forma de árbol de los nodos que componen el mensaje de entrada sobre el que se desea construir la expresión XPATH. En cada paso, puedes seleccionar uno de los nodos del mensaje y verás como abajo aparece automáticamente la expresión XPATH que lo selecciona.
  • Elemento: una vez seleccionado el nodo, puedes referirte a cualquiera de sus ancestros. Tan sólo selecciona el nodo concreto sobre el que quieras operar en esta ventana.
  • Filtro: permite indicar si se selecciona un filtro para seleccionar nodos concretos o no:
    • Seleccionar todos (sin filtro): selecciona el subconjunto de nodos completo al nodo indicado, es decir, el nodo indicado y todos sus descendientes.
    • Aplicar filtros: permite filtrar los nodos a seleccionar en función de su valor. Dependiendo del tipo valor del nodo, los filtros serán distintos:
      • Tipo elemento: no se pueden filtrar los nodos elemento
      • Tipo cadena de caracteres: permite filtras cadenas iguales o distintas a un valor dado
      • Tipo número: permite filtrar números iguales, distintos, menores, mayores, menores o iguales y mayores o iguales que un valor dado
      • Tipo lógico: permite filtrar valores booleanos por verdadero o falso
  • Expresión XPATH: conforme vayas seleccionando los nodos y los filtros aparecerán en la parte inferior la expresión XPATH a generar. Cuando estés conforme, haz click en la flecha hacia abajo y se incluirá la expresión. A cada paso podrás generar una expresión nueva y concatenarla a la anterior con los valores AND y OR. Si generas alguna por error, puedes eliminarla pulsando la acción X.
El resultado final es la expresión XPATH que contiene concatenadas todas las expresiones que hemos ido generando paso a paso. Esta expresión puede ser editada a mano posteriormente en la barra de propiedades.

3Vd-Fm7T6ibuWKOpDhWOb7EJC-CEQ5pvBA.png

RCcCNI68wX2Zs7TJkV7U_o8Oro08VSOLkA.png Paréntesis y otros operadores: Actualmente el asistente no permite añadir paréntesis para cambiar la prioridad natural de los operadores lógicos AND y OR y tampoco permite introducir otros operadores distintos. Pero aunque el asistente no lo incluya, sí que puedes editar la expresión XPATH generada e incluirlos tú mismo a mano posteriormente.


Mapeador de datos XSLT

El mapeador de datos permite realizar transformaciones de campos de un mensaje a otro sin necesidad de tener que indicar a mano la transformación XSLT necesaria para hacerlo, tan sólo seleccionado nodos del mensaje origen y destino. 

El funcionamiento del mapeador consiste en crear un código XSLT válido que realice la transformación de nodos y valores. A cada paso vamos incorporando a la plantilla una nueva parte del mensaje de salida a generar en función de los valores o los nodos del mensaje de entrada, y lo que nosotros mismos indiquemos en el módulo central.

El asistente se compone de las siguientes partes:

  • Esquema de salida: representación gráfica en forma de árbol de los nodos que componen el mensaje de salida que debe generar la transformación XSLT. En cada paso, puedes seleccionar uno de los nodos del mensaje de salida y luego aplicar el resto de operaciones necesarias para la transformación. El nodo seleccionado se pintará de un color para identificarlo posteriormente y aparecerá marcado en Nodo/Elemento Destino de la región central.
  • Esquema de entrada: representación gráfica en forma de árbol de los nodos que componen el mensaje de entrada que servirá de base para el mapeo de valores. En cada paso, puedes seleccionar uno o varios de los nodos del mensaje entrante que necesites usar para la transformación. Los nodos seleccionados se pintarán de un color para identificarlo posteriormente y aparecerán marcados en Nodo/Elemento Origen de la región central..
  • Mapeo de Valores: indica que vamos a realizar una operación de asignación de valores, es decir, para el Nodo Destino del mensaje de salida vamos a aplicar el valor obtenido tras interpretar el conjunto de valores que haya en el campo Nodo Origen (donde podemos insertar los valores de los nodos del mensaje de entradas y otros valores introducidos a mano). Esta acción equivale al uso del operador value-of de XSLT.
  • Mapeo de nodos: indica que vamos a realizar una operación de copia de nodos, es decir, vamos a copiar el subconjunto de nodos encabezados por el Elemento Origen justo debajo del nodo indicado por Elemento Destino. Se copiará toda la estructura de árbol de los nodos, incluidos hijos, nietos, etc. Esta acción equivale al uso del operador copy-of de XSLT.
  • Transformaciones a aplicar: Cuando estés conforme con el mapeo de valores o nodos seleccionado, haz click en la flecha hacia abajo y se incluirá la transformación en la lista. A cada paso podrás generar un mapeo nuevo que se añadirá a la expresión XSLT resultante. Si generas alguna por error, puedes eliminarla pulsando la acción X.
El resultado es el código XSLT que aplicará la lista de transformaciones a aplicar que hemos ido generando paso a paso. Puedes ver cómo se genera automáticamente en el bloque de código de la derecha. Esta expresión puede ser editada a mano posteriormente en la barra de propiedades.

nRlh19ZlFu1jpy11aTbSC6YJeK_xy4d92A.png


RCcCNI68wX2Zs7TJkV7U_o8Oro08VSOLkA.png Bucles, condiciones y otros elementos XSLT: Actualmente el asistente no permite añadir operaciones de bucle (for-each), operaciones condicionales (if-choose) y otros operadores complejos de XSLT. Pero aunque el asistente no lo incluya, sí que puedes editar el código XSLT generado e incluirlos tú mismo a mano posteriormente.



RCcCNI68wX2Zs7TJkV7U_o8Oro08VSOLkA.png Cuidado con copiar y pegar en el constructor y el mapeador: i2factory también usa la codificación UTF-8 y texto plano para los mensajes XML que procesa y también para las expresiones XPATH y XSL.
Cuidado cuando copies y pegues texto desde el exterior a i2factory en los formularios visuales del editor gráfico, como pueden ser el constructor de expresiones XPATH o el mapeador de datos XSLT, porque es posible que estés pegando texto en una codificación diferente a UTF-8 o que aunque sea UTF-8 el texto copiado sea texto enriquecido (como por ejemplo procedente de una web HTML o de un DOC) y esto provoque errores. Para estar seguro, pega primero en un campo de texto que interprete a UTF-8 en texto plano (como un bloc de notas o la misma barra de direcciones del navegador) y, si se ve correctamente el texto, luego copia y pega al formulario de i2factory.