Compartir a través de


Cree asignaciones para transformar datos en flujos de trabajo de aplicaciones lógicas con Visual Studio Code

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

Al intercambiar mensajes que usan formatos XML o JSON diferentes en un flujo de trabajo de aplicación lógica, debe especificar cómo transformar o convertir los datos del formato de origen al formato de destino, por ejemplo, entre documentos XML o entre documentos JSON. Esta tarea es importante especialmente cuando tiene huecos entre las estructuras de datos en los esquemas de origen y de destino. Un esquema describe los elementos de datos, los atributos y los tipos de datos de un documento XML o JSON.

Para definir transformaciones entre estructuras de datos y puentear los huecos, puede crear una asignación (archivo .xslt) que especifique las relaciones entre los elementos de datos en los esquemas de origen y de destino. Puede crear o editar visualmente una asignación mediante Visual Studio Code con la extensión Azure Logic Apps (Estándar) en el contexto de un proyecto de aplicación lógica estándar. La herramienta Asignador de datos proporciona una experiencia unificada para la asignación y transformación mediante gestos de arrastrar y colocar, funciones precompiladas para crear expresiones y una manera de probar manualmente las asignaciones antes de usarlos en los flujos de trabajo.

Después de crear la asignación, puede llamar directamente a esa asignación desde un flujo de trabajo en el proyecto de aplicación lógica o desde un flujo de trabajo de aplicación lógica estándar en Azure Portal. Para esta tarea, es posible usar la acción Operaciones del asignador de datos denominada Transformación mediante XSLT del asignador de datos en el flujo de trabajo.

En esta guía paso a paso se muestra cómo crear una asignación de datos vacío, elegir los esquemas de origen y destino, crear varios tipos de asignaciones entre elementos de esquema, guardar y probar la asignación y, a continuación, llamar a la asignación desde un flujo de trabajo en el proyecto de aplicación lógica.

Limitaciones y problemas conocidos

  • Asignador de datos actualmente solo funciona en Visual Studio Code con sistemas operativos Windows.

  • Asignador de datos solo está disponible actualmente en Visual Studio Code, no en Azure Portal, y solo desde proyectos de aplicación lógica Estándar, no en proyectos de aplicación lógica de Consumo.

  • El asignador de datos no admite actualmente esquemas que usan el formato de archivo de valores separados por comas (.csv).

  • El panel Código del Asignador de datos es actualmente de solo lectura.

  • Las posiciones de diseño y elemento en el asignador de datos son actualmente automáticas y de solo lectura.

  • La función Filtrar procesa correctamente las condiciones numéricas que se incluyen entre comillas dobles, por ejemplo, ">=10". Sin embargo, esta función no se comporta de forma coherente para comparaciones de cadenas, como una comprobación sobre si un nombre de elemento es "= 'Pen'".

  • Al crear una asignación entre los elementos primarios de la matriz en los esquemas de origen y de destino, el asignador agrega automáticamente un bucle para recorrer en iteración los elementos del elemento de matriz. Sin embargo, todavía debe crear explícitamente asignaciones entre los elementos de elemento de matriz de origen y de destino.

  • Para llamar a las asignaciones creados con el asignador de datos, solo puede usar la acción Operaciones del asignador de datos denominada Transformar mediante el XSLT del Asignador de datos. Para las asignaciones creadas por cualquier otra herramienta, use la acción Operaciones XML denominada Transformar XML.

  • Para usar las asignaciones que cree con El asignador de datos con flujos de trabajo en Azure Portal, debe agregarlos directamente al recurso de aplicación lógica estándar.

  • Las funciones personalizadas no se admiten actualmente en esta versión.

