REC-COR
BUT
Permet de rechercher une entité de correspondance (généralement une correspondance à un article standard) en fonction du contexte courant.
Cette fonction est disponible dans les requêtes de type GCQ, RN5 et REB. En fonction du type, le contexte d’entrée et de sortie diffère légèrement : dans le cas des requêtes de type GCQ et RN5, la correspondance est recherchée par rapport à la situation des contextes au moment de l’exécution, tandis que dans le cas des REB, il est nécessaire d’avoir initialisé auparavant les listes standards de description de contexte (voir fonction INIT-CTX).
TYPE
CARACTERE
SYNTAXE
Requêtes GCQ et RN5 :
Variable = REC-COR( REG-CORR= Règle , S:TYPE= Type_Entité, S:CLE1 ENTITE= Clé1_Entité , S:CLE2 ENTITE= Clé2_Entité, S:CLE3 ENTITE= Clé3_Entité)
Requêtes REB :
Variable = REC-COR( REG-CORR= Règle , TYPE=Type_Entité, CLE1 ENTITE = Clé1_Entité , CLE2 ENTITE = Clé2_Entité, CLE3 ENTITE = Clé1_Entité, S:TYPE= Type_Entité, S:CLE1 ENTITE= Clé1_Entité , S:CLE2 ENTITE= Clé2_Entité, S:CLE3 ENTITE= Clé3_Entité)
PARAMETRES
Paramètre | E/S | O | Type | Description |
Règle | E | Oui | Caractère | Référence règle de correspondance à utiliser (définie dans la bibliothèque des règles de correspondances). Cette référence peut être donnée par une variable locale, une constante globale ou une constante locale. |
Type_Entité | E | Oui /reb | Caractère | Uniquement pour les REB : Type entité de recherche. Cette référence peut être donnée par une variable locale, une constante globale, une constante locale ou bien par la sélection d’une entité pré-définie, article standard ou ligne de commande commerciale. La combinaison Type entité avec les 3 clés suivantes doit correspondre à une clé de définition des contextes dans les listes standards WfCfgRecCtx et WfCfgRecVal ou bien une clé d’un scénario enregistré (article standard configuré ou ligne de commande). |
Clé 1 Entité | E | Oui /reb | Caractère | Uniquement pour les REB : Référence clé 1 de l’entité. Cette référence peut être donnée par une variable locale, une constante globale ou une constante locale ; dans le cas d’un article standard, il s’agit de la valeur « R » ; dans le cas d’une ligne de commande commerciale, il s’agit du numéro de commande. La combinaison Type entité avec les 3 clés suivantes doit correspondre à une clé de définition des contextes dans les listes standards WfCfgRecCtx et WfCfgRecVal ou bien une clé d’un scénario enregistré (article standard configuré ou ligne de commande). |
Clé 2 Entité | E | Oui /reb | Caractère | Uniquement pour les REB : Référence clé 2 de l’entité. Cette référence peut être donnée par une variable locale, une constante globale ou une constante locale ; dans le cas d’un article standard, il s’agit de la référence article standard ; dans le cas d’une ligne de commande commerciale, il s’agit du numéro de ligne de commande. La combinaison Type entité avec les 3 clés suivantes doit correspondre à une clé de définition des contextes dans les listes standards WfCfgRecCtx et WfCfgRecVal ou bien une clé d’un scénario enregistré (article standard configuré ou ligne de commande). |
Clé 3 Entité | E | Oui /reb | Caractère | Uniquement pour les REB : Référence clé 3 de l’entité. Cette référence peut être donnée par une variable locale, une constante globale ou une constante locale ; dans le cas d’un article standard ou d’une ligne de commande commerciale, cette clé n’est pas utilisée. La combinaison Type entité avec les 3 clés suivantes doit correspondre à une clé de définition des contextes dans les listes standards WfCfgRecCtx et WfCfgRecVal ou bien une clé d’un scénario enregistré (article standard configuré ou ligne de commande). |
Type_Entité | S | Oui | Caractère | Type entité de correspondance trouvé. Cette référence est donnée par une variable locale retournée par la fonction et peut correspondre à un article standard (valeur GAD). |
Clé 1 Entité | S | Oui | Caractère | Référence clé 1 de l’entité trouvé. Cette référence est donnée par une variable locale; dans le cas d’un article standard, il s’agit de la valeur « R ». |
Clé 2 Entité | S | Oui | Caractère | Référence clé 2 de l’entité trouvé. Cette référence est donnée par une variable locale; dans le cas d’un article standard, il s’agit de la référence article. |
Clé 3 Entité | S | Oui | Caractère | Référence clé 3 de l’entité trouvé. Cette référence est donnée par une variable locale; dans le cas d’un article standard, cette clé n’est pas utilisée. |
Cette fonction peut recevoir deux listes standards :
La liste WfCfgRecCtx : un élément de cette liste correspond à un contexte ; cette liste est ordonnée dans l’ordre récursif des contextes et dispose de toutes les informations rattachées au contexte : désignation, modèles, ….
La liste WfCfgRecVal : un élément de cette liste correspond à une valeur d’une variable contextuelle VBA pour chaque contexte.
EXECUTION
Si la correspondance est de type « REB », 2 règles REB sont exécutées :
1. Règle de recherche correspondances (construction des clés)
Cette règle est exécutée avec le contexte suivant :
SCR.LEN_Mode : E
SCR.LEN_LisRef : référence correspondance
SCR.LEN_EntRef : GAD
SCR.LEN_Action : CLE
Et doit renvoyer 2 variables :
SCR.LEN_MDi1 : clé indexée
SCR.LEN_MDi2 : clé complémentaire
2. Règle de contrôle entité.
Cette règle est exécutée avec le contexte suivant :
SCR.LEN_Mode : E
SCR.LEN_LisRef : référence correspondance
SCR.LEN_EntRef : GAD
SCR.LEN_Action : CTR
SCR.LEN_MDi1 : clé 1 candidat à contrôler (type article pour les articles)
SCR.LEN_MDi2 : clé 2 candidat à contrôler (référence article pour les articles)
SCR.LEN_MDi3 : clé 3 candidat à contrôler (vide pour les articles)
Et doit renvoyer 2 variables :
SCR.LEN_OK : doit être à la valeur OUI pour indiquer que l’entité correspond aux clés
EXEMPLE
Dans une RN5 :
VLO.VarRésultat = REC-COR( REG-COR=CLO.’Rec.Art.Std’, S :TYPE= VLO.TypeEnt, S :CLE1 ENTITE = VLO.Type, S :CLE2 ENTITE = VLO.Reference , CLE3 ENTITE = VLO.RAF).
Cette instruction permet de retourner dans la variable VLO.Reference une référence article standard si DIAPASON a pu faire correspondre toutes les VBAs de l’article standard avec les VBAs au moment de l’exécution de la règle dans la requête RN5, en suivant les règles de correspondances définies sur la règle « Rec.Art.Std ».
NOTES
La variable retour est vide si l’exécution de la fonction s’est correctement déroulée ; sinon, elle contient le code erreur DIAPASON et le libellé associé à l’erreur.