Répondre à: Actions en cascade sans attente précédente

  • R3dKap

    Membre
    3 mai 2022 à 13h54

    @JLF le site a pas mal réduit la qualité de ta capture donc je vois pas bien mais peut-être juste une remarque : pourquoi faire un ShowColumns() avec autant de colonnes ? J’ai envie de dire qu’à ce compte-là autant prendre toutes les colonnes. A mon avis faire un ShowColumns() pour garder 80% des colonnes de ta sources de données est plus lent qu’en récupérer direct la totalité…

    Et pour réagir à ta problématique “…mais ma collection colTICKET ne récupérait pas mon numéro de Ticket créé juste avant…” :

    • une collection est une photo à un instant t d’une source de données

    • modifier ou créer un élément dans cette source de données n’a absolument aucun impact sur la collection correspondante

    • c’est donc à toi de mettre à jour ta collection pour qu’elle soit bien “synchro” avec ta source de données

    T’as 2 solutions :

    • soit tu refais un ClearCollect() pour réalimenter ta collection à partir de ta source de données (pas besoin de rafraîchir cette dernière) -> pas terrible en termes de perf de recharger tout juste parce-qu’un seul élément a été créé ou modifié

    • soit tu appliques à ta collection la même opération (de création ou de modif) qu’à ta source de données

    Ce que je fais personnellement :

    • lorsque je crée/modifie un élément dans une source de données à l’aide d’un Patch() je m’assure de bien récupérer l’élément en question en faisant : locNewOrModifiedItem = Patch(...)

    • ensuite, j’applique la même opération sur la collection correspondante : j’ajoute l’élément locNewOrModifiedItem dans la collection s’il s’agissait d’une création ou je mets à jour l’élément correspondant dans la collection à partir de locNewOrModifiedItem

    Par exemple :

    locNewItem = Patch(TICKET; Defaults(TICKET); {...});;nCollect(colTICKET; locNewItem)

    CommentID=cb8HRlRtMKVthrL, PostID=QwgjeaKmdvRNPuH