Requisitos previos

  • Visual Studio Code y la extensión de Azure Logic Apps (Estándar) para crear flujos de trabajo de aplicaciones lógicas Estándar.

    Nota:

    La extensión de Asignador de datos anteriormente independiente ahora se combina con la extensión Azure Logic Apps (Estándar). Para evitar conflictos, se quita cualquier versión existente de la extensión Asignador de datos al instalar o actualizar la extensión Azure Logic Apps (Estándar). Después de instalar o actualizar la extensión, reinicie Visual Studio Code.

  • Los archivos de esquema de origen y destino que describen los tipos de datos que se van a transformar. Estos archivos pueden tener los siguientes formatos:

    • Un archivo de definición de esquema XML con la extensión de archivo .xsd
    • Un archivo de notación de objetos JavaScript con la extensión de archivo .json
  • Un proyecto de aplicación lógica estándar que incluye un flujo de trabajo con estado o sin estado con un desencadenador como mínimo. Si no tiene un proyecto, siga estos pasos en Visual Studio Code:

    1. Conéctese a la cuenta de Azure, si todavía no lo ha hecho.

    2. Cree una carpeta local, un proyecto de aplicación lógica estándar local y un flujo de trabajo con estado o sin estado. Durante la creación del flujo de trabajo, seleccione Abrir en la ventana actual.

  • Datos de entrada de ejemplo si desea probar el mapa y comprobar que la transformación funciona según lo previsto.

  • Para usar la función Run XSLT, los fragmentos de código XSLT deben existir en archivos que usen la extensión de nombre de archivo .xml o .xslt. Debe colocar los fragmentos de código XSLT en la carpeta InlineXslt en la estructura de carpetas del proyecto local: Artifacts>DataMapper>Extensions>InlineXslt. Si esta estructura de carpetas no existe, cree las carpetas que faltan.

Creación de una asignación de datos

  1. En Visual Studio Code, abra la carpeta del proyecto de aplicación lógica estándar.

  2. En el menú izquierdo de Visual Studio Code, seleccione el icono de Azure.

  3. En la ventana Azure, en Asignador de datos, seleccione Crear asignación de datos.

    Captura de pantalla que muestra Visual Studio Code con la ventana de Azure y el botón seleccionado para Crear asignación de datos.

    En la barra de título de Visual Studio Code, se abre un cuadro de mensaje para que pueda proporcionar un nombre para la asignación.

  4. En el cuadro de solicitud, escriba un nombre de asignación de datos.

    En esta guía, estos pasos usan el nombre Ejemplo de asignación de datos.

    Captura de pantalla que muestra el cuadro de solicitud y el nombre de la asignación de datos de ejemplo.

    El Asignador de datos crea y abre una asignación de datos en blanco.

  5. Elija los esquemas de origen y destino siguiendo estos pasos:

    1. En el panel Origen, seleccione Agregar nuevo>Examinar para buscar y cargar el esquema de origen.

      Captura de pantalla que muestra el panel Asignador de datos y Origen con las opciones seleccionadas para Agregar nuevo y Examinar.

      Después de agregar el esquema de origen, el panel Origen se rellena con el elemento XML "nodes" para los tipos de datos del esquema de origen, por ejemplo:

      Captura de pantalla que muestra el panel Origen rellenado con nodos de elemento XML de esquema de origen.

    2. En el panel Destino, seleccione Agregar nuevo>Examinar para buscar y cargar el esquema de destino.

      Captura de pantalla que muestra el panel Asignador de datos y Destino con las opciones seleccionadas para Agregar nuevo y Examinar.

      Después de agregar el esquema de destino, el panel Destino se rellena con el elemento XML "nodes" para los tipos de datos del esquema de destino, por ejemplo:

      Captura de pantalla que muestra el panel Destino rellenado con nodos de elemento XML de esquema de origen.

Sugerencia

Si experimenta problemas al cargar los esquemas, puede agregar localmente los archivos de esquema de origen y de destino a la carpeta Artifacts/Schemas da aplicación lógica. En este escenario, para especificar el esquema de origen y destino en el Asignador de datos, en los paneles Origen y Destino, abra la lista Seleccionar existente, en lugar de usar Agregar nuevo y seleccione el esquema.

Tipos de datos de esquema

En la tabla siguiente se describen los posibles tipos de datos que pueden aparecer en un esquema:

Símbolo Tipo Más información
Icono que representa un tipo de datos Array. Complejo (matriz) Contiene elementos o nodos de elementos repetidos.

Un elemento de matriz también muestra el siguiente punto de conexión:

