Fonctionnement ( OBJet )

Pour un Objet,  le traitement GOBJET est utilisé. Ce traitement intègre l'ensemble des fonctions de base (affichage, gestion de la liste gauche et des boutons, fonction de sélection, appel des listes standard, traitement des objets liés et du workflow, création, modification, duplication, annulation...). Il y a 3 types d'Objets : simple, tableau et combiné; Certaines actions sont différentes par type doObjet.

L'activation d'un filtre par le menu / sélection agit sur la liste gauche principale et la rafraîchit. Elle n'agit pas sur les listes de gauches supplémentaires.

Les traitements

Il fait appel à des traitements annexes, qui sont les suivants :

Traitements générés

·     un traitement généré de façon automatique à la validation de l'objet. Ce traitement a pour nom GESXXX, où XXX est le code de l'OBJet. Il ne faut pas modifier ce traitement, car de toutes les façons, il est réécrit à chaque validation de l'OBJet.

·     des traitements générés de façon automatique à la validation de la fenêtre. Ces traitements ont pour nom WOXXX, et WGOXXX où XXX est le code de l'objet. Il ne faut pas modifier ces traitements, car de toutes les façons, ils sont réécrits à chaque validation de la fenêtre.

Traitement réservé au standard

·     un traitement appelé SUBXXX, où XXX est le code de l'OBJet. Ce traitement, fourni par ADONIX, contient une étiquette ACTION, qui traite les différents évènements susceptibles d'arriver lors de l'exécution de l'OBJet. Chaque événement est identifié par un code alphanumérique, contenu dans la variable ACTION. S’il n’y a pas de traitement pour un événement, le fonctionnement de l'Objet n'en sera pas entravé.

Traitement réservé aux spécifiques

Nous avons deux niveaux de traitement :

·     un traitement appelé SPEXXX est prévu pour le spécifique, où XXX est le code de l'objet.

·     un traitement appelé SPVXXX est prévu pour le vertical, où XXX est le code de l'objet. Le vertical est une couche intermédiaire, développée par tout distributeur, sur le quel peut ensuite s'appliquer du spécifique.

Ces traitements ne sont pas fournis en standard. Ils peuvent être développés en spécifique (à la fois pour des objets standards pour lesquels on désire ajouter des fonctions particulières, et pour les objets spécifiques sur lesquels le traitement SUBXXX n'est pas utilisé). Ces traitements, s'il existe, doit contenir un sous-programme ACTION. 

Enchaînement des traitements

La séquence d'appel des traitements est la suivante :

-    traitement SPEXXX 

-    traitement SPVXXX     ( non exécuté si la variable GPV=1) 

-    traitement SUBXXX     ( non exécuté si la variable GPE=1) 

Lorsque l'on écrit du spécifique, on a la possibilité de court-circuiter le vertical et/ou le standard.

Il est possible de changer l'ordre d'exécution des traitements en faisant, l'appel aux traitements vertical et standard directement depuis le spécifique, et en inhibant l'appel de ces traitements par le superviseur. Exemple d'écriture d'une action spécifique :

Gosub  ACTION  From  SUBXXX              ( appel du standard)
...                                                            ( votre traitement spécifique)
GPE = 1                                                    ( pas d’appel du standard suite au spécifique)
Return

L'utilisation d'un objet simple permet de gérer soit des fiches simples (un enregistrement dans une table, par exemple la fiche article), soit des fichiers de type en-tête et ligne (cas des commandes, des écritures...). On dispose pour la gestion de la table détail de sous-programmes définis dans le traitement TABLEAUX.

Appel d'un objet

L'appel à un objet peut se faire par l'une des actions du dictionnaire dont le traitement est de type objet.

Avant l'exécution de l'action, il vous est possible de restreindre les droits d'accès à cet objet en positionnant la variable globale GCONSULT :

·     GCONSULT=0 signifie qu'on peut gérer l'objet en fonction de ses droits

·     GCONSULT=1 signifie qu'on ne peut pas modifier, mais on peut changer de fiche

·     GCONSULT=2 signifie qu'on ne peut ni modifier, ni changer de fiche, et que l'on n'a pas non plus de liste de gauche.

Les Actions

Ces actions sont appelées par l'instruction Gosub ACTION From SUBXXX. Elles permettent donc d'utiliser et de définir des variables locales au traitement de gestion d'objet. Dans le sous-programme action, on testera les différentes valeurs possibles pour la variable ACTION :

$ACTION
Case ACTION
When "..."
...
Endcase
Return

Par défaut, il n'y a pas d'action associée, et le traitement " standard " se déroule alors, mais lorsqu'on désire ajouter des fonctions particulières, le déroutement se fera à ce niveau.

On trouvera ci-joint la liste des actions classée par ordre alphabétiquel. On trouvera ensuite,  la description détaillée de ces actions. On y décrit le contexte appelant et l'OBJectif de ces actions.

Si l'action est appelée durant une transaction, le sous-programme appelé par l'action peut affecter la variable GOK de la manière suivante :

    si on renvoie dans la variable GOK une valeur négative, on considère qu'un verrouillage d'informations par d'autres postes empêche la mise à jour de se faire. Un abandon de transaction est alors fait (Rollback), suivi d'une nouvelle tentative (jusqu'à concurrence d'un nombre de tentatives défini par la variable GROLLBACK  : on demande alors à l'utilisateur s'il veut continuer ou abandonner).

    si on renvoie dans la variable GOK une valeur positive non nulle, un abandon de la transaction est fait (Rollback).

Ajout d'actions spécifiques sur le standard

Autorisé.
Le traitement spécifique se nommera "SPE" + le code objet.

L'action spécifique est appelée avant l'action standard. Elle peut annuler et remplacer l'action standard si elle positionne la variable GPE à la valeur 1. Elle peut s'exécuter après, si l'action spécifique est écrite de la façon suivante : appel l'action standard par Gosub, ensuite écriture du corps de l'action spécifique, puis GPE=1.