Cette fonction permet de définir une base de paramètres utilisés par le progiciel. Chaque paramètre est identifié par son nom; il est rattaché à un module fonctionnel et au sein de chaque module est classé par groupe. Il dispose de caractéristiques comme le type, le niveau de définition, valeurs possibles. On a la possibilité de lui associer une variable globale ; cela permet au superviseur d'alimenter cette variable globale par la valeur du paramètre, lors de la connexion au dossier, ou lors d'un changement utilisateur.

Dans le cas d'un changement de contexte (société, site) ou lorsqu'une variable n'est pas associée au paramètre, la valeur d’un paramètre peut être lue dans n’importe quel programme par l’un ou l'autre des appels suivants :

Call PARAM(SITE,PARAM,VALEUR) From ADOVAL

Call PARAMUTIL(PARAM,VALEUR,USER,"") From SUBAUS

Il est important de noter que le sous-programme correspondant utilise un type de données qui est toujours de type chaîne de caractères ; lorsque le paramètre d’origine est de type date ou numérique, il faut penser à transcoder si nécessaire la valeur renvoyée. Lorsqu’il s’agit d’une date, une simple affectation suffit : le moteur adonix gère en effet l’affectation d’une variable de type date par une valeur de type chaîne de caractères. Dans le cas numérique, il faut écrire VALNUM=val(VALEUR). 

Pré-requis

SEEREFERTTO Reportez-vous à la documentation de Mise en oeuvre

Gestion de l'écran

Ecran de saisie

La saisie des paramètres se fait sur un onglet, la fenêtre de sélection étant une fenêtre avec des clés arborescentes sur 3 parties (le chapitre, le groupe, puis le code du paramètre).

Il est possible de rajouter de nouveaux paramètres dans le cadre de développements spécifiques. Attention, pour conserver ces paramètres en cas d’évolution de version ou de revalidation de dossier, il est essentiel de les protéger par un code activité spécifique (commençant par X, Y, ou Z). Pour éviter des conflits avec d'éventuels paramètres ajoutés, il est nécessaire d'utiliser la règle de nommage habituelle (faire commencer les noms de ces paramètres par X, Y, ou Z).

On a la possibilité d'ajouter ces paramètres spécifiques dans les chapitres standard existants ou bien dans un chapitre spécifique que l'on aura créé auparavant. L'ajout d'un chapitre spécifique se fait par l'ajout d'un code commençant par X,Y ou Z dans la table diverse 901.

Les différents paramètres existant pour tous les modules ‘fonctionnels’ sont explicités dans les chapitres Prérequis des documentations des fonctions qui les utilisent. Chaque paramètre a sa fiche descriptive appelable de la définition du paramètre ou de la saisie de la valeur de paramètre.

Boutons spécifiques

Validation

Ce bouton permet de compléter et compiler 2 traitements : AGLOBVAR et AGLOB+chapitre

Copie

Ce bouton permet de recopier la définition du code activité vers un autre dossier.  Attention, il n'y a pas de copie du code activité lié.

Messages d'erreur

[<<<

Barre de menus

[>>>>MENU_FLOTTANT_DIV]

Outre les messages génériques, les messages d'erreur suivants peuvent apparaître lors de la saisie :

Paramètre déjà existant

On tente de créer un paramètre qui existe déjà sous le même nom dans un autre chapitre.

La variable doit commencer par G

Les variables globales sont normalisées et doivent commencer par la lettre G.

Variable déjà existante

La variable globale est déjà initialisée par un autre paramètre.

Valeur incorrecte

Une valeur incompatible avec le type de données a été saisie dans le tableau des valeurs.

Traitement inexistant

On a saisi le nom d’un traitement de contrôle inexistant.

Tables mises en oeuvre

SEEREFERTTO Reportez-vous à la documentation de Mise en oeuvre

Annexe technique : formules utilisables pour verrouiller la saisie

La formule saisie dans le champ permettant de contrôler la modification est particulièrement importante lorsqu'on désire verrouiller des valeurs de paramètres à un niveau donné, même si par ailleurs ce paramètre pourrait être modifié.

Cette condition est notamment intéressante pour certaines législations qui imposent des restrictions aux paramètres possibles.

A ce stade, on dispose notamment des variables suivantes :

  • LEG est la législation courante. Cette valeur est vide si on saisit une valeur de paramètre au niveau général; dans tous les autres cas, elle est déterminée (soit parce qu'on saisit le paramètre au niveau de la législation, soit parce qu'on le définit au niveau société (une société est rattachée à une législation), ou site (un site est rattaché à une société qui est rattachée à une législation), utilisateur (rattaché à un site par défaut pour le module correspondant)).
  • SOC est la société courante. Cette valeur est vide si on saisit une valeur de paramètre au niveau général ou au niveau législation, sinon elle est renseignée selon le même principe que précédemment
  • SIT est le site courant. Cette valeur est vide si on saisit une valeur de paramètre au niveau général, législation ou société, sinon elle est renseignée selon le même principe que précédemment.
  • USR est l'utilisateur pour lequel on saisit les habilitations (à ne pas confondre avec GUSER, qui est l'utilisateur courant - celui qui saisit ces habilitations).

On dispose en outre de la variable GNBLEG, qui donne le nombre de législations actives sur le dossier. Ces législations actives sont données par le tableau GDOSLEG (indices variant de 1 à GNBLEG).

Prenons quelques exemples de conditions qui permettent de mieux comprendre comment verrrouiller la saisie des paramètres :

Si on désire empêcher la saisie d'une valeur de paramètre, quel que soit le niveau de définition, si la législation allemande est utilisée dans le dossier, la formule sera :
find("GER",GDOSLEG(1..GNBLEG))=0
En effet, si on trouve "GER" dans le tableau des législations, la fonction find renverra une valeur non nulle; la condition sera donc fausse, et la saisie ne sera pas possible.

Si on désire que, pour les législations italiennes et espagnoles, un paramètre normalement défini au niveau de chaque site ne puisse pas avoir de valeurs différentes par site, on utilisera la formule suivante :
find(LEG,"ITA","SPA")=0 or SIT=""
Si LEG est défini et vaut "ITA" ou "SPA", la première partie de la condition est fausse; il faut alors que SIT soit vide (ie. que l'on soit au niveau société ou au dessus) pour que le paramètre puisse être modifié.

Si on désire qu'un paramètre définissable au niveau des utilisateurs ne puisse être modifié qu'au niveau général, ou pour l'administrateur, on utilisera la formule suivante :
LEG="" or USR=GSUPER
Si LEG est vide, on est au niveau général; si USR est défini et vaut GSUPER (le super-utilisateur) on saisit la valeur de l'administrateur général; dans les deux cas, la formule est vraie, et le paramètre peut être saisi.

Si seul l'administrateur est habilité à modifier une valeur utilisateur, on utilisera la formule suivante :
GUSER=GSUPER