Cette fonction permet de créer et de modifier les tables de la base de données, en décrivant ses caractéristiques dans le dictionnaire de données du dossier. La validation de cette description permet alors de créer la table dans la base de données retenue ou d'en modifier les caractéristiques.

La gestion des tables permet de définir la liste potentielle des tables de la base. En effet, les codes activités permettent d'inhiber certains certaines tables et / ou certains index.

Par ailleurs, outre la structure de la table elle-même, on définit dans ce dictionnaire :

  • des liens vers d'autres tables (liens d'intégrité référentielle). Ces liens sont utilisés par les utilitaires d'annulation, par l'import-export, et par d'autres outils de ce type.
  • des informations proposées par défaut dans les écrans créés à partir de ces tables (mots-clés d'aide, informations de format…)

Une table est identifiée par son nom (alphanumérique majuscule commençant par une lettre), et possède une abréviation. La création de nouvelles tables, lors de la phase de personnalisation, suppose que ce nom commence par l'une des lettres X, Y ou Z. Le nom et l'abréviation doivent être uniques dans toute la base (il ne peut exister deux tables de même long, ce qui est logique, ni de même abréviation : cette dernière limitation n'est pas valable pour les écrans).

Une table peut être gérée ensuite à l'aide d'un objet, à condition de créer les écrans nécessaires.

Attention !
Il n'est pas possible d'ajouter des champs ou des perticularités spécifiques ou verticales sur les tables de type "système" ou "dictionnaire". Le spécifique n'est pas pérenne en cas de validation de dossier ou de migration.

Pré-requis

SEEREFERTTO Reportez-vous à la documentation de Mise en oeuvre

Gestion de l'écran

La définition d'une table se fait à l'aide de 3 onglets : un onglet général, l'onglet de définition des champs, et l'onglet de définition des index.

En-tête

Champs

Les champs suivants sont présents dans cet onglet :

Le code de la table doit être composé de 1 à 10 caractères (lettres ou chiffres mais commençant obligatoirement par une lettre). C'est un identificateur unique pour l'ensemble des tables du dictionnaire des données. Les mots réservés d'adonix sont interdits.

  • Abréviation (champ ABRFIC)

L'abréviation de la table doit être composée de 1 à 3 caractères (lettres ou chiffres mais commençant obligatoirement par une lettre). C'est un identificateur unique pour l'ensemble des abréviations des tables du dictionnaire de données. Les mots réservés d'Adonix sont interdits.

  • Intitulé (champ ZINTITFIC)

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.

Fermer

 

Onglet Général

Présentation

On y trouve les informations générales relatives à la table et à sa gestion.

Fermer

 

Champs

Les champs suivants sont présents dans cet onglet :

Caractéristiques

Le Code Activité et le Module permettent de savoir si la table décrite dans le dictionnaire doit effectivement être créée dans la base de données du dossier. Elle l'est si les deux conditions ci-dessous sont réalisées simultanément :

 le champ code activité est vide, ou bien le code activité (définie dans la table correspondante) est effectivement activé.

 le module auquel la table est rattachée a été déclaré actif pour le dossier.

Une table affectée d'un code activité commençant par X, Y, ou Z, est réputée être spécifique et ne sera en aucun cas affectée par un changement de version (ces codes activités peuvent être mis au niveau des lignes).

Par ailleurs, il existe une dépendance entre les modules :

  • Superviseur et Tronc commun : doivent être installés au minimum. Ensuite peuvent être installés les modules Stock, Développement, Comptabilité générale.
  • Stock : on peut alors installer les modules Ventes, Achats, GPAO.
  • Ventes :on peut alors installer les modules Support client CRM, Action Commerciale.
  • Comptabilité générale: on peut alors installer les modules immobilisations, tiers.
  • Module (champ MODULE)

 

Gestion table

  • Type de base (champ TYPDBA)

Type de base pour laquelle doit être générée la table. Le type de base "Dossier" permet d'indiquer au programme de gestion de dossiers de générer la table dans le type de base retenu dans la fiche dossier pour l'ensemble des fichiers du dossier. Dans certains cas exceptionnels (en particulier s'il s'agit d'une table externe), on peut être amené à mettre un autre paramètre.

  • Compatible version antérieure (champ FLG130)

Cette case à cocher est à positionner si l'on veut accéder à une table d'un dossier 140 depuis un dossier 130. Dans ce cas, la structure de cette table doit respecter les limites de la version 130 ( pas de clob ni de blob …). Remarque : l'inverse est possible sans rien préciser dans le dictionnaire ( accéder à une table 130 depuis un dossier 140 ).

Si cette case est cochée en V7, les champs de type "datetime",  "uuident" et "updtick" ne sont pas générés pour que la table puisse être utilisée depuis une application V6 ou de version antérieure.

  • Nombre de fiches (champ NBENREG)

Le champ nombre de fiches permet de définir un dimensionnement de la table dans la base. Ce champ est utilisé pour dimensionner la table à créer ou à modifier. Cette valeur est renseignée à la création du dossier pour chaque table créée, à partir du résultat de l'évaluation de la formule de dimensionnement. Cette formule utilise elle-même  des variables dont les valeurs sont saisies dans les paramètres dossier.

Lors de la revalidation d'un dossier, le nombre de fiches est réévalué, mais le résultat du calcul n'est réécrit dans cette rubrique que s'il est supérieur à la valeur trouvée dans la table ; Ainsi, on peut, en modifiant cette valeur, augmenter la taille de la table, et cette valeur sera reprise en cas de revalidation de dossier. Si par contre on la diminue, elle sera prise en compte immédiatement si on valide manuellement la table à l'aide du bouton correspondant, mais dès qu'une revalidation de dossier sera faite, la valeur calculée, qui est plus grande, sera reprise en lieu et place de la valeur saisie. Ce comportement a été défini pour des raisons de sécurité : pour des raisons de performance et de facilité d'exploitation, il vaut mieux en effet sur-dimensionner une table plutôt que de la sous-dimensionner. Il n'est pas nécessaire de protéger la modification de ce champ par un code activité.

  • Génération textes traduisibles (champ GENTRA)

Cette case à cocher permet de définir la méthode utilisée, dans Crystal Report, pour les textes traduits de cette table.

  • cochée : méthode issue de la version 140. génération des textes dans les fichiers séquentiels textrafra, textraeng, etc utilisés dans l'état Crystal par la fonction X3TranslatedText.
  • non cochée : méthode créée en V5. aucune génération de fichier. L'état Crystal portant sur cette table utilise une vue.

C'est un champ de paramétrage ne nécessitant pas de code activité pour être protégé. Doit être en cohérence avec la technique utilisée dans l'état crystal se rapportant à la table. Pour les nouveaux textes traduits, il est conseillé de cocher cette case, pour utiliser a méthode des vues, et ainsi ne pas surcharger les fichiers séquentiels.   

  • Remise à zéro (champ ZERO)

Cette case à cocher est utilisée par l'utilitaire de remise à zéro des mouvements, qui permet de remettre à zéro les mouvements d'un dossier (ce qui permet de garder les données " fixes " - articles, tiers, comptes, nomenclatures… - issues d'une saisie en effaçant les mouvements - pièces, factures, mouvements de stocks, OF… - liés par exemple à un test de démarrage en réel). Lorsque cette case est cochée, l'utilitaire de remise à zéro efface toutes les lignes de la table. On retrouve un tel indicateur sur chaque champ (lorsque le champ doit être remis à zéro sans que la table ne soit vidée).

  • Accès non sécurisé (champ SECURE)

Cette case à cocher permet de restreindre l'accès à la table de données au seul dossier propriétaire de la table et à certains dossiers autorisés. Cette notion est identique pour la vue. Une modification de ce champ nécessite une revalidation de la table, pour être pris en compte dans la base de donnée.

  • non sécurisé : tous les dossiers de la solution peuvent accéder à la table pour lire ou écrire des données de cette table. C'est le cas :
    • des tables système,
    • des tables dictionnaire,
    • de certaines tables superviseur,
  • sécurisé : l'accès à cette table se fait en fonction des droits du dossier d'appel. Un dossier peut être :
    • non habilité,
    • habilité en lecture,
    • habilité en lecture écriture. C'est le cas des tables fonctionnelles et de la plupart des tables superviseur.

Les dossiers habilités sont :

  • le dossier dans lequel la table est définie (les tables système étant dans le dossier de référence de la solution : dans le cas de Sage X3, ce dossier s'appelle X3),
  • les dossiers parents du dossier,
  • un dossier habilité (via la fonction Gestion des dossiers, onglet "Liens", bloc "Dossiers de la solution").
  • les dossiers d'autres solutions ayant un accès par liens (via la même fonction).

SEEINFOLa politique de sécurité pour la table étant considérée comme du paramétrage, cette case à cocher n'est pas mise à jour par patch. A la validation de la table, le fait que cette case soit cochée provoque la création d'un fichier de configuration (d'extension ".cfg") avec le code suivant :

$SECURITY
{  "LEVEL0" }
End

Si d'autres directives manuelles existent dans le fichier de configuration, elles sont respectées. Des directives peuvent en effet être ajoutées par mise à jour du bloc "Fichier de configuration"dans l'onglet correspondant de la Gestion des tables).

Gestion dossier

  • Type de table (champ TYPFIC)

Ce champ permet de classer les tables suivant une typologie utilisée pour la gestion des dossiers. Il peut prendre les valeurs suivantes :

 Applicatif : ce qui correspond au cas par défaut (tables standard d'un dossier). Ces tables peuvent être ou pas présentes selon la gestion des codes activités et des modules.

 Superviseur  : la table fait alors partie des données du superviseur gérées dans chaque dossier hors dictionnaire (utilisateurs, trace des opérations, pièces jointes…). Elle est toujours présente.

 Système X3 : la table fait partie des données générales non rattachées à un dossier donné (tables liées à la gestion des dossiers, au serveur batch…). Ces tables ne sont présentes que dans le dossier superviseur, ce dossier pouvant prendre des noms divers selon le produit installé : X3, PAYE, GX par exemple. Elles sont donc communes à tous les dossiers. Elles ne sont donc pas concernées par les types et options de copie, puisqu'elles ne sont jamais copiées. L'ajout de champ spécifique est interdit sur ce type de table.

 Dictionnaire : la table, qui est toujours présente, fait partie du dictionnaire de chaque dossier (états, actions, écrans, types de données…). La gestion de dossier tient compte de façon particulière des tables du dictionnaire lors de la gestion des mises à jour (procédure de fusionde dictionnaire).  Là encore, les champs Type de copie et Option de copie ne concernent pas ce type de table. L'ajout de champ spécifique est interdit sur ce type de table.

 Interne : aucune table de ce type n'est livrée, et ce type, qui n'est utilisé que dans le processus de développement du progiciel, ne doit pas être utilisé.

  • Type de copie (champ CRE)

Il détermine si la création de la table implique un transfert de données entre le dossier de référence et le dossier à créer lors de la création du dossier. Ce paramètre peut prendre les valeurs suivantes :

 Pas de copiela table est créée vierge de toute donnée.

 Copie automatique  : les données de la table sont reprises à partir des données existant dans le dossier de copie (le dossier de référence par défaut).

 Copie conditionnelle : les données de la table sont copiées par groupes logiques. Un groupe est matérialisé par un choix du menu local numéro 26, saisi dans le champ Option de copie. On rattache à chaque groupe une liste de tables. Parmi les groupes, on trouve Utilisateurs et profils, Tables diverses, Compteurs, Paramètres, Plan comptable général… A la création de la table, on répond Oui ou Non en regard de chaque choix pour savoir les tables qui doivent effectivement être copiées.

  • Option de copie (champ OPT)

L'option de copie se rattache autype de copie dans le cas d'une copieconditionnelle.
On distingue alors plusieurs sous-ensembles de tables dont lesdonnées, formant une entité cohérente, peuvent être copiées àpartir du dossier de référence lors de l'initialisation du dossiergénéré si l'utilisateur le désire.

  • Copie législation (champ FLGLEG)

Cette case à cocher permet de définir la méthode de copie dans la validation de dictionnaire:

  • cochée : Cela signifie qu'on appliquera un filtre sur le champ législation de cette table ou de la table "maître".
  • non cochée : Aucun filtre supplémentaire ne sera appliqué.

Lors de la validation de dossier , on ne récupèrera que les données correspondantes aux législations gérées ou vides, par le dossier validé.

Cette option sera aussi utilisé dans la fonction de copie législation.

  • Type livraison (champ TYPDLV)

Usage interne pour l'industrialisation d'une version. Ce paramètre peut prendre les valeurs suivantes :

  • Non livré : ces tables ne sont pas générées dans le dossier X3.
  • Pas de données : livraison de la table sans données.
  • Données d'indus : livraison de la table avec les données du dossier d'indus (paramètrage: styles , modèles d'import , etc.).
  • Données communes : livraison de la table depuis le dossier de référence X3REFFRA.
  • Données par pays : livraison de la table depuis le dossier X3REFxxx ( xxx : langue choisie à l'installation chez le client ).

Colonnes particulières

  • Intitulé (champ INTIT)

Ces zones permettent de renseigner le nom de deux champs de la table. Elles permettent d'identifier les champs intitulé présents dans la table. Cette information est exploitée pour l'affichage automatique de l'intitulé d'un enregistrement dont on connaît la clé (gestion des écrans, annulations, changements de code, ...)

  • Intitulé court (champ INTITC)

 

  • Symbole (champ SYMBOL)

 

  • Format (champ COLFMT)

 

  • Longueur (champ COLLNG)

 

  • Décimales (champ COLDEC)

 

Fermer

 

Onglet Champs

Présentation

Cet onglet permet de définir l'ensemble des champs de la table dans un tableau déroulant.

Dans chaque table, il est possible d'utiliser des champs dont le nom est normalisé, et qui sont automatiquement mis à jour s'ils existent par la gestion d'objet. Ces champs sont les suivants :

 CREDAT et UPDDAT sont respectivement les dates de création et de dernière mise à jour.

 CRETIM et UPDTIM sont respectivement les heures de création et de mise à jour.

 CREUSR et UPDUSR sont les codes des utilisateurs ayant réalisé respectivement la création de l'enregistrement et sa dernière mise à jour.

 EXPNUM est un numéro séquentiel permettant de dater les enregistrements vis à vis du module d'import/export (ce qui permet de n'exporter que ce qui a été mis à jour depuis le dernier export).

Un sixième champ peut en outre être mis dans chaque table. Ce champ s'appelle ENAFLG, et il correspond à un indicateur actif/inactif. Si la table en question est gérée par un objet, et qu'un type de données est associé à ce champ, les contrôles suivants seront faits sur les champs de ce type :

 la fenêtre de sélection standard de l'objet appelée par la touche de sélection filtrera automatiquement les enregistrements inactifs.

 un message d'erreur empêchera la saisie directe par son code d'une clé inactive

Ceci n'est bien entendu pas valable dans la gestion de l'objet lui-même (sinon, on ne pourrait pas réactiver des enregistrements rendus temporairement inactifs).

Fermer

 

Champs

Les champs suivants sont présents dans cet onglet :

Tableau

  • No (champ NUMLI)

 

  • Colonne (champ CODZONE)

On définit dans cette colonne le nom de zone de la table telle qu'elle sera définie dans le progiciel (un champ de nom NOMCHAMP défini dans une table d'abréviation ABV pourra être accédé par la syntaxe [F:ABV]NOMCHAMP ).

Pour les champs créés en spécifique, le nom de zone doit commencer par X_, Y_ ou Z_.

Dans la base de données, chaque zone correspond à un ou plusieurs champs (selon que la zone est ou non dimensionnée : les champs correspondants s'appellent NOMCHAMP_0, NOMCHAMP_1, NOMCHAMP_2…)

Pour saisir et afficher le champ correspondant dans un écran, on lui donnera le même nom dans le dictionnaire des écrans, et on utilisera simultanément l'écran et la table en gestion d'objet.

On définit ici le type de la zone, qui caractérise son format de saisie (numérique, caractères quelconques, date...) et des contrôles de cohérence (référence à une table par exemple).

Les principaux types génériques existants sont :

A : Alphanumérique
C : Entier court
L : Entier long
DCB : Décimal
D : Date
M : Menu local
MM : Menu local avec filtre
ACB : clob
ABB : blob

Mais beaucoup d'autres types prédéfinis existent. Ils font souvent référence à une table annexe (devise, pays,...). Un dictionnaire dédié permet de les décrire, et ils peuvent être sélectionnés via la touche qui permet d'en obtenir la liste.

  • Menu (champ NOLIB)

Définit le numéro de menu local associée au champ défini sur la ligne.

Lorsqu'un champ est de type menu local, il est stocké sous la forme d'une valeur numérique (de 1 à 255) correspondant au rang d'un intitulé dans une table appelée menu local, stockée dans la table des messages APLSTD.

En saisie ou en affichage, on voit, selon les choix faits sur l'interface utilisateur :

  • soit un intitulé pouvant être choisi dans une liste déroulante communément appelée combo box
  • soit une liste de boutons de choix.

L'intérêt de ce type de saisie est que la liste des choix est présentée dans la langue de connexion de l'utilisateur.

Chaque numéro de menu local caractérise la liste des intitulés possibles. Par exemple, le menu local 1 correspond au choix Non / Oui dans cet ordre. Dans ce cas particulier, l'interface utilisateur peut aussi être la case à cocher.

  • Long (champ LONG)

Permet de définir la longueur d'un champ lorsque ce champ utilise un type de données générique dont la longueur n'est pas fixée. C'est le cas notamment pour les types A et DCB.

Pour les blob, comme pour les clob, il faut saisir la longueur qui sera une longueur maximale de stockage. La codification est la suivante :

Longueur

Taille mémoire

Caractères maximum

 0

 1020

 510

 1

 2044

 1022

 2

 4092

 2046

 3

 8188

 4094

 n

 1024*(2^n) - 4

 512*(2^n) - 2

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.

  • Dim (champ DIME)

Dimension de la zone dans la table. La dimension peut également être affectée en fonction du code activité.

  • Intitulé normal (champ INTITCOURT)

Intitulé du champ sur trois longueurs : l'intitulé abrégé étant limité à 12 caractères, l'intitulé normal à 20 caractères, et l'intitulé long à 35 caractères.

Ces intitulés étant des textes traduisibles, ils sont stockés dans une table dédiée, la table ATEXTE. Quand un nouveau texte est saisi, après création d'une rubrique, une fenêtre apparaît dont le titre est Texte. On a alors le choix entre les 3 options suivantes :

         considérer que le texte saisi est un nouveau texte et l'intégrer dans la base des textes en lui attribuant un nouveau numéro. Ce numéro est obligatoirement supérieur à 50.000 (c'est un texte spécifique).

         rechercher un texte proche de celui saisi afin de reprendre le même. Une fenêtre de sélection s'ouvre alors pour cela.

         abandonner la saisie du texte.

Lorsqu'on passe en modification d'un texte déjà saisi au préalable, on a en outre un choix supplémentaire qui s'affiche dans la fenêtre, dont le titre est à présent Texte nnn (nnn étant son numéro). En effet, on peut alors modifier le texte dont le numéro est donné, pour le rendre conforme au texte qui vient d'être saisi (cette modification sera faite partout où le texte correspondant est utilisé, dès lors que les écrans correspondants auront été revalidés).

Par ailleurs, il est possible d'appeler, par le clic droit de souris, la fonction Abréviation qui permet de sélectionner une des abréviations normalisées définies lorsqu'un intitulé est trop long (l'usage des abréviations doit être évité tant que possible pour des raisons de lisibilité des écrans).

  • Intitulé abrégé (champ INTITABREG)

Intitulé du champ sur trois longueurs : l'intitulé abrégé étant limité à 12 caractères, l'intitulé normal à 20 caractères, et l'intitulé long à 35 caractères.

Ces intitulés étant des textes traduisibles, ils sont stockés dans une table dédiée, la table ATEXTE. Quand un nouveau texte est saisi, après création d'une rubrique, une fenêtre apparaît dont le titre est Texte. On a alors le choix entre les 3 options suivantes :

         considérer que le texte saisi est un nouveau texte et l'intégrer dans la base des textes en lui attribuant un nouveau numéro. Ce numéro est obligatoirement supérieur à 50.000 (c'est un texte spécifique).

         rechercher un texte proche de celui saisi afin de reprendre le même. Une fenêtre de sélection s'ouvre alors pour cela.

         abandonner la saisie du texte.

Lorsqu'on passe en modification d'un texte déjà saisi au préalable, on a en outre un choix supplémentaire qui s'affiche dans la fenêtre, dont le titre est à présent Texte nnn (nnn étant son numéro). En effet, on peut alors modifier le texte dont le numéro est donné, pour le rendre conforme au texte qui vient d'être saisi (cette modification sera faite partout où le texte correspondant est utilisé, dès lors que les écrans correspondants auront été revalidés).

Par ailleurs, il est possible d'appeler, par le clic droit de souris, la fonction Abréviation qui permet de sélectionner une des abréviations normalisées définies lorsqu'un intitulé est trop long (l'usage des abréviations doit être évité tant que possible pour des raisons de lisibilité des écrans).

  • Intitulé long (champ INTITLONG)

Intitulé du champ sur trois longueurs : l'intitulé abrégé étant limité à 12 caractères, l'intitulé normal à 20 caractères, et l'intitulé long à 35 caractères.

Ces intitulés étant des textes traduisibles, ils sont stockés dans une table dédiée, la table ATEXTE. Quand un nouveau texte est saisi, après création d'une rubrique, une fenêtre apparaît dont le titre est Texte. On a alors le choix entre les 3 options suivantes :

         considérer que le texte saisi est un nouveau texte et l'intégrer dans la base des textes en lui attribuant un nouveau numéro. Ce numéro est obligatoirement supérieur à 50.000 (c'est un texte spécifique).

         rechercher un texte proche de celui saisi afin de reprendre le même. Une fenêtre de sélection s'ouvre alors pour cela.

         abandonner la saisie du texte.

Lorsqu'on passe en modification d'un texte déjà saisi au préalable, on a en outre un choix supplémentaire qui s'affiche dans la fenêtre, dont le titre est à présent Texte nnn (nnn étant son numéro). En effet, on peut alors modifier le texte dont le numéro est donné, pour le rendre conforme au texte qui vient d'être saisi (cette modification sera faite partout où le texte correspondant est utilisé, dès lors que les écrans correspondants auront été revalidés).

Par ailleurs, il est possible d'appeler, par le clic droit de souris, la fonction Abréviation qui permet de sélectionner une des abréviations normalisées définies lorsqu'un intitulé est trop long (l'usage des abréviations doit être évité tant que possible pour des raisons de lisibilité des écrans).

  • Options (champ OPTION)

Ces options sont matérialisées par des caractères qui peuvent se concaténer lorsque plusieurs options sont nécessaires. Il est possible de choisir ces options grâce à une fenêtre de sélection. On trouvera une description détaillée de toutes les options possibles.

Code d'une table liée à celle que vous modifiez par l'intermédiaire du champ courant. Pour les types de données faisant référence à un objet cette zone est renseignée automatiquement.

 

  • Expression de lien (champ EXPLIEN)

Cette zone n'est saisie que si une table liée a été précisée. Si cette zone n'est pas renseignée, le lien est fait directement à partir du champ de la ligne courante (ce qui suppose que la clé primaire de la table liée n'a qu'une seule composante). Dans le cas où la clé primaire possède plusieurs composantes l'expression de lien doit être indiquée sous la forme: comp1;comp2;comp;... où comp1,comp2, comp3,... sont les différentes composantes de la clé.
Voici quelques exemples possibles d'expressions :

 si un champ MONCHAMP est contrôlé dans une des tables diverses (par exemple la table numéro 43), on mettra dans la colonne Table liée la valeur ATABDIV, et dans la colonne Expression de lien la valeur 43 ;MONCHAMP

 si un champ MONCHAMP est indicé, l'expression peut utiliser la variable indice qui est censée varier de 0 à dim(MONCHAMP)-1. Exemples classiques : des familles statistiques multiples (articles, fournisseurs, clients…) dont la structure de clé est le numéro de la famille suivi du code statistique. L'expression de clé s'écrit alors sous la forme indice+1 ;MONCHAMP(indice).

  • Si la composante de clé est une variable globale, il faudra préciser la classe [V] devant le nom de cette variable.
  • pour ignorer un élément de clé dans le contrôle d'intégrité de la base, utiliser pour cet élément la variable [V]GSUPCLE.
  • Copie législation (champ CHPLEG)

Ce champ est lié à la case à cocher Copie législation.

En effet, il permet d'indiquer le champ contenant la législation, ou bien le champ permettant le lien avec la table maître contenant la législation.

  • Annulation (champ ANNUL)

Lors de l'annulation d'une ligne dans la table liée (table d'origine), une action particulière peut être effectué sur la table que vous êtes en train de modifier ou de créer (table de destination). Cette action est définir par le code ci-dessous:

  • Bloquant : Annulation de l'enregistrement de la table d'origine impossible si un lien existe avec la table en cours de définition.
  • Suppression : Effacement des enregistrements de la table en cours vérifiant le lien avec la table d'origine.
  • RAZ : Remise à zéro du champ de la table en cours vérifiant le lien avec la table origine.
  • Autre : Aucun traitement particulier n'est effectué.
  • Vérification (champ VERIF)

Cette zone permet d'indiquer si l'utilitaire de vérification de cohérence doit vérifier le lien.

  • Obligatoire (champ OBLIG)

Le champ Obligatoire permet de définir si le champ peut être vide, ou s'il doit impérativement contenir valeur non vide. Par champ vide, on entend la chaîne de longueur vide, une valeur numérique nulle, une valeur de menu local égale à zéro (pas de choix effectué) ou la date vide [0/0/0].

Lorsque le champ est une clé d'une table, si le contrôle d'annulation est positionné à la valeur RAZ, le lien ne peut pas être obligatoire (puisque l'annulation peut effacer la valeur du champ clé) : le champ Obligatoire est alors automatiquement positionné à Non.

  • RAZ (champ ZERO)

Cette zone permet la remise à zéro de la zone par l'utilitaire de "Remise à zéro du dossier".

Fermer

 

Onglet Index

Présentation

Cet onglet permet de définir les différents index définis sur la table.

Fermer

 

Champs

Les champs suivants sont présents dans cet onglet :

Tableau Index

  • No (champ NUMLIG)

 

  • Code index (champ CODIND)

Ce champ correspond au nom sous lequel l'index est connu dans la base de données. Une norme est utilisée dans toutes les tables de l'applicatif : elle consiste à nommer les clés en utilisant l'abréviation de la table, suivi de 0 pour la clé principale, de 1 pour la deuxième clé, etc.…Pour le spécifique, faites commencer ce code par l'une des trois lettres : X,Y ou Z.

  • Descripteur index (champ DESCRIPT)

On saisit ici la liste des champs composant l'index, séparé par un '+' s'il y a plusieurs champs (par exemple, dans la table des sites FACILITY, on trouve une clé dont la définition est LEGCPY+FCY).

Un champ trié en descendant est précédé du signe "-" (attention, si utilisé en liste gauche).

Le premier champ composant un index est sans signe et est forcément ascendant.

  • Homonymes (champ HOMONYM)

Cette colonne permet de définir si la clé admet ou pas des homonymes.

  • Index cluster (champ ORDIND)

 

Si cette zone n'est pas renseignée, l'index sera toujours présent. Si cette zone correspond à code activité non actif, l'index ne sera pas généré.

Il est possible d'ajouter une clé spécifique par un code activité commençant par X, Y ou Z.

Fichier de configuration

  • champ FICCFG

On peut saisir dans ce bloc un texte décrivant la configuration technique de table dans la base de données. Ce texte est enregistré dans un fichier "nom de table.cfg" dans le répertoire FIL de l'application. Ce fichier est utilisé par l'instruction "valfil". On consultera l'annexe technique dédiée pour plus d'informations.

Fermer

 

Onglet Audit

Présentation

Cet onglet permet de créer le paramétrage permettant ensuite de tracer, par des triggers de base de données générés automatiquement, les insertions, suppressions, et modifications faites sur une table, en stockant si nécessaire des valeurs avant et après sur des champs particuliers. La modification d'enregistrement est tracée à la condition que l'une des conditions sur champs soit vérifiée.  Cette trace est stockée dans deux tables particulières (AUDITH et AUDITL). Elle peut simplement être consultée, ou donner lieu à des notifications automatisées par l'intermédiaire du Workflow.

Le principe de base est le suivant :

  • Dès lors qu'au moins un indicateur d'audit (création, modification, suppression) est coché, chaque opération de ce type crée une ligne dans la table AUDITH, ce indépendamment du fait que des champs soient tracés et que des modifications les concernant aient été faites.
  • A partir du moment où des champs sont listés dans le tableau des champs, toute modification qui modifie la valeur du champ et respecte la condition donnée provoquera la création d'une ligne dans AUDITL.

La technique des « triggers » permet de tracer les opérations même si elles sont effectuées par un programme autre qu’adonix. Les informations de cet onglet sont prises en compte par la re-validation de la table : les triggers sont automatiquement créés et / ou modifiés à ce moment-là.

Le traitement SUBTRIGGER contient la description des triggers en fonction de la base de données. Le traitement SPETRIGGER est réservé au spécifique afin de pouvoir éventuellement personnaliser leur description.

Les informations de cet onglet sont considérées comme du paramétrage. Le standard ne livre aucun paramétrage d'audit. Il n'est pas nécessaire de protéger par code activité X, Y ou Z toute modification faite dans cet onglet. 

L’audit est globalement conditionné par le code activité AUDIT.

Ne peuvent être auditées :

  • les tables d'audit elles-même
  • les champs de types clob et blob
  • les champs dont le type de données est AXX

Les résultats de l'audit peuvent être consultés par les fonctions suivantes :

Fermer

 

Champs

Les champs suivants sont présents dans cet onglet :

Type d'audit

  • Création (champ AUDCRE)

Ces trois cases à cocher permettent de définir les opérations à tracer sur les enregistrements de la table :

  • Création
  • Modification
  • Suppression

Remarque :
Attention aux objets "tableau" et "combiné" qui n'effectuent pas de mise à jour d'enregistrement mais opèrent par suppression et création d'enregistrement.

  • Modification (champ AUDUPD)

 

  • Suppression (champ AUDDEL)

 

Fonctions

  • Workflow (champ AUDWRK)

permet une notification automatisée par workflow.

Une tache batch de workflow déclenche un événement workflow pour chaque ligne de la table AUDITH dont le statut workflow est « a traiter », puis met à jour le statut par « traité ».

  • Audit BI (champ AUDBI)

Il permet la synchro incrémentale des tables de faits BI. Il n'est présent que si le code activité ABI est actif.

Mis à jour par la génération du dataware en fonction du type de mise à jour prévue pour les tables de faits. Dans les règles de synchro BI, si une table de fait est mise à jour en synchro incrémentale à partir d'une table X3, cette table est flaguée "AUDIT BI".

Clé de suivi

  • Clé (champ AUDCLE)

On précise l'une des clés de la table. Il est préférable qu'elle soit sans homonyme, pour des facilités d'identification d'enregistrement à la lecture de l'audit.

Si ce champ n'est pas renseigné, la clé primaire est prise en compte.

Tableau Champs audités

  • Champ (champ FLD)

Liste des champs à auditer. On ne renseigne pas ce tableau, si l'on souhaite tracer uniquement les opérations sur enregistrement, sans tracer le contenu des champs. 

On aura une trace pour un enregistrement modifié, si au moins une des conditions sur champs est vérifiée par les nouvelles valeurs de champ; alors qu'en création ou suppression d'enregistrement, on aura systématiquement une trace.

  • Intitulé (champ FLDDES)

 

  • Opérateur (champ FLDOPE)

 

  • Valeur (champ FLDVAL)

 

Fermer

 

Icône Actions

Tous les champs

Sur l'onglet Audit, permet d'alimenter le tableau par tous les champs de la tables.

 

Fermer

 

Limites à respecter

Des limites existent lorsqu'on crée une table. Les limites sont les suivantes :

concernant la clé :
  • limitée à 15 index maximum.
  • limitée à 16 champs maximum par index.
  • limitée à 250 caractères maximum par index.
concernant l'enregistrement :
  • Sous SQL, la limite est de 8060 octets
    Sous Oracle, il n'y a pas de limite; mais sous Adonix, on a fixé la limite à 32K
  • limité à 255 champs par tables
  • limité à 512 colonnes ( champ1*dimension1 + champ2*dimension2 + ... + champN*dimensionN )
  • limité soit à un champ de type blob ou clob quelle que soit sa taille, soit à plusieurs champs, mais dans ce cas, la taille totale de la table est limitée à 64 Ko. 
nombre de tables ouvertes :
  • limite à 255 tables.

Etats

Par défaut, les états suivants sont associés à la fonction :

 DICOX3 : Dictionnaire des tables

 ATABLIST : Liste des tables

Mais ceci peut être modifié par paramétrage.

Boutons spécifiques

Cette fonction permet de créer ou de mettre à jour la table dans la base de données à partir du dictionnaire. Si la table n’existait pas, elle est créée vierge de données. Si elle existait, la structure de la table est remise à jour conformément à la nouvelle description donnée dans le dictionnaire (les champs nouveaux sont ajoutés, les champs supprimés sont enlevés, les champs dont la structure ou la dimension change sont recopiés : les enregistrements sont bien entendu conservés dans la table). On a une possibilité de validation forcée : c’est revalidation complète des données et des index. Si cette option n’est pas spécifiée et si la structure de la table n’a pas changé, seul les indexes seront recréés.

On peut au passage en profiter pour donner des valeurs par défaut à des champs de la table pour les enregistrements déjà existants : ceci se fait grâce au bouton  dont le fonctionnement est expliqué ci dessous.

Permet de créer un traitement temporaire, de nom WWINIXXX, où XXX est l'abréviation de la table, qui sera exécuté juste après la validation de la table (si elle existe déjà), afin de permettre de donner des valeurs par défaut à des champs des enregistrements existants. Un traitement par défaut est proposé lorsqu'on utilise ce bouton, et il est alors possible d'y ajouter des instructions.

Ce traitement est composé de 3 étiquettes qui sont :

 $OUVRE qui est exécuté au départ avant le début de la transaction de mise à jour, et qui doit au minimum permettre d'ouvrir la table pour laquelle on fait la validation (et éventuellement d'autres).

 $DEFAULT qui est exécuté après le début de la transaction, mais avant la lecture de l'enregistrement (on y place au minimum une instruction Default File pour que la table par défaut soit la table à mettre à jour)

 $INIZON, qui est exécuté pour chaque enregistrement, juste avant la réécriture. C'est donc dans ce sous-programme que l'on peut écrire des instructions d'affectation des champs de la table.

Ainsi, par exemple, si on ajoute une zone numérique MAZONE dans la table, zone dont on voudrait qu'elle ait la même valeur qu'un champ AUTZONE existant déjà dans la table, augmenté de 1, on insèrerait tout simplement dans le traitement la ligne :

           MAZONE = AUTZONE + 1

Attention !
Le fonctionnement de ce traitement est différent de ce qui était fait dans les versions d'adonix précédentes (par exemples celles utilisées par les versions 2 et 3 d'ADONIX ENTREPRISE). En effet, le traitement est exécuté lorsque la phase de modification de structure est finie. Ainsi, si on veut renommer un champ XXX en l'appelant YYY, il ne faut réaliser cette opération en 2 étapes, en gardant tout d'abord les deux champs dans la base et en réalisant l'affectation YYY=XXX dans le traitement d'initialisation. Il est ensuite possible de supprimer le champ XXX. Si on essayait de réaliser ceci en une seule étape, le traitement ne fonctionnerait pas et provoquerait une erreur (le champ XXX étant devenu inexistant). On aurait ainsi perdu sa valeur.

________________________________________________________________________________________________________

Les champs suivants sont présents dans la fenêtre ouverte par ce bouton :

Bloc numéro 1

  • champ OBJET

 

  • champ CLES

 

Bloc numéro 2

  • Depuis le dossier (champ DOSORG)

Ce champ permet de définir le dossier à partir duquel la fiche va être copiée. Les syntaxes possibles sont décrites dans l'annexe dédiée.

  • Tous dossiers (champ TOUDOS)

Cette option permet de copier la fiche vers tous les dossiers définis dans le dictionnaire (table ADOSSIER de la solution courante).

  • Vers le dossier (champ DOSDES)

Ce champ permet de définir le dossier dans lequel la fiche va être copiée. Les syntaxes possibles sont décrites dans l'annexe dédiée.

Fermer

Ce bouton permet de recopier la structure de la table vers un autre dossier. Attention, seule la description de la table dans le dictionnaire est recopiée : la table n'est pas créée dans le dossier destinataire (il faudra valider cette description pour que la table soit créée. A fortiori, les données de la table ne sont pas non plus recopiée.

Attention, le champ NBENREG 'nombre de fiches' ainsi que tous les champs de l'onglet 'audit' ne sont pas copiés.

Cette fonction permet de supprimer les données d'une table. Pour des besoins de rapidité, la table est suprimée puis recrée à vide. Une confirmation est demandée, cette opération étant irréversible.

Il est à remarquer que ce bouton permet à la fois de supprimer la fiche du dictionnaire (c'est le comportement normal de ce type de bouton), mais également de supprimer physiquement la table de la base (c'est l'équivalent d'un Drop Table).

 Les deux questions sont posées successivement (car on peut très bien ne vouloir qu'annuler la table sans effacer les données du dictionnaire).

Barre de menu

Options / Informations

Cette fonction permet d'afficher, dans une boîte d'information :

  • le nombre de champs de la table
  • la place prise (en octets) par une ligne de la table (lorsque tous les champs alphanumériques sont remplis)
  • le nombre de lignes actuellement présentes dans la table.

Options / Source

Cela permet de visualiser le fichier *.srf correspondant à la table courante dans l'application courante.
Cette option est notamment intéressante lorsqu'on est sur un serveur sur lequel on n'a pas les droits sur le répertoire FIL.

Options / Maintenance

Cette option de menu permet de passer directement en maintenance sur la table.

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 :

La table ne comporte aucune zone

On a créé une table sans définir au moins une zone

La table ne comporte pas de clé primaire

Un index au minimum est nécessaire sur chaque table

Le champ intitulé n'est pas référencé

Le champ intitulé saisi dans le premier onglet n'existe pas dans la liste des champs du deuxième onglet.

Abréviation déjà existante

Il doit y avoir unicité des abréviations dans le dossier. Ce message est affiché si on tente de créer une table avec une abréviation utilisée par une autre table.

message d'avertissment, lorsqu'on tente de saisir une abréviation sur une table qui est déjà existante pour une vue. Il est effectivement recommandé d'avoir des abréviations uniques.

Caractère interdit

On a tenté d'utiliser le caractère '"' dans un intitulé (ce caractère est interdit)

Le champ intitulé n'est pas référencé

On a indiqué dans l'un des champs intitulé de l'onglet général un champ non défini dans l'onglet des champs.

Numéro de menu local incorrect

la longueur est incorrecte en fonction du type interne du champ.

  • menu local : longueur doit être <= 30
  • entier court : longueur doit être <= 4
  • entier long : longueur doit être <= 8
  • décimal : partie entière + partie décimale <= 32
  • alphanumérique : longueur doit être <= 250
  • blob, clob :  longueur doit être <= 20

Longueur incorrecte

La zone longueur a une valeur incorrecte (trop grande, ou nulle, par exemple)

Option incorrecte

On a tenté de saisir une option qui n'existe pas dans la colonne Option associée à une zone de la table.

Expression de lien incorrecte

L'expression de lien est syntaxiquement incorrecte

Index déjà saisi

On a essayé de définir deux fois le même index sur une table

Zone inexistante

On référence dans un index une zone qui n'existe pas dans la liste des champs

Zone dimensionnée

On a essayé d'utiliser une zone dimensionnée dans un index (ce qui est interdit).

Nombre de colonnes trop grand

On est limité à 512 colonnes en tenant compte de la dimension des champs.

Nombre de zones trop grand

On est limité à 255 colonnes. Ici, les dimensions ne comptent pas.

Longueur de ligne trop grande

Il s'agit de la taille de l'enregistrement.
Sous SQL, la limite est de 8060 octets
Sous Oracle, il n'y a pas de limite, mais sous Adonix la limite est de 32 K.

Clé trop longue

La taille d'un index ne peut pas excéder 256 caractères.

Trop de composantes de clé

On est limité à 16 champs par clé.

Pas de textes traduisibles dans cette table

On essaie de cocher la case "Génération texte traduisible" alors que la table principale gérée par l'objet ne contient pas de champ de type AXX, AX1, AX2 ou AX3.

Attention, cette modification nécessite une modification dans les états Crystal liés à cette table

Message d'avertissement. La modification de la case à cocher "Génération texte traduisible" détermine la méthode choisie pour l'édition des textes traduits dans les états Crystal report utilisant cette table. En modifiant cette case, on précise donc qu'on change de méthode, et il est impératif de modifier les états associés à cette table. Il est donc recommandé de ne pas modifier ce champ. 

Autres erreurs susceptibles d'arriver

Lors de la revalidation de la table (par l'outil valfil), d'autres erreurs sont susceptibles de survenir. Ces erreurs sont visualisées sous la forme d'un fichier de trace. Parmi les erreurs susceptibles d'arriver, on trouvera les erreurs suivantes :

  • Erreur d'écriture (plus de place disque)
  • Erreur oracle / Erreur SQL SERVER (l'intitulé de l'erreur suit en clair)

Tables mises en oeuvre

SEEREFERTTO Reportez-vous à la documentation de Mise en oeuvre