Conectores - Tomo 4 Conector Servicios Web REST - Intranet ...

 
SEGUIR LEYENDO
Conectores - Tomo 4 Conector Servicios Web REST - Intranet ...
Integración

Conectores – Tomo 4
Conector Servicios Web REST
(7 octubre 2019)

                   Esta publicación pertenece al Servicio de Documentación de AuraPortal (SDAP) y todos los
                   derechos están reservados. La reproducción total o parcial de este documento, así como la
                   entrega a terceras partes sin el permiso escrito del SDAP quedan prohibidas.
                   www.auraportal.com | info@auraportal.com | Skype: AuraPortal | Tel: +34 962 954 497 | In-
                   ternacional: +18 572 390 070
ÍNDICE
          INTRODUCCIÓN ........................................................................................................................................................... 3

          1. QUÉ SON LOS SERVICIOS WEB REST .................................................................................................................. 3

          2. CONECTOR DE SERVICIOS WEB REST ................................................................................................................ 4
              2.1. INTERFAZ ......................................................................................................................................................... 4
              2.2. CREAR Y CONFIGURAR UN CONECTOR ...................................................................................................... 6
                  2.2.1. Autenticación ............................................................................................................................................ 6
                      2.2.1.1 OAuth 2.0 .......................................................................................................................................... 6
                      2.2.1.2 Básica (o de Windows) ..................................................................................................................... 7
                  2.2.2. Formato de fechas .................................................................................................................................... 7
                  2.2.3. Formato de codificación ............................................................................................................................ 8
                  2.2.4. Headers Request y Headers Response ................................................................................................... 8
                  2.2.5. Request ..................................................................................................................................................... 9
                  2.2.6. Response .................................................................................................................................................. 9
              2.3. MAPEO ............................................................................................................................................................ 10
                  2.3.1. Mapeo de la URL .................................................................................................................................... 10
                  2.3.2. Mapeo de las cabeceras ......................................................................................................................... 11
                  2.3.3. Mapeo de Request y Response .............................................................................................................. 11
              2.4. USO DE UN CONECTOR ................................................................................................................................ 17

          3. SERVICIOS WEB REST EN MENSAJES DE AURAPORTAL (IM, EM) ................................................................ 17
              3.1. CONFIGURACIÓN .......................................................................................................................................... 17
              3.2. INVOCACIÓN .................................................................................................................................................. 18
                  3.2.1. Autenticación .......................................................................................................................................... 18
                  3.2.2. Datos de inicio ........................................................................................................................................ 18
                      3.2.2.1. Consideraciones generales ........................................................................................................... 18
                      3.2.2.2. Campo Texto una Línea (o Multilínea) .......................................................................................... 20
                      3.2.2.3. Campo Número Entero .................................................................................................................. 20
                      3.2.2.4. Campo Número Decimal ............................................................................................................... 20
                      3.2.2.5. Campos Fecha y Fecha-Hora ........................................................................................................ 20
                      3.2.2.6. Campo Prefijo ................................................................................................................................ 21
                      3.2.2.7. Campo Selección Múltiple ............................................................................................................. 21
                      3.2.2.8. Campo Biblioteca ........................................................................................................................... 21
                      3.2.2.9. Campo Grupo de Campos ............................................................................................................. 22
                  3.2.3. Referencia del EM .................................................................................................................................. 23
                  3.2.4. Respuesta ............................................................................................................................................... 23

          ANEXO 1. EJEMPLO MAPEO .................................................................................................................................... 25
              JSON ORIGINAL .................................................................................................................................................... 25
              JSON CON MAPEO ............................................................................................................................................... 26

