Introdução

Este artigo descreve como utilizar o Microsoft Flow para copiar itens entre duas origens de dados de forma eficiente.

Por exemplo, pode criar um fluxo para copiar todos os itens de uma lista do SharePoint num site para um segundo site do SharePoint. O processo de fluxo também funciona entre uma lista do SharePoint SQL uma tabela de SQL ou qualquer um dos mais de 100 serviços suportados pelo Flow.

Mais informações

Tem de preencher todas as colunas necessárias. Não é obrigatório que os nomes de todas as colunas nas duas origens de dados sejam iguais, mas tem de haver pelo menos uma coluna (da sua escolha) que consiga identificar itens de forma exclusiva entre as duas origens de dados.

No exemplo seguinte, assumimos que a coluna Título é a mesma em ambas as origens. 

Configurar o gatilho

O primeiro passo é configurar o ativador na lista de origem do SharePoint. Uma vez que pretende capturar todas as alterações de itens (e não apenas os novos itens), deve selecionar o acionador SharePoint - Quando um item existente for modificado

SharePoint – quando um item existente é modificado ativado com o endereço do site e o nome da lista

Note Apesar de o nome do ativador mencionar apenas modificações a itens existentes, o ativador também reage aos novos itens que são adicionados à lista.

Encontrar o item no destino

Procure o item na lista de destino para obter o ID e atualizá-lo. Apesar Flow tiver uma ação Filtrar, não deve utilizar essa ação neste cenário porque essa ação transfere todos os itens de lista do SharePoint. O processo será lento, irá utilizar a sua quota e não funcionará se a lista tiver mais de 256 itens.

Em vez disso, deve utilizar o campo Consulta do Filtro no passo Obter itens no SharePoint. Adicione a ação Obter itens e, em seguida, selecione Mostrar opções avançadas para mostrar todos os campos. Se estiver a corresponder aos títulos das linhas da lista de origem, escreva o seguinte no campo Consulta do Filtro (certifique-se de que inclui as aspas simples):

Título eq '[selecione o título do conteúdo dinâmico]"

Escreva o título no campo Consulta do Filtro no passo Obter itens

Não tem necessariamente de ter um mapeamento de colunas 1:1 restrito entre as duas origens de dados. Por exemplo, se tiver colunas Nome Próprio e Apelido na lista de origem e uma coluna Nome completo na lista de destino, pode escrever FullName eq '[First name] [Last name]" no campo List Name

Adicionar uma condição para verificar se o item existe

Quando o obter os itens a partir da lista de destinos, uma das seguintes situações será verdadeira:

  • O item ainda não existe no destino, pelo que tem de o criar.

  • O item já existe no destino e tem de o atualizar.

Utilize uma condição para determinar a situação real. Para tal, siga estes passos: 

  1. Selecione Novo passo e, em seguida, selecione Adicionar uma condição.

  2. Na caixa de texto à esquerda, no cartão Condição , selecione Adicionar conteúdo dinâmico.

    Nota A coleção que contém a lista de todos os itens devolvidos por Obter itens tem um nome de valor. Certifique-se de que seleciona o valor em Obter itens (não a partir do acionador se um item existente for alterado).
     
    Uma coleção de valores é listada em Obter itens ao adicionar uma condição

  3. No cartão Condição , selecione é igual a na caixa Relação e, em seguida, escreva 0 na caixa Valor.

  4. Adicione a função de comprimento no modo Avançadas. Isto é importante porque o conteúdo do valor dinâmico devolve a lista de itens. Tem de determinar se o comprimento da lista (e não o valor) é igual a 0 (zero).

  5. No modo Avançadas, escreva comprimento() à volta do corpo('Get_items')?[' expressão de valor' ]. A sua condição é mostrada da seguinte forma. 

    A caixa Condição mostra que o comprimento da lista é igual a 0

Criar o item

No ramo IF YES, irá adicionar um passo para Criar item do SharePoint.

Selecione o site e a lista que usou nos passos "Obter itens". Em Criar item, deve preencher cada coluna ao utilizar campos do ativador apenas. Não deverá utilizar dados dos passos "Obter itens" porque isso seria proveniente da lista de destino e não da lista de origem. A ação Obter itens será apresentada acima do ativador. Certifique-se de que percorre a parte inferior para a encontrar.


Atualizar o item

No ramo SE NÃO, irá adicionar um passo de Atualização do SharePoint

Selecione o site e a lista. Em seguida, selecione o ID que é devolvido a partir dos passos Obter itens. 

O ID é apresentado em Obter itens ao atualizar item

Quando adiciona o ID, é automaticamente adicionado um Aplicar a cada contentor em torno do passo Atualizar item . Este é o comportamento esperado. Se a consulta que usou no passo Obter itens estiver correta, o contentor irá atualizar apenas o item que pretende copiar. Depois de concluir os restantes campos (e de se certificar de que utiliza os resultados do ativador e não a partir da chamada Obter itens), o bloco de condição deverá assemelhá-lo à seguinte captura de ecrã. 

Ramos "Se Sim" e "Se Não" com a condição


Limitações do processo de fluxo

O processo de fluxo permite que as alterações feitas na primeira lista sejam refletidas na segunda lista.

As seguintes limitações aplicam-se ao processo:

  • Se os itens são eliminados da primeira lista, os itens não serão eliminados da segunda lista. Isto deve-se ao facto de não haver um ativador para Quando um item é eliminado. Neste caso, não existe forma de um fluxo ser notificado quando ocorre uma eliminação. Em vez disso, recomendamos que adicione uma coluna para indicar que o item já não é necessário ou relevante em vez de eliminar itens de listas do SharePoint (ou tabelas SQL ou outra origem de dados). Essa coluna será sincronizado entre as duas listas.

  • Se fizer alterações ao campo que está a utilizar para manter os itens sincronizados entre as duas listas, é criado um novo item na lista de destino. Por exemplo, se utilizar a coluna Nome de uma pessoa para copiar entre as duas listas e a coluna Nome da mesma for alterada, o fluxo considera que a alteração é um novo item e não uma atualização para um item existente. Se conseguir garantir que a coluna Nome nunca será alterada, não será afetado por esta limitação. No entanto , se a coluna Nome for alterada, tem de adicionar à lista de destino uma coluna que armazene o ID do item na primeira lista. Neste caso, em vez de utilizar Nome para encontrar itens, pode utilizar o ID. (É garantido que o ID é sempre exclusivo).

  • Este processo não é uma sincronização em dois sentidos. Isto significa que, se os itens estiverem atualizados na lista de destino, as alterações não serão refletidas na lista de origem. Não deve tentar configurar a sincronização frente e verso no fluxo porque isso criará um ciclo infinito sem modificações adicionais. Por exemplo, a lista A atualizará a lista B, a lista B atualizará a lista A, a lista A atualizará novamente a lista B e assim por cima.

Precisa de mais ajuda?

Aumente os seus conhecimentos
Explore as formações
Seja o primeiro a obter novas funcionalidades
Aderir ao Microsoft insiders

As informações foram úteis?

Quão satisfeito está com a qualidade do idioma?
O que afetou a sua experiência?

Obrigado pelo seu feedback!

×