Icono del punto de conexión del elemento de matriz.
Icono que representa un tipo de datos Bool. Bool Solo true o false
Icono que representa un tipo de datos Complex. Complex Objeto XML con propiedades secundarias, similar al tipo de objeto JSON
Icono que representa un tipo de datos DateTime. DateTime
Icono que representa un tipo de datos Decimal. Decimal
Icono que representa un tipo de datos Integer. Entero Solo números enteros
Icono que representa un tipo de datos String. Cadena

Crear una asignación directa entre elementos

Para especificar una transformación sencilla entre los elementos que tienen el mismo tipo en los esquemas de origen y destino, siga estos pasos:

  1. Para ver lo que sucede en el código mientras crea la asignación, en la esquina superior derecha del asignador, seleccione Ver código.

  2. En la superficie del asignador, en el panel Origen, busque el elemento de origen que desea asignar.

    • De forma predeterminada, los elementos primarios se expanden automáticamente para mostrar sus elementos secundarios.

    • En este ejemplo se inicia la asignación desde el elemento de origen, pero puede elegir iniciar la asignación desde el elemento de destino.

  3. Mueva el puntero del mouse sobre el círculo situado junto al nombre del elemento de origen hasta que el puntero cambie a un signo más (+).

    En este ejemplo se crea una asignación a partir del identificador de empleado del elemento de origen.

    Captura de pantalla que muestra el asignador de datos con puntero sobre el elemento de origen.

  4. Arrastre y dibuje una línea para que el elemento de origen se conecte al círculo del elemento de destino en el panel Destino.

    En este ejemplo se completa la asignación con la identificación del elemento de destino, que tiene el mismo tipo de datos que el elemento de origen.

    Captura de pantalla que muestra el asignador de datos, un puntero sobre el elemento de destino y una línea entre los elementos de origen y de destino.

    Ahora ha creado una asignación directa entre ambos elementos que tienen los mismos tipos de datos.

    Captura de pantalla que muestra una asignación completa entre EmployeeID e ID en los esquemas de origen y destino, respectivamente.

    El panel Código muestra la relación de asignación que creó:

    Captura de pantalla que muestra el panel Código con asignación directa entre EmployeeID e ID en los esquemas de origen y destino, respectivamente.

    Sugerencia

    Para comprobar si las asignaciones tienen algún problema, seleccione Ver problemas. Por ejemplo, aparece una advertencia en la lista de Problemas en la pestaña Advertencias si crea una asignación entre elementos que tienen tipos de datos no coincidentes:

    La captura de pantalla muestra la asignación entre tipos de datos no coincidentes.

Crear una asignación compleja entre elementos

Para especificar una transformación más complicada entre los elementos de los esquemas de origen y destino, por ejemplo, los elementos que desea combinar o tener tipos de datos diferentes, puede usar una o varias funciones que realicen la transformación que desee en la asignación.

En la superficie del asignador, la etiqueta de función está codificada por colores en función del grupo de funciones. Junto al nombre de la función, aparece el símbolo de la función, por ejemplo:

Captura de pantalla que muestra la etiqueta de función de ejemplo.

En la tabla siguiente se enumeran los grupos de funciones y algunas funciones de ejemplo que puede usar. Para obtener la lista completa, consulte la lista Funciones en el asignador de datos.

Grupo Funciones de ejemplo
Colección Average, Count, Direct Access, Distinct values, Filter, Index, Join, Maximum, Minimum, Reverse, Sort, Subsequence, Sum
Conversión Hasta la fecha, A entero, A número, A cadena
Fecha y hora Agregar días, fecha actual, hora actual, igual a fecha
Comparación lógica Igual, Existe, Mayor, Mayor o igual, Si, Si no, Es nulo, Es número, Es cadena, Menor, Menor o igual, Y lógico, NO lógico, O lógico, No es igual
Matemáticas Absoluto, Suma, Arcotangente, Techo, Coseno, Dividir, Exponencial, Exponencial (base 10), Piso, División de enteros, Logaritmo, Logaritmo (base 10), Módulo, Multiplicar, Potencia, Redondeo, Seno, Raíz cuadrada, Restar, Tangente
String Puntos de código a cadena, Concatenar, Contiene, Termina con, Longitud, Minúsculas, Nombre, Coincidencias de expresiones regulares, Reemplazar expresiones regulares, Reemplazar, Comienza con, Cadena a puntos de código, Subcadena, Subcadena después, Subcadena antes, Recortar, Recortar a la izquierda, Recortar a la derecha, Mayúsculas
Utility Copiar, Error, Ejecutar XPath, Formatear fecha y hora, Formatear número, Ejecutar XSLT

