Ejercicio: Crear un flujo que use SQL
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 a través de cientos de 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.
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.
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.
Configure un desencadenador que supervise los cambios en el origen.
Busque el destino para comprobar si existe el elemento modificado.
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.
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.
Abra Power Automate e inicie sesión con su cuenta organizativa.
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.
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:
El cuadro de descripción donde introducimos el mensaje. Puede seguir refinando aquí las acciones en el flujo.
Copilot ha agregado un desencadenador Cuando se crea o modifica un elemento (SharePoint).
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.
El botón Siguiente lo lleva al diseñador de flujos.
Cuando esté con el flujo, seleccione Siguiente para configurar las acciones.
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.
Una vez establecidas las conexiones, seleccione Crear flujo.
Seleccione el desencadenador Cuando se crea o modifica un elemento para abrir el panel de propiedades de acción a la izquierda.
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.
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.
Seleccione la acción Obtener filas para abrir el panel de propiedades de la acción, a la izquierda.
Establezca los valores Nombre del servidor, Nombre de la base de datos y Nombre de la tabla de la tabla SQL que quiera supervisar.
Seleccione Parámetros avanzados y Consulta de filtro.
En el cuadro Consulta de filtro, introduzca CustomerID eq. Luego, seleccione el token CustomerID en la lista de contenido dinámico.
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.
Seleccione la condición para abrir el panel de propiedades de la acción, a la izquierda. Seleccione Insertar expresión.
Busque length y seleccione length(collection).
Sin salir del panel de expresiones abierto, seleccione la pestaña Contenido dinámico.
En la categoría Obtener filas, seleccione body/value y, a continuación, Agregar.
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.
En el campo en el centro seleccione es igual a.
En el campo de la derecha, escriba 1 (uno).
La tarjeta Condición debe parecerse a esta imagen.
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 comprobar si el elemento de Lista de Microsoft existe en el destino SQL. Pero tenemos que decir a Power Automate qué hacer una vez comprobada 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.
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.
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).
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.
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.
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.
Establezca el Nombre del servidor, el Nombre de la base de datos y el Nombre de la tabla.
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']
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.
Seleccione Parámetros avanzados y elija qué campos desea actualizar.
Guarde y pruebe el flujo.
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.