Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este artigo descreve como usar o Microsoft Flow para copiar itens entre duas fontes de dados com eficiência.
Por exemplo, você pode criar um fluxo para copiar todos os itens de uma lista do SharePoint em um site para um segundo site do SharePoint. O processo de fluxo também funciona entre uma lista do SharePoint e uma tabela SQL ou qualquer um dos mais de 100 serviços suportados pelo Flow.
Aplica-se a: Power Automate
Número original do KB: 4467880
Mais informações
Você deve preencher todas as colunas necessárias. Não há nenhum requisito de que os nomes de todas as colunas em suas duas fontes de dados sejam os mesmos, mas deve haver pelo menos uma coluna (de sua escolha) que será capaz de identificar exclusivamente itens entre as duas fontes de dados.
No exemplo a seguir, supomos que a coluna Título seja a mesma em ambas as fontes.
Configurar o gatilho
A primeira etapa é configurar o gatilho na lista de origem do SharePoint. Como você deseja capturar todas as alterações de item (não apenas novos itens), selecione o gatilho SharePoint - Quando um item existente é modificado .
Observação
Embora o nome do gatilho mencione apenas modificações em itens existentes, o gatilho também reage a novos itens adicionados à lista.
Encontre o item no destino
Pesquise o item na lista de destinos para obter seu ID e atualizá-lo. Embora o Flow tenha uma ação Filtrar , você não deve usar essa ação nesse cenário porque essa ação baixa todos os itens de lista do SharePoint. O processo será lento, consumirá sua cota e não funcionará se a lista tiver mais de 256 itens.
Em vez disso, você deve usar o campo Consulta de Filtro na etapa Obter itens no SharePoint. Adicione a ação Obter itens e selecione Mostrar opções avançadas para mostrar todos os campos. Se você estiver correspondendo aos títulos das linhas da lista de origem, digite o seguinte no campo Filtrar Consulta (certifique-se de incluir as aspas simples):
Título eq '[selecione o título do conteúdo dinâmico]'
Você não precisa necessariamente ter um mapeamento de coluna 1:1 estrito entre as duas fontes de dados. Por exemplo, se você tiver as colunas Nome e Sobrenome na lista de origem e uma coluna Nome completo na lista de destino, poderá digitar FullName eq '[Nome] [Sobrenome]' no campo Nome da Lista.
Adicionar uma condição para verificar se o item existe
Quando você obtém os itens da lista de destinos, uma das seguintes situações será verdadeira:
- O item ainda não existe no destino, então você precisa criá-lo.
- O item já existe no destino e você precisa atualizá-lo.
Use uma condição para determinar a situação real. Para fazer isso, siga estas etapas:
Selecione Nova etapa e Adicionar uma condição.
Na caixa de texto à esquerda no cartão Condição , selecione Adicionar conteúdo dinâmico.
Observação
A coleção que contém a lista de todos os itens retornados por Get items é chamada value. Certifique-se de selecionar o valor de Obter itens (não do gatilho se um item existente for alterado).
No cartão Condição , selecione é igual a na caixa Relação e digite 0 na caixa Valor .
Adicione a função de comprimento no modo Avançado. Isso é importante porque o conteúdo do valor dinâmico retorna a lista de itens. Você precisa determinar se o comprimento da lista (não o valor) é igual a 0 (zero).
No modo Avançado, digite length() ao redor do corpo('Get_items')?[' value']. Sua condição aparece da seguinte forma.
Criar o item
Na ramificação SE SIM, você adicionará uma etapa Criar item do SharePoint.
Selecione o site e a lista que você usou nas etapas Obter itens . Em Criar item, você deve preencher cada coluna usando apenas campos do gatilho. Você não deve usar nenhum dado das etapas Obter itens porque isso viria da lista de destino, não da lista de origem. Obter itens aparecerá acima do gatilho. Certifique-se de rolar até a parte inferior para encontrá-lo.
Atualizar o item
Na ramificação SE NÃO, você adicionará uma etapa de item de Atualização do SharePoint.
Selecione o site e a lista. Em seguida, selecione a ID retornada nas etapas Obter itens .
Quando você adiciona a ID, um contêiner Aplicar a cada é adicionado automaticamente em torno da etapa Atualizar item . Este comportamento é esperado. Se a consulta usada na etapa Obter itens for precisa, o contêiner atualizará apenas o item que você deseja copiar. Depois de preencher os campos restantes (e certifique-se de usar as saídas do gatilho, não da chamada Obter itens), seu bloco de condição deve ser semelhante à captura de tela a seguir.
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 se aplicam ao processo:
- Se os itens forem excluídos da primeira lista, os itens não serão excluídos da segunda lista. Isso ocorre porque não há nenhum gatilho para Quando um item é excluído. Nesse caso, não há como um fluxo ser notificado quando ocorre uma exclusão. Em vez disso, recomendamos que você adicione uma coluna para indicar que o item não é mais necessário ou relevante em vez de excluir itens de listas do SharePoint (ou tabelas SQL ou outra fonte de dados). Essa coluna será sincronizada entre as duas listas.
- Se forem feitas alterações no campo que você está usando para manter os itens sincronizados entre as duas listas, um novo item será criado na lista de destino. Por exemplo, se você usar a coluna Nome de uma pessoa para copiar entre as duas listas e a coluna Nome dessa pessoa for alterada, o fluxo considerará essa alteração como um novo item, não uma atualização de um item existente. Se você puder garantir que a coluna Nome nunca será alterada, você não será afetado por essa limitação. No entanto, se a coluna Nome for alterada, você precisará adicionar à lista de destino uma coluna que armazene a ID do item na primeira lista. Nesse caso, em vez de usar Nome para localizar itens, você pode usar ID. (O ID é garantido para ser sempre exclusivo).
- Esse processo não é uma sincronização bidirecional. Isso significa que, se os itens forem atualizados na lista de destino, as alterações não serão refletidas na lista de origem. Você não deve tentar configurar a sincronização bidirecional no fluxo, pois isso criará um loop 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á a lista B novamente e assim por diante.