Détail du message 77400.4

Message numéro 4 dans le sujet Ajouter un filtre qui utilise "checkValue" sur le module order.

  • 77400.4

    16/04/2013 15:44


    Gaël Port
    Titre : Développeur RBS Change
    Rang : Expert
    Alors là comme ça, c'est peut-être exprimable mais ça donnerait une requête vraiment complexe (les deux premiers critères ne posent pas de problème mais le dernier est moins simple), donc je ne suis pas convaincu que cela vaille la peine d'essayer...


    Concernant l'utilisation du checkValue c'est simplement le code appelant, selon ce qu'il vaut faire.

    Là dans le cas des commandes vous avez un dossier intelligent qui doit afficher des commande, il utilise donc naturellement le getQuery pour retrouver les commandes valides.

    Dans d'autres cas on a un objet et on veut savoir s'il vérifie le filtre, on utilise alors le checkValue. C'est notamment ce qui est fait systématiquement avec les filtres paniers pour savoir si un frais, une réduction, un mode de livraison, etc s'applique ou non au panier courant (en l'occurrence, le panier n'étant pas un document, le getQuery n'a aucun sens mais on peut avoir des documents pour lesquels on utilise l'un ou l'autre selon le contexte).


    La mention du getQuery et/ou du checkValue sur une propriété dans l'éditeur d'un document permet de spécifier les filtres à proposer. En gros si on sait qu'on ne fera que des getQuery (par exemple dans un dossier intelligent) on n'indiquera que getQuery et du coup seuls les filtres implémentant getQuery seront proposés (sans se préoccuper de savoir s'ils implémentent ou non le checkValue). Alors que si on indique les deux comme dans votre exemple plus haut, seuls les filtres implémentant les deux méthodes seront proposés.

    Cela permet dans certains cas de n'implémenter que l'un des deux tout en évitant qu'ils soient utilisés dans un contexte où l'autre serait nécessaire, ce qui aboutirait à une erreur fatale (c'est intéressant surtout quand le getQuery serait trop coûteux à mettre en œuvre alors qu'on n'a besoin du filtre que dans un cas où le checkValue suffit).
 
1356 membres
Aucun membre connecté