Mise à jour de plusieurs enregistrement dans liste Sharepoint

Étiquetté : ,

  • Mise à jour de plusieurs enregistrement dans liste Sharepoint

    Posté par Vince sur 19 juillet 2023 à 7h45

    Bonjour,

    Dans une application PowerApps, je dois effectuer mettre à jour une série de champs d’une liste Sharepoint.
    Pour plus de rapidité, je crée un collection qui est la copie locale de la liste, l’utilisateur met à jours les champs de la copie locale, et une fois terminé, j’aimerais qu’il mette à jour les lignes de la liste qui ont été mouvementée localement.

    J’ai donc fait ceci :

    ForAll(Filter(Temp10;Champ1=”1″);
    If(VarNiv1=”COB”;
    Patch(CS_COB;LookUp(CS_COB;ID=Temp10[@ID]);
    {
    J1:Val1;
    J2:Val2;

    }

    A la rédaction de l’instruction je reçois cette erreur

    Qu’ais je mal fait ?

    Merci pour l’aide

    Vince

    PostID=O2GLZtO4GZ91JTF

    Vince a répondu Il y a 11 mois, 3 semaines 1 Membre · 11 Réponses
  • 11 Réponses
  • Geoffroy

    Membre
    19 juillet 2023 à 8h54

    Bonjour Vince

    Comme le dit le message, Temp10[@ID] est une table, donc si tu ajoutes un point juste après, il devrait te proposer des trucs. L’idée est d’aboutir à une valeur (il y aura sûrement un .ID à la fin).

    CommentID=4ECbWtbzO9DCuJN, PostID=O2GLZtO4GZ91JTF

    • Vince

      Membre
      19 juillet 2023 à 10h07

      16 minutes ago

      Le Temp10 et bien la table.
      ID est le champ de comparaison

      Mais si j’indique Temp10.ID je reçois la même erreur.

      Like

      Reply

      V

      Vince

      in a few seconds

      Je me dis qu’il y a peut être confusion étant que ID se retrouve dans les 2 listes, j”ai dons pensé à renomer celui-ci, mais je ne vois pas bien où mettre cette fonction dans la boucle

      SubCommentID=Nr8TbhjONB2uQ4s, CommentID=4ECbWtbzO9DCuJN, PostID=O2GLZtO4GZ91JTF

  • Vince

    Membre
    19 juillet 2023 à 8h56

    ok, j’y regarde

    CommentID=BDBGrFqzFKUxeZ6, PostID=O2GLZtO4GZ91JTF

    • Vince

      Membre
      19 juillet 2023 à 9h49

      Le Temp10 et bien la table.
      ID est le champ de comparaison

      Mais si j’indique Temp10.ID je reçois la même erreur.

      SubCommentID=hDJaZJbIKE44MJe, CommentID=BDBGrFqzFKUxeZ6, PostID=O2GLZtO4GZ91JTF

    • Vince

      Membre
      19 juillet 2023 à 10h05

      Je me dis qu’il y a peut être confusion étant que ID se retrouve dans les 2 listes, j”ai dons pensé à renomer celui-ci, mais je ne vois pas bien où mettre cette fonction dans la boucle

      SubCommentID=v1uSS2vIKWdDp4N, CommentID=BDBGrFqzFKUxeZ6, PostID=O2GLZtO4GZ91JTF

  • Geoffroy

    Membre
    19 juillet 2023 à 10h32

    Qu’est-ce qu’il te propose après Temp10. ?

    CommentID=3HJUb76zEWuSSVS, PostID=O2GLZtO4GZ91JTF

  • Vince

    Membre
    19 juillet 2023 à 10h35

    il ne propose rien, mais il rejette pas mon .ID

    Mais il considère ça comme une table en effet

    Et si je ne met que ID je reçois une erreur de connexion

    CommentID=mCMQKwp5tmOxliG, PostID=O2GLZtO4GZ91JTF

  • Geoffroy

    Membre
    19 juillet 2023 à 11h36

    En relisant ta formule, je me dis que le LookUp devrait en fait porter sur chaque enregistrement issu de Filter(Temp10;Champ1=”1″).

    Est-ce que la formule Filter(Temp10;Champ1=”1″).ID pourrait marcher ?

    CommentID=zaK9f4j93Q0IlN3, PostID=O2GLZtO4GZ91JTF

    • Vince

      Membre
      19 juillet 2023 à 11h42

      ce premier filtre, fonctionne, il a pour but de ne sélectionner que les enregistrements qui on été modifié.
      Champs1 = “1”.

      Le problème se pose après quand il s’agit de “lier” l’enregistrement parcouru avec l’enregistrement de la table à mettre à jour qui porte le même ID.

      Le but de la manoeuvre est d’aviter que l’utilisateur n’effectue une MàJ après chaque mofification de la ligne.
      C’est ce qui se passe maintenant et c’est assez lent

      SubCommentID=4US3eaiwAIzwt59, CommentID=zaK9f4j93Q0IlN3, PostID=O2GLZtO4GZ91JTF

  • DavidZed

    Membre
    19 juillet 2023 à 11h48

    Si ta collection a le même schéma de données que ta source, tu dois pouvoir faire un simple :

    Patch('Source de données','Ta collection')

    C’est également beaucoup plus performant

    Si tu utilises un AddColumns() dans ta collection pour identifier les lignes modifiées de celles qui ne l’ont pas été, tu peux filtrer sur ce critère mais il ne faut pas oublier le DropColumns pour enlever la colonne temporaire

    CommentID=FOeLzCSI8h1JgJo, PostID=O2GLZtO4GZ91JTF

    • Vince

      Membre
      19 juillet 2023 à 12h13

      ok, merci.
      Mais je doute que ça marche dans mon cas.
      Quand je crée ma collection il renome les champs, du genre J1 devient OData__x004a_1
      J’ai jamais compris pourquoi
      Ca risque de ne pas coller

      SubCommentID=jMGjF6MVglQwDi0, CommentID=FOeLzCSI8h1JgJo, PostID=O2GLZtO4GZ91JTF

Connectez-vous pour répondre.