Introducción

Este artículo describe cómo utilizar Microsoft Flow para copiar elementos entre dos orígenes de datos de manera eficaz.

Por ejemplo, puede crear un flujo para copiar todos los elementos de una lista de SharePoint en un sitio a un segundo sitio de SharePoint. El proceso de flujo también funciona entre una lista de SharePoint y una tabla SQL o cualquiera de los más de 100 servicios admitidos por flujo.

Más información

Debe llenar todas las columnas necesarias. No es necesario que los nombres de todas las columnas de los dos orígenes de datos sea el mismo, pero debe haber al menos una columna (de su elección) que será capaz de identificar de forma exclusiva los elementos entre los dos orígenes de datos.

En el ejemplo siguiente, se supone que la columna de título es el mismo en ambos orígenes.

Configurar el desencadenador

El primer paso es configurar el desencadenador en la lista de SharePoint de origen. Puesto que desea capturar todos los cambios (no sólo los elementos nuevos) de artículo, debe seleccionar el desencadenador de SharePoint: cuando se modifica un elemento existente .

SharePoint: cuando un elemento existente modifica desencadenador con el nombre de lista y la dirección del sitio

Nota: Aunque el nombre del desencadenador menciona sólo las modificaciones en los elementos existentes, el desencadenador también reacciona a los nuevos elementos se agregan a la lista.

Buscar el elemento en el destino

Buscar el elemento en la lista de destino para obtener su identificador y actualizarlo. Aunque el flujo tiene una acción de filtrado , debería no utilizar esa acción en este escenario, porque esa acción descarga todos los elementos de lista de SharePoint. El proceso será lento, utilizará su cuota y no funcionará si la lista tiene más de 256 elementos.

En su lugar, debe utilizar el campo de la Consulta de filtro en el paso obtener elementos en SharePoint. Agregue la acción obtener elementos y, a continuación, seleccione Mostrar opciones avanzadas para mostrar todos los campos. Si está asociando los títulos de las filas de la lista de origen, escriba lo siguiente en el campo de la Consulta de filtro (asegúrese de incluir las comillas simples):

Título eq '[seleccione el título del contenido dinámico]'

Escriba el título en el campo de la consulta de filtro en el paso de elementos de Get

No necesariamente tienes que tener una asignación de columna estricta de 1:1 entre los dos orígenes de datos. Por ejemplo, si tiene columnas de nombre y Apellido en la lista de origen y una columna de nombre completo en la lista de destino, puede escribir FullName eq '[nombre] [Apellido]' en el campo Nombre de la lista .

Agregar una condición para comprobar si existe el elemento

Al obtener los elementos de la lista de destino, una de las siguientes situaciones será true:

  • El artículo aún no existe en el destino, por lo que tendrá que crearlo.

  • El elemento ya existe en el destino, y tendrá que actualizarlo.

Utilizar una condición para determinar la situación real. Para ello, siga estos pasos:

  1. Seleccione nuevo pasoy, a continuación, seleccione Agregar una condición.

  2. En el cuadro de texto a la izquierda en la ficha condición , seleccione añadir contenido dinámico. Nota: La colección que contiene la lista de todos los elementos devueltos por obtener elementos se denomina value. Asegúrese de que selecciona el valor de obtener elementos (y no desde el desencadenador si se cambia un elemento existente).   Una colección de valores que aparece en Get items cuando se agrega una condición

  3. En la ficha condición , seleccione es igual a en el cuadro relación y, a continuación, escriba 0 en el cuadro valor .

  4. Agregue la función longitud en modo avanzado. Esto es importante porque el contenido de valor dinámico devuelve la lista de elementos. Tendrá que determinar si la longitud de la lista (no el valor) es igual a 0 (cero).

  5. En modo avanzado, escriba length() alrededor de la expresión de cuerpo ('Get_items') ? ['valor'] . La condición aparece como sigue.  Cuadro condición muestra la longitud de la lista es igual a 0

Crear el elemento

En la rama Si es así , agregará un paso Crear elemento de SharePoint.

Seleccione el sitio y la lista que usa en los pasos de "Obtener elementos". En Crear elemento, debe llenar cada columna mediante campos desde el desencadenador sólo. No debe utilizar ningún dato de los pasos de "Get items" debido a vendrán de la lista de destino, no la lista de origen. Obtener elementos aparecerá sobre el desencadenador. Asegúrese de desplazarse hacia abajo para encontrarlo.

Actualizar el elemento

En la rama IF NO , agregará un paso de elemento de actualización de SharePoint.

Seleccione el sitio y lista. A continuación, seleccione el identificador que se devuelve desde el obtener elementospasos.  Muestra de ID en Get items al actualizar el elemento

Cuando se agrega el identificador, se agrega automáticamente un contenedor se aplican a cada uno alrededor del paso de elemento Update . Éste es el comportamiento esperado. Si la consulta que utilizó en el paso de obtener elementos es precisa, el contenedor actualizará sólo el elemento que desea copiar. Después de completar los campos restantes (y asegúrese de que utiliza las salidas desde el desencadenador, no desde la llamada obtener elementos ), el bloque de la condición debe ser similar a la captura de pantalla siguiente.  "Si" y "Si No" ramas con la condición

Limitaciones del proceso de flujo

El proceso de flujo permite cambios que se realizan en la primera lista se reflejen en la segunda lista.

Se aplican las siguientes limitaciones al proceso:

  • Si se eliminan elementos de la primera lista, no se eliminarán los elementos de la segunda lista. Esto es porque no hay ningún desencadenador para cuando se elimina un elemento. En este caso, no hay ninguna manera de que un flujo que se le notifique cuando se produzca una eliminación. En su lugar, se recomienda que agregue una columna para indicar que el elemento ya no es necesario o pertinentes en lugar de eliminar elementos de SharePoint listas (o tablas SQL u otro origen de datos). Esa columna la sincronización entre las dos listas.

  • Si se realizan cambios en el campo que se utiliza para mantener los elementos sincronizados entre las dos listas, se crea un nuevo elemento en la lista destino. Por ejemplo, si utiliza la columna de nombre de una persona para copiar entre las dos listas y cambios de columna de nombre de la persona, el flujo considera que el cambio sea un elemento nuevo, no una actualización a un elemento existente. Si puede garantizar que la columna de nombre no va a cambiar nunca, no se verá afectado por esta limitación. Sin embargo, si cambia la columna nombre , tienes que agregar a la lista de destino una columna que almacena el identificador del elemento en la primera lista. En este caso, en lugar de usar para buscar los elementos, puede utilizar el ID. (El ID se garantiza que siempre único).

  • Este proceso no es una sincronización bidireccional. Esto significa que si los elementos se actualizan en la lista de destino, los cambios no se reflejarán en la lista origen. No debe intentar configurar la sincronización bidireccional en el flujo dado creará un bucle infinito sin modificaciones adicionales. Por ejemplo, A la lista actualizará la lista B, B de la lista actualizará la lista A, lista A actualizará la lista B nuevo, y así sucesivamente.

¿Necesita más ayuda?

Ampliar sus conocimientos
Explorar los cursos
Obtener nuevas características primero
Unirse a Microsoft Insider

¿Le ha sido útil esta información?

¿Cómo de satisfecho está con la calidad de la traducción?
¿Qué ha afectado a tu experiencia?

¡Gracias por sus comentarios!

×