Une classe est la description d'une structure de données qui gère une entité (par exemple : un client, une écriture comptable générale, un produit, une commande de vente, etc.).

La fonction Classes permet la création et la modification du dictionnaire des classes. Une classe doit être validée pour pouvoir être utilisée dans le code ou dans une représentation. Si une classe n’est pas valide, il y aura une erreur à l’exécution.

Pré-requis

SEEREFERTTO Reportez-vous à la documentation de Mise en oeuvre

Gestion de l'écran

En-tête

Champs

Les champs suivants sont présents dans cet onglet :

Identifiant unique de la classe.

  • Intitulé (champ ZINTCLA)

Description de la classe.

 

Onglet Général

Cet onglet décrit les informations principales de la classe.

Cet onglet contient les tableaux suivants :

Tableau Collections

Le tableau Collections décrit toutes les collections gérées dans la classe. Le code de collection est attribué, dans l'onglet Propriétés, à :

    • Des propriétés simples qui décrivent un tableau de propriétés. Cela va donner lieu à la création d’une classe enfant contenant l’ensemble des propriétés. L’instance de cette classe aura pour nom le code collection.
    • Une instance d'une classe enfant qui décrit un tableau de classes enfants.

Tableau Scripts

Le tableau Scripts liste les scripts dans lesquels les étiquettes $METHODS et $PROPERTIES sont disponibles pour les développeurs partenaires qui souhaitent ajouter leur propre code associé à des événements de superviseur (en particulier pour la gestion des opérations Création, Lecture, Mise à jour, Suppression, ou opérations CRUD, soit Create, Read, Update and Delete).

 

Champs

Les champs suivants sont présents dans cet onglet :

Mode de gestion

  • Type (champ TYPCLA)

 Le type définit les conditions d'utilisation de la classe et son comportement.

Persistante

La classe est associée à une entité stockée dans la base de données. Les opérations CRUD, entre autres, sont disponibles sur cette classe et peuvent être gérées par la couche superviseur. Ce type de classe gère les accesseurs et les méthodes.

Interface

Cette classe permet de gérer manuellement des opérations CRUD. Elle n’est pas lié à une table en base. Ce type de classe gère les accesseurs et les méthodes.

Basique

Ce type de classe gère les accesseurs et les méthodes  mais on ne peut pas définir des mappings. Elle est souvent utilisée pour des classes enfants dans une classe persistante.

Technique

La classe est associée à une entité dont les méthodes peuvent être définies, mais sans accesseurs. Les propriétés de ces classes ne peuvent pas être affichées dans une représentation.

Système

La classe décrit une structure de données. Aucun accesseur n'est généré et aucune méthode ne peut être décrite. Les propriétés de ces classes ne peuvent pas être affichées dans une représentation.

  • Table - Vue (champ WTABREF)

Ce champ est alimenté uniquement pour une classe de type Persistante. Il définit la table principale dans laquelle les opérations CRUD fonctionnent. Les autres tables sont définies dans l'onglet Mapping.

  • Index (champ WINDREF)

 

  • Clés (champ KEYINT)

  • Pour une classe de type Persistante : ce champ est alimenté par défaut avec les segments de clé de l'index sélectionné. Lorsqu'il y a plusieurs segments, la syntaxe est la suivante : SEGMENT 1+SEGMENT 2+SEGMENT 3, exactement comme la définition de la clé dans le dictionnaire des tables.
  • Pour une classe de type Interface : saisissez les segments de la clé selon cette syntaxe s'il y a plusieurs segments. Les propriétés utilisées doivent exister dans la classe.

Pour les classes des autres types, ce champ n'est pas renseigné.

  • champ WB

 

  • Gestion transaction (champ FLGTR)

 

Bloc numéro 1

Code utilisé pour protéger les classes spécifiques pendant le processus de patch standard si le code commence par les lettres X, Y ou Z, ou pour rendre les classes optionnelles. Il se comporte comme tous les codes activités définis dans les dictionnaires.

Si ce code est vide ou si le code activité est actif, la structure est générée.

  • Module (champ MODULE)

Sélectionnez le module technique auquel la représentation est associée.

  • En cache (champ FLGBUFFER)

Si cette case est cochée, la classe décrit une classe cachée.

  • Recherchable (champ FLGSEARCH)

Si cette case est cochée, les données alimentent les index des moteurs de recherche pour les propriétés cochées 'Recherchable'. Vous ne pouvez cocher cette case que pour les classes de type Persistante.

Tableau Collections

  • Code (champ CODCOL)

Code de collection unique de la classe.

  • Libellé (champ INTITCOL)

Saisissez  le libellé de la collection.

  • Nb mini (champ MINCOL)

Ce champ définit comment l'ensemble des propriétés est stocké en mémoire. Ce nombre peut être 0, 1 ou Maximum.

Renseignez un code activité de dimensionnement. Il permet de définir la taille maximale de la collection sur la base de la valeur du code d'activité. Ce code n'est pas obligatoire.

  • Nb max (champ MAXCOL)

Saisissez la taille maximale de la collection. Vous pouvez renseigner ce champ uniquement s'il n'y a pas code activité sur la collection.

SEEINFO Ce champ n'est pas obligatoire. Si vous laissez ce champ vide, la taille de la collection augmente automatiquement sans limite lorsque de nouvelles lignes sont créées.

  • Compteur (champ PROCOL)

Ce champ fait référence à la propriété de la classe qui stocke le nombre de lignes créées dans la collection.

  • Insertion (champ FLGINSCOL)

Si ce champ est coché (Insertion=oui), des lignes peuvent être insérées dans la collection. Cette valeur est reportée par défaut sur la représentation basée sur la classe, mais vous avez la possibilité de changer cette valeur (Insertion = non) sur la représentation. La méthode correspondante est appelée ADDLINE.

  • Suppression (champ FLGSUPCOL)

Si ce champ est coché (Suppression=oui), des lignes peuvent être supprimées dans la collection. Cette valeur est reportée par défaut sur la représentation basée sur la classe, mais vous avez la possibilité de changer cette valeur (Suppression= non) sur la représentation. La méthode correspondante est appelée ADDELLINE.

  • Tri (champ FLGTRICOL)

Si ce champ est coché (Tri=oui), les lignes de la collection peuvent être triées. Cette valeur est reportée par défaut sur la représentation basée sur la classe, mais vous avez la possibilité de changer cette valeur (Tri= non) sur la représentation. La méthode correspondante est appelée ASORT.

  • Ajout (champ FLGAPDCOL)

Si ce champ est coché (Ajout=oui), des lignes peuvent être ajoutées dans la collection. Cette valeur est reportée par défaut sur la représentation basée sur la classe, mais vous avez la possibilité de changer cette valeur (Ajout= non) sur la représentation. La méthode correspondante est appelée AINSERT.

Tableau Scripts

  • Type (champ TYPTRT)

Sélectionnez un type de code.

Standard

Code fourni par le fournisseur du logiciel.

Vertical

Code fourni par le fournisseur du logiciel ou par un partenaire afin de couvrir des besoins pour le secteur d'activité donné.

Spécifique

Code fourni par un partenaire pour un client ou entré par l'équipe de développement d'un client pour couvrir leurs besoins spécifiques.

  • Scripts (champ CODTRT)

Nom du script. Les conventions de nommage indiquent d'utiliser cette dénomination : classe_Cyyyy, où :

  • classe est le code de la classe,
  • yyyy est STD pour la premier script livré en "standard". S'il y a d'autres scripts livrés en standard, ils doivent commencer par STD.
  • yyyy est VER pour les scripts livrés en "vertical".
  • yyyy est SPE pour les scripts livrés en "spécifique".
  • Ordre d'exécution (champ RANTRT)

Saisissez l'ordre dans lequel les étiquettes $METHODS et $PROPERTIES sont appelées dans l'évènement.

Code utilisé pour protéger le script pendant le processus de patch standard si le code commence par les lettres X, Y ou Z, ou pour activer et désactiver l'appel du script.

 

Icône Actions

Editeur de traitements

 

 

Onglet Méthodes

Présentation

Cet onglet définit les méthodes supplémentaires et les opérations disponibles sur la classe. La différence entre une opération et une méthode est la suivante :

Opération

Une opération peut être exécutée dans n'importe quel contexte et a besoin de valeurs de clés pour construire le contexte dans laquelle elle fonctionne. Une opération peut être appelée par un lien dans l'interface de n'importe quelle page lorsque les valeurs de clés sont fournies. 

Méthode

Une méthode ne fonctionne que si un contexte existe (l'instance de la classe est renseignée).

Cet onglet contient les tableaux suivants :

Tableau Méthodes

Le tableau Méthodes liste les méthodes et opérations et leurs informations correspondantes.

Tableau Clés

Le tableau Clés liste les paramètres de segments de clés, associés à l'opération du tableau précédent.

Tableau Paramètres

Le tableau Paramètres liste les paramètres associés à la méthode et à l'opération du tableau précédent et leurs informations correspondantes.

 

Champs

Les champs suivants sont présents dans cet onglet :

Tableau Méthodes

  • Code (champ CODMET)

Ce code identifie le nom de la méthode ou de l'opération qui peuvent être appelées sur l'entité. Pendant le temps d'exécution, la variable ACTION contient ce code lorsque l'évènement correspondant est exécuté dans l'étiquette $METHODS (dans les fichiers sources de la classe associée) pour CURPTH = » ».

  • Libellé (champ INTITMET)

Description de la classe.

  • Type retour (champ DONMET)

Sélectionnez le type de données de la valeur renvoyée par la méthode lorsqu'elle est appelée par Fmet. C'est le type de la variable ARET_VALUE disponible dans l'événement associé à la méthode.

Code utilisé pour protéger la méthode pendant le processus de patch standard si le code commence par les lettres X, Y ou Z, ou pour activer et désactiver la méthode dans la classe.

  • Opération (champ FLGOPE)

Si cette case est cochée, la ligne fait référence à une opération. Si elle n'est pas cochée, elle fait référence à une méthode.

  • Index (champ INDOPE)

Saisissez ce champ uniquement pour les opérations. Ce champ identifie l'index qui identifie la clé passée lors d'une opération de "Lecture" pour renseigner une instance. Il définit la liste des segments de clés demandés lorsqu'un lien déclanchant cette opération est mis en oeuvre dans une représentation.

Tableau Clés

  • Code (champ CODCLEOPE)

Nom du segment de clé.

  • Type (champ TYPCLEOPE)

C'est le type de données du segment de clé. Il fait référence à une liste de mots-clés utilisés pour la déclaration de la variable. Tous les types de données ne sont pas disponibles car ils doivent être reconnus dans la base de données des segments de clé.

  • Libellé (champ INTITCLEOP)

Description du segment de clé.

Tableau Paramètres

  • Code (champ CODPARMET)

Sélectionnez le nom de la variable contenant la valeur du paramètre, comme dans le code appelé par l'évènement $METHODS.

  • Type (champ TYPPARMET)

Type de données du paramètre envoyé à la méthode. Il fait référence au mot-clé utilisé pour la déclaration de la variable.

  • Libellé (champ INTITPARME)

Saisissez le libellé de la variable.

  • Mode (champ MODPARMET)

Sélectionnez le mode qui définit comment le paramètre est transmis dans l'appel.

Par Adresse

Une référence est transmise à l'appel et toute modification apportée à l'appel sur la variable changera automatiquement la valeur du paramètre.

Par Valeur

Le paramètre est copié et la valeur transmise peut être modifiée pendant l'appel, sans que l'appel impacte la valeur du paramètre.

Constante

Une référence est transmise à l'appel mais le paramètre est en lecture seule. Une modification pendant l'appel génère une erreur.

  • Dim (champ DIMPARMET)

Définit si le paramètre envoyé est un tableau et quelle est la première valeur de l'index.

No

Pas de tableau.

From 1

Tableau avec index commençant à 1.

From 0

Tableau avec index commençant à 0.

Renseignez la classe du paramètre lorsque le champ Type a pour valeur 'Instance'.

 

Onglet Méthodes standard

Présentation

Cet onglet décrit la disponibilité de la méthode standard CRUD ainsi que les autres méthodes prises en charge par la couche superviseur de la classe.

 

Champs

Les champs suivants sont présents dans cet onglet :

Tableau

  • Code (champ CODMETSTD)

Initiale de la méthode (par exemple "C" pour la méthode "Création").

Ce code est à usage interne uniquement.

  • Libellé (champ INTITMETST)

Nom complet de la méthode (par exemple "Création").

Assigner un code activité permet de désactiver la méthode. Au moment de l'exécution, si le code n'est pas actif, la méthode n'est pas disponible, même si le champ suivant est coché (a pour valeur 'OUI').

  • O/N (champ ENAMETSTD)

Si ce champ est coché (a pour valeur 'OUI'), la méthode n'est pas disponible et le code n'est pas généré dans la classe.

 

Onglet Propriétés

Présentation

Cet onglet contient les tableaux suivants :

Tableau Propriétés

Le tableau Propriétés liste les propriétés de la classe.

Tableau Clés

Le tableau Clésliste les segments de clé correspondant à la ligne sélectionnée dans le tableau Propriétés (si le type de propriétés est lié à une table (technologie de la version 6) ou à une classe persistante).

Tableau Paramètres

Le tableau Paramètres liste les paramètres d'une propriété, selon la ligne sélectionnée dans le tableau Propriétés, si les règles de la propriété exigent des paramètres complémentaires. Vous devrez alors entrer une valeur pour appeler la règle avec les bons paramètres, selon le contexte.

 

Champs

Les champs suivants sont présents dans cet onglet :

Tableau Propriétés

  • Propriété (champ FLDCLA)

Nom de la propriété. Ce nom est utilisé dans le script de Sage X3.

Si la classe est une classe persistante, il est recommandé de donner aux propriétés le même nom que les colonnes des tables de la base de données utilisées pour le stockage des données. Sinon, le support de l'opération CRUD aura besoin d'un code supplémentaire afin d'assigner des propriétés de classe avec des données provenant du pointeur de la base de données.

  • Ordre (champ NUMFLD)

Les méthodes d'init et de contrôle de la structure sont fait dans l'ordre chronologique de ce champ.

  • Libellé (champ ZINTFLD)

Description de la propriété. Cette description peut être utilisée lors de la conception de l'interface utilisateur à travers des représentations.

  • Libellé court (champ ZINTSHTFLD)

 

Indiquer le type de données de la zone.

En fonction du type de données choisi, des renseignements complémentaires peuvent être demandés :

  • Les paramètres des actions d'init et contrôle affectées au type de données.
  • Les options définies dans l'objet (si le type de données est relié à un objet).

Si ce champ est vide, la propriété doit être référencée sur l'instance de la classe enfant.

  • Menu (champ NOLIB)

Renseignez le numéro du menu local si le type de données dans le champ précédent est M (pour "Menu local").

Les numéros définissent toutes les valeurs disponibles pour la propriété (par exemple, le numéro 1 correspond au menu local Non/Oui).

  • Long (champ LONG)

Permet d'indiquer la longueur du champ, si elle n'est pas indiquée sur le type de données et si le type de données le permet (absence de format, menu local, etc.).

La longueur du champ peut être exprimée en nombre de caractères (pour des valeurs de type chaîne), ou en nombre de chiffres selon ce format : N.M, où 'N' est le nombre de chiffres avant la décimale et 'M' est le nombre de décimales.

Si cette zone n'est pas renseignée, la zone sera toujours présente. Si cette zone correspond à un code activité non actif, la zone ne sera pas générée. Les codes activités commençant par X, Y, ou Z correspondent à des champs spécifiques qui ne sont pas touchés en mise à jour de dossier.

Code utilisé pour protéger une propriété spécifique dans des classes standards pendant le processus de patch standard si le code commence par les lettres X, Y ou Z. Sinon, le code activité est celui donné lors de la configuration du dossier Sage X3.  Il se comporte comme tous les codes activités définis dans les dictionnaires.

Nom de la classe associée à la propriété si la propriété est une instance de classe. Vous pouvez saisir le nom uniquement si le champ Type n'a pas de valeur, et dans ce cas le nom de la classe est obligatoire.

  • Collection (champ FLDGRP)

Renseignez le code de la collection si la propriété n'est pas unique. Ce code fait référence à une des collections définies dans la première section du dictionnaire des classes. Cela peut être soit un tableau de références enfants (table principale/structures de ligne) soit un tableau non normalisé stocké dans plusieurs colonnes d'une base de données.

Lorsque le type de données est CLOB ou BLOB et est géré par le superviseur, ces champs Table du lob et Champ lob décrivent dans quelle table et dans quelle colonne l'élément support est stocké.

Selon la table utilisée, le tableau Clés est alimenté afin que le lien s'établisse en donnant la valeur de la clé.

Lorsque le type de données n'est pas géré par le superviseur, le lien est fait par un programme, et vous ne pouvez pas saisir de valeur dans ces deux champs.

  • Champ lob (champ LOBFLD)

 

  • Content type (champ LOBCNT)

Lorsque le type de données est CLOB ou BLOB et est géré par le superviseur, sélectionnez le type de contenu associé au type de données.

  • Oblig (champ OBLIG)

Lorsque ce champ a pour valeur 'Oui', un contrôle "Zone obligatoire" est déclenché dans la méthode de contrôle du champ.

Si ce champ a pour valeur 'Oui', une instance de classe peut être valide uniquement si la propriété n'est pas vide.

La table de contrôle permet d'effectuer un contrôle supplémentaire de la cohérence, défini par une simple configuration.
Ceci est réservé au spécifique. 
La mise à jour de ce champ ne nécessite pas de protection par un code activité.

  • Dépendance (champ TABCONT)

Saisissez la propriété utilisée lorsque la table de contrôle dépend d'une autre table.

Code d'accès pour contrôler l'accès à la propriété pour un utilisateur basé sur une configuration.

  • Recherchable (champ FLDSEARCH)

Cette case est cochée si la case Recherchable de cette fonction est cochée, marquant la classe pour l'indexation.

SEEINFO Décocher la case Recherchable ne signifie pas que l'information est désactivée sur chaque ligne. Cela permet juste de désactiver temporairement une indexation sans perdre le détail des champs qui seront indexés.

Une catégorie agit comme un filtre de résultats lors de la recherche.

Par exemple, vous crééz la catégorie SALESREP et vous l'assignez au champ Réprésentant des ventes dans une fiche client. Ce champ peut être également disponible dans une commande de vente ou sur une facture. Si vous cherchez ensuite le nom DUPONT et que DUPONT est présent sur 20 fiches clients, 45 commandes de ventes et 35 factures, vous pouvez restreindre la recherche à la catégorie SALESREP.

Cette catégorie est définie dans la table diverse n°16.

  • Accesseur GET (champ FLGACCGET)

Si cette case est cochée, un code d'appel 'Accesseur GET' est généré sur la propriété.

Vous pouvez cocher ou décocher cette case dans le dictionnaire, même dans une classe standard spécifique. Si la case est cochée, elle ne sera pas décochée lors d'un patch.

SEEINFO Cochez cette case seulement si nécessaire. En effet, appeler des accesseurs GET sur toutes les propriétés peut réduire l'efficacité de l'exécution.

Tableau Clés

  • Code (champ CODCLE)

Nom de la colonne de chaque segment de clé. Vous ne pouvez pas le modifier.

  • Libellé (champ INTCLE)

Libellé de chaque segment de clé. Vous ne pouvez pas le modifier.

  • Type (champ TYPCLE)

Type de données du segment de clé. Vous ne pouvez pas le modifier.

  • Valeur (champ VALCLE)

Formule de la valeur du segment de clé.

Seul un sous-ensemble du langage de script de Sage X3 peut être utilisé pour fournir les valeurs des clés ou des paramètres, car ces valeurs doivent être évaluées par le client.
Un paramètre ou une clé peuvent avoir une des valeurs suivantes :

  • Le nom d’une propriété de l’instance ou de l’une de ces instances enfants. Le chemin ne contient jamais This. Par exemple : PRICE, ADDLINE.TEXT
  • Les propriétés du contexte telles que  ACTX.USER
  • Une propriété de l’instance en cours seulement si la propriété est dans la même collection, au même indice. Par exemple, COLLECTION.PROPERTY: le même indice est utilisé.
  • Une constante (alphanumérique ou numérique). Par exemple : «VEN », « SUP », « 00123 », 3.14 ou 67800. Ceci est possible uniquement si le paramètre est transmis par valeur.
  • Une propriété de la classe, lorsqu’un paramètre doit être transmis en tant que pointeur et non par valeur, à condition que ce paramètre n’ait pas de sens dans le contexte d’utilisation et qu’il ne sera pas utilisé. L’instance dédiée est AVOID.
  • This est accepté uniquement si le paramètre est une instance. Il doit être seul.
  • =num$(P)P est une propriété de la classe. Cette valeur n’est possible que lorsque les conditions suivantes sont remplies :
    • Le paramètre est de type alphanumérique et est déclaré par valeur.
    • La propriété P est de type  TinyInt, Integer, Decimal, Clob, Char, Date, Uuident ou Datetime.
  • =val(P)P est une propriété de la classe. Cette valeur n’est possible que lorsque les conditions suivantes sont remplies :
    • Le paramètre est de type TinyInt, Integer ou Decimal et est déclaré par valeur.
    • La propriété P est de type  Clob, Char ou Date.

Tableau Paramètres

  • Code (champ CODPAR)

Code de chaque paramètre, affiché automatiquement. Vous ne pouvez pas le modifier.

  • Libellé (champ INTITPAR)

Description de chaque paramètre, affichée automatiquement. Vous ne pouvez pas la modifier.

  • Type (champ TYPINTPAR)

Type de données de chaque segment de clé, affiché automatiquement. Vous ne pouvez pas le modifier.

  • Mode (champ ADRVAL)

Le mode définit comment le paramètre est transmis dans l'appel. Vous ne pouvez pas le modifier.

Par adresse

Une référence est transmise à l'appel et toute modification apportée à l'appel sur la variable change automatiquement la valeur du paramètre.

Par valeur 

Un paramètre est copié et la valeur transmise peut être modifiée pendant l'appel, sans que l'appel impacte la valeur du paramètre.

Constante

Une référence est transmise à l'appel mais le paramètre est en lecture seule. Une modification pendant l'appel génère une erreur.

  • Valeur (champ VALEUR)

Formule qui fournit la valeur d'un paramètre. Il existe quelques limitations sur le type de formule car la valeur doit être évaluée dans le contexte du client.

 

Icône Actions

Sélection colonnes

 

 

Onglet Mapping

Présentation

Cet onglet définit comment les opérations CRUD, si elles existent, sont liées aux tables de la base de données pour les instances principales de la classe et pour les instances des classes enfants. Vous pouvez entrer des informations uniquement pour les classes de type "Persistante".

 

Champs

Les champs suivants sont présents dans cet onglet :

Table principale

Identifie la table principale à partir de laquelle on lit d'autres tables par des liens directs ou en cascade.

Ce champ est alimenté automatiquement selon la table principle définie dans l'onglet Général de cette fonction.

  • Index (champ INDREF)

Ces champs Index et Description sont alimentés automatiquement selon l'index et la description définis dans l'onglet Général de cette fonction.

  • champ AFFIND

 

  • champ WA

 

  • Lecture (champ FLGRREF)

Si cette case est cochée, le programme généré associé à la classe gère l'opération "Lecture". Si cette case n'est pas cochée, le développeur partenaire doit écrire le code pour lire les données de la table principale dans l'évènement correspondant AREAD.

  • Création (champ FLGCREF)

Si cette case est cochée, le programme généré associé à la classe gère l'opération "Création". Si cette case n'est pas cochée, le développeur partenaire doit écrire le code pour lire les données de la table principale dans l'évènement correspondant AINSERT.

  • Modification (champ FLGUREF)

Si cette case est cochée, le programme généré associé à la classe gère l'opération "Modification". Si cette case n'est pas cochée, le développeur partenaire doit écrire le code pour lire les données de la table principale dans l'évènement correspondant AUPDATE.

  • Suppression (champ FLGDREF)

Si cette case est cochée, le programme généré associé à la classe gère l'opération "Suppression". Si cette case n'est pas cochée, le développeur partenaire doit écrire le code pour lire les données de la table principale dans l'évènement correspondant ADELETE.

  • Filtre (champ FLTREF)

Ce champ permet d'utiliser une formule pour filtrer les informations. La formule ne peut inclure que des colonnes de la table principale associée à la classe.

Tableau Jointures des tables

  • Référence (champ REFLNK)

Référence de la propriété de la classe enfant.

Code de la classe associé à la Référence de la propriété. Ce champ est alimenté automatiquement et vous ne pouvez pas le modifier.

  • Table destination (champ TABLNK)

Table dans laquelle la classe référencée est persistée.

  • Abrev (champ ABRLNK)

Correspond à l'abréviation sous laquelle la table liée est ouverte.

Si ce champ n'est pas saisi, l'abrévation est l'abréviation par défaut de la table. Il peut être utile de saisir une abréviation pour ne pas rentrer en conflit avec le contexte appelant.

  • Table origine (champ TABORI)

Identifie la table principale à l'origine du lien décrit dans la ligne courante. Ce peut être la table principale, ou une des tables liées des lignes précédentes.

  • Abrev (champ ABRORI)

Correspond à l'abréviation sous laquelle la table liée est ouverte.

Si ce champ n'est pas saisi, l'abrévation est l'abréviation par défaut de la table. Il peut être utile de saisir une abréviation pour ne pas rentrer en conflit avec le contexte appelant.

  • Type de lien (champ TYPLNK)

Pour chaque ligne, il peut y avoir de 0 à N lignes (dans le cas 1,1 ou 1,N, il existe au moins une ligne).

  • Index principal (champ CLELNK)

Définit le code de la clé de la table utilisée pour réaliser la lecture des lignes liées. Par défaut, la première clé de la table est utilisée.

Une fois ce champ alimenté, le tableau suivant Mapping clés - propriétés est alimenté suivant le code des différents segments de clé.

  • Index de tri (champ CLESORT)

Ce champ définit l'ordre initial des lignes lorsqu'une opération "Lecture" est effectuée sur une instance de classe. Si ce champ n'est pas rempli, c'est l'index principal qui est utilisé.

  • Expression de jointure (champ EXPLNK)

Ce champ est défini comme une ou plusieurs expressions calculées et séparées par un point-virgule. Chaque expression est évaluée, et le résultat permet de connaître la valeur de la clé utilisée pour réaliser la jointure. Lorsque les jointures multiples sont autorisées, vous ne pouvez donner que les premiers segments de clé.

Dans les expressions, vous pouvez utiliser des constantes, et des champs issus des tables précédemment définies dans la liste des liens.

  • Expression de sélection (champ EXPSEL)

Cette formule de sélection s'applique sur la table définie dans la colonne Table liée, et permet de filtrer les données dans le modèle. Attention, ces conditions ne s'appliquent pas pour le processus d'indexation. La syntaxe est la syntaxe de script de Sage X3 utilisée dans les instructions Filter.

Code activité utilisé pour protéger les lignes du tableau modifiées ou spécifiques, ou pour désactiver certaines lignes si le code activité associé a pour valeur 'Inactif'.

  • Gestion par classe (champ FLGA)

Si cette case est cochée, la couche superviseur met en œuvre l'opération CRUD en appelant la méthode mise en œuvre dans la classe définie sur la ligne. Si cette case n'est pas cochée, l'opération CRUD est intégrée dans le code de la classe principale lorsque les cases correspondantes sont sélectionnées.

  • Gestion Sup / Ins (champ FLGV)

Si cette case est cochée, toute mise à jour au niveau des lignes s'effectue en supprimant ou en insérant toutes les lignes plutôt que les lignes modifiées uniquement. Si cette case est cochée, les performances peuvent être réduites, mais il peut être nécessaire de la cocher si la clé des lignes change à chaque fois que les lignes sont mises à jour ou insérées (par exemple, si le numéro de la ligne est réaffecté).

  • Lecture (champ FLGR)

Si cette case est cochée, le programme généré associé à la classe principale gère l'opération de "Lecture". Si cette case n'est pas cochée, le développeur partenaire doit écrire le code pour lire les données de la table principale dans l'évènement correspondant AREAD.

SEEINFO Cette case n'est saisissable que si la case Gestion par classe est décochée.

  • Création (champ FLGC)

Si cette case est cochée, le programme généré associé à la classe principale gère l'opération de "Création" sur la classe enfant correspondante. Si cette case n'est pas cochée,  le développeur partenaire doit écrire le code pour lire les données de la table principale dans l'évènement correspondant AINSERT.

SEEINFO Cette case n'est saisissable que si la case Gestion par classe est décochée.

  • Modification (champ FLGU)

Si cette case est cochée, le programme généré associé à la classe principale gère l'opération de "Mise à jour" sur la classe enfant correspondante. Si cette case n'est pas cochée,  le développeur partenaire doit écrire le code pour lire les données de la table principale dans l'évènement correspondant AUPDATE.

SEEINFO Cette case n'est saisissable que si la case Gestion par classe est décochée.

  • Suppression (champ FLGD)

Si cette case est cochée, le programme généré associé à la classe principale gère l'opération de "Suppression" sur la classe enfant correspondante. Si cette case n'est pas coché,  le développeur partenaire doit écrire le code pour lire les données de la table principale dans l'évènement correspondant ADELETE.

SEEINFO Cette case n'est saisissable que si la case Gestion par classe est décochée.

Tableau Mapping clés - propriétés

Affiche la classe enfant. Vous ne pouvez pas la modifier.

  • Propriété clé (champ KEYMAP)

Affiche la propriété de la classe associée à un segment de clé. Vous ne pouvez pas la modifier.

  • Type (champ TYPMAP)

Affiche le type de données correspondant à la propriété. Vous ne pouvez pas le modifier.

Affiche la classe parente, c'est-à-dire la classe depuis laquelle le lien est établi. Vous ne pouvez pas la modifier.

  • Propriété parente (champ PROMAP)

Les deux derniers champs du tableau, c'est-à-dire Propriété parente et Valeur constantepermettent de définir les valeurs qui doivent être automatiquement attribuées aux propriétés enfants pendant l'opération CRUD. Cela va automatiquement générer les règles de propagation correspondantes, et une règle d'initialisation (évènement ADDLINE²). Une valeur peut être définie comme :

  • une propriété parente, utilisée pour attribuer la valeur enfant, ou
  • une valeur constante.

SEEINFO Vous ne pouvez alimenter qu'un seul des deux champs. Si aucun des champs n'est alimenté, il n'y aura pas d'attribution automatique. C'est généralement le cas pour le dernier segment de clé.

  • Valeur constante (champ VALDEFMAP)

 

 

Onglet Divers

Présentation

Cet onglet définit des informations complémentaires concernant les droits d'accès.

Cet onglet contient les tableaux suivants :

Tableau Propriétés

Le tableau Propriétés particulières affiche les propriétés utilisées pour le filtrage des données gérées par la classe.

Tableau Filtres

Le tableau Filtres définit des filtres supplémentaires qui peuvent être sélectionnés quand la classe est utilisée pour accéder uniquement à un sous-ensemble de données gérées par la classe.

Tableau Historique

Le tableau Historique contient les informations qui assurent la compatibilité avec le code de la version 6 pour les restrictions d'accès aux données.

 

Champs

Les champs suivants sont présents dans cet onglet :

Propriétés particulières

  • Propriété législation (champ LEGSTR)

Si le champ est rempli, il identifie une propriété de la classe qui définit la législation. Dans la base de données, la colonne correspondante peut :

  • être vide : le dossier est accessible par tout le monde.
  • contenir un code de législation : l'utilisateur doit avoir le droit d'accéder à la législation correspondante.

Cela permet au superviseur d'effectuer un filtrage automatique sur l'ensemble des données accessibles dans une instance de classe pour un utilisateur.

  • Propriété société (champ CPYSTR)

Si le champ contient une valeur, il identifie une propriété de la classe où un code de société est saisi. Dans la base de données, la colonne correspondante peut être vide ou contenir la société de législation à laquelle les données sont liées.

Cela permet au superviseur d'effectuer un filtrage automatique sur l'ensemble des données accessibles dans une instance de classe pour un utilisateur, pour une opération CRUD, en fonction de ses droits (l'utilisateur peut avoir l'accès en lecture mais pas en écriture sur certaines sociétés).

  • Propriété site (champ FCYSTR)

Champ de la structure définissant le site pour gérer les habilitations fonctionnelles.

Si le champ contient une valeur, il identifie une propriété de classe où un code de site est entré. Il est utilisé pour filtrer des données à un niveau plus détaillé qu'une société, mais avec les mêmes propriétés.

  • Propriété code d'accès (champ ACCSTR)

Champ de la structure pour gérer les droits d'accès.

Si le champ contient une valeur, il identifie une propriété de classe où un code d'accès est entré. Il est utilisé pour filtrer des données à un niveau plus détaillé qu'une société, mais avec les mêmes propriétés. La principale différence est que le code d'accès peut ne pas être renseigné dans la base de données. Dans ce cas, il n'y a pas de restrictions d'accès à l'ensemble des données.

Tableau Filtres

  • Code (champ OPTCOD)

Saisissez un code unique de filtre ou sélectionnez un filtre défini au niveau de la classe.

  • Libellé (champ AZOPTLIB)

Description du filtre.

 

  • Condition (champ OPTCND)

Condition de filtrage exprimée dans le langage du script de Sage X3 (même syntaxe que pour les instructions Filter). Seules les colonnes présentes dans la table principale ou dans les tables directement liées à la table principale avec une jointure (1,1) peuvent être utilisés.

  • Message erreur (champ AZOPTERR)

Message d'erreur envoyé à l'utilisateur si une requête est faite sur une instance qui ne remplit pas la condition de filtrage.

 

Boutons spécifiques

Ce bouton permet d'afficher une fenêtre dans laquelle apparaît l'arborescence de la classe.

Ce bouton permet la validation de la classe et engendre :

  • Une vérification de la cohérence générale de la description de la classe.
  • La génération du code de la classe (propriétés, méthodes et opérations) dans un script "C_classe.stc", où classe est le code de la classe.
  • La génération du code de scripts d'Sage X3 additonnels où la logique métier associée à l'opération de CRUD ainsi que les appels d'évènements sont codés.

SEEWARNING Vous ne devez pas modifier le programme généré car il est automatiquement recréé pendant la validation.

Barre de menu

Options / Validation globale

Options / Validation avec trace

Options / Ajout propriété système

Options / Test

Messages d'erreur

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

Représentation inactive

Des erreurs sont survenues quand la représentation a été sauvegardée : la représentation n'est pas valide et ne peut pas être utilisée.

Classe inexistante

La classe référencée dans la représentation n'existe pas.

Table inexistante

La table référencée dans la représentation n'existe pas.

Une classe technique ou système ne peut pas être utilisée dans une représentation

Une classe référencée par la représentation ne peut être utilisée.

Classe inactive

La classe n'est pas active (par exemple, lorsqu'un code activité sur la classe a pour valeur 'Inactif').

Fonction X3 non autorisée

Code des fonctions d'X3 utilisé pour déclencher un lien de convergence : ne peut être présent que sur des représentations Bureau et non sur des réprésentations Mobile et Tablette.

Le code activité $1$ associé à la collection $2$ n'est pas de type Dimensionnement

Le code activité utilisé pour la taille des collections doit être de type Dimensionnement.

Valeur 0 impossible pour les classes représentations

Vous ne pouvez utiliser un code activité égal à 0 pour dimensionner une collection dans une représentation.

Champ obligatoire

Contrôle sur un filtre. Le champ est obligatoire.

Informations complémentaires

Des modifications effectuées sur la classe peuvent avoir un impact non seulement sur ​​les représentations qui intégrent la classe, mais aussi sur les représentations qui ont un lien sur une facette de ces représentations. L'entrée d'une représentation dans le dictionnaire peut déclencher une mise à jour automatique des liens. Dans ce cas, un message demande à l'utilisateur de sauvegarder la représentation mise à jour. Le lien sur les représentations se fait alors automatiquement lors de l'installation d'un patch ou lors de la revalidation du dossier.

Tables mises en oeuvre

SEEREFERTTO Reportez-vous à la documentation de Mise en oeuvre