Agregar una función sin una asignación

En el ejemplo de esta sección se transforman los datos del elemento de origen de Cadena a DateTime, que es el tipo de elemento de destino. En el ejemplo se inicia sin crear primero una asignación y se usa la función To Date, que acepta una sola entrada.

  1. Para ver lo que sucede en el código mientras crea la asignación, en la esquina superior derecha del asignador, seleccione Ver código.

  2. En la lista Funciones, busque y seleccione la función que desea usar, que agrega la función a la superficie del asignador. Si la lista Funciones está contraída, en la esquina superior izquierda del asignador, seleccione el icono de función (Icono de la lista Funciones.).

    En este ejemplo se selecciona la función To Date, que se encuentra en el grupo de funciones de Conversión.

    Captura de pantalla que muestra la función seleccionada denominada To Date.

    Nota:

    Si no existe ninguna asignación en la asignación o si se selecciona una asignación al agregar una función a la asignación, la función aparece pero no está conectada a ningún elemento u otras funciones, por ejemplo:

    Captura de pantalla que muestra la función desconectada denominada To Date.

  3. Conecte la función a los elementos de origen y destino.

    1. Arrastre y dibuje una línea entre el elemento de origen y el círculo en el borde izquierdo de la función. Puede empezar desde el elemento de origen o la función .

      Captura de pantalla que muestra la asignación entre un elemento de origen y una función.

    2. Arrastre y dibuje una línea entre el borde derecho de la función y el elemento de destino. Puede empezar desde el elemento de destino o desde la función.

      Captura de pantalla que muestra la asignación entre la función y el elemento de destino.

    El panel Código muestra la relación de asignación que creó:

    Captura de pantalla que muestra el panel Código con una relación de asignación directa entre los elementos de origen y de destino.

  4. En la superficie del asignador, seleccione la forma de función para ver los detalles de la función.

  5. En la pestaña Entrada, confirme o edite la entrada que se va a usar.

    Captura de pantalla que muestra la pestaña Entrada de la función denominada To Date.

    Algunos escenarios requieren definir una transformación más allá del par inmediato de elementos de origen y destino. Por ejemplo, para definir una transformación entre un par de matrices y sus elementos, debe crear un bucle entre las matrices. O bien, para realizar una tarea cuando el valor de un elemento cumple una condición, debe agregar una condición entre los elementos.

Agregar una función que usa varias entradas

En el ejemplo de esta sección se concatenan varios elementos de origen como entradas y se asigna una única salida al elemento de destino. En el ejemplo se usa la función Concat, que acepta varias entradas.

  1. Para ver lo que sucede en el código mientras crea la asignación, en la esquina superior derecha del asignador, seleccione Ver código.

  2. En la lista Funciones, busque y seleccione la función que desea usar, que agrega la función a la superficie del asignador.

    Si la lista Funciones está contraída, en la esquina superior izquierda del asignador, seleccione el icono de función (Icono de la lista Funciones.).

    En este ejemplo se selecciona la función Concat, que se encuentra en el grupo de funciones de Cadena.

    Captura de pantalla que muestra la función seleccionada denominada Concat.

    Nota:

    Si no existe ninguna asignación en la asignación o si se selecciona una asignación al agregar una función a la asignación, la función aparece pero no está conectada a ningún elemento u otras funciones, por ejemplo:

    Captura de pantalla que muestra la función desconectada denominada Concat.

  3. En la superficie del asignador, seleccione la forma de función para ver los detalles de la función.

  4. En la pestaña Entrada, seleccione los elementos de esquema de origen que se van a usar como entradas.

    En este ejemplo se seleccionan los elementos de esquema de origen FirstName y LastName como entradas de función. El asignador agrega automáticamente las asignaciones respectivas entre los elementos de origen y la función.

    Captura de pantalla que muestra varios elementos de origen como entradas de función.

  5. Para completar la asignación, arrastre y dibuje una línea entre el borde derecho de la función y el elemento de destino. Puede empezar desde el elemento de destino o la función.

    Captura de pantalla que muestra las asignaciones finalizadas entre varias entradas, la función Concat y el elemento de destino.

    En el panel Código se muestran las relaciones de asignación que creó:

    Captura de pantalla que muestra el panel Código con la función Concat, que tiene varias entradas y una única salida.

