Définition des paramètres
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
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.
Bloc numéro 1
Chapitre (champ CHAPITRE) |
Le chapitre, défini dans la table diverse numéro 901, identifie le domaine fonctionnel auquel le paramètre est rattaché. |
Paramètre (champ PARAM) |
Un paramètre est caractérisé par :
|
Intitulé (champ NAME) |
Bloc numéro 2
Groupe (champ GRPPAR) |
Le code groupe, défini par la table diverse numéro 903, permet de regrouper entre eux des paramètres d'un même chapitre, afin de les organiser et de faciliter leur paramétrage. En effet, on a la possibilité de définir des jeux de valeurs par groupe de paramètres. |
Caractéristiques
Niveau définition (champ NIVDEF) |
Le niveau de définition permet de caractériser le niveau de détail le plus fin possible pour associer une valeur à chaque paramètre. Si, dans un contexte donné, il n'existe pas de valeur au niveau défini, on remonte successivement aux niveaux supérieurs jusqu'à retrouver une valeur. Il est ainsi toujours possible de définir une valeur par défaut aux niveaux supérieurs du niveau le plus bas de définition, afin de ne gérer que les cas particuliers au niveau le plus bas. Les niveaux de définition possibles, définis par le menu local 987, sont, dans l'ordre descendant :
|
Type valeur (champ TYPVAL) |
On définit ici le type interne de la valeur et le numéro de menu local s’il y a lieu. |
Code activité (champ CODACT) |
Un code activité vous permet de :
Si le code activité est désactivé :
|
No menu local (champ NOLIB) |
On définit ici le type interne de la valeur et le numéro de menu local s’il y a lieu. |
Objet (champ OBJET) |
Un paramètre peut être la clé d’une fiche gérée par un objet (par exemple, un code pays, un code client, un compteur, une famille article, un utilisateur, etc.…). Si c’est le cas, on donne ici le code de l’objet ; ceci permet de disposer automatiquement de tous les contrôles associés lors de la saisie du paramètre. En outre, on peut préciser le paramètre à passer à la gestion d’objet, lorsque celui-ci gère une table avec une clé de deux composantes. Le paramètre CCEDSP1 "Section axe 1 pour répartition" utilise ce champ pour indiquer le numéro de l’axe analytique. De plus, on peut préciser une ou plusieurs options de sélection pour filtrer les valeurs possibles pour le paramètre. Ces options sont définies dans l’objet, dans l'onglet "Sélection". Le paramètre CPTRES utilise l’option de filtre sur l’objet des comptes pour n’autoriser que les comptes généraux. |
Paramètre (champ PAROBJ) |
Options de sélection (champ SELOPT) |
Traitement de contrôle (champ TRAIT) |
La rubrique traitement permet de définir le nom d’un traitement qui sera appelé pour faire des contrôles complémentaires de validité à la saisie des paramètres. Si ce traitement est défini, il doit alors exister un sous-programme défini comme suit dans le traitement : Subprog VERF_PARAM(PARAM,VALEUR,OK) Un exemple d’utilisation est donné pour les variables de type compteurs de documents. Lorsqu’on ne veut pas qu’ils dépassent une longueur de 15 caractères, on peut faire appel au traitement SUBANM. |
Variable globale (champ CODVAR) |
Pour des raisons de facilité d’utilisation, il peut être utile de stocker la valeur du paramètre dans une variable globale. Pour des raisons de normalisation, le nom de cette variable commence par la lettre "G" pour le standard, par l'une des lettres "X", "Y" ou "Z" pour le spécifique. Cette variable appartient à la classe [V]. Le fait de donner le nom d’une variable provoque la génération automatique d’un traitement de déclaration :
Ainsi, lorsqu’on se connecte au dossier, la variable globale est alimentée par la valeur du paramètre. Si la variable est définie à un niveau inférieur (site, société, législation), elle est susceptible de changer de valeur dès lors que le site, la société ou la législation change ; il est dans ce cas de la responsabilité du développeur de relire les valeurs des paramètres et de modifier les valeurs des variables correspondantes. Il dispose pour ce faire d’un sous-programme pour chaque module, qui peut être appelé par : Call GLOBVAR(SITE) From WWGLOBXXX En création de paramètre, dans le cas ou la variable n'est pas encore créée dans le dictionnaire idoine, le superviseur propose de la créer. En mise à jour de paramètre, la variable n'est pas modifiable. Cependant, on a la possibilité d'intervenir sur ce champ depuis le dictionnaire des variables, avec la possibilité :
Remarque : la suppression d'une variable globale associée à un paramètre est possible. Dans ce cas, le paramètre n'est plus lié à une variable globale.
|
Tableau Liste des valeurs
Valeurs (champ VALUES) |
Il est possible de définir une liste de valeurs possibles qui seront proposées lors de la saisie du paramètre à l’aide de la fonction de sélection, accessible à partir du clic droit de la souris. |
Propriétés
Modifiable (champ MODIF) |
Permet de définir si une valeur peut être modifiée manuellement par l’utilisateur par la fonction Valeurs paramètres. Si ce n'est pas le cas, seul un programme est en mesure de le modifier ; par exemple, le paramètre TYPDBA, qui définit la base de données utilisée, n’est qu’un reflet de ce qui a été défini lors de la création ou de la mise à jour d’un dossier : il ne peut donc pas être modifié manuellement. |
Hors valeur (champ VALFLG) |
Lorsque la case à cocher Hors valeur est sélectionnée, vous pouvez saisir des valeurs hors de la liste indiquée au-dessus (à considérer comme un ensemble "conseillé de valeurs"). Lorsque la case est désactivée, une sélection stricte s'impose. |
Modif Utilisateur (champ AUSMODIF) |
Cet indicateur, modifiable uniquement si la variable a été définie au niveau Utilisateur, permet de savoir si un utilisateur peut modifier lui-même la valeur (via la fonction de gestion des choix personnels), ou si un utilisateur autre que l’administrateur général peut modifier ce paramètre en gestion des utilisateurs. |
Valeur par défaut dossier (champ VALDEF) |
Cet indicateur, modifiable uniquement si la variable a été définie au niveau Utilisateur, permet de savoir si un héritage est autorisé depuis un niveau supérieur, ou si on impose que la valeur ne puisse être saisie qu'au niveau utilisateur (dans ce cas, son non-renseignement dans la fiche utilisateur sera interprétée comme une absence de valeur). |
Code d'accès (champ ACS) |
Ce code d'accès permet d'interdire l'accès à la fiche courante pour certains utilisateurs. Si le champ est alimenté, seuls les utilisateurs qui ont des droits de lecture sur ce code d'accès peuvent visualiser l'enregistrement ; et seuls les utilisateurs avec des droits d'écriture peuvent le modifier. |
Condition
Condition de modification (champ CNDMOD) |
Permet de saisir une formule qui est évaluée au moment de la saisie des valeurs des paramètres. On trouvera en annexe la définition des variables disponibles, ainsi que des exemples de paramétrage. |
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
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.
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