Répondre à: Patch

  • Séb

    Membre
    24 février 2022 à 8h42

    Bonjour @ChezWam

    Tu trouveras ci dessous, une réponse apportée par @R3dKap à une sollicitation du même genre sur le précédent forum.

    Riche d’enseignement, comme d’habitude.

    T’en souhaitant bonne lecture,

    La fonction Patch() (doc officielle : Patch function) te sers principalement, comme tu le sais déjà sans doute, à créer ou modifier des enregistrements d’une collection ou d’une source de données.
    La fonction Patch() a 3 paramètres :

    • 1er paramètre : le nom de la collection ou de la source de données…

      • Exemple 1 : Patch(maCollection, ...) ou Patch(CustomersList, ...)

    • 2è paramètre : 3 possibilités…

      • pour créer un nouvel enregistrement : on utilise alors la fonction Defaults() en lui passant de la nom de la collection ou de la source de données qui est spécifiée dans le 1er paramètre…

        • Exemple 2 : Patch(CustomersList, Defaults(CustomersList), ...)

      • pour modifier un enregistrement existant : il faut alors spécifier l’enregistrement concerné qui va être modifié

        • soit l’enregistrement complet en utilisant une fonction du type LookUp() ou First() ou Last(), etc…

          • Exemple 3 : Patch(CustomersList, LookUp(CustomersList, Name='SMITH'), ...)

        • soit un enregistrement partiel en spécifiant la valeur d’un champ clé…

          • Exemple 4 : Patch(CustomersList, {ID: 12}, ...)

      • pour modifier un ensemble d’enregistrements existants : il faut alors fournir dans ce paramètre la liste des enregistrements à modifier…

        • Exemple 5 : Patch(CustomersList, Filter(CustomersList, CustomerType='Professionnel'), ...)

    • 3è paramètre : les valeurs des colonnes du nouvel enregistrement (s’il s’agit d’une création) ou des enregistrements qui vont être modifiés (s’il s’agit d’une modification)…

      • Exemple 6 : Patch(CustomersList, Defaults(CustomersList), {CustomerLastName: 'DUPONT', CustomerFirstName: 'Frédéric', CustomerType: 'Particulier'}) va créer un nouvel enregistrement dans la liste CustomersList avec les valeurs de colonnes indiquées…

      • Exemple 7 : Patch(CustomersList, LookUp(CustomersList, CustomerNumber='546887'), {CustomerType: 'Professionnel'}) va modifier l’enregistrement du client n° 546887 pour changer sa colonne CustomerType en Professionnel

      • Exemple 8 : Patch(CustomersList, Filter(CustomersList, CustomerLastName='DUPONT'), {CustomerType: 'Professionnel'}) va modifier tous les clients qui s’appellent DUPONT pour changeur leur colonne CustomerType en Professionnel

    Après avoir utilisé la fonction Patch(), il faut idéalement s’assurer que l’opération s’est bien déroulée. Pour cela, juste après le call du Patch() on utilise la fonction Errors(). Le moyen le plus simple d’utiliser cette fonction c’est de simplement lui passer le nom de la collection ou de la source de données qui figure dans le 1er paramètre du Patch() juste avant. La fonction Errors() te renvoie alors la liste des erreurs qui sont apparues lors de la dernière opération effectuée sur cette collection ou source de données.
    Exemple 9 :

    If(IsEmpty(Errors(CustomersList)),n    Notify('Modifications enregistrées avec succès !'),n    Notify('Une erreur est apparue lors de la mise à jour !')n)​

    CommentID=bWLagfnNLGjllH5, PostID=NjO0xGFEOIFNdIl