Recorrer en iteración matrices

Si los esquemas de origen y destino contienen matrices, puede crear un bucle para recorrer en iteración los elementos de las matrices. En el ejemplo de esta sección se crea un bucle a través de una matriz de origen de Empleado y una matriz de destino Persona junto con asignaciones entre los elementos de las matrices.

  1. Para ver lo que sucede en el código mientras crea la asignación, en la esquina superior derecha del asignador, seleccione Ver código.

  2. En la superficie del asignador, en los paneles Origen y Destino, busque las matrices que desea asignar.

  3. Arrastre y dibuje una línea entre el par de elementos de matriz. Puede empezar desde el panelOrigen o desde el panel Destino.

    El siguiente ejemplo comienza desde el panel Origen y asigna los elementos Nombre en la matriz de origen Empleado y la matriz de destino Persona:

    Captura de pantalla que muestra la superficie del asignador y el dibujo de una asignación entre los elementos Name de las matrices Empleado y Persona de destino.

    Después de terminar de asignar el primer par de elementos de matriz, el asignador agrega automáticamente un bucle entre los elementos primarios de la matriz de origen y de destino, que tienen el siguiente tipo de punto de conexión: Icono del punto de conexión completado del elemento de matriz.

    El siguiente ejemplo resalta el bucle agregado automáticamente entre las matrices principales Empleado de origen y Persona de destino:

    La captura de pantalla muestra el mapeo de bucle entre las matrices principales Empleado de origen y Persona de destino.

    El panel Código muestra la asignación y el bucle que creó:

    Captura de pantalla que muestra el panel Código con asignación de bucles entre matrices primarias de origen y destino, además de elementos de matriz.

  4. Siga asignando los demás elementos de matriz, por ejemplo:

    Captura de pantalla que muestra más asignaciones entre otros elementos de matriz en matrices de origen y de destino.

Evalúe una condición para realizar una tarea

Supongamos que desea agregar una asignación que evalúe una condición y realice una tarea cuando se cumpla la condición. En este escenario, puede usar varias funciones.

En el ejemplo siguiente, cuando la cantidad de compra supera los 20 elementos, la asignación calcula un descuento que se aplicará mediante las funciones siguientes:

Grupo de funciones Función Propósito en este ejemplo
De comparación Superior Compruebe si la cantidad de compra es superior a 20.
De comparación If Compruebe si la función Greater devuelve true.
Matemáticas Multiplicar Si la condición es cierta, multiplique el precio del artículo en un 10 % para calcular el descuento.
  1. En los paneles Origen y Destino, busque los elementos que se van a asignar en el escenario.

    En este ejemplo se usan los siguientes elementos:

    • Panel de Origen: ItemPrice y ItemQuantity

    • Panel de Destino: ItemPrice, ItemQuantity, y ItemDiscount

      Captura de pantalla que muestra la superficie del asignador y los elementos de datos, por ejemplo, escenario de condición.

  2. En la lista Funciones, busque y seleccione las funciones que desea usar, que agrega las funciones a la superficie del asignador.

    • Si la lista Funciones está contraída, en la esquina superior izquierda del asignador, seleccione el icono de función (Icono del panel Funciones.).

    • Si es necesario, mueva las formas de función en la superficie del asignador para que sean más fáciles de seleccionar.

    En este ejemplo se agregan las siguientes funciones a la superficie del asignador: Greater, If y Multiply

    Captura de pantalla que muestra la superficie del asignador, los elementos de datos y las funciones, por ejemplo, escenario de condición.

  3. Para ver lo que sucede en el código mientras crea las asignaciones, en la esquina superior derecha del asignador, seleccione Ver código.

  4. Conecte los elementos de origen, las funciones y los elementos de destino en el orden específico, ya que el escenario requiere.

    En este ejemplo se conectan los siguientes elementos en el orden especificado para crear correctamente las asignaciones:

    Start Final
    Elemento de origen ItemPrice Elemento de destino ItemPrice
    Elemento de origen ItemQuantity Entrada de la función Greater en el borde izquierdo de la forma. Esta entrada proporciona los datos del campo Valor 1 en los detalles de la función.
    Entrada de la función Greater en el borde derecho de la forma Entrada de la función If en el borde izquierdo de la forma. Esta entrada proporciona los datos para el campo Condición en los detalles de la función.
    Elemento de origen ItemPrice Entrada de la función Multiply en el borde izquierdo de la forma. Esta entrada proporciona los datos para el campo Multiplicado en los detalles de la función.
    Entrada de la función Multiply en el borde derecho de la forma. Entrada de la función If en el borde izquierdo de la forma. Esta entrada proporciona los datos del campo Valor en los detalles de la función.
    Entrada de la función If en el borde derecho de la forma. Elemento de destino ItemDiscount

    En el ejemplo siguiente se muestran las asignaciones en este momento dado:

    Captura de pantalla que muestra la superficie del asignador, los elementos de datos y las funciones con asignaciones para un escenario de condición de ejemplo.

  5. En los detalles de la función siguientes, en la pestaña Entrada, confirme o proporcione los siguientes valores:

    Función Campo y valor de entrada
    Superior - Valor 1: elemento de origen ItemQuantity
    - Valor 2:20 como valor personalizado
    Multiplicar - Multiplicando 1: elemento de origen ItemPrice
    - Multiplicando 2: .10 como valor personalizado
    If - Condición: is-greater-than(ItemQuantity, 20)
    - Value: multiply(ItemPrice, .10)

    En el siguiente mapa se muestra el ejemplo finalizado:

    Captura de pantalla que muestra el ejemplo de condición finalizada.

    El panel Código muestra la asignación que creó:

    Captura de pantalla que muestra el panel Código con asignación condicional entre los elementos de origen y destino mediante las funciones, Greater, Multiply e If.

Guardar el mapa

Cuando esté listo, en la barra de herramientas de asignación, seleccione Guardar.

Visual Studio Code guarda la asignación como los siguientes artefactos:

  • Un < archivo your-map-name>.lml en la carpeta del proyecto Artifacts>MapDefinitions
  • Un < archivo your-map-name>.xslt en la carpeta del proyecto Artifacts>Maps

Prueba de la asignación

Para confirmar que la transformación funciona según lo previsto, necesitará datos de entrada de ejemplo.

  1. Antes de probar su asignación, guárdela para generar un archivo <your-map-name>.xslt actual.

  2. En la barra de herramientas de la asignación, seleccione elPanel abrir prueba.

  3. En el panel Asignación de prueba, en el cuadro Datos de muestra, pegue la entrada de muestra y seleccione Prueba.

    El cuadro Resultado muestra los resultados de la prueba.

Llamada a la asignación desde un flujo de trabajo del proyecto

  1. En la barra actividad de Visual Studio Code, seleccione Explorador (icono de archivos) para ver la estructura del proyecto de aplicación lógica.

  2. Expanda la carpeta que tiene el nombre del flujo de trabajo. En el menú contextual del archivo workflow.json, seleccione Abrir diseñador.

  3. En el diseñador de flujos de trabajo, siga estos pasos generales para agregar las Operaciones del Asignador de datos de acción integrada denominada Transformar mediante XSLT del Asignador de datos.

  4. En el diseñador, seleccione la acción Transformar mediante XSLT del Asignador de datos.

  5. En el panel de información de acción que aparece, especifique el valor de Contenido y deje Origen de la asignación establecido en LogicApp.

  6. Abra la lista Nombre de la asignación y seleccione la asignación (archivo.xslt).

    Captura de pantalla que muestra Visual Studio Code, diseñador de flujo de trabajo estándar, con la acción seleccionada denominada Transformar mediante XSLT del Asignador de datos y las propiedades de acción.

    Para usar la misma acción Transformar mediante XSLT del Asignador de datos en Azure Portal, debe agregar la asignación al recurso aplicación lógica Estándar.