INTEGRACIÓN. CONECTORES. TOMO 4                                                                                                                                                   Página 2 de 26
INTRODUCCIÓN
          AuraPortal dispone de una gran variedad de mecanismos que le permiten integrar, o conectar con, datos
          externos para facilitar en lo posible una gestión centralizada en la empresa. Entre estos mecanismos, se
          encuentran los Conectores, objeto de esta documentación.

          Hay varios conectores desarrollados por AuraPortal que se recogen en la serie Integración-03-
          Conectores:

              •    Conector Email. Permite iniciar Procesos a partir de la recepción de un email. Se explica en el
                   Tomo 1 de la serie.

              •    Conector Excel. Extrae filas de una hoja Excel y las convierte en líneas de un grupo de campos. Se
                   explica en el Tomo 1 de la serie.

              •    Conector SharePoint Online. Integra documentos en SharePoint y convierte grupos de campos
                   en Listas de SharePoint. Se explica en el Tomo 1 de la serie.

              •    Conector SAP. Permite conectar con SAP de forma sencilla sin necesidad de programar una línea
                   de código, permitiendo integrar los datos del ERP en AuraPortal para utilizarlos o modificarlos in-
                   cluyéndolos en los Procesos de la entidad. Se explica en el Tomo 3 de la serie.

              •    Servicios Web REST. El término REST deriva de “REpresentational State Transfer” y es cualquier
                   interfaz entre sistemas que utilice directamente HTTP para obtener datos o indicar la ejecución de
                   operaciones sobre los datos, en cualquier formato (XML, JSON, etc.) sin las abstracciones adicio-
                   nales de los protocolos basados en patrones de intercambio de mensaje (SOAP). Se explican en
                   este documento.

              •    Adaptadores. Incluidos en AuraPortal Adapters Server, conjunto de Conectores cada uno de
                   ellos relacionado con una base de datos externa y que desarrolla una acción específica. Este me-
                   canismo permite la obtención de datos para la Lectura y / o Modificación de datos en Bases de
                   Datos Externas. Se explican en el Tomo 2 de la serie.

          1. QUÉ SON LOS SERVICIOS WEB REST
          El termino REST deriva de “REpresentational State Transfer” y es cualquier interfaz entre sistemas que utili-
          ce directamente HTTP para obtener datos o indicar la ejecución de operaciones sobre los datos, en cual-
          quier formato (XML, JSON, etc.) sin las abstracciones adicionales de los protocolos basados en patrones de
          intercambio de mensaje (SOAP).

          Los Servicios Web (SW) REST se caracterizan por tener estas propiedades:

              -    Se publican recursos. Un recurso se puede considerar como una entidad que representa un con-
                   cepto de negocio que puede ser accedido públicamente.

              -    Cada recurso posee un identificador único y global.

              -    Cada recurso posee un estado interno que no será accesible de forma externa, lo que sí es acce-
                   sible es una representación de dicho estado en forma de JSON.

              -    Todos los recursos comparten una interfaz única y constante formada por acciones. Estas son:

                        •   GET para obtener recursos.
                        •   POST para crear nuevos recursos.

INTEGRACIÓN. CONECTORES. TOMO 4                                                                                      Página 3 de 26
•   PUT y PATCH para modificar recursos.
                          •   DELETE para eliminar recursos.

          2. CONECTOR DE SERVICIOS WEB REST
          El conector de SW REST de AuraPortal es una herramienta que le permitirá conectar a cualquier API REST
          sin necesidad de ningún tipo de programación.

          El conector de SW REST de AuraPortal consta de una sencilla interfaz donde se podrán crear diferentes
          conectores con múltiples operaciones. Cada conector dispondrá de una configuración para la autorización
          requerida por la API REST a la que se quiere acceder; esta configuración será común para cada operación
          del conector.

          En cada conector se podrán crear de forma sencilla las operaciones necesarias (GET, POST, ...) sin necesidad
          de codificación.

          2.1. Interfaz
          El conector de SW REST de AuraPortal dispone de una interfaz clara y sencilla desde la que podrán crear
          las diferentes operaciones y relacionar los JSON de envío y respuesta contra los respectivos campos de
          AuraPortal.

          La interfaz cuenta con cuatro partes claramente diferenciadas:

              •    Cabecera (1). Contiene la configuración genérica del conector.

              •    Operaciones (2). Contiene la lista de operaciones contenidas en un mismo conector, desde aquí
                   podremos añadir nuevas operaciones o seleccionar las operaciones a editar. Por ejemplo:

INTEGRACIÓN. CONECTORES. TOMO 4                                                                                    Página 4 de 26
Puede haber cualquier número de operaciones de cualquiera de los tipos posibles. En la imagen superior
          hay 3 operaciones distintas, pero también pueden repetirse varias o todas del mismo tipo, etc.

              •    Detalles de la operación (3). Contiene los detalles de la operación seleccionada para su edición.

              •    Diccionarios (4). Contiene un buscador de campos para facilitar el mapeo de los campos.

