Documentation PLUGIN DE CONFIGURATIONS
Breadcrumbs

Création d’une matrice



      Entête de matrice

      Une matrice manuelle se compose d’un entête qui définit le cadre d’utilisation de la matrice ainsi que les contraintes d’entrées de la matrice à savoir les variables entrant en jeu dans la condition et de détails où sont répertoriés tous les cas possibles.


      Ces matrices sont répertoriées dans la liste paramétrée IGeEntMat.

      Untitled Diagram-1695300900522.drawio.png

      Depuis cette liste, les actions « Création », « Modification », « Duplication » et « Détail » permettent de maintenir les informations liées à l’entête de la matrice, la PSD IGeEntMat est alors lancée. Cette PSD est composée des champs suivants :


      image-20240529-123045.png


      Référence de la matrice

      Les caractères espace, point , ! sont interdits

      Désignation

      Désignation de la matrice

      Cadre d’utilisation Obligatoire

      Choisir un cadre d’utilisation parmi les valeurs suivantes :

      CoefTh : Coefficient Thermique ; CorCar : Corr. Caractéristique ; CorMod : Corr. Modele ; CorVar : Corr. Variable ; Des : Gestion Objet Dessin librairie ; EIACde : Int. Cde .EIA , LOG : Mat. Test Logique ; LogCleSup : Test Clé Sup. ; LogDat : Test par Date ; Lst : Liste Valeur ; Maj : Mat. de Maj , MajCleSup : Maj Clé Sup ; MajDat : Maj par Date ; PVDat : P.V. par Date ; Tar : Mat. Cal Tarif ; TarCleSup : Tarif Cle Sup ; TarDat : Mat Tarif / Date ; Val : Mat. de Valeur ; ValCleSup : Val Cle Sup ; ValDat : Mat. Val Date

      Type d’utilisation

      Obligatoire. Sous-catégorie liée au cadre d’utilisation

      Famille et sous-famille)


      Type d’acces S/M

      (Obligatoire, valeur défaut SIMPLE) Modifiable pour les Matrices de Type MAJ VBA ou IT : permet de prendre en compte, si le type accès est multiple, tous les détails de la matrice répondants aux contraintes d’entrée. Dans le cas d’une condition accès simple seul le premier élément de détail répondant aux critères d’entrée sera sélectionné

      Domaine Utilisation

      Déterminer automatiquement en fonction des valeurs saisies sur l’entête et/ou le détail de la matrice. Valeur Possible VBA, VBP ou VSD. Cette valeur détermine le contexte d’utilisation de la matrice scénario commerciaux ou nomenclature : domaine VBA ou VBP ou bien scénario PSD domaine VSD ou VBP. Cette valeur permet d’effectuer des contrôles de cohérence de données afin d’éviter de « mélanger » dans les matrices des VBA et VSD. Les matrices de domaines VBP peuvent être exécutées à la fois dans un scénario commercial ou Scénario PSD.

      Exécution Hors Config ?

      Disponible depuis la version PCD 1.3.30. Permet pour les matrices de type valeur d’exécuter la matrice dans un cadre hors configuration ( GC ou DT), par exemple lors d’un calcul de prix d’article sur mesure ( Requete APC) et dans ce cas de figure de pouvoir spécifier comme contrainte d’entrée de la matrice , des variables entités accessibles depuis le domaine d’exécution de la matrice. Dans le cas d’une matrice de valeur exécutée pour le calcul du prix d’un article sur mesure, les variables entités interprétables par les matrices utilisées dans l’arbre de calcul du prix de la ligne d’OA sont : SAS-VAS-VAR -SAF - VAF -SDL - VDL - SDE - VDE de l’article lié à la ligne d’appro en cours , SFL - VFL de la ligne d’OA en cours , SFE - VFE de l’OA en cours , SFF - VFF lié au fournisseur de l’OA en cours.

      Condition Supplémentaire

      L’activation de ce statut permet pour les matrices qui ne sont pas gérées par date ou avec des clés supplémentaires de rajouter pour chaque détail de la matrice une condition supplémentaire testée après validation des contraintes.

      Nombre d’entrées type caractère

      Nombre de variables ou formules de type caractère ou logique entrant en jeu dans la construction de la matrice (5 entrées au maximum)

      Type Entrée i

      - VBA : l’entrée est une variable de base

      - FOR : l’entrée est une formule (voir définition des formules)

      - LCD …

      - ARG : entrée dynamique donnée par la valeur d’un argument passé lors de l’appel de la matrice

      Référence Entrée i

      VBA, FOR ou référence liée au type entrée

      Accès Entrée i

      Accès par rapport à l’entrée saisie (=, <>, = ou *)

      Ajout Elément *

      Lorsque que l’un des opérateurs logiques des contraintes caractères vaut ('*' Ou Variable définie en entrée), faut-il prendre en compte les éléments * uniquement lorsque aucun élément n’est trouvé avec la valeur de la contrainte, ou prendre en compte ces éléments systématiquement et donc les rajouter aux éléments trouvés avec la valeur de la contrainte.

      Nombre d’entrées type numérique

      Nombre de variables ou formules de type numérique entrant en jeu dans la construction de la matrice (5 entrées au maximum)

      Type Entrée j

      - VBA : l’entrée est une variable de base

      - FOR : l’entrée est une formule (voir définition des formules)

      Référence Entrée j

      Référence de la VBA ou de la formule

      Accès Entrée j

      Accès par rapport à l’entrée saisie (=, ≥, ≤, > ou <)

      Commentaire


      Opérateurs Logique :

      Les opérateurs logiques sur les champs caractères peuvent être = , <> ou = ( '*' Ou Variable définie en entrée ).

      Ce dernier opérateur permet d’indiquer que la recherche sur le détail de la matrice doit être effectuée dans un premier temps avec la valeur de la contrainte, et lorsque rien n’est trouvé pour cette valeur continuer la recherche sur la valeur * qui doit être interprétée comme « rien n’a été trouvé ».


      Cas particulier du champ logique « Ajout élément * » (entête de matrice)

      Ce champ n’est accessible que pour les matrices a accès Multiple et n’est interprété que lorsque un des opérateurs logiques des contraintes caractères vaut '*' ou la variable définie en entrée.

      La valeur de ce champ permet d’interpréter la valeur * du détail d’une matrice de deux façons différentes :


      Ajout * vaut NON :

      La valeur * n’est prise en compte que si rien n’a été trouvé pour la valeur de la contrainte correspondante. Le * est alors interprété comme un Sinon : rien n’a été trouvé avec la valeur de la contrainte, alors on prend en compte les valeurs *


      Ajout * vaut OUI :

      Les éléments avec la valeur * sont toujours pris en compte, le * est considéré comme valeur défaut sur lesquelles viennent se rajouter les éléments correspondant à la valeur de la contrainte. Le * est alors interprété comme un Toujours : les éléments correspondants à la valeur de la contrainte vont permettent de gérer la particularité liée à cette valeur, le cas de « base » étant géré par la valeur *.


      Soit la matrice d’aide suivante avec une seule contrainte d’entrée :

      Contrainte

      Référence valeur liste

      Désignation valeur liste

      OF

      Ref1

      Désignation 1

      OF

      Ref2

      Désignation 2

      OF

      Ref3

      Désignation 3

      OF

      Ref4

      Désignation 4

      OB

      Ref5

      Désignation 5

      OB

      Ref6

      Désignation 6

      *

      Ref7

      Désignation 7

      *

      Ref8

      Désignation 8


      1. Contrainte = « OF »

      a. « ajout élément * » non coché

      Référence valeur liste

      Désignation valeur liste

      Ref1

      Désignation 1

      Ref2

      Désignation 2

      Ref3

      Désignation 3

      Ref4

      Désignation 4

      b. « ajout élément * » coché

      Référence valeur liste

      Désignation valeur liste

      Ref1

      Désignation 1

      Ref2

      Désignation 2

      Ref3

      Désignation 3

      Ref4

      Désignation 4

      Ref7

      Désignation 7

      Ref8

      Désignation 8

      1. Contrainte = « CHC »

      Dans ce cas, le résultat est le même que le flag « ajout élément * » soit coché ou non

      a. « ajout élément * » non coché

      Référence valeur liste

      Désignation valeur liste

      Ref7

      Désignation 7

      Ref8

      Désignation 8

      b. « ajout élément * » coché

      Référence valeur liste

      Désignation valeur liste

      Ref7

      Désignation 7

      Ref8

      Désignation 8

      En résumé,

      • Quand le logique « ajout élément * » n’est pas coché (a), la condition sur la contrainte d’entrée est interprétée comme un « (SI) on prend les conditions strictement vraies SINON on prend les conditions vraies avec « * » »

      • Quand le logique « ajout élément * » est coché (b), on prend les conditions strictement vraies ET les conditions vraies avec « * »

      Sorties d’une Matrice

      Suite à la création de l’entête, il est nécessaire de définir les sorties de la matrice : qu’est-ce que la matrice doit restituer comme informations ?

      En fonction du cadre d’utilisation et du type d’utilisation de la matrice, les sorties peuvent être prédéfinies (valeurs de sorties imposées mais pouvant être complétées), ou bien à définir totalement par l’utilisateur. Ainsi une matrice ayant vocation à qualifier un lien générique (cadre d’utilisation MAJ et type d’utilisation INoExiLie) sera prédéfinie de la façon suivante :

      Untitled Diagram-1695301648118.drawio.png

      La nature des sorties des matrices est directement liée au cadre d’utilisation, au domaine d’utilisation et au type d’utilisation.

      Il n’est pas possible de mettre à jour une VSD si le domaine d’utilisation de la matrice est VBA et inversement. De même il n’est pas possible de mettre à jour une clé d’affichage VBA (affichée, saisie ou masquée) si la matrice sert à créer des IT pointeurs, cela n’a pas de sens.


      Les différents types de sorties sont les suivantes :

      • VBA : mise à jour de la valeur d’une VBA

      • VBP : mise à jour de la valeur d’une VBP

      • VSD : mise à jour de la valeur d’une VSD

      • CLE : mise à jour des attributs d’affichage (Affichée, Saisie, Masquée) d’une VBA ou d’une VSD ou des VBA ou VSD liées aux clés d’affichage 1, 2 ou 3 mis à jour.

      • VAL : Champ de sortie d’une matrice de valeur. La recherche sur la matrice s’effectue par une formule liée au champ VAL

      • ARG : mise à jour d‘une valeur définie par la valeur de l’argument passé à la matrice


      D’une manière générale, lorsque le domaine d’utilisation est :

      • VBA : les sorties de la matrice peuvent être : VBA (Mise à jour de VBA), VBP (Mise à jour de VBP), CLE (gestion attribut d’affichage Affichée, saisie, masquée)

      • VSD : les sorties de la matrice peuvent être : VSD (Mise à jour de VSD), VBP (Mise à jour de VBP), CLE (gestion attribut d’affichage Affichée, saisie, masquée)


      Lorsque le cadre d’utilisation est VAL (matrice de valeur) les sorties peuvent être Val ou VBP.

      Remarque :

      Les sorties d’une matrice (prédéfinie ou pas) peuvent toujours être complétées par des VBP.

      Les différentes sorties d’une matrice sont ordonnées à partir d’un N° d’ordre. Les mises à jour seront donc réalisées selon l’ordre défini. Il est ainsi possible d’exploiter la valeur d’une VBA d’un ordre inférieur à celui en cours.


      Suite à la création de l’entête d’une matrice, l’outil de définition des sorties d’une matrice est lancé automatiquement. Cet outil peut être lancé manuellement depuis la liste des matrices (Action Def Sorties Matrice MAJ-F11)

      image-20230921-131142.png

      Dans cet exemple :

      La clé1 d’affichage BVR sera d’abord mis à jour, puis la VBA I_VR puis la VBA s_coffre_hauteur et enfin la VBP caractéristique1

      Détail Matrice

      Le tableur de maintenance du détail de la matrice se décompose en deux parties, côté gauche (orange) la valeur des différentes contraintes d’entrée, côté droit (jaune) la valeur des sorties correspondantes.

      att_23_for_373719138.png

      Un contrôle de type warning sera effectué suivant la valeur logique du paramètre (Commande / MotScen / CtrMatrice) pour chacune des valeurs des VBA liées à une ou plusieurs listes de valeurs. Ce Warning permet de vérifier les erreurs de saisies éventuelles.

      Pour les VBA de type caractère, les saisies ne doivent pas être encadrées par des côtes. Toute saisie de type formule (utilisant une VBA, une formule, une matrice, une constante globale) doit être précédée du caractère =


      Gestion de conditions supplémentaires.

      Une condition supplémentaire pourra être définie pour chaque détail des matrices pour lesquelles le statut condition supplémentaire est activé. Cette condition sera testée uniquement pour les enregistrements répondant aux contraintes valides de la matrice.

      att_20_for_373719138.png

      Cette condition supplémentaire ne peut être activée que pour les matrices qui ne sont pas gérées par dates ou par clés supplémentaires.

      Remarques :

      Si aucune valeur n’est saisie la cellule sera considérée comme non définie. Pour initialiser une VBA de type caractère à vide, saisir la valeur = ‘’.

      Les valeurs saisies dans le détail des contraintes d’entrée d’une matrice ne peuvent pas être des valeurs à interpréter dynamiquement de type Formule, VBA ou VBP ; ces valeurs doivent être impérativement des constantes.

      Untitled Diagram-1695302201761.drawio.png

      Pour les matrices gérées par date ou par clés supplémentaires, l’accès au détail de la matrice doit être précédé du choix de la période ou/et des clés supplémentaires.

      att_22_for_373719138.png

      La mise à jour de VBA en fonction de la valeur d’autres VBA. (exemple d’utilisation MAJ E/S pour les VBA d’un scénario)

      Prenons pour exemple, la mise jour d’une VBA Isolation Totale et d’une VBA Nb de Zone qui dépendent de la matière et du type de fenêtre.

      Contrainte1 : Matière

      Contrainte 2 : Type fenêtre

      Sortie Maj Isolation

      Sortie MAJ Nb Zone

      Alu

      FE2

      90

      3

      Alu

      FE3

      90

      3

      PVC

      FE2

      100

      2

      PVC

      FE3

      100

      2

      Pour chacun de ces deux types de matrices, les valeurs de sorties peuvent être d’une part définie en fonction d’une période (date début, date fin) et d’autre part en fonction d’une période et de clés supplémentaires permettant la gestion de cas particulier (recherche avec clé, si non trouvé recherche sans les clés).


      Il existe donc 6 types de matrices définies par un cadre d ‘utilisation :

      • MAJ : matrice permettant la gestion de mises à jour en sortie de matrice. Le nombre et la nature des Maj sont à paramétrer par matrice.

      Contrainte1 : Matière

      Contrainte 2 : Type fenêtre

      Sortie Maj Isolation

      Sortie MAJ Nb Zone

      Alu

      FE2

      90

      3

      Alu

      FE3

      90

      3

      PVC

      FE2

      100

      2

      PVC

      FE3

      100

      2

      • MajDat : matrice permettant la gestion de mises à jour en sortie de matrice en fonction d’une période référence.

      Entrée 1

      Matière

      Entrée 2

      Type Fen

      Date Début

      Date Fin

      Sortie Maj Isolation

      Sortie MAJ Nb Zone

      Alu

      FE2

      01/01/2008

      31/12/2008

      90

      3

      Alu

      FE3

      01/01/2008

      31/12/2008

      90

      3

      PVC

      FE2

      01/01/2008

      31/12/2008

      100

      2

      PVC

      FE3

      01/01/2008

      31/12/2008

      100

      2

      Alu

      FE2

      01/01/2009

      31/12/2009

      100

      3

      Alu

      FE3

      01/01/2009

      31/12/2009

      100

      3

      PVC

      FE2

      01/01/2009

      31/12/2009

      100

      2

      PVC

      FE3

      01/01/2009

      31/12/2009

      100

      2

      • MajCleSup : matrice permettant la gestion de mises à jour en sortie en fonction d’une période et de deux clés supplémentaires définies par les VBA.IGeCleSup1 et VBA.IGeCleSup2 alimentées respectivement par les champs SDE.CliResRef et SDE.CliGenRef. La recherche est effectuée en prenant en compte les clés supplémentaires et la date de référence, si rien n’est trouvé une nouvelle recherche est effectuée uniquement sans les clés.

      Entrée 1

      Matière

      Entrée 2

      Type Fen

      Date Début

      Date Fin

      CléSup1

      Réseau

      CléSup2

      Client

      Sortie Maj Isolation

      Sortie MAJ Nb Zone

      Alu

      FE2

      01/01/2008

      31/12/2008



      90

      3

      Alu

      FE3

      01/01/2008

      31/12/2008



      90

      3

      PVC

      FE2

      01/01/2008

      31/12/2008



      100

      2

      PVC

      FE3

      01/01/2008

      31/12/2008



      100

      2

      Alu

      FE2

      01/01/2009

      31/12/2009



      100

      3

      Alu

      FE3

      01/01/2009

      31/12/2009



      100

      3

      PVC

      FE2

      01/01/2009

      31/12/2009



      100

      2

      PVC

      FE3

      01/01/2009

      31/12/2009



      100

      2

      Alu

      FE2

      01/01/2009

      31/12/2009

      GD

      0001

      90

      3

      Alu

      FE3

      01/01/2009

      31/12/2009

      GD

      0001

      90

      3

      Dans cet exemple le client GD/0001 gardera une isolation de 90 du 01/01/2009 au 31/12/2009.

      Enchaînement de matrice

      Le champ Enchainement, uniquement accessible pour les matrices de type MAJ, permet de lancer une autre matrice de mise à jour suite aux mises à jour effectuées par la matrice encours. Cette option d’enchaînement permet par exemple de compléter des MAJ pour un cas particulier sans multiplier le nombre de tests.


      Exemple d’utilisation :

      En sortie d’une Zone VBA.XXX un certain nombre de mises à jour sur VBA doivent être effectuées de la manière suivante :


      La hauteur est initialisée en fonction de la VBA.famille et de la VBA.modèle et cela de façon systématique. Mais si le modèle est ALU et uniquement ALU, je dois faire une mise à jour sur la largeur et cela en fonction du fait qu’il y ait un BVR et suivant le type du BVR. Si le type BVR est sous maçonnerie et si la commande de ce BVR est électrique il faut alors initialiser la VBA.Moteur et si la commande est manuelle initialisation de la VBA.Percagecoffre.

      SI le type BVR n’est pas sous maçonnerie mais externe Init VBA.flasque Maconnerie qui dépend du type de tablier.

      image-20230921-133159.png

      Matrice Hauteur

      Entree : Modele

      Entree Famille

      Sortie : Hauteur

      Enchainement

      FE

      PVC

      FOR.CalHauteurFE


      CHC

      PVC

      FOR.CalHauteurCHC


      FE

      ALU

      FOR.CalHauteurFE

      MAT.Largeur

      CHC

      ALU

      FOR.CalHauteurCHC



      Matrice Largeur

      Entree : Type BVR

      Sortie : Largeur

      Enchainement

      Sous Maconnerie

      FOR.CalLargSousMac

      MAT.Percage

      Externe

      FOR.CalExterne

      MAT.Flasque

      Interne

      FOR.CalInterne



      Matrice Flasque

      Entree : Type Tablier

      Sortie : Flasque

      Enchainement

      PVC

      PVc34X


      ALU

      ALU23Y



      Matrice Perçage

      Entrée : Type Cde

      Sortie : Puissance Moteur

      Sortie : perçage tringle

      Enchainement

      Manuelle


      FOR.CalTringle


      Electrique

      FOR.CalPuissance


      MAT.ChoixMoteur…