Principes de validation d’un scénario
Phase 1 : Intégrité de chaque contexte du scénario
Exécution de la règle GCQ définie sur l'entête du scénario (Règle Dér.Auto.Ctx.Val) : celle-ci permet de maintenir le drapeau indiquant si DIAPASON va re-dérouler ou non le contexte sur la liste WfCfgCtxDer dont la structure est :
CtxRef : référence contexte
CtxDerVal : contexte à redérouler ? Cette information est initialisée en fonction des statuts maintenus tout au long de la saisie.
Remarque : Il est possible d’utiliser les infos suivantes de la liste WfCfgCtx :
à re-dérouler seul.
à re-dérouler récursivement.
modifié et non validé.
Puis pour chaque contexte à re-dérouler : re-déroulement du contexte.
Si erreur : message et repositionnement sur contexte. le contexte de repositionnement peut être forcé avec la variable VBP.CtxSuiRef.
Si pas d'erreur : le contenu de WfCfgCtxSor peut venir surcharger la liste des contextes à re-dérouler :
si nouveau contexte : drapeau à redérouler récursivement = vrai.
si contexte existant : passer l'un des drapeaux à oui si positionné à non précédemment.
la VBP.CtxDerValRec contient la liste chaînée des contextes (autres qu'enfants) à re-dérouler récursivement
la VBP.CtxDerVal contient la liste chaînée des contextes (autres qu'enfants) à re-dérouler seuls (si déjà récursif : reste récursif).
Résumé des variablse disponibles durant la règle de calcul de type GCQ :
- SCR.CdeSCDEvt = DA ou DAV
- SCR.CtxCalMod = DER
Remarque : Si la variable VBP.CtxModInt a la valeur Vrai, cela signifie que la modification est intègre et que par conséquent il ne faut pas retoucher les statuts de redéroulement des contextes.
Phase 2 : Commande Système
Lancement de la commande système éventuellement définie sur le scénario (selon le paramétrage sauvegarde/validation).
Phase 3 : Intégrité Globale du scénario (mode Calcul)
Ce mode de déroulement du scénario est lié à une problématique de calcul de prix. Le moteur de configuration permet de calculer des prix sur chaque contexte en utilisant les variables disponibles en cours de saisie ou de déroulement. Mais certains cas de calcul de prix nécessitent de disposer de variables de calcul qui ne sont pas toutes disponibles au moment de la saisie, car elles dépendent d’autres réponses éventuelles sur d’autres contextes : ces informations seront disponibles une fois le scénario complètement renseigné. Ce mode de déroulement du scénario disponible au moment de la validation permet de réaliser ce type de calcul.
Lors de cette étape, le déroulement du calcul automatique du configurateur va être le suivant :
Avant exécution de cette étape, le contexte du global du scénario est disponible :
Toutes les caractéristiques du scénario sont disponibles.
Toutes les VBPs visibles à cette étape sont disponibles.
Pour chaque contexte composant le scénario (dans l’ordre récursif du scénario, en commençant par le contexte de niveau le plus haut si « Dér.Ctx.Val.Rec » est cochée sur la définition du scénario ; sinon dans l’ordre par niveau) :
Initialisation de toutes les variables VBA connues du contexte (avec héritage lié à la hiérarchie des contextes).
Exécution d’une règle GCQ définie sur le scénario pour cette phase avec un contexte particulier (SCR.CdeSCCEvt = CAL ; SCR.CtxCalMod = DEB pour le contexte de plus haut niveau et ENC pour les autres contextes).
Mise à jour éventuelle des informations techniques du scénario (contexte courant et contexte de niveau le plus haut) et des variables VBAs initialisées durant l’exécution (uniquement sur le contexte courant).
Conservation des VBPs pour prochaine exécution.
Nouvelle exécution de la règle GCQ sur le contexte de niveau le plus haut (SCR.CtxCalMod = FIN).
Initialisation du contexte à retourner à l’environnement DIALOG exécutant la fonction.
Résumé des variablse disponibles durant la règle de calcul de type GCQ :
- SCR.CdeSCCEvt = CAL
- SCR.CtxCalMod = DEB, ENC ou FIN
- SCR.CtxCalIte = itération du calcul en cours
- SCR.CtxCalItM = nombre d’itérations maximum (1 en mode ENR-ACT-ENT)
Remarque importante : le fait d’initialiser des variables VBA durant l’exécution de la phase de calcul automatique va permettre de modifier des informations saisies, ce qui peut rendre non intègre un scénario.
Phase 4 : Validation effective du scénario
Exécution des règles DIALOG définies sur le scénario en fonction du mode (validation ou enregistrement).
Au niveau des IT (informations techniques), seul le contexte de niveau le plus haut peut être mis à jour (seule la liste WfCfgITSAct est considérée) :
Au démarrage de la validation, les listes WfLisITSAct et WfLisITSMaj sont vides.
Lors du déroulement de la validation, toute requête GCQ peut maintenir la liste WfCfgITSAct (création, modification, suppression).
Lors de la validation finale, si pas d’erreur, les listes WfCfgITSIni et WfCfgITSAct sont considérées : mise à jour de WfCfgITSIni à partir de WfCfgITSAct pour le contexte de plus haut niveau (racine) et suppression de WfCfgITSAct et WfCfgITSMaj.