INTEGRACIÓN. CONECTORES. TOMO 4                                                                                    Página 5 de 26
2.2. Crear y configurar un conector
          Para crear un nuevo conector abriremos el editor desde:

                              Estructura > Conectores > Configurar > Web Services REST > Crear

          El primer paso será indicar el nombre del conector, único campo requerido.

          A modo de configuración, podremos indicar el sistema de autenticación, el formato de fechas y el formato
          de codificación en el que se espera recibir los datos.

          Continuaremos añadiendo una nueva operación con el botón Crear Operación, la cual personalizaremos en
          el apartado Detalles de la operación con el nombre de la operación, la URL de invocación del SW y el tipo
          de acción a realizar.

          Detalles de la operación dispone de cuatro pestañas para terminar la configuración del conector:

                •   Headers Request
                •   Request
                •   Headers Response
                •   Response
          Tanto el conector, como las propias operaciones, disponen de una opción para su publicación, Publicar. Si
          esta opción no está marcada, el conector o la operación no aparecen disponibles en el diseño del proceso.

          2.2.1. Autenticación
          Los SW REST aceptan varios tipos de autenticación. El conector REST de AuraPortal está preparado para
          trabajar con los dos tipos más populares y extendidos: OAuth 2.0 y Basic Auth.

          2.2.1.1 OAuth 2.0

          Para hacer uso de este sistema de autenticación solo necesitamos seleccionarlo y rellenar los campos que
          se aprecian en la imagen con la información que proporcione la API REST con la que estemos interactuan-
          do.

INTEGRACIÓN. CONECTORES. TOMO 4                                                                                   Página 6 de 26
2.2.1.2 Básica (o de Windows)

          Este sistema de autenticación es el más sencillo y vendrá definido por la típica pareja de Usuario-Password

          2.2.2. Formato de fechas
          El conector dispone de una amplia variedad de formatos de fecha. Estos formatos se aplicarán a todas las
          operaciones de un mismo conector.

          El envío de fecha y hora o solo fecha dependerá del tipo de campo contra el que esté mapeado.

          Si no se indica ningún formato de fecha y hora, se usará el de la configuración general de AuraPortal.

INTEGRACIÓN. CONECTORES. TOMO 4                                                                                    Página 7 de 26
2.2.3. Formato de codificación
          El conector acepta tres formatos de codificación de caracteres: UTF-8, Unicode o Default. Si no se seleccio-
          na ninguno, el conector tomará por defecto el formato UTF-8.

          2.2.4. Headers Request y Headers Response
          Contenedor de las distintas cabeceras que necesite el SW.

          El formato de las cabeceras constantes será:

                                                              CLAVE :VALOR

          El formato de las cabeceras dinámicas será:

                                  CLAVE :[Nombre interno campo AuraPortal] (Ver Anexo 1: Sobre los mapeos)

          Se pueden añadir tantas cabeceras como sea necesario, siendo obligatorio que cada una de ellas esté en
          una nueva línea, como muestra la siguiente imagen de ejemplo.

INTEGRACIÓN. CONECTORES. TOMO 4                                                                                    Página 8 de 26
2.2.5. Request
          En este contenedor incluiremos el JSON que enviará el SW con su correspondiente relación con los campos
          de AuraPortal, tal como muestra la imagen. (Ver Anexo 1: Sobre los mapeos).

          2.2.6. Response
          En este contenedor incluiremos el JSON que recibirá el SW con su correspondiente relación con los cam-
          pos de AuraPortal, tal como muestra la imagen.

INTEGRACIÓN. CONECTORES. TOMO 4                                                                               Página 9 de 26
Una vez terminada la configuración de la operación, haremos uso del menú de Detalles de la Operación
          para guardarlo.

          Podemos mapear múltiples JSON para diferentes respuestas de un mismo servicio web, para ello indicare-
          mos el StatusCode de cada respuesta e incluiremos su JSON correspondiente, por ejemplo, así:

          Podemos añadir tantas operaciones como necesitemos a nuestro conector repitiendo este proceso.

          2.3. Mapeo
          El objetivo del conector de SW REST es el de integrar con AuraPortal cualquier plataforma externa que
          disponga de una API REST. Para cumplir esto, es necesario relacionar los campos de AuraPortal con la in-
          formación proporcionada por los SW REST, lo que se conoce como Mapeo.

          2.3.1. Mapeo de la URL
          Las URL pueden contener parámetros, y es posible que necesitemos que esos parámetros provengan de un
          campo del panel del proceso. Para ello, podremos indicar el nombre interno del campo en la URL y el co-
          nector se encargará de sustituirlo por el valor que corresponda en ejecución.

INTEGRACIÓN. CONECTORES. TOMO 4                                                                                   Página 10 de 26
Formato: [Nombre Interno]

          2.3.2. Mapeo de las cabeceras
          Las cabeceras pueden contener valores susceptibles de ser parametrizados (tipo de datos, tamaño, lengua-
          je…), así que el conector también permite mapear cabeceras contra campos de panel de un proceso de
          AuraPortal.

          Formato: Nombre cabecera:[Nombre Interno]

          2.3.3. Mapeo de Request y Response
          Los SW REST se caracterizan por utilizar JSON como formato de datos, proporcionado una estructura clara
          de los datos tratados. El conector de SW REST de AuraPortal permite un mapeo sencillo de estas estructu-
          ras.

          En la pestaña correspondiente a cada mapeo podremos comprobar si la estructura JSON es correcta. Un
          aspa azul nos indica que la estructura es correcta.

          Los JSON están formados por varios tipos de estructuras más pequeñas, estas son:

          Propiedad

          La unidad básica, formada por una pareja de clave – valor.

          Ejemplos:

                 “clave”:”valor”
                 “id”:”123”
                 “nombre”:”Juan”
          Para mapear esta estructura debemos sustituir el valor de la derecha por el nombre interno del campo de
          AuraPortal del cual queremos obtener o asignar los datos.

          Ejemplos:

                 “clave”:”3_valor”
                 “id”:”3_idUsuario”
                 “nombre”:”3_NombreCliente”
          Array

          Los arrays son una estructura de tipo contenedor que permite repetir una misma estructura más simple.

INTEGRACIÓN. CONECTORES. TOMO 4                                                                                Página 11 de 26
Este tipo de estructura se mapeará siempre contra términos de tipo grupo de campos de AuraPortal. Ya
          que la estructura interna se repite, solo será necesario mapear una unidad básica.

          La forma de mapear es la siguiente:

          En el nombre del array incluiremos el nombre interno del grupo de campos separados por “###”. Esto
          indicará de qué grupo de campos leerá o escribirá los datos. Dentro del array mapearemos los campos de
          una estructura simple con campos que formen parte del grupo de campos contenedor.

          Array dentro de Array

          Estos arrays más complejos están formados por estructuras básicas que contienen otro array.

INTEGRACIÓN. CONECTORES. TOMO 4                                                                                Página 12 de 26
Su mapeo es idéntico al del array sencillo, pero en este caso tendremos que mapear el array contenido en
          el primer array como un grupo de campos afiliado.

INTEGRACIÓN. CONECTORES. TOMO 4                                                                                Página 13 de 26
Array anónimo

          Este es un tipo de array que no contiene propiedades en su interior, solamente los valores.

          En este caso mapeamos directamente los campos sobre los valores.

          Si el número de campos que contendrá el array anónimo es variable, el mapeo se hará contra un término
          de tipo multilínea.

          Esto dará como resultado una lista con todos los valores que contenga el array.

          Documentos

          El conector permite el envío y recepción de documentos. Los documentos se pueden enviar de dos formas
          a través del conector: en formato JSON con el fichero codificado en Base64, o en formato binario.

          Para configurar el envío, entraremos en la opción Condiciones de documentos.

          Después de elegir el Término de tipo biblioteca del diccionario, desde aquí podemos configurar Condicio-
          nes según Etiquetas para el filtrado de los documentos.
          También seleccionaremos el Tipo de formato de envío: Base64 o Binario.

INTEGRACIÓN. CONECTORES. TOMO 4                                                                                Página 14 de 26
En función del tipo de formato seleccionado, el conector se comportará de diferente manera.

          Con el formato binario podremos seleccionar los documentos que deseamos Ingresar; se pueden ingre-
          sar Todos, la Solo la última versión o Solo último documento incluido en la biblioteca.
          Con el formato en Base64, si existe más de un documento en la biblioteca, se enviará el último integra-
          do.

          El mapeo de las bibliotecas es distinto para los dos tipos de envío.

                -   Binario. En este caso no hay JSON en el Request ni en el Response, así que en su lugar indicare-
                    mos el nombre interno de la biblioteca con la que vamos a tratar.

                -   Base64. Para el mapeo de los documentos en formato de Base64 tendremos que usar una serie
                    de palabras clave.
                    El campo que contendrá el nombre del documento (Obligatorio) lo mapearemos contra la palabra
                    clave “_Name”.

                    El campo con el propio documento (Obligatorio) lo mapearemos contra la palabra clave
                    “_Content”.

                    El campo con la descripción del documento lo mapearemos contra la palabra clave “_Description”

                    Existen 40 palabras clave más reservadas para etiquetas. Las etiquetas sencillas se mapearán con
                    la palabra clave “_Txt1” cambiando el número por el que corresponda (del 1 al 32). Las etiquetas
                    de campos multilínea se mapearán con la palabra clave “_Txt_Multi1” cambiando el número por
                    el que corresponda (del 1 al 8).

                    La biblioteca con la que tratará el conector se indicará en la key del campo:

          Con este mapeo conseguiremos enviar o recibir documentos. En caso del envío (POST), se enviará el últi-
          mo documento de la biblioteca del proceso donde se ejecuta.

          ResponseArray y RequestArray

          Estas palabras reservadas se utilizarán en caso de que el servicio web invocado envíe o reciba un JSON que
          sea un array en su totalidad. Esto suele ocurrir cuando invocamos un servicio de tipo GET sin especificar
          algún parámetro y el servicio nos responde con todos los casos posibles.

INTEGRACIÓN. CONECTORES. TOMO 4                                                                                   Página 15 de 26
Ya que una respuesta de este tipo está formada por un array que no dispone de un nombre para poder
          mapearlo, usaremos estas palabras clave, ResponseArray y RequestArray, como nombre del array para así
          mapearlo contra el grupo de campos de AuraPortal.

          SingularFields

          Esta palabra reservada se usa para el mapeo de un array contra campos singulares de AuraPortal. En los
          casos en que el array contenga más de un valor, solo se guardará el último.

          Mapeamos el array contra campos singulares:

INTEGRACIÓN. CONECTORES. TOMO 4                                                                                Página 16 de 26
2.4. Uso de un conector
          Para integrar los conectores creados en una clase de procesos, debemos tener en cuenta el tipo de auten-
          ticación de los SW. En el caso de la autenticación básica podemos asignar nuestro conector tanto a una
          tarea de sistema como a un botón de acción del usuario. En el caso de la autenticación OAuth será nece-
          saria la intervención del usuario para ingresar sus datos de conexión a la API REST con la que esté interac-
          tuando el conector, en este caso, el conector debe ir integrado en un botón de acción.

          3. SERVICIOS WEB REST EN MENSAJES DE AURAPORTAL
          (IM, EM)
          La integración de AuraPortal con los SW REST es total, así que también se permite lanzar un IM o EM des-
          de un SW REST.

          3.1. Configuración
          Para crear un SW REST de inicio de IM (o EM) se tiene que crear un formulario en dicho IM (o EM). Con el
          formulario creado ya podemos seleccionar la opción de Servicios Web.

          Entrando en la configuración comprobamos que disponemos de dos opciones de SW de inicio de IM (o
          EM), seleccionamos el tipo REST, a continuación, indicamos un nombre para nuestro SW y guardamos.

          Con esto ya tendremos la URL de un SW REST listo para ser invocado de forma externa.

INTEGRACIÓN. CONECTORES. TOMO 4                                                                                    Página 17 de 26
3.2. Invocación
          Para invocar un servicio web REST de inicio de IM (o EM) se creará una llamada de tipo POST con los re-
          quisitos que se detallan a continuación:

          3.2.1. Autenticación
          La llamada al SW REST de inicio de IM (o EM) deberá contener un Header con la autenticación básica de
          acceso a nuestra instalación de AuraPortal.

          3.2.2. Datos de inicio
          Si nuestro IM (o EM) requiere de datos externos para su inicialización, podemos enviar esos datos en el
          Body de la llamada en forma de JSON.

          Este JSON contiene el mapeo de los campos que deseamos iniciar y sus valores; para ello se deben usar las
          estructuras correspondientes para cada tipo de dato de AuraPortal y que se especifican seguidamente:

          3.2.2.1. Consideraciones generales

          Esta será la estructura general del JSON de envío de datos:

INTEGRACIÓN. CONECTORES. TOMO 4                                                                                     Página 18 de 26
•    El array “PanelFields” contiene todos los campos que queremos inicializar en el nuevo IM (o EM).
              •    Cada campo viene definido por:
                       o    “InternalName”: Contiene el nombre interno del campo, respetando las mayúsculas y mi-
                            núsculas del nombre en AuraPortal.
                       o    “Type”: El tipo de campo.
                       o    El valor se debe insertar el adecuado para cada tipo.
              •    Tipos de datos aceptados:
                       o    Text
                       o    Integer

INTEGRACIÓN. CONECTORES. TOMO 4                                                                                 Página 19 de 26
o    Decimal
                       o    Boolean
                       o    SimpleSelection
                       o    MultipleSelection
                       o    Prefix
                       o    Sufix
                       o    Library
                       o    DateTime
                       o    Date
                       o    FieldsGroup
          En los próximos puntos veremos un ejemplo de estructura de cada tipo.

          3.2.2.2. Campo Texto una Línea (o Multilínea)

          3.2.2.3. Campo Número Entero

          3.2.2.4. Campo Número Decimal

          3.2.2.5. Campos Fecha y Fecha-Hora

          El valor de los campos “DateValue” y “DateTimeValue” siempre debe venir en el formato indicado.

INTEGRACIÓN. CONECTORES. TOMO 4                                                                             Página 20 de 26
3.2.2.6. Campo Prefijo

          3.2.2.7. Campo Selección Múltiple

          El campo “MultipleSelectionValue” está formado por un array con los diferentes ID de los elementos a
          seleccionar.

          3.2.2.8. Campo Biblioteca

          El campo “Documents” es un array con los diferentes documentos a integrar en el campo biblioteca. Esta
          estructura de documento está formada por el nombre y el propio fichero en formato base64, estos campos
          son obligatorios para su correcta integración.

          Opcionalmente, podremos añadir una descripción y todas las etiquetas de las que disponen los documen-
          tos de AuraPortal. Estas etiquetas respetan el tipo de etiqueta (Manual o Automática) definido en la Biblio-
          teca de AuraPortal.

INTEGRACIÓN. CONECTORES. TOMO 4                                                                                   Página 21 de 26
3.2.2.9. Campo Grupo de Campos

          El campo “FieldsGroupValue” es un array formado por diferentes repeticiones de la estructura “Row”. Esta
          estructura es un nuevo array formado por los diferentes campos del grupo de campos, pudiendo contener
          cualquier otro tipo de campo visto hasta ahora; desde campos de texto, hasta bibliotecas u otros grupos
          de campos.

INTEGRACIÓN. CONECTORES. TOMO 4                                                                               Página 22 de 26
3.2.3. Referencia del EM
          Para iniciar un EM es necesario indicar la referencia del proceso al que pertenece. Esta referencia la añadi-
          mos como una nueva propiedad en el JSON.

                                      ……..

          3.2.4. Respuesta
          El servicio responde con un StatusCode 200 OK y un JSON con el ID del nuevo proceso, la referencia del
          nuevo proceso y un mensaje informativo sobre el resultado de la acción.

INTEGRACIÓN. CONECTORES. TOMO 4                                                                                   Página 23 de 26
………

                       Nota.
                       Puede consultar estos detalles en el fichero ejemplo: InitIMJsonExample.json, que
                       se incluye en este mismo elemento.

INTEGRACIÓN. CONECTORES. TOMO 4                                                                            Página 24 de 26
ANEXO 1. EJEMPLO MAPEO

          JSON ORIGINAL

INTEGRACIÓN. CONECTORES. TOMO 4    Página 25 de 26
JSON CON MAPEO

INTEGRACIÓN. CONECTORES. TOMO 4   Página 26 de 26
También puede leer