Transformación de XML en flujos de trabajo con Azure Logic Apps

Se aplica a: Azure Logic Apps (consumo + estándar)

En escenarios de integración empresarial de negocio a negocio (B2B), puede que tenga que convertir XML entre formatos. El flujo de trabajo de la aplicación lógica puede transformar XML mediante la acción Transformar XML y una asignación predefinida.

Por ejemplo, imagine que recibe periódicamente pedidos o facturas B2B de un cliente que usa el formato de fecha añoMesDía (AAAAMMDD), mientras que su organización emplea el formato de fecha mesDíaAño (MMDDAAAA). Puede crear y usar una asignación que transforme el formato de fecha añoMesDía en mesDíaAño antes de almacenar los detalles del pedido o la factura en la base de datos de actividad de los clientes.

Requisitos previos

  • Una cuenta y una suscripción de Azure. Si aún no tiene suscripción, regístrese para obtener una cuenta de Azure gratuita.

  • Un flujo de trabajo de aplicaciones lógicas que ya se inicie con un desencadenador para poder agregar la acción Transformar XML donde sea necesario en el flujo de trabajo.

  • Un recurso de cuenta de integración, donde se definen y almacenan artefactos, como socios comerciales, contratos, certificados, entre otros, para su uso en los flujos de trabajo de integración empresarial y B2B. Este recurso tiene que satisfacer los siguientes requisitos:

    • Estar asociado a la misma suscripción de Azure que el recurso de aplicación lógica.

    • Existir en la misma ubicación o región de Azure que el recurso de aplicación lógica donde piensa usar la acción Transformar XML.

    • Si trabaja en un Recurso de aplicación lógica de consumo y flujo de trabajo, su cuenta de integración requiere los siguientes elementos:

    • Si está trabajando en un Flujo de trabajo y recurso de aplicación lógica estándar, puede vincular la cuenta de integración al recurso de aplicación lógica, cargar asignaciones directamente en el recurso de aplicación lógica, o ambas, en función de los escenarios siguientes:

      • Si ya tiene una cuenta de integración con los artefactos que necesita o quiere usar, puede vincular la cuenta de integración a varios recursos de aplicación lógica estándar en los que desee utilizar los artefactos. De este modo, no es necesario cargar mapas en cada aplicación lógica individual. Para más información, consulte el artículo sobre vinculación del recurso de aplicación lógica a la cuenta de integración.

      • Si no tiene una cuenta de integración o solo planea usar los artefactos en varios flujos de trabajo dentro del mismo recurso de aplicación lógica, puede agregar directamente asignaciones al recurso de la aplicación lógica mediante Azure Portal o Visual Studio Code.

        Nota

        El conector integrado de Liquid permite seleccionar una asignación que haya cargado anteriormente en el recurso de la aplicación lógica o en una cuenta de integración vinculada, pero no ambos.

      Por lo tanto, si no tiene o no necesita una cuenta de integración, puede usar la opción de carga. De lo contrario, puede utilizar la opción de vinculación. En cualquier caso, puede usar estos artefactos en todos los flujos de trabajo secundarios dentro del mismo recurso de aplicación lógica.

    Todavía necesita una cuenta de integración para almacenar otros artefactos, como asociados, contratos y certificados, junto con el uso de las operaciones AS2, X12 y EDIFACT.

Incorporación de una acción Transformar XML

  1. En Azure Portal, abra su aplicación lógica estándar y el flujo de trabajo en el diseñador.

  2. Si tiene un flujo de trabajo en blanco que no tiene un desencadenador, siga estos pasos generales para agregar cualquier desencadenador que desee. De lo contrario, continúe con el paso siguiente.

    En este ejemplo se usa el desencadenador Request.

  3. En el paso del flujo de trabajo donde desea agregar la acción Transformar XML, siga estos pasos generales para agregar la acción denominada Transformar XML.

  4. En el cuadro Contenido, especifique el contenido XML que desea transformar con los datos XML que reciba en la solicitud HTTP.

    1. Para seleccionar salidas de las operaciones anteriores en el flujo de trabajo, en la acciónTransformar XML, haga clic dentro del cuadro Contenido y seleccione la opción de lista de contenido dinámico (icono lightning).

    2. En la lista de contenido dinámico, seleccione el token para el contenido que desea transformar.

      Screenshot shows Standard workflow with opened dynamic content list.

      En este ejemplo se selecciona el token Cuerpo del desencadenador.

      Nota:

      Asegúrese de seleccionar contenido XML. Si el contenido no es XML o está codificado en base64, debe especificar una expresión que procese el contenido. Por ejemplo, puede usar funciones de expresión como base64ToBinary() para descodificar el contenido o xml() para procesarlo como XML.

  5. En la lista Origen de mapa, seleccione la ubicación donde ha cargado el mapa, ya sea el recurso LogicApp o IntegrationAccount.

  6. En la lista Mapa, seleccione el mapa.

  7. Cuando haya terminado, guarde el flujo de trabajo.

    Ha terminado de configurar la acción Transformar XML. En una aplicación real, es posible que quiera almacenar los datos transformados en una aplicación de línea de negocio (LOB) como SalesForce. Para enviar la salida transformada a Salesforce, agregue una acción Salesforce.

  8. Para probar la acción de transformación, desencadene y ejecute el flujo de trabajo. Por ejemplo, en el caso del desencadenador de solicitud, envíe una solicitud a la dirección URL del punto de conexión del desencadenador.

    La acción Transformar XML se ejecuta después de que se desencadene el flujo de trabajo y cuando el contenido XML está disponible para la transformación.

Capacidades avanzadas

Ensamblados de referencia o llamada a código personalizado desde mapas

La acción Transformar XML admite la referencia a ensamblados externos desde mapas, lo que permite llamar directamente al código .NET personalizado desde mapas XSLT. Para más información, consulte Incorporación de asignaciones XSLT para flujos de trabajo en Azure Logic Apps.

Referencia a objetos de extensión

En flujos de trabajo estándar, la Transformar XML admite la especificación de un objeto de extensión XML que se usará con el mapa.

  1. En la acciónTransformar XML, abra la lista Parámetros avanzados y seleccione Objeto de extensión XML, que agrega el parámetro a la acción.

  2. En el cuadro Objeto de extensión XML, especifique el objeto de extensión, por ejemplo:

    Screenshot shows Transform XML action with XML Extension Object parameter and value.

Marca de orden de bytes

De manera predeterminada, la respuesta de la transformación se inicia con la marca BOM. Puede acceder a esta funcionalidad solo mientras trabaja en el editor de la vista Código. Para deshabilitar esta funcionalidad, establezca la propiedad transformOptions en disableByteOrderMark:

"Transform_XML": {
    "inputs": {
        "content": "@{triggerBody()}",
        "integrationAccount": {
            "map": {
                "name": "TestMap"
            }
        },
        "transformOptions": "disableByteOrderMark"
    },
    "runAfter": {},
    "type": "Xslt"
}

Pasos siguientes