Ir para conteúdo
  • 0

Erro ao tentar aplicar Patch em uma coleção no Power Apps com dados do SharePoint


leoloures

Pergunta

  • Alunos

Olá pessoal,

Estou enfrentando um problema ao tentar usar a função Patch em uma galeria que está populada com dados provenientes de uma lista do SharePoint.

Cenário:

     1. Tenho uma galeria (Gallery2) que exibe dados de uma lista do SharePoint. A galeria exibe os campos Trilho e Num_Cabine, conforme mostrado na Imagem 1 Abaixo.

image.png.be587b0bf2700b90ea0566fbb0576a23.png

     2. Eu criei uma coleção (MinhaColecaoComValores) a partir dessa galeria usando o código abaixo:

Clear(MinhaColecaoComValores);

ForAll(
    Gallery2.AllItems,
    Collect(MinhaColecaoComValores,
        {
            ID: ThisRecord.ID,
            Trilho: ThisRecord.Trilho,
            Num_Cabine: ThisRecord.Num_Cabine,
            ValorAnterior: If(
                CountRows(MinhaColecaoComValores) = 0,
                Blank(),
                Last(MinhaColecaoComValores).Num_Cabine
            )
        }
    )
)
 

A ideia aqui é coletar o valor Num_Cabine da linha anterior para que possa ser utilizado posteriormente.

 

     3. Após coletar os dados na coleção, quero usar o valor anterior (ValorAnterior) para atualizar a galeria, onde o valor anterior de Num_Cabine é movido para a linha seguinte.

     4. Estou tentando fazer isso usando o código abaixo:

ForAll(
    MinhaColecaoComValores,
    Patch(
        'Trilho de Cabines Base de Dados',
        LookUp(
            'Trilho de Cabines Base de Dados',
            ID = ThisRecord.ID
        ),
        {Num_Cabine: ThisRecord.ValorAnterior}
    )
)
 

Problema:

Quando executo o código do Patch, estou recebendo o seguinte erro:

Error when trying to retrieve data from the network: Fetching items failed. Possible invalid string in filter query.

No entanto, quando substituo ThisRecord.ID por um número específico no campo ID no LookUp do código, o Patch funciona normalmente.

Pergunta:

Alguém poderia me ajudar a identificar o que poderia estar causando esse erro? Existe algum ajuste que eu precise fazer na consulta LookUp ou no Patch para evitar esse problema?

Agradeço desde já pela ajuda!

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0
  • Alunos
Em 29/08/2024 em 12:58, leoloures disse:

Olá pessoal,

Estou enfrentando um problema ao tentar usar a função Patch em uma galeria que está populada com dados provenientes de uma lista do SharePoint.

Cenário:

     1. Tenho uma galeria (Gallery2) que exibe dados de uma lista do SharePoint. A galeria exibe os campos Trilho e Num_Cabine, conforme mostrado na Imagem 1 Abaixo.

image.png.be587b0bf2700b90ea0566fbb0576a23.png

     2. Eu criei uma coleção (MinhaColecaoComValores) a partir dessa galeria usando o código abaixo:

Clear(MinhaColecaoComValores);

ForAll(
    Gallery2.AllItems,
    Collect(MinhaColecaoComValores,
        {
            ID: ThisRecord.ID,
            Trilho: ThisRecord.Trilho,
            Num_Cabine: ThisRecord.Num_Cabine,
            ValorAnterior: If(
                CountRows(MinhaColecaoComValores) = 0,
                Blank(),
                Last(MinhaColecaoComValores).Num_Cabine
            )
        }
    )
)
 

A ideia aqui é coletar o valor Num_Cabine da linha anterior para que possa ser utilizado posteriormente.

 

     3. Após coletar os dados na coleção, quero usar o valor anterior (ValorAnterior) para atualizar a galeria, onde o valor anterior de Num_Cabine é movido para a linha seguinte.

     4. Estou tentando fazer isso usando o código abaixo:

ForAll(
    MinhaColecaoComValores,
    Patch(
        'Trilho de Cabines Base de Dados',
        LookUp(
            'Trilho de Cabines Base de Dados',
            ID = ThisRecord.ID
        ),
        {Num_Cabine: ThisRecord.ValorAnterior}
    )
)
 

Problema:

Quando executo o código do Patch, estou recebendo o seguinte erro:

Error when trying to retrieve data from the network: Fetching items failed. Possible invalid string in filter query.

No entanto, quando substituo ThisRecord.ID por um número específico no campo ID no LookUp do código, o Patch funciona normalmente.

Pergunta:

Alguém poderia me ajudar a identificar o que poderia estar causando esse erro? Existe algum ajuste que eu precise fazer na consulta LookUp ou no Patch para evitar esse problema?

Agradeço desde já pela ajuda!

Não conheço muito sobre a função em si porém se ajudar indico o canal desse cara aqui muito bom talvez ajude!

 

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

Bom dia @leoloures veja se esse codigo te ajuda:
 

Clear(MinhaColecaoComValores);

ForAll(
    Gallery2.AllItems,
    Collect(MinhaColecaoComValores,
        {
            ID: ThisRecord.ID,
            Trilho: ThisRecord.Trilho,
            Num_Cabine: ThisRecord.Num_Cabine,
            ValorAnterior: If(
                CountRows(MinhaColecaoComValores) = 0,
                Blank(),
                Last(MinhaColecaoComValores).Num_Cabine
            )
        }
    )
);

ForAll(
    MinhaColecaoComValores,
    Set(tempID, ThisRecord.ID);  // Armazena o ID em uma variável temporária
    Notify("ID: " & tempID, NotificationType.Information);  // Exibe o ID para depuração
    Patch(
        'Trilho de Cabines Base de Dados',
        LookUp(
            'Trilho de Cabines Base de Dados',
            ID = tempID  // Usa a variável temporária no LookUp
        ),
        {Num_Cabine: ThisRecord.ValorAnterior}
    )
);


Explicação dos Ajustes

Coleta de Dados na Coleção:

O código coleta dados da galeria Gallery2 e armazena na coleção MinhaColecaoComValores.
Adiciona um campo ValorAnterior que armazena o valor de Num_Cabine da linha anterior.

Uso de Variáveis Temporárias:

Dentro do ForAll, usamos Set(tempID, ThisRecord.ID) para armazenar o valor de ID em uma variável temporária chamada tempID.
Isso ajuda a evitar problemas de referência direta ao ThisRecord.ID no LookUp.

Notificações para Depuração:

Adicionamos Notify("ID: " & tempID, NotificationType.Information) para exibir o valor de tempID durante a execução. Isso ajuda a verificar se os valores de ID estão corretos e se o problema está relacionado aos dados.

Atualização dos Dados Usando Patch:

Usamos a variável tempID no LookUp para garantir que estamos passando o valor correto.
Atualizamos o campo Num_Cabine com o valor de ValorAnterior.

Link para o comentário
Compartilhar em outros sites

Faça login para comentar

Você vai ser capaz de deixar um comentário após fazer o login



Entrar Agora
×
×
  • Criar Novo...