Ejercicio: Crear un flujo que use SQL

Completado

Esta unidad muestra cómo crear un flujo que supervisa un origen para elementos nuevos o modificados, y luego copia los cambios en un destino. Puede crear un flujo de este tipo si sus usuarios introducen datos en una ubicación, pero el equipo necesita esos datos en otra ubicación u otro formato.

En esta unidad, copiará datos de una lista de Listas Microsoft (el origen) en una tabla de Microsoft Azure SQL Database (el destino).

Tenga en cuenta que puede copiar datos de más de 275 servicios que Power Automate admite.

Importante

Los cambios que realice en el destino no se vuelven a copiar en el origen porque no se admite la sincronización bidireccional no es compatible. Si intenta configurar la sincronización bidireccional, creará un bucle infinito donde los cambios se envían continuamente entre el origen y el destino.

Requisitos previos

  • Acceso a un origen de datos y un destino. Esta unidad no incluye los pasos para crear el origen y el destino.

  • Acceso a Power Automate.

  • Conocimientos básicos sobre cómo se almacenan los datos

  • Conocimientos básicos de la creación de flujos Para esta unidad, se supone que sabe cómo realizar estas acciones.

Sugerencia

No es necesario que coincidan los nombres de columna en el origen y el destino (a menos que el tipo de datos de la columna sea "opción"), pero debe proporcionar datos para todas las columnas necesarias al insertar o actualizar un elemento. Power Automate identifica los campos obligatorios.

Descripción rápida de los pasos

Si está cómodo con Power Automate, siga estos pasos rápidos para copiar datos desde un origen de datos a otro.

  1. Identifique el origen que va a supervisar y el destino al que copiará los datos con cambios. Confirme que tiene acceso al origen y al destino.

  2. Identifique al menos una columna que identifica de forma única los elementos de origen y de destino. En el siguiente ejemplo, usamos la columna Título, pero se puede utilizar cualquier columna.

  3. Configure un desencadenador que supervise los cambios en el origen.

  4. Busque el destino para comprobar si existe el elemento modificado.

  5. Use una condición similar a la siguiente:

    • Si el elemento nuevo o modificado no existe en el destino, créelo.

    • Si el elemento nuevo o modificado existe en el destino, actualícelo.

  6. Desencadene el flujo y, después, confirme que se copian los elementos nuevos o modificados del origen al destino.

Nota

Si no ha creado previamente una conexión a SharePoint o una instancia de SQL Database, siga las instrucciones cuando se le pida que inicie sesión.

Estos son los pasos detallados para crear el flujo.

Supervisión del origen de los cambios

Primero, Copilot nos ayuda a construir la estructura del flujo.

  1. Abra Power Automate e inicie sesión con su cuenta organizativa.

  2. En el centro del tipo de página principal, Cuando se crea o modifica un elemento en SharePoint, agregue una acción SQL "obtener filas". Agregue una condición y, si el elemento existe, actualícelo en SQL; de lo contrario, cree un nuevo elemento en SQL. Luego, pulse Generar.

    Captura de pantalla de la página principal de Power Automate y de la introducción de la descripción para Copilot

  3. Copilot intenta construir un flujo con acciones basadas en la descripción y le da la oportunidad de revisar las acciones que se han generado. En este ejemplo, puede ver lo siguiente:

    1. El cuadro de descripción donde introducimos el mensaje. Puede seguir refinando aquí las acciones en el flujo.

    2. Copilot ha agregado un desencadenador Cuando se crea o modifica un elemento (SharePoint).

    3. Copilot ha agregado una acción Obtener filas (SQL), una Condición, una acción Actualizar fila (SQL) en la rama True de la condición y una acción Insertar fila (SQL) en la rama False de la condición.

    4. El botón Siguiente lo lleva al diseñador de flujos.

    Captura de pantalla de la revisión del Copilot de automatización generado

  4. Cuando esté con el flujo, seleccione Siguiente para configurar las acciones.

  5. Si no ha creado previamente una conexión a SQL Database o SharePoint, Copilot le indica que cree una conexión. De lo contrario, verá marcas de verificación verdes junto a cada conexión.

    Captura de pantalla de Copilot, con los servicios conectados para este flujo

  6. Una vez establecidas las conexiones, seleccione Crear flujo.

  7. Seleccione el desencadenador Cuando se crea o modifica un elemento para abrir el panel de propiedades de acción a la izquierda.

    Captura de pantalla del desencadenador y sus parámetros

  8. Escriba la dirección del sitio y, a continuación, seleccione el nombre de la lista de Listas Microsoft que el flujo supervisará para detectar elementos nuevos o actualizados.

    Captura de pantalla de

Buscar el destino de un elemento existente

A continuación, configuramos la acción Obtener filas (SQL) para verificar si un elemento ya existe en SQL Database.

  1. Seleccione la acción Obtener filas para abrir el panel de propiedades de la acción, a la izquierda.

  2. Establezca los valores Nombre del servidor, Nombre de la base de datos y Nombre de la tabla de la tabla SQL que quiera supervisar.

    Captura de pantalla de la configuración del nombre del servidor, el nombre de la base de datos y el nombre de la tabla para la acción Obtener filas de SQL

  3. Seleccione Parámetros avanzados y Consulta de filtro.

    Captura de pantalla de la configuración de parámetros avanzados de consulta de filtro para la acción SQL

  4. En el cuadro Consulta de filtro, introduzca CustomerID eq. Luego, seleccione el token CustomerID en la lista de contenido dinámico.

    Captura de pantalla de la configuración de parámetros avanzados de consulta de filtro para el id. de cliente de SQL

    Nota

    En este paso, se presupone que la lista Microsoft y la tabla SQL coincidirán en la columna CustomerID.

Compruebe si desea crear un elemento nuevo o actualizar un elemento existente

A continuación, configuramos la condición para verificar si existe un elemento. Si el elemento existe, actualícelo; de lo contrario, cree una nueva fila.

  1. Seleccione la condición para abrir el panel de propiedades de la acción, a la izquierda. Seleccione Insertar expresión.

    Captura de pantalla con el botón para insertar expresión

  2. Busque length y seleccione length(collection).

    Captura de pantalla de la condición con contenido dinámico en la pestaña Expresión, con length(collection) resaltada

  3. Sin salir del panel de expresiones abierto, seleccione la pestaña Contenido dinámico.

  4. En la categoría Obtener filas, seleccione body/value y, luego, Agregar.

    Captura de pantalla de la condición, con body/value en

    Sugerencia

    Confirme que ha seleccionado value en la categoría Obtener filas. No seleccione value en la categoría Cuando se crea o modifica un elemento.

  5. En el campo en el centro seleccione es igual a.

  6. En el campo de la derecha, escriba 1 (uno).

    La tarjeta Condición debe parecerse a esta imagen.

    Captura de pantalla de la condición, con length igual a 0 resaltada

    Sugerencia

    La adición de la función length() permite que el flujo compruebe la lista value. Length devuelve el número de elementos en la lista. Si hay 1 elemento en la lista de valores, entonces sabemos que el elemento existe en SQL y debe actualizarse.

Cuando el flujo obtiene elementos del destino, hay dos resultados posibles.

Resultado Paso siguiente
El elemento existe. Actualice el elemento.
El elemento no existe. Cree un artículo nuevo.

Crear el elemento en el destino

La condición es verificar si el elemento de la lista de Microsoft existe en el destino SQL, pero debemos decirle a Power Automate lo que debe hacer cuando se compruebe la condición. Si el elemento de la lista de Microsoft no existe en SQL, cree una nueva fila; de lo contrario, actualice un elemento existente.

  1. Seleccione la acción Insertar fila (SQL) en el lado False de la condición para abrir el panel de propiedades de acción, a la izquierda.

  2. Establezca las opciones Nombre del servidor, Nombre de la base de datos y Nombre de la tabla de la tabla en la que se va a insertar el nuevo elemento (lo mismo que en la información que ha introducido antes).

    Captura de pantalla con la selección de la acción SQL

    Nota

    La tarjeta Insertar fila se expande y muestra todos los campos de la tabla. Los campos marcados con un asterisco (*) son obligatorios y deben rellenarse en la fila para ser válidos.

  3. Seleccione todos los campos que desee rellenar y escriba los datos.

    Puede escribir los datos manualmente, seleccionar uno o más tokens en el panel de contenido dinámico, o bien especificar cualquier combinación de texto y tokens en los campos.

Nota

En las tarjetas Insertar fila y Actualizar fila se muestran los nombres de las columnas de la tabla de SQL Database que se usa en el flujo. Por lo tanto, las tarjetas que se muestran en las imágenes de este procedimiento pueden diferir de las tarjetas que ve.

Actualizar el elemento en el destino

A continuación, configuramos la acción para actualizar el elemento SQL.

  1. Seleccione la acción Actualizar fila (SQL) en el lado True de la condición para abrir el panel de propiedades de acción, a la izquierda.

    Captura de pantalla con la selección de la acción SQL

  2. Establezca el Nombre del servidor, el Nombre de la base de datos y el Nombre de la tabla.

  3. Para el campo Id. de fila, tenemos que obtener la clave principal de SQL Database. En este ejemplo, se trata del campo CustomerID de la salida de la acción Obtener filas (SQL).

    Normalmente, cuando utilizamos una acción Obtener filas y luego queremos acceder a las propiedades de la salida en acciones posteriores, Power Automate crea automáticamente un bucle "For Each" para gestionar cada elemento de la lista. Sin embargo, en este caso particular, sabemos que Power Automate siempre devuelve un registro si hay un CustomerID, ya que CustomerID es la clave principal en la tabla SQL. Esto significa que podemos acceder a la propiedad CustomerID del primer elemento de la lista usando la siguiente expresión:

    outputs('Get_Rows')?['body/value'][0]?['customerid']

  4. Seleccione el parámetro Id. de fila, escriba / y seleccione Insertar expresión. Coloque el código por encima de la barra de fórmulas de expresiones.

  5. Seleccione Parámetros avanzados y elija qué campos desea actualizar.

  6. Guarde y pruebe el flujo.

    Captura de pantalla con un elemento de actualización en SQL

Ahora, cada vez que un elemento de la lista (el origen) cambie, se desencadenará el flujo. Inserta un elemento nuevo o actualiza un elemento existente en SQL Database (el destino).

Nota

El flujo no se desencadena cuando se elimina un elemento desde el origen. Si este escenario es importante para usted, considere la posibilidad de agregar una columna independiente que indique cuando ya no es necesario un elemento.