Skip to main content
Skip table of contents

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.

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 :

Référence de la matrice

Les caractères espace, point , ! sont interdits

Désignation

Cadre d’utilisation Obligatoire

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.

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 :

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)

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.

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.

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.

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.

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.

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…


JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.