Développement > Dictionnaire données > Ouverture au paramétrage > Définition 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

SEEREFERTTO Reportez-vous à la documentation de Mise en oeuvre

Gestion de l'écran

Ecran de saisie

Présentation

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.

Fermer

 

Champs

Les champs suivants sont présents dans cet onglet :

Bloc numéro 1

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 :

  • Un chapitre (table diverse no 901)
  •  Un code (10 alphanumériques)
  • Intitulé (champ NAME)

Destiné à figurer sur les états et les écrans dans lesquels le code de la fiche peut être saisi ou sélectionné. Ce texte permet de donner une description de la fiche concernée.

Bloc numéro 2

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 :

  • Dossier : une seule valeur globale est alors définie pour tout le dossier.
  • Législation :une valeur est définie par législation. Ceci suppose que, dans le contexte d'utilisation du paramètre, une législation courante puisse être définie (elle l'est en pratique par le biais de la société courante dans le contexte d'utilisation).
  • Société : une valeur est définie par société. Ceci suppose que, dans le contexte d'utilisation du paramètre, une société courante puisse être définie.
  • Site : une valeur une valeur est définie par site. Ceci suppose que, dans le contexte d'utilisation du paramètre, un site puisse être défini.
  • Utilisateur : une valeur pour chaque utilisateur (et définie au moment de la connexion, sachant que si elle n'existe pas, on recherche la valeur associée au site par défaut de l'utilisateur pour le module auquel le paramètre est rattaché).
  • 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.

Un code activité permet :

  • de rendre optionnel un élément du dictionnaire si la valeur associée au code activité est nulle.
  • de signer les éléments spécifiques dès lors qu'ils sont marqués par un code commençant par X, Y ou Z.
  • de dimensionner un nombre de lignes maximum lorsque le code activité marque des éléments d'un tableau.

Ainsi, si le code activité est non actif, l'élément marqué ne sera pas utilisable, et le code associé (s'il y en a) ne sera pas généré ni activable.

  • 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.

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)
Value Char PARAM     # Nom du paramètre en cours de saisie
Value Char VALEUR    # Valeur saisie à contrôler
Variable Integer OK    # 1 si contrôle satisfait, 0 si saisie incorrecte
                                 # Si OK=0, renseigner la variable GMESSAGE avec le message d’erreur

End

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.

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 :

  • WWAGLOBVAR pour paramètre dossier, société, site ou législation
  • WWAGLOBUSR pour paramètre utilisateur

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é :

  • d'affecter une variable au paramètre, en affectant le code paramètre, dans la fiche variable globale.
  • d'effacer la variable associée au paramètre, en supprimant le code paramètre, dans la fiche variable globale.

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. 

  • d'affecter une variable au paramètre, en affectant le code paramètre, dans la fiche 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)

La case à cocher Hors valeur permet, si elle est cochée, d’autoriser la saisie de valeurs hors de la liste saisie au-dessus (qui devient alors simplement un ensemble "conseillé de valeurs") ou, au contraire, d’imposer une sélection stricte.

  • 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 choixpersonnels), 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).

Ce code d'accès permet de restreindre l'accès à la fiche courante à certains utilisateurs.
Si la zone est renseignée, seuls les utilisateurs disposant de ce code d'accès dans leur profil peuvent visualiser et modifier cette fiche.

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.
Si le résultat de la formule est nul, le paramètre ne peut pas être modifié.

On trouvera en annexe la définition des variables disponibles, ainsi que des exemples de paramétrage.

Fermer

 

Boutons spécifiques

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

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é.

Barre de menu

Documentation / Paragraphes

Cette fonction permet d'accéder à la gestion de la documentation, sur le premier paragraphe de la documentation (si elle existe) associé à la fiche courante.

Documentation / Liens

Cette fonction permet d'accéder à la gestion des liens. Elle permet de définir des liens entre la fiche courante et d'autres fiches (par exemple des liens entre fonctions et paramètres). Ces liens, purement documentaires, permettent d'alimenter la mécanique de génération des squelettes de documentation.

Documentation / Génération

Ce menu permet de lancer une génération de documentation. La génération peut se lancer également à partir du bouton [Génération] dans le bas de la fenêtre.

Trois types de génération peuvent être lancées, séparément ou simultanément :

  • la génération du squelette de documentation à partir du dictionnaire (tables ADOCUMENT, ADOCBLB, ADOCCLB).
  • la génération de la documentation à partir des tables précédentes.
  • la génération de la documentation sur champ.

Les bornes proposées par défaut tiennent compte de la fiche en cours, mais elles peuvent être modifiées au lancement.

Messages d'erreur

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