Suppression de doublons – ne garder que le dernier enregistrement

  • Suppression de doublons – ne garder que le dernier enregistrement

    Posté par ludovicduve sur 3 novembre 2023 à 16h49

    Bonjour à tous !

    J’ai une table DATAVERSE dans laquelle j’enregistre les valeurs de références (A, B, C) à des dates qui ne sont pas forcément communes pour chaque références :

    Comme vous pouvez le voir dans ce tableau, il y a 3 enregistrements pour la référence A, 5 pour la B, 2 pour la C.

    Mon objectif est de ne garder que la dernière valeur enregistrée pour chaque référence (avec la date la plus ancienne). Soit le 31/08 pour la référence A, le 30/08 pour la B, le 05/08 pour la C, afin d’avoir un au final une table avec 3 enregistrements. On obtiendrait alors ceci :

    Comment puis-je faire ? J’avais dans l’idée de passer par Power Automate mais je bloque…

    Merci par avance,

    Ludovic

    PostID=4DOQZ92DMZbUNMZ

    Admin a répondu Il y a 5 mois, 2 semaines 1 Membre · 2 Réponses
  • 2 Réponses
  • DavidZed

    Membre
    4 novembre 2023 à 10h49

    Hello,

    Ton poste étant dans la section Dataverse, je pars du principe que tu souhaites supprimer les enregistrements ayant une date antérieure au dernier record pour chaque référence.

    Tu as plusieurs manières d’y parvenir

    Soit avec Power Automate :

    A privilégier si la table reçoit des nouveaux enregistrements en grande quantités / à forte fréquence

    1. Il faut partir sur un déclencheur “Quand un nouvel enregistrement est créé”

    2. Ajouter une action “Obtenir les éléments” en filtrant (Odata) sur deux critères :

      1. La catégorie = la catégorie de l’élément dans le déclencheur

      2. La valeur Date < à celle de l’élément dans le déclencheur

    3. Ajouter une action supprimer une ligne : Mettre le item de l’action précédente (ce qui va créer une boucle For Each)

    Soit avec un Dataflow :

    A privilégier si la table contient beaucoup d’enregistrements et surtout si beaucoup d’enregistrements sont créés (ex 1000+ / jour)

    L’idée c’est de faire une requête sur ta table, réduire la table à un enregistrement par Référence avec un “group by” en se basant sur la valeur maxi du champ “Date” .

    La difficulté ici c’est que pour le champ “Valeur” et le GUID qui va te permettre de supprimer les autres enregistrements lors de l’import, il y a une certaine gymnastique à faire pour récupérer les valeurs correspondantes à la dernière date.

    Voici un article qui décrit le principe, étape par étape :

    1. Tri par date

    2. Table buffer pour charger toutes les données en cache

    3. Group By avec un List. First (ou List.Max selon l’ordre de tri) pour chaque colonne doit on doit récupérer la valeur correspondante (Valeur, GUID…) Bien nommer les colonnes avec leur nom d’entrée, ce sera plus facile pour le mappage

    Ensuite il faudra mapper en sélectionnant la même table et en veillant bien à cocher l’option

    Il y a peut être également d’autres possibilités : Outil de suppression en blocs, plugins…

    CommentID=eITVIwUP2ofAn4F, PostID=4DOQZ92DMZbUNMZ

  • Admin

    Abonné
    1 décembre 2023 à 2h00

    Ok merci, je vais tester ça…

    CommentID=JEOnlShb0wIP2sr, PostID=4DOQZ92DMZbUNMZ

Connectez-vous pour répondre.