Vous êtes sur la page 1sur 223

Safe X3

Support de formation
Développement
Version 6
SAFE X3 DEVELOPPEMENT

Copyright © Sage 2009-2010 Page 2


SAFE X3 DEVELOPPEMENT

PREREQUIS
Pour accéder à cette formation, vous devez avoir au préalable :

- A suivre impérativement la formation Outils communs

CURSUS Sage ERP X3 – Outils & Développement

FONDAMENTAUX ADVANCED EXPERT

Sage ERP X3
Introduction
Business Intelligence Installation des
X3F-INT 1 jour Exploitation patchs
X3E-BIU 2 jours X3E-IPT 2 heures

Overview Outils communs Outils avancés Crystal Reports Eclipse


Fonctionnel Integration

X3F-OVW 2 jours X3F-CTO 3 jours X3A-ADM 3 jours X3E-CRI 2 jours X3E-ECP 1 jour

Web Services Lien Office


Développement
1 &2
X3E-WSE 2 jours X3E-OFF 2 heures
X3A-DEV 8 jours

Interfaces Processus et
Import / Export Graphiques

X3E-IEX 2 jours X3E-PGR 1 jour

Pré-requis obligatoire
Pré-requis recommandé
“Sage Certified Consultant” examen
Web Formation
6 © 2009 Sage – Division Moyennes & Grandes Entreprises

Copyright © Sage 2009-2010 Page 3


SAFE X3 DEVELOPPEMENT

SOMMAIRE

SOMMAIRE ................................................................................................................................................. 4 

1.  INTRODUCTION ..................................................................................................................................... 8 
2.  TABLES ................................................................................................................................................ 10 
2.1.  RESUME ................................................................................................................................................. 10 
2.2.  DESCRIPTION DETAILLE DES PARAMETRES D’UNE TABLE : ................................................................................... 10 
2.3.  LES LIMITES ............................................................................................................................................. 14 
2.4.  ACTION BOUTON BAS D’ECRAN .................................................................................................................... 14 
2.5.  DES CHAMPS PARTICULIERS ......................................................................................................................... 15 

3.  ECRANS ............................................................................................................................................... 17 
3.1.  DÉFINITION .............................................................................................................................................. 17 
3.2.  RENSEIGNEMENT DES INFORMATIONS GENERALES ........................................................................................... 17 
3.3.  AGENCEMENT DES BLOCS ........................................................................................................................... 19 
3.4.  RENSEIGNEMENT DES CHAMPS .................................................................................................................... 20 
3.5.  CHAMPS SPECIAUX A PARAMETRER ............................................................................................................... 21 
3.6.  CONTRAINTE TECHNIQUE POUR L’APPEL D’UN BLOC TABLEAU DEROULANTS .......................................................... 22 

4.  OBJETS ................................................................................................................................................ 24 
4.1.  DÉFINITION ............................................................................................................................................. 24 
4.2.  GESTION OBJET SIMPLE .............................................................................................................................. 24 
4.3.  GESTION TABLEAU .................................................................................................................................... 25 
4.4.  GESTION COMBINE .................................................................................................................................... 26 
4.5.  GESTION BROWSER ................................................................................................................................... 27 
4.6.  DICTIONNAIRE DES OBJETS .......................................................................................................................... 28 
4.7.  VALIDATION D’UN OBJET ............................................................................................................................ 31 

5.  FENETRE .............................................................................................................................................. 32 

5.1.  DEFINITION .............................................................................................................................................. 32 
5.2.  RESUME ................................................................................................................................................. 33 
5.3.  ONGLET ECRANS ...................................................................................................................................... 33 
5.4.  ONGLET BOUTONS/MENUS ........................................................................................................................ 33 
5.5.  ONGLET BOUTONS PREDEFINIS .................................................................................................................... 34 
5.6.  ONGLET BROWSER .................................................................................................................................... 34 
5.7.  EXERCICE : GESTION DES ARTICLES ................................................................................................................ 35 

6.  MENUS LOCAUX .................................................................................................................................. 40 
6.1.  DÉFINITION .............................................................................................................................................. 40 

7.  TABLES DIVERSES ................................................................................................................................ 41 
7.1.  DÉFINITION ............................................................................................................................................. 41 
7.2.  SAISIE DES DONNEES .................................................................................................................................. 41 
7.3.  GESTION DE TABLE DE DEPENDANCE ............................................................................................................. 42 

8.  VUES ................................................................................................................................................... 43 

Copyright © Sage 2009-2010 Page 4


SAFE X3 DEVELOPPEMENT

8.1.  DEFINITION ............................................................................................................................................. 43 
8.2.  PARAMETRAGE DE LA VUE .......................................................................................................................... 43 
8.3.  STRUCTURE GENEREE EN VALIDATION ........................................................................................................... 45 
9.  CODES ACTIVITE .................................................................................................................................. 47 
9.1.  DEFINITION ............................................................................................................................................. 47 
9.2.  CODES ACTIVITES FONCTIONNELS STANDARDS ................................................................................................. 47 
9.3.  CODES ACTIVITES DE DIMENSIONNEMENT ....................................................................................................... 47 
9.4.  CODES ACTIVITES DE LOCALISATION ............................................................................................................... 48 
9.5.  CODE ACTIVITES FONCTIONNELS SPECIFIQUES .................................................................................................. 48 
9.6.  PARTICULARITE DE LA DESACTIVATION PAR CODE ACTIVITE ................................................................................ 48 

10.  ACTIONS CHAMPS ........................................................................................................................... 50 
10.1.  DEFINITION ............................................................................................................................................. 50 
10.2.  APPEL DES ACTIONS SUR CHAMP .................................................................................................................. 51 
10.3.  LISTE DES ACTIONS SUR CHAMPS .................................................................................................................. 54 
10.4.  VARIABLES UTILISABLES POUR LES ACTIONS SUR CHAMPS .................................................................................. 60 
10.5.  ACTIONS STANDARD CAPITALISEES ................................................................................................................ 61 

11.  TYPES DE DONNEES ......................................................................................................................... 62 

11.1.  DÉFINITION ............................................................................................................................................. 62 
11.2.  DONNEES DE BASE .................................................................................................................................... 62 
11.3.  DONNEES STANDARDS ............................................................................................................................... 63 
11.4.  ACTIONS SUR CHAMP ................................................................................................................................ 63 
11.5.  ACTIONS SUR CHAMP POUR UN BLOC TABLEAU ............................................................................................... 63 
11.6.  TYPE DE DONNEES LIEES A L’OBJET : .............................................................................................................. 64 
11.7.  TEXTE TRADUITS ....................................................................................................................................... 64 
11.8.  CLOB ET BLOB .......................................................................................................................................... 66 
11.9.  SYNTAXE DU FORMAT ................................................................................................................................ 66 
11.10.  POUR UNE ACTION : ORDRE D’EXECUTION ................................................................................................. 69 
11.11.  EXERCICE : GESTION DES CLIENTS (GESTION SIMPLE) .................................................................................... 70 
12.  MODELE « OBJET » .......................................................................................................................... 76 
12.1.  DÉFINITION ............................................................................................................................................. 76 
12.2.  UTILISATION DU MODELE OBJET ................................................................................................................... 78 
12.3.  GESTION TABLE D’ENTETE PLUS TABLE DE DETAIL ............................................................................................. 93 
12.4.  EXERCICE : GESTION DES COMMANDES (GESTION ENTETE ‐ DETAIL) .................................................................... 99 
12.5.  GESTION DES BOUTONS/MENUS................................................................................................................ 108 
12.6.  LES BROWSERS ....................................................................................................................................... 110 
13.  ACTIONS ....................................................................................................................................... 114 
13.1.  DEFINITION ........................................................................................................................................... 114 
13.2.  INFORMATIONS GENERALES ...................................................................................................................... 115 
13.3.  RENSEIGNEMENT DES PARAMETRES ............................................................................................................ 116 

14.  MODELE « SAISIE FENETRE » ......................................................................................................... 119 
14.1.  DEFINITION ........................................................................................................................................... 119 
14.2.  PARAMETRAGE DE L’ACTION ..................................................................................................................... 119 
14.3.  ACTIONS SUR MODELE ............................................................................................................................. 120 
14.4.  GESTION DES BOUTONS/MENUS ................................................................................................................ 123 

Copyright © Sage 2009-2010 Page 5


SAFE X3 DEVELOPPEMENT

14.5.  GESTION DES BROWSERS .......................................................................................................................... 126 
14.6.  EXERCICE : MENU DANS GESTION COMMANDE ............................................................................................. 127 

15.  MODELE « TRAITEMENT STANDARD » ........................................................................................... 130 
15.1.  DEFINITION ........................................................................................................................................... 130 
15.2.  PARAMETRES ......................................................................................................................................... 131 
15.3.  ACTIONS SUR MODELES : MODE INTERACTIF ................................................................................................. 132 
15.4.  ACTION SUR MODÈLES : MODE BATCH ......................................................................................................... 137 

16.  FONCTIONS ................................................................................................................................... 141 
17.  MODELE « AFFICHAGE DIVERS » .................................................................................................... 143 
17.1.  DEFINITION: .......................................................................................................................................... 143 
17.2.  ACTION UNIQUE TRT_DIV ....................................................................................................................... 143 
18.  MODELE « HORS MODELE » ........................................................................................................... 144 
18.1.  DEFINITION : .......................................................................................................................................... 144 
18.2.  PARAMETRE DU SOUS‐PROGRAMME ........................................................................................................... 144 
18.3.  DECLARATION DU SOUS‐PROGRAMME ........................................................................................................ 145 
18.4.  EXERCICE : CALCUL DE L’EN‐COMMANDE CLIENT EN BATCH ............................................................................. 147 

19.  MODELE « SELECTION TABLE » ...................................................................................................... 150 

19.1.  DEFINITION : .......................................................................................................................................... 150 
19.2.  ACTIONS SUR MODELE ............................................................................................................................. 151 
20.  MODELE « SELECTION LISTE » ........................................................................................................ 153 

20.1.  DEFINITION : .......................................................................................................................................... 153 
20.2.  ACTIONS SUR MODELES ............................................................................................................................ 154 
20.3.  VARIABLES DISPONIBLES EN LECTURE : ......................................................................................................... 156 
21.  MODELE « CONSULTATION » ......................................................................................................... 157 
21.1.  DEFINITION : .......................................................................................................................................... 157 
21.2.  FENETRE PRINCIPALE : .............................................................................................................................. 157 
21.3.  FENETRE DE CRITERES : ............................................................................................................................ 158 
21.4.  ELEMENTS COMPOSANT UNE CONSULTATION ............................................................................................... 158 
21.5.  PARAMETRES D’UNE CONSULTATION .......................................................................................................... 159 
21.6.  ACTION SUR MODELE CONSULTATION ......................................................................................................... 160 
21.7.  EXERCICE CONSULTATION CLIENT ............................................................................................................... 165 

22.  POINT D’ENTREE ........................................................................................................................... 167 
22.1.  REGLES DES POINTS D’ENTREE ................................................................................................................... 167 
22.2.  EXERCICE : GESTION DES COMMANDES STANDARD ........................................................................................ 168 

23.  ECRANS GRAPHIQUES ................................................................................................................... 172 
23.1.  PRESENTATION GRAPHE SIMPLE ET MULTI .................................................................................................... 172 
23.2.  PARAMETRAGE ....................................................................................................................................... 174 
23.3.  GANTT ................................................................................................................................................. 176 
23.4.  AGENDA ............................................................................................................................................... 178 
23.5.  PLANNING MENSUEL ............................................................................................................................... 180 
23.6.  COMPOSANTS GRAPHIQUES ...................................................................................................................... 183 
23.7.  PLANNING ANNUEL ................................................................................................................................. 184 

Copyright © Sage 2009-2010 Page 6


SAFE X3 DEVELOPPEMENT

23.8.  NOMENCLATURE HORIZONTALE ................................................................................................................. 186 
23.9.  NOMENCLATURE VERTICALE ...................................................................................................................... 189 
23.10.  RADAR ............................................................................................................................................. 192 
23.11.  BROWSER ......................................................................................................................................... 194 
23.12.  BUREAUTIQUE ................................................................................................................................... 195 
23.13.  METHODES JAVASCRIPT ....................................................................................................................... 198 
23.14.  EDITEUR HTML ................................................................................................................................. 200 
23.15.  VUE PORTAIL ..................................................................................................................................... 201 
23.16.  EXERCICE : CONSULTATION DES COMMANDES .......................................................................................... 202 
24.  SPECIFIQUE ................................................................................................................................... 208 

24.1.  REGLES GENERALES ................................................................................................................................. 208 
25.  CONCLUSION................................................................................................................................. 216 
25.1.  THEMES ABORDES AU COURS DE CETTE FORMATION : ..................................................................................... 216 
25.2.  TABLEAU DES FORMATIONS....................................................................................................................... 217 
26.  EXERCICES COMPLEMENTAIRES ..................................................................................................... 218 

26.1.  EXERCICE A : CHANGEMENT DE STYLE (COMPLEMENT EX 1) ............................................................................. 218 
26.2.  EXERCICE B : TEXTES TRADUITS EN GESTION ARTICLE (COMPLEMENT EX 1 ) ........................................................ 219 
26.3.  EXERCICE C : LISTES GAUCHES EN GESTION CLIENT  (COMPLEMENT EX 2) ........................................................... 220 
26.4.  SUJETS ABORDES .................................................................................................................................... 222 

Copyright © Sage 2009-2010 Page 7


SAFE X3 DEVELOPPEMENT

1. INTRODUCTION

Introduction

Dossier Uniquement dans le dossier mère :


Dossiermère
mère – Tables : système X3
Traitement
Traitementstandard
standard – Sources : SUB*, FUN*, IMP*, …
– Exécutables : tout le standard
– Etats : tout le standard

Dossier Dossier vertical, spécifique :


DossierFils
Fils – Tables : superviseur, dictionnaire, applicatives
Traitement Vertical
Traitement Vertical – Sources : vertical / spécifique
– Exécutables : vertical / spécifique
– Etats : vertical / spécifique
Traitement
Traitementspécifique
spécifique

Copyright © Sage 2009-2010 Safe X3 Développement 4

Le fonctionnement des traitements X3 est basé sur le principe d’héritage des dossiers. Ainsi tous les
éléments de type tables, traitements et états d’un dossier parent sont accessibles par le dossier fils
(applicatif). Les traitements, les tables et les états standards sont tous présents dans le dossier mère
X3, ils permettent le bon fonctionnement de tous les dossiers fils et ne doivent en aucun cas être
modifiés ou déplacés.

Copyright © Sage 2009-2010 Page 8


SAFE X3 DEVELOPPEMENT

Introduction

Types de donnée
Table
M. Locaux
T. Diverses
Codes activités
Objet

Types de donnée
Fenêtre Écrans
M. Locaux
T. Diverses
Codes activités
Action : GOBJET Traitement standard SUBxxx
Traitement superviseur GOBJET
Traitement vertical SPVxxx
Traitement spécifique SPExxx
Traitement standard SUBxxx
Traitement vertical SPVxxx
Fonction : GESxxx Traitement spécifique SPExxx

Copyright © Sage 2009-2010 Safe X3 Développement 5

Tous les éléments que nous voyons ici sont répertoriés dans un dictionnaire X3, par exemple
le dictionnaire des tables, des écrans etc…

Ceci permet une classification, par l’intermédiaire de leurs noms qui doit être unique, ou de
leur module, ou de leur code activité. Par la suite, nous pouvons facilement retrouver un élément ou
un groupe en posant un filtre sur un browser, sur son nom par exemple ou en utilisant une sélection
sur le module ou sur un code activité.

Tous ces éléments peuvent être protégés par un code activité s’ils sont modifiés par un
développement. L’objet n’est alors plus modifiable par intégration de patchs standards.

Copyright © Sage 2009-2010 Page 9


SAFE X3 DEVELOPPEMENT

2. TABLES

2.1. RESUME
> Description général de la table
− Code et abréviation unique de la table.
− Code activité pour les tables spécifiques.

> Renseignements des champs de la table dans le dictionnaire


− Code du champ unique dans toute la table.
− Code activité s’il s’agit d’un champ spécifique dans une table standard.
− Liaison avec une autre table X3.
− Obligatoire ou non.
− Options descendu au niveau des écrans.

> Création des index


− Premier index sans homonyme de nom « abréviation de la table+0 »
− Des index spécifiques peuvent être créer pour améliorer les performances de
parcours des tables.
− Ils sont appelés « abréviation de la table+n » et tagués par code activité

> Audit
− Permet de tracer les modifications d’une table.

2.2. DESCRIPTION DETAILLE DES PARAMETRES D’UNE TABLE :

2.2.1.Onglet Général :

Champ code et abréviation :


Comme pour tous les éléments stockés dans les dictionnaires, les noms de tables superviseur
(moteur) commence par la lettre « A », ces tables ne doivent pas être modifiés. Les noms de tables
spécifiques doivent commencer par X, Y ou Z.
X : pour les verticaux
Y : pour les spécifiques distributeurs
Z : pour les spécifiques clients
Idem pour les abréviations : Axx / X,Y,Zxx table superviseur / table spécifique
Idem pour les codes activité : X,Y,Zxx
Ceci permet au superviseur d’identifier une table créée ou modifiée en spécifique.

Champs Intitulé :
Renseignement des champs d’intitulé long et court pour les traitements superviseur
Ceci permet l’affichage automatique de cet intitulé dans les écrans, les changements de code.

Pour l’affichage de l’intitulé long/court, la norme est la suivante :

Pour l’intitulé long, prendre le type de donnée :

• DES (long 30) texte non soumis à la traduction


• AX3 (long 30) texte traduisible

Pour l’intitulé court, prendre le type de donnée :

• SHO (long 10) texte non soumis à la traduction


• AX1 (long 12) texte traduisible

Copyright © Sage 2009-2010 Page 10


SAFE X3 DEVELOPPEMENT

Module : 

Définit le module de la table. Un module permet à l’installation d’une solution d’activer les éléments
associé au module. Ceci permet par exemple de désactiver la gestion des stocks si les utilisateurs
n’en ont pas besoin.
Puisque les modules peuvent être inactifs dans un dossier client, il est nécessaire d'avoir une
cohérence dans l'affectation du module aux différents éléments du dictionnaire appelés depuis une
fonction
Règle d’affectation des modules :
Un élément dictionnaire ne peut contenir que des éléments de module identique ou
OBLIGATOIREMENT installé (module obligatoire ou présent du fait de la dépendance)
Par exemple, un écran du module Ventes, ne peut contenir que des actions Ventes, Superviseur ou
Tronc commun, mais en aucun cas, des actions de module Support client CRM, Achat ...
Les modules techniques Superviseur et Tronc commun sont SYSTEMATIQUEMENT installés, dans
un dossier client.

Type de base :
Par défaut celle du dossier.

Nombre de fiches :
Déterminera la taille de la table à créer.

Format 130 :
Permet à une Table d’un dossier V6 d’être accédée par un dossier 130.

Génération textes traduisibles :


Si cette case est cochée alors il y a génération d’un fichier plat exploité ensuite dans Crystal
par la fonction X3TranslatedText, utile pour l’affichage de texte dans une langue donné dans un état.
Sinon, utilisation de la vue AVWTEXTRA (méthode nouvelle en v5 détaillée dans la formation Crystal
Report).

Remise à zéro :
La table sera effacée par l’utilitaire de remise à zéro du dossier.
Accès non sécurisé :
Coché : tous les dossiers peuvent accéder à cette table en lecture écriture.
Non coché : seuls, les dossiers autorisés peuvent y accéder (onglet « liens » dans la fiche dossier)

Type de table :
Applicatif, Superviseur, Système X3 (dossier mère), Dictionnaire, Interne (non livrée). Pour
des tables spécifiques, l’option « Applicatif » doit être utilisée.

Type de copie :
À l’initialisation du dossier fille. Pour les tables applicatives et superviseur.

Type livraison :
Interne Adonix, cette donnée ne doit pas être modifiée.

Copyright © Sage 2009-2010 Page 11


SAFE X3 DEVELOPPEMENT

2.2.2.Onglet champ :

Nom :
X, Y, Zxxxxxxx pour le spécifique (voir la fonction de codification).

Libellés :
Descriptif du champ, numéro stocké dans la table ATABZON .Texte stocké dans la table
ATEXTE.

Code activité :
Permet d’identifier un champ modifié en spécifique dans une table standard.

Options :
Sélection en fonction du type interne (centré, positif, non nul…).

Table liée :
Cette information garanti l’intégrité de la base de donnée (annulation, Changement de code,
épuration), il s’agit de la table correspondant à la clef étrangère.

Expression de lien :
Si la table liée a une clé primaire à plusieurs composantes, toutes les composantes doivent
être décrites dans ce champ. Le lien indiqué sera sous la forme : composant1;composant2;…

Code annulation :
Action automatique engendrée par l’annulation d’un enregistrement dans la table liée.

Raz :
Le champ sera effacé par l’utilitaire de remise à zéro du dossier.

2.2.3.Onglet index :

Clé primaire :
La clé primaire est le 1er index saisi. Elle doit être unique, et obligatoirement renseignée. Elle
se nomme par convention « abréviation de la table » + 0, les autres clefs sont nommées de 1 en 1.

Descripteur :
Contient 1 ou plusieurs champs non indicé
+champ : tri en ascendant sur ce champ
-champ : tri en descendant sur ce champ
Remarque : le 1er champ est sans signe et est forcément ascendant
Les descripteurs doivent être distincts (champs et sens)

Code activité :
Permet de définir une clé spécifique

Fichier de configuration :
Non renseigné par le standard. Il permet à l'utilisateur d'avoir la main sur l'instruction Create
Table.

Copyright © Sage 2009-2010 Page 12


SAFE X3 DEVELOPPEMENT

2.2.4.Possibilité d’audité la table.

Cette outil permet de tracer les connexions / déconnexions, création, modification, suppression
d’enregistrement.

Paramétrage :
Onglet réservé au spécifique (paramétrage)
Onglet optionnel (Code activité AUDIT)
Stockage de ce paramétrage (ATABLE, ATABAUD)

Stockage des résultats :


Tables ALOGIN, AUDITH, AUDITL

Résultat audit :
Affichage systématique des créations et suppressions d’enregistrement.
Affichage des enregistrements dont les champs modifiés correspond au paramétrage.

Copyright © Sage 2009-2010 Page 13


SAFE X3 DEVELOPPEMENT

2.3. LES LIMITES


Concernant la clé :
15 index
16 champs par index
250 caractères 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, la taille totale de l’enregistrement est limité à
2Go.
Soit à plusieurs champs, mais dans ce cas, la taille totale de l’enregistrement est limité à 64
Ko.

nombre de tables ouvertes :


Limité par [S]Adxmto dont le maximum est 255 tables.

Mode de stockage :
unicode ou ascii

2.4. ACTION BOUTON BAS D’ECRAN


Enregistrer, Créer :
Enregistrement ou création de la table dans le dictionnaire X3. Attention, après une action de ce
type, l’objet n’est pas présent ou modifié dans la base de données.

Validation :
Enregistrement ou création de la table dans la base de données. Création dans le répertoire
« nom_dossier\FIL » des fichiers .srf .fde .cfg.

Traitement :
Création d’un traitement temporaire WWINIxxx ( xxx = abréviation de la table )exécuté à la
validation de la table pour initialiser des champs. Ce traitement sera effacé dès la validation terminé et
la fenêtre de la table quitté, pour ne pas lancer l’initialisation à chaque validation de table.

Copie :
Copie de la description de la table dans le dictionnaire d’un autre dossier une validation de la
table sera nécessaire ; les données ne sont pas copiées. Si l’élément existe déjà dans le dossier
récepteur, un message d’avertissement est affiché et le choix est donné à l’utilisateur de poursuivre ou
d’arrêter. La copie se fait sur un dossier de même machine et même port par défaut.
La copie peut se faire sur un dossier d’une autre machine, d’un autre port, par la syntaxe suivante :
machine:port@dossier

RAZ :
Effacement des données, le bouton est actif même si le flag « remise à zéro » pour cette table
n’est pas positionné. Attention, aucun contrôle de cohérence.

Copyright © Sage 2009-2010 Page 14


SAFE X3 DEVELOPPEMENT

Supprimer :
Supprime la table de la base de données, *.srf, *.fde et la description dans le dictionnaire.

2.5. DES CHAMPS PARTICULIERS


Si besoin de :
stocker utilisateur et date de création et modification.
faire des exports sur les enregistrements modifiés ou créés depuis le dernier export.

Alors la liste de champs ci-dessous peut être utilisée :

Ceux-ci sont à déclaré dans la table, mais pas nécessairement dans l’écran.
Les traitements superviseur (moteur) alimentent automatiquement ces champs.
Ces champs ne sont utilisables que sur une gestion de type objet.

CREDAT & UPDDAT


Informations alimentés par la date système donnée par la fonction date$ à la création et à la
modification.

CRETIM & UPDTIM


Informations alimentés par l’heure système donnée par la fonction time$ à la création et à la
modification.

CREUSR & UPDUSR


Informations alimentés par l’opérateur de connexion donné par la variable globale GUSER$ à
la création et à la modification.

EXPNUM
Information alimenté par le compteur d’export [C]EXPORT. Ce compteur est utilisé par le
superviseur, pour n’exporter que les enregistrements créés ou modifiés depuis le dernier
export.

ENAFLG :
Si besoin d’un flag actif sur la fiche d’un objet, alors un champ ENAFLG de type Menu local 1
(oui/non) doit être déclaré dans la table de l’objet.

Si la fiche est inactive, alors sur les champs liés au type de donnée liée à l’objet, la
fiche sera absente de la fenêtre de sélection.
En contrôle de la saisie, message d’erreur « fiche inactive »

Copyright © Sage 2009-2010 Page 15


SAFE X3 DEVELOPPEMENT

Exemple d’utilisation dans le menu :


« Paramétrage>Exploitation>Import/Export>Modèles import/export »

Ce champ doit être accessible et modifiable dans la fenêtre gérant la table.


Dans toutes les tables du dictionnaire, ce champ est considéré comme du paramétrage.

 
 

Copyright © Sage 2009-2010 Page 16


SAFE X3 DEVELOPPEMENT

3. ECRANS

3.1. DÉFINITION

Ecrans

Définition Fenêtre
Fenêtre
Une fenêtre X3 est composée de
Exemple
ExempleOBPR OBPR
plusieurs écrans de différents type Objet
Objettiers
tierslié
liéààlalatable
table
– Entête BPARTNER
BPARTNER
– Détail
– Etc...

Les règles de nommages


sont à respecter (affichage
Des noms d’écran par
positionnement sur l’écran puis F6)

Ecran1
Ecran1
BPR0
BPR0
Ecran2
Ecran2
BPR1
BPR1
...
...
Ecran
Ecrand’entête
d’entête Ecran
Ecranonglet
onglet
Eléments
Elémentscomposant
composantlala Informations
Informationssur
surl’identité
l’identité
clef
clef

Développement>Dictionnaire traitements>Ecrans>Ecrans
Copyright © Sage 2009-2010 Safe X3 Développement 8

3.2. RENSEIGNEMENT DES INFORMATIONS GENERALES


CODE ECRAN :
Axxx0, Axxx1, … Axxxn (écrans superviseur : 1 entête + n onglets)
X,Y,Zxxx0, … (écrans spécifiques)
TRAITEMENT STANDARD SUBxxx (un par objet)
TRAITEMENT VERTICAL SPVxxx (un par objet) facultatif
TRAITEMENT SPECIFIQUE SPExxx (un par objet) ou xxx = code objet

Taille :
Type, nombre de lignes, nombres de colonnes, le maximum étant 28 lignes et 112 colonnes
(74 si la liste de gauche est présente).

RANG DU BLOC :
Donne l’ordre de saisie et peut être utilisé dans certaines instructions de zone (Affzo, Effzo,
Actzo, Diszo, Grizo).

LONGUEUR BLOC :
Sur les blocs de type liste, taille de l’intitulé du champ

Copyright © Sage 2009-2010 Page 17


SAFE X3 DEVELOPPEMENT

CODE ACTIVITE :
Sur les blocs de type tableau, la dimension du code activité détermine le nombre de lignes

LIGNE :
Sur les blocs de type tableau. C’est le nombre de lignes.

OPTION :
Sur les blocs de type tableau

BAS DE PAGE :
Contient le nom d’une variable technique stockant le nombre de lignes réellement saisies. Elle
est définie dans l’onglet des champs de type numérique non affichée avec le type de données ABS.

TABLES DE REFERENCES :
Permet d’aller chercher les champs à afficher à l’écran directement dans la base de données.

Copyright © Sage 2009-2010 Page 18


SAFE X3 DEVELOPPEMENT

3.3. AGENCEMENT DES BLOCS

Ecrans : Informations générales

Grille maxi :
9 lignes
9 colonnes

Copyright © Sage 2009-2010 Safe X3 Développement 9

Position de chaque bloc :


Les blocs sont positionnés par les coordonnées (ligne, colonne) de son angle supérieur
gauche. L'occupation est déterminée par le nombre de lignes et le nombre de colonnes.
La grille représentée ci-dessus possède les coordonnées suivantes :

Bloc Pos Lig Col


A 1,1 2 2
B 1,3 1 1
C 2,3 1 1
D 3,1 1 1
E 3,2 1 2
F 4,1 1 3

Bloc liste :
Prend la taille imposée par l’occupation des champs.

Bloc tableau :
Prend la place qu’il reste sur l’écran.
Hauteur / Largeur : sur les blocs de type tableau, nb minimal de lignes ou colonnes. A
renseigner, qu’en cas de besoin.

Copyright © Sage 2009-2010 Page 19


SAFE X3 DEVELOPPEMENT

3.4. RENSEIGNEMENT DES CHAMPS


Renseignements des champs de l’écran + des options.
Ajout de traitements sur champ (initialisation, contrôle etc…) détaillé dans un chapitre
dédié.

CHAMP :
Les noms de champs doivent être préfixé par X,YZxxxxxxxx pour le spécifique.

INTITULE :
Intitulé court, normal, long de la table ou intitulé évalué.

COL :
Numéro de colonnes pour le placement des champs dans un bloc.

SAISIE :
Détermine si le champ est saisi, affiché, invisible ou technique.

MODE :
Mode de saisie d’un champ tableau (fiche, tableau ou les 2).

DIM :
Dimension d’un champ dans bloc liste ou nombre de lignes dans bloc tableau.

OBLIG :
Saisie obligatoire du champ (oui, non).

TUNNEL :
Tunnel sur objet lié au type de donnée de ce champ (oui , non ).

LIEN :
Affichage automatique du libellé défini dans la table liée au type de donnée de ce champ.
Valeur par défaut : ancienne méthode. On favorisera plutôt l’initialisation des champs globalement a
l’affichage de la fenêtre
Condition de saisie : ancienne méthode. On favorisera plutôt le grisage et dé-grisage des champs
globalement a l’affichage de la fenêtre

CHAMPS OPTION :
Dépend du type de champ (alphanumérique, numérique, menu local, date)

FORMAT :
Chaîne de formatage (chapitre « type de donnée ») insérable par le menu « Saisie du format » de la
colonne « Options »
L’existence d’informations sur le format est visualisée par le caractère « $ »
 
« Click droit>Sélection zones de fichier » sur le tableau des champs permet de sélectionner les
champs à afficher directement dans la base de données.

VALEUR PAR DEFAUT :


Ne pas utiliser ce champ qui peut être utilisé par le standard ou le vertical, et qui plus est nécessite un
code activité. Utilisez plutôt l’action sur champ INIT (vu dans le chapitre 10).

Copyright © Sage 2009-2010 Page 20


SAFE X3 DEVELOPPEMENT

3.5. CHAMPS SPECIAUX A PARAMETRER

3.5.1.Clob :

Type de donnée : ACB


Objet graphique : texte multi-lignes

Paramètres :
Le nombre de lignes affiché pour le clob.
Le nombre de colonnes affiché pour le clob.
Le type de texte : rtf, txt, indéterminé. Si le type de texte est indéterminé, en saisie du texte,
l’utilisateur pourra choisir entre texte enrichi et texte brut.

A l’exécution, « format » dans la barre de menu pour définir :


La police
Les attributs (gras, italique, souligné)
Le cadrage du texte
Le mode éditeur

3.5.2.Blob :

Type de donnée : ABB


Objet graphique : photo

Paramètres :
Occupation : Lignes et colonnes physiques
Type photo :
Normale
Etirée
Proportionnelle

Menu contextuel :
Sélectionner
Enregistrer

3.5.3.Champ icône

Ce type de champ est stocké dans l’écran en alphanumérique de longueur au moins égale à
3. La valeur du champ détermine l'icône à afficher (0 à 299). Une chaîne vide provoque l'effacement
de l'icône.
Norme : pas d’intitulé sur champ icône
La colonne « Objet graphique » doit être positionnée à icône.

Action sur une icône :


Click sur l’icône si le champ est saisissable.
Pas de menu contextuel.

Les icones utilisables sont renseignées dans le menu :


« Développement>Utilitaires>Recherches>Affichage icônes »

Copyright © Sage 2009-2010 Page 21


SAFE X3 DEVELOPPEMENT

3.5.4.Champs de paramétrage

Certains champs de l’écran sont considérés comme du paramétrage : Aide, Code accès,
Style, Table de contrôle sur l’onglet « Champs ». La mise à jour de ces champs ne nécessite donc pas
de code activité spécifique, ils ne seront pas écrasés par une mise à jour de patch.

Autres champs de paramétrage :


Traitement spécifique
Traitement vertical
Coordonnées écran : nb lignes et nb colonnes

L’aide :
L’aide est créée dans les tables X3 dédiées.
Une fonction pour saisir l’aide sur champ, une autre pour saisir l’aide fonction.
L’aide standard est uniquement dans le dossier mère.
L’aide spécifique sera dans le dossier fille.

3.6. CONTRAINTE TECHNIQUE POUR L’APPEL D’UN BLOC TABLEAU DEROULANTS


Pour fonctionner un tableau déroulant doit contenir une variable de bas de tableau. Celle-ci doit :

Etre déclarée dans la colonne « Paramètre » paramètre sur le bloc tableau de l’écran.
Etre appelé sur la première ligne du bloc tableau dans l’onglet Champ de l’écran.
Ce champ doit être de type ABS.

Ce champ contient le nombre de ligne à afficher du tableau. Il est appelé par convention NBLIG, dans
certains cas, ce nom est obligatoire. Ce champ est de type de donnée ABS. Il est saisissable si le
tableau est saisissable et invisible si le tableau est invisible.

Les informations à renseigner dans blocs sont :


Les options
Le nombre maximum de lignes
La variable de bas de tableau.

Exemple
Ecran SOH4 contenant les lignes de commandes de ventes.

Copyright © Sage 2009-2010 Page 22


SAFE X3 DEVELOPPEMENT

Ecrans

Dictionnaire
Dictionnaire

Source
Sourceécran
écranavec
avecActions
Actionsdécrites
décrites
Répertoire
RépertoireEcran
Ecran
VALIDATION
*.msk
*.msk

W0xxx
W0xxx W1xxx
W1xxx SUBxxx
SUBxxx SPVxxx
SPVxxx SPExxx
SPExxx
par écran généré étiquettes par objet étiquettes étiquettes
généré
généré généré étiquettes étiquettes étiquettes

Copyright © Sage 2009-2010 Safe X3 Développement 10

Traitement W0xxx :
Traitements entièrement générés pour l’import

Traitement W1xxx :
Traitements entièrement générés pour la saisie

Traitement SUBxxx & SPVxxx & SPExxx :


Nous retrouverons dans ces traitements les étiquettes (appels) des sous-programmes, qui
sont générés pour les actions sur champs à la suite de la validation de l’écran. Une fois les étiquettes
des sous programmes générées, les sous programmes sont à écrire. Ces traitements sont détaillés
dans le chapitre « action sur champs ».

xxx est le code de l’objet

Notes

Copyright © Sage 2009-2010 Page 23


SAFE X3 DEVELOPPEMENT

4. OBJETS

4.1. DÉFINITION
Un objet X3 est le lien entre une fenêtre (l’interface graphique) et une table (la base de données).
Ce lien permet la gestion de l’affichage et de l’enregistrement des données par les traitements moteur
(superviseur) en fonction du type de gestion choisis pour l’objet.

4.2. GESTION OBJET SIMPLE

Objets : 4 types de gestion


Gestion Objet simple

Exemple « Données de base>Tiers>Tiers »


90% des objets X3 utilise cette gestion, particulièrement adapté pour affiché les objets
possédants un grand nombre de champs.
Lors de la transaction, seul l’objet courant est modifié.

Liste
ListeGauche
Gauche Objet
Objeten
encours
coursde
degestion
gestion

Listes
Listesdes
des Clef
Clefde
del’enregistrement
l’enregistrementdans
dansl’écran
l’écrand’entête
d’entête
objets
objets
affichables
affichablessur
sur Listes
Listesdes
deschamps
champsregroupés
regroupéspar
paronglets
onglets
sélection
sélection fonctionnels
fonctionnels

Copyright © Sage 2009-2010 Safe X3 Développement 12

L’objet se présente sous la forme :


d’une fenêtre composé d’un entête et de 15 onglets maximum
d’une liste de sélection à gauche (« browser »)

La création se fait par : fichier nouveau.


La duplication se fait par : modification de la clé par une valeur non encore créée dans le fichier
La suppression se fait par : bouton bas d’écran « supprimer »

Copyright © Sage 2009-2010 Page 24


SAFE X3 DEVELOPPEMENT

4.3. GESTION TABLEAU

Objets : 4 types de gestion


Gestion tableau

Exemple « Données de base>Tables communes>Langues »


Tous les enregistrements sont affichés dans un tableau. Ce type de gestion est moins lourd
que le précédent pour afficher un petit nombre d’enregistrements avec peu de champs.
Lors d’une transaction tous les enregistrements sont supprimés pour être recréer. Attention
aux performances.

Objets
Objetsaffichés
affichés

Un
Unenregistrement
enregistrementaffichés
affichéspar
parlignes
lignes

Un
Unchamp
champaffichés
affichéspar
parcolonnes
colonnesdu
dutableaux
tableaux

Copyright © Sage 2009-2010 Safe X3 Développement 13

 
L’objet se présente sous la forme :
D’un seul écran
Pas de liste de sélection à gauche (« browser »)

La création se fait par : insertion ligne.


La suppression se fait par : bouton bas d’écran « supprimer »

Transaction de mise à jour :


Tous les enregistrements sont supprimés pour être recréés
 
Un objet de ce type possède un nombre de ligne maximum fixe prévu dans l’écran d’affichage de
l’objet.
Si on augmente le nombre de lignes d'un bloc tableau pour un objet tableau ou combiné, il est
impératif de revalider l'écran ET l'objet.

Copyright © Sage 2009-2010 Page 25


SAFE X3 DEVELOPPEMENT

4.4. GESTION COMBINE

Objets : 4 types de gestion


Gestion combiné

Exemple « Données de base>Tables tiers>Conditions de paiement »


Permet de gérer un regroupement d’enregistrement en tableaux sur une gestion d’objet
simple.
Lors d’une transaction, tous les enregistrements concernant les N-1 premiers arguments
sont supprimés pour être recréés

Liste
ListeGauche
Gauche Objets
Objetsen
encours
coursde
degestion
gestion

Listes
Listesdes
des Clef
Clefde
del’enregistrement
l’enregistrementdans
dansl’écran
l’écrand’entête
d’entêteet
et
regroupements
regroupements dans un champ du tableau.
dans un champ du tableau.
d’objets
d’objets
affichables
affichablessur
sur Listes
Listesdes
desenregistrement
enregistrementdu
dugroupe
groupedans
dansles
les
sélection
sélection lignes du tableau.
lignes du tableau.

Copyright © Sage 2009-2010 Safe X3 Développement 14

Cette gestion est identique à la gestion tableau pour 1 groupe d’enregistrement.


Le groupe est défini par les n premiers champs de clé -1.

L’objet se présente sous la forme :


D’un écran
Liste de sélection à gauche (« browser »)
N-1 premiers arguments identiques

La création et la suppression d’un groupe se fait par : fichier nouveau et le bouton bas d’écran
« supprimer »

La création et la suppression d’un élément se fait par insertion et suppression ligne


 

Copyright © Sage 2009-2010 Page 26


SAFE X3 DEVELOPPEMENT

4.5. GESTION BROWSER

Objets : 4 types de gestion


Gestion browser

Exemple « Vente>Commandes>Commandes » liste sélection devis


Permet de créer une liste gauche insérable dans n’importe quelle fenêtre objet.
Cette gestion est utilisé pour ajouter une liste gauche supplémentaire à une fenêtre Les deux
liste présente par défaut sont la liste d’affichage de l’objet géré par la fenêtre et la liste des
derniers lus.

Liste
ListeGauche
Gaucheréalisée
réaliséeavec
avecl’objet Objet
l’objet ObjetXXX
XXX
de
detype
typebrowser
browser

Regroupement
Regroupementd’informations Mise
d’informations Miseààjours
joursdes
des
pouvant
pouvant provenird’une
provenir d’uneou
ouplusieurs
plusieurs champs
champs
tables.
tables.

Copyright © Sage 2009-2010 Safe X3 Développement 15

Il s’agit d’une liste gauche

Une liste peut-être représentée par :


Une énumération d’enregistrements provenant d’une ou plusieurs tables, il est alors possible par
traitement de les trier et de les filtrer. Exemple dictionnaire des écrans liste « Utilisations de l’écran »
Permettant de lister les fenêtres utilisant un écran.

Une liste hiérarchisée, regroupant les enregistrements visualisables.


Exemple « Stocks>Inventaire>Inventaire » permettant de regroupe les inventaires par cession
d’inventaires.

Une liste de picking servant à mettre à jour les lignes d’un tableau.
Exemple « Vente>Commandes>Commandes » la liste de picking des devis.

La partie développement est détaillée au chapitre 11.


 

Copyright © Sage 2009-2010 Page 27


SAFE X3 DEVELOPPEMENT

4.6. DICTIONNAIRE DES OBJETS

4.6.1.Résumé

Les objets sont saisis dans le menu:


« Développement>Dictionnaire traitements>Objets »

Onglet général : type de gestion, menu permettant de lancer l’objet.

Onglet sélection : sélection possible via l’appel d’un type de données, construction de
la liste gauche lié à la table.

Onglet environnement : ouverture de table de travails, ou d’écrans pour les modes


Imports/Export et Web Services.

Onglet vues : ouvertures de vues de travail.

Certains champs sont considérés comme du paramétrage, il n’est alors pas


nécessaire d’indiqué de code activité après leurs modifications, car ils ne seront
jamais modifiés par un patch standard. Ces champs peuvent être modifiés dans le
menu : « Paramétrage>Paramètres généraux>Personnalisation objets »

4.6.2.Onglet Général

Code objet :
Axxx (objet superviseur) / X,Y,Zxxx (objet spécifique)

Table liée :
Table gérée en automatique par l’objet, Les informations de cette table seront alors affichés et
mis à jour automatiquement.

Intitulé param. :
Texte qui dans le cas ou l’objet géré est identifié par 1 clé à 2 composantes, la 1ère
composante devient un paramètre pour la gestion objet.

Zone site :
Identification du champ de la table contenant le site, permet des contrôles automatiques sur
les habilitations.

Zone code accès :


Renseignement du code d’accès, permet des contrôles automatiques sur les habilitations /
code accès, enregistrement modifiable (oui- non), visualisable (oui- non).

Menu standard :
Menu dans lequel la fonction sera présente pour l’utilisateur ADMIN.

Rang dans menu :


Rang ou apparaîtra la fonction dans le menu ci-dessus.

Impression & liste :

Copyright © Sage 2009-2010 Page 28


SAFE X3 DEVELOPPEMENT

Les 2 états Crystal report ou code impressions, lancées par le menu « Fichier>Impression ou
liste ».

4.6.3.Onglet Sélection

Options de sélection :
Déclaration de filtres utilisables ou non lors de l’appel à cet objet.
Code spécifique :
Toutes les lettres minuscules.

Ecran de sélection :
1- paramétrage de la liste gauche et des écrans de sélection et sélection avancée
index : si non renseigné 1er index ascendant
option de sélection : application d’options de sélection sur la (f. de sélection) de l’objet *
liste hiérarchisée : oui / non ( l. gauche)
nb caractères : pris en compte pour le début de recherche (f. de sélection)
champs : correspondant à la clé primaire (l. gauche & f. de sélection)

2- contenu de la liste gauche et des écrans de sélection et sélection avancée


Table/Zone : permet de choisir un champ d’une table référencée dans l’objet. On ne peut pas saisir un
champ avec indice. Le système prend le 1er poste.
expression/type/intitulé : permet de construire un élément.

4.6.4.Onglet environnement

Tables :
Permet d’ouvrir des tables automatiquement à l’exécution de l’objet, ces tables sont alors
utilisables dans les traitements.

Clé de lien :
Clé de parcours utilisé, par défaut il s’agit du premier index de la table. Si le champ est
renseigné alors la clef doit être sans homonyme.

Expression de lien :
Lien entre la table principale et la table définie ici. Utilisé pour les champs de la liste de
gauche. Utilisé pour la recherche des statistiques liées à l’objet.
L’ouverture et la fermeture des tables sont générée dans le traitement WOxxx. ( xxx = code objet )

Tableau des IMPORT :


Ce tableau permet à la gestion des imports export d’importé les données renseignés dans es
écrans ne figurant pas sur la fenêtre principal lors de la simulation de saisie. (Voir cours sur les
Imports/Exports)
Pour chaque table de l’objet, on précise l’écran mis à jour par transclasse.

Tableau écrans complémentaires :


Ouverture des écrans ne faisant pas partis de la fenêtre principale pour la simulation de saisie
d’un web service. (Voir cours sur les Web services)

4.6.5.Onglet Vues

Il permet de renseigner jusqu’à 10 vues.


Stockage de ces informations dans la table AOBJET.
L’ouverture et fermeture des vues sont générées dans le traitement WOXXX, comme pour les tables.

Si l’abréviation n’est pas renseignée, le vue est ouverte sous son abréviation dictionnaire.
Le nom et l’abréviation d’une table ou d’une vue doit être unique sur l’ensemble ( table & vue )

Copyright © Sage 2009-2010 Page 29


SAFE X3 DEVELOPPEMENT

4.6.6.Champs de paramétrage

Certains champs de l’objet sont maintenant considérés comme du paramétrage.

La mise à jour de ces champs ne nécessite donc pas de code activité spécifique (ils ne seront pas
écrasés).

La mise à jour peut s’effectuer directement en gestion d’objet, ou par la fonction du menu
« Paramétrage / Paramètres généraux / Personnalisation objets ».

Notes

Copyright © Sage 2009-2010 Page 30


SAFE X3 DEVELOPPEMENT

4.7. VALIDATION D’UN OBJET

Objets

Validation d’un objet


Dictionnaire
Dictionnaire Dictionnaire
Dictionnaire
objet
objet fonction
fonction
xxx
xxx::code
codeobjet
objet GESxxx
GESxxx

VALIDATION

WOxxx
WOxxx SUBxxx
SUBxxx SPVxxx
SPVxxx SPExxx
SPExxx

généré
généré Étiquette
Étiquette Étiquette
Étiquette Étiquette
Étiquette
$ACTION
$ACTION $ACTION
$ACTION $ACTION
$ACTION

Copyright © Sage 2009-2010 Safe X3 Développement 16

Traitement WOxxx :
Traitement entièrement généré

Traitement SUBxxx & SPVxxx & SPExxx :


Ces traitements contiennent les actions sur modèle géré pour l’objet (chapitre « modèle
objet »).

xxx étant impérativement le code objet

Validation de l’objet :
Elle entraîne la validation de toutes les fenêtres s’y rapportant.

Bouton Suppression :
Supprime la description dans le dico, le traitement WOxxx, la fonction. Un objet peut être
supprimé si aucune fenêtre ne s’y rattache.

Copyright © Sage 2009-2010 Page 31


SAFE X3 DEVELOPPEMENT

5. FENETRE

5.1. DEFINITION

Fenêtres

Définition
La fenêtre contient les écrans à afficher et l’objet faisant référence à la table principal.

Fenêtre
Fenêtre

Ecrans Objet Table


Traitement standard SUBxxx Traitement standard SUBxxx
Traitement vertical SPVxxx Traitement vertical SPVxxx
Traitement spécifique SPExxx Traitement spécifique SPExxx

++ Boutons
Boutons/ /Menus
Menus Objets browser

Copyright © Sage 2009-2010 Safe X3 Développement 18

Fenêtre objet :
Elle se nomme Oxxx ( xxx=code objet )

Fenêtre objet avec Transactions :


S’il y a des transactions de saisie pour un objet, les écrans sont à générés ainsi que la
fenêtre. Celle-ci se nomme WOxxxyyy ( xxx = objet & yyy = transaction de saisie)

Validation globale (par le menu « Validation ») :


Permet de valider la fenêtre, les écrans, l’objet liés à la fenêtre.

Copyright © Sage 2009-2010 Page 32


SAFE X3 DEVELOPPEMENT

5.2. RESUME
Le dictionnaire des fenêtres est dans le menu :
« Développement>Dictionnaire traitements>Fenêtres »

Onglet Ecrans
Déclaration des écrans
Définition du type de fenêtre, objet pour la gestion d’objet.

Onglet Boutons/menus
Ajout des boutons bas d’écran et des menus spécifiques

Onglet Boutons prédéfinis


Ajout ou suppression des boutons et menus standards.

Onglet Browser
Ajout des listes gauches spécifiques, exemple fenêtre OSOH (gestion des
commandes)

5.3. ONGLET ECRANS


Type fenêtre :
Objet, consultation, fenêtre critère consultation, divers
Affichage :
Plein écran, boite dialogue, boite de message
Objet :
Renseigné, si la fenêtre est de type objet.
Transaction :
Code de la transaction, pour fenêtres issues des transactions de saisie.
Consultation :
À renseigner, si fenêtre de type consultation, ou critère de consultation.

Écran entête :
Obligatoire, si on a plusieurs onglets, celui-ci sera alors affiché en haut de la fenêtre.

Onglets :
Rang : permet au spécifique d’ajouter des onglets en fin de liste, mais de l’afficher au rang
indiqué.
Visible : si invisible, la classe [M] est présente.
Code activité : si inactif, la classe [M] est absente.

5.4. ONGLET BOUTONS/MENUS


Type :
Bouton, menu, ou ligne menu

Codes boutons et menus :


Bouton & menu ( 2 niveaux de menus possibles )
ligne menu
Les lettres minuscules sont réservés au spécifique.
Pour le standard, il est conseillé d'utiliser les chiffres pour les boutons, les lettres majuscules pour les
menus.

gestion :
Validant : contrôles effectués avant exécution du bouton menu.
Non validant : pas de contrôle. Lignes menu sont toutes « non validant ».

Copyright © Sage 2009-2010 Page 33


SAFE X3 DEVELOPPEMENT

Actions :
Action dictionnaire : le traitement exécuté est celui défini dans l’action qui lance dans la fenêtre.
STD ou SPE : pas d’action dictionnaire. ce bouton n’ouvre pas de fenêtre.
Æ le traitement exécuté est celui de l’action modèle liée au bouton (ex EXEBOUT pour la gestion
objet)
L’action dictionnaire s’exécute avant l’action de l’objet.

boutons + menus + éléments menu : le total ne doit pas dépasser 60.

5.5. ONGLET BOUTONS PREDEFINIS


Flag oui/non :
Permet de rendre présent ou pas le bouton en bas d’écran.
Raccourcis créés automatiquement sur les boutons et les menus en fonction des caractères
disponibles de leur texte.

Action :
Facultatif
Action dictionnaire : lorsqu’on veut ouvrir une fenêtre

5.6. ONGLET BROWSER


derniers lus : présence ou pas, puis placement en 1ère position ou pas

Ensemble des listes de gauches :


pour les objets simples et combinés la liste standard est identifiée par le code objet courant
listes gauche supplémentaires ( objets browser )
au total, 9 browsers possibles ( dont liste standard et derniers lus )

Définition des listes de gauches :


Type liste : simple, hiérarchique
picking ex : SDH
récursive ex : BOD
picking simple
Browser : chargement de la fiche, par le superviseur, suite au click sur élément de la liste gauche
(pour liste simple ou hiérarchique uniquement)
précharg : nombre d’éléments chargés quand on rentre dans l’objet (aucun, partiel, tous)
partiel = GNBGAUCHE
Abr : abréviation de la table exploitée par le browser.
Rang : permet au spécifique d’ajouter un browser en fin de liste mais de le placer par son rang.

expression lien : à renseigner pour les listes récursives, permet le chargement de la clé du sous-
niveau

Attention :
Lorsqu'on modifie le numéro de menu local sur un champ d'écran, ou lorsqu'on modifie le menu local
lui-même par l'ajout ou la modification d'éléments, il faut impérativement patcher l'écran ET la fenêtre.
En effet, la définition du menu local pour un champ est stockée dans la description de la fenêtre pour
le mode web.

Copyright © Sage 2009-2010 Page 34


SAFE X3 DEVELOPPEMENT

5.7. EXERCICE : GESTION DES ARTICLES

5.7.1.Objectif

Développer une gestion des articles sous forme tableau.

5.7.2.Marche à suivre

• Vous avez à votre disposition le code activité spécifique YSO.


• Création du menu MCOU dans le menu général GENE du profil ADMIN.

Ces 2 éléments seront utilisés dans tous les exercices.

• Création de la table YITEMX.


• Création de l’écran YIX1.
• Création de l’objet YIX.
• Création de la fenêtre OYIX.

Pour ce faire, utiliser les descriptions ci-dessous.

Table des articles

Code table : YITEMX


Abréviation : YIX
Module : Tronc commun

Zone Type de la zone Longueur Dimension Intitulé


YITMREF Alphanumérique 20 1 Article
YITMDES Alphanumérique 30 1 Intitulé
YITMSHO Alphanumérique 10 1 Intitulé court
YUOM UOM 1 Unité
YORDNOT Décimal 13.2 1 Prix de base
YVATRAT Décimal 3.2 1 Taux de taxe
Champ particulier 1 Numéro export
Champ particulier 1 Opérateur création
Champ particulier 1 Date création
Champ particulier 1 Opérateur de modification
Champ particulier 1 Date de modification

Index Descripteur de l’index Homonymes


YIX0 YITMREF Non

Copyright © Sage 2009-2010 Page 35


SAFE X3 DEVELOPPEMENT

YUOM :

Le renseignement du type de donnée UOM sur ce champ permet :

• De rendre la suppression impossible du code unité de la table des unités TABUNIT, s’il est
présent dans cette table des articles.
• De bénéficier des automatismes du superviseur pour l’objet des unités. (appel d’option,
tunnel, contrôle d’existence) Tous ces points seront détaillés dans le chapitre 11 sur les types
de données.
• De filtrer les enregistrements utilisables en ne permettant que la saisie des unités de
conditionnement par exemple.

Ecran des articles

Code écran : YIX1


Abréviation : YIX1
Traitements associés: SUBYIX standard
SPEYIX spécifique
Taille : Plein écran (obligatoire pour la gestion d’un objet tableau)

Ce qui est autorisé : Insertion ligne


Reprise ligne (insertion ligne en fin de liste)
Ligne suivante ou précédente en mode saisie

Champ Saisie Oblig. Particularités


YITMREF S
YITMDES S Oui
YITMSHO S
YUOM S Type de données UOM
Autorisation du tunnel
YORDNOT S Positif
YVATRAT S Positif

(Saisie : S Saisie / A Affiché / I Invisible)

La caractéristique des champs de l’écran est identique à ceux de la table.


L’écran est à construire de telle manière qu’on ait une ligne par fiche article.

Copyright © Sage 2009-2010 Page 36


SAFE X3 DEVELOPPEMENT

Objet des articles

Code objet : YIX


Module : Tronc commun
Menu standard : MCOU
Rang dans menu : 10
Ecran de sélection : Ascendant
Article / Intitulé / Intitulé court

L’objet est à construire de telle manière qu’on ait une ligne par fiche article.

Fenêtres des articles

Code fenêtre : OYIX


Module : Tronc commun
Type fenêtre : Objet
Affichage : plein écran
Objet : YIX

5.7.3.A vérifier

• Création, modification, suppression


• Dans la gestion des unités, interdiction de supprimer un code unité dans un article. Pour
accéder à la gestion des unités passez par tunnel sur le champ.
• Vérifier les possibilités du menu contextuel sur le champ « unité ».

5.7.4.Etape n° 2

Ajouter un champ et l’initialiser sur les enregistrements déjà existants.


Utiliser des styles conditionnels pour affecter des couleurs.

5.7.5.Marche à suivre

Ajout d’un champ permettant de préciser si l’article est actif ou pas.


Revalidation de votre table avec initialisation de votre champ par traitement d’init pour que tous les
articles soient actifs.
Ajout de ce même champ à l’écran.

Dans un deuxième temps, coloriser la « Référence Article », lorsque l’article est actif en utilisant les
styles conditionnels.

Utiliser les fonctions présentes dans le menu :« Paramétrage > Paramètres généraux >
Personnalisation > Ecrans » :

• Styles conditionnels
• Affectation style conditionnel

Remarque : nolign-1 permet d’indicer un champ d’un bloc tableau.

Copyright © Sage 2009-2010 Page 37


SAFE X3 DEVELOPPEMENT

5.7.6.A vérifier

Vérifier la bonne initialisation de votre nouveau champ.


Vérifier que les lignes d’articles actifs sont bien colorisées.
Noter que l’automatisme est bien pris en compte quand on rentre dans la fonction mais que celui-ci
n’est pas automatique à chaque modification du champ ENAFLG.
Par la suite, on ajoutera une action pour prendre en compte cet automatisme. Exercice annexe N°A.

5.7.7.Etape n° 3

Création d’un patch pour sauvegarder les éléments crées, ou les installer sur un autre dossier.
Créer votre patch par le menu : Développement / Utilitaires / Patch / Création automatique de patch,
En sélectionnant l’ensemble des éléments ayant le code activité YSO.

Notes :

Copyright © Sage 2009-2010 Page 38


SAFE X3 DEVELOPPEMENT

Copyright © Sage 2009-2010 Page 39


SAFE X3 DEVELOPPEMENT

6. MENUS LOCAUX

6.1. DÉFINITION
Les menus locaux se trouvent dans le menu :
« Développement>Dictionnaire données>Tables>Menus locaux – Messages »

Définition
Définit une liste finie de valeurs saisissables pour un champ. Exemple, le menu local
1 contenant les libellés « oui » et « non ».
Les menus locaux étant souvent utilisé en développement ceux-ci ne sont pas
modifiables.
Les libellés peuvent être traduits.
A la création le numéro du menu local doit respecter les plages données ci-dessous.

Messages :
Vertical 160 - 169
5000 – 5199
Spécifique 6000 – 6199

Menus locaux :
Vertical 1000 – 1999
5200 – 5999
Spécifique 6200 – 6999

Flag menu local :


Permet de faire la distinction entre les menus locaux et messages

Appel d’un message :


Fonction : Mess(élément, chapitre, 1)

Recherche d’un message :


Menu : « Développement/utilitaires/Recherches/Message » 

Modifiable :
Permet à l’utilisateur de modifier ce menu local par le menu de paramétrage.
Colonne « Code » :
Sert au transcodage en import / export

Principe :
code + libellé : stockés dans la table APLSTD
description : stockés dans la table AMENLOC
Le code est stocké dans le champ de type de donnée M ou MM d’une table fonctionnelle.

Copyright © Sage 2009-2010 Page 40


SAFE X3 DEVELOPPEMENT

7. TABLES DIVERSES

7.1. DÉFINITION
Les tables diverses sont crées dans le menu :
« Développement>Dictionnaire données>Tables diverses>Définition »

Permet de créer une table contenant au maximum 7 champs.


Intéressant pour créer de petites tables de travail sans alourdir le dictionnaire des tables.
A l’inverse des menus locaux, les tables diverses sont paramétrables par défaut par
l’utilisateur.
A la création le numéro de la table diverse doit respecter les plages données ci-dessous.

Vertical 1000 – 1999


Spécifique 6000 – 6999

Principe :
Description : est stockée dans la table ATABTAB.
Données : sont stockées dans la table ATABDIV.
Sa clé est composée par : le numéro de table + le code
Le code peut contenir jusqu’à 20 caractère depuis la V6
Les données sont :
Une désignation longue
Une désignation courte
2 champs alpha (facultatifs)
2 champs numériques (facultatifs)
Filtre sur la société (GSOCIETE) et sur la législation (GCURLEG) (facultatif)
Table de dépendance (pour lier une table à une autre)

Modifiable :
Par défaut une table diverse est modifiable par la fonction GESADI, mais elle pourrait ne pas l’être.

Longueur modifiable (pour élément clé) :


Longueur code peut être modifiable par fonction du paramétrage
Longueur code peut être différente d’une table à une autre
Longueur doit être inférieure ou égale à la valeur contenue dans le dossier mère X3

7.2. SAISIE DES DONNEES


Une fois la définition de la table diverse créée, la table diverse doit être renseignée.
Elle est à renseigner dans le menu :
« Développement>Dictionnaire données>Tables diverses>Données »

Affectation d’un champ obligatoire contrôlé par cette table par l’action d’init du champ (chapitre 9 sur
les actions sur champs).

Copyright © Sage 2009-2010 Page 41


SAFE X3 DEVELOPPEMENT

7.3. GESTION DE TABLE DE DEPENDANCE


Cette gestion permet de gérer une hiérarchisation entre tables divers.
Renseignement dans la définition de la table fille, dans le champ « table de dépendance ». Exemple
table N°21 « Stat. 2 article ».
Renseignement de l’élément mère pour tous les éléments fils dans la colonne « dépendance » de la
fonction de saisie des données.
Paramétrage sur l’écran appelant la table diverse (clique droit sue le type de données ADI, puis
renseignement du numéro de table diverse fille et du champ contenant le numéro de la table mère.)
Exemple écran IMT1 pour le champ TSICOD statistique.

Exemple de création d’une table diverse avec dépendance :


On crée une table mère 500, puis une table fille 501.

Saisie des enregistrements de la table fille


Pour chaque code, on précise à quel élément de la table mère il est lié.

Paramétrage du champ sur l’écran


Sur un code d’une table fille, on précise 2 paramètres :
ADI, le numéro de la table diverse fille (par le dico, le superviseur en déduit le n° table mère)
TABDIV, le champ contenant le numéro de la table mère.

Copyright © Sage 2009-2010 Page 42


SAFE X3 DEVELOPPEMENT

8. VUES

8.1. DEFINITION
Les vues sont crées dans le menu : « Développement>Dictionnaire de données>Vues »

Une vue dans une base de données est une synthèse d'une requête d'interrogation de la
base. On peut la voir comme une table virtuelle, définie par une requête.
Accessible par Crystal
Accessible dans l’éditeur de formule
Accessible en programmation (en lecture seulement)
Certaine fonctions SQL sont maintenant accessible par X3 via la vue (GROUP BY,
UNION)

Stockage des informations des vues dans un dictionnaire


– La requête SQL
– Correspondance des champs utilisés dans la requête avec une ou plusieurs
tables X3 ou des variables.
– Les clefs de parcours utilisées.

8.2. PARAMETRAGE DE LA VUE

8.2.1.Résumé

> Onglet Requête


− Création de la requête par instructions SQL. Attention, la syntaxe dépend de la base
de données.
− Ajout de fonctions et de variables X3 possible par les caractère %.
> Onglet Champs
− Correspondance entre les champs X3 et les champs de la base de données.
> Onglet Clefs
− Défini la clef de parcours de la vue.

Remarque : une vue ne peut pas porter le même nom qu’une table.

8.2.2.Onglet requête

Des formules Adonix peuvent figurer entre % %. Ces formules sont évaluées au moment de la
validation de la vue.
Par exemple, des variables globales peuvent contenir, le nom d’un dossier (vue d’une table X3 à partir
d’un autre produit).
GDOSX3 : contient le dossier mère pour tout produit
GDOSCPT : contient le dossier X3.
Des constantes peuvent êtres utilisées. Les encadrer par le caractère ‘.
Des variables globales peuvent contenir, par exemple, le nom d’un dossier externe (vue d’une table
X3 à partir d’un autre produit).
Les lignes commençant par le caractère « # » sont considérées comme des commentaires et ne sont
pas transmises à la base.
Normes : Les commentaires sont à écrire en anglais.
Utiliser une formule pour les champs dimensionnés ou activés par code activité.

Exemple :
# Champ Lien de dimension 1, 2 ou 3
Select CLENUM1_0,CLENUM2_0, LIEN_0
# si code activité de dimension 2 ou 3
%string$(find(func AFNC.ACTIV(« XXX »),2,3)<>0,«, LIEN_1»)%

Copyright © Sage 2009-2010 Page 43


SAFE X3 DEVELOPPEMENT

# si code activité de dimension 3


%string$(find(func AFNC.ACTIV(« XXX »),3)<>0,«, LIEN_2»)%
From TABLETEST

Requête et base de donnée :


Doit être écrite dans le langage de la base de données courante du dossier.
Pour toute vue standard livrée, la requête doit être écrite pour les 2 bases de données (menu "Option /
Base")
Order by inutile car annulé et remplacé par celui du For ou du Read (implicite si non renseigné)

Validation de la vue
Le fichier *.viw est créé avec le script adapté à la base de données du dossier courant
Contrôle syntaxique

8.2.3.Onglet champs

Permet de constituer la classe [F]


Il doit y avoir compatibilité entre la requête et la description des champs (nombre, ordre et type
interne), ce contrôle est effectué lors de la validation de la vue. Les champs de type clob et blob sont
autorisés. Champs « textes traduits » ne sont pas autorisés. (Ils n’existent pas dans la base)

Aide à la création
Fenêtre permettant la saisie d’une table et la sélection d’un ou plusieurs champs associés

Aide sur nom de champ


Tunnel sur codification
Outil permettant la signification du champ

8.2.4.Onglet Clés

Pas de création d’index,


Génération d’un « order by » dans la requête (attention aux performances)

Performances
Table sans trop d’enregistrements, ou avoir une clause « Where » pertinente
 

Copyright © Sage 2009-2010 Page 44


SAFE X3 DEVELOPPEMENT

8.3. STRUCTURE GENEREE EN VALIDATION


Vue dans la base par l’instruction « create view »
Dans répertoire FIL
Un fichier *.srf contenant la liste des champs (flag « #V » en 3ème ligne)
Un fichier *.fde généré par valfil -n
Un fichier *.viw contenant la description de la requête

Vues du superviseur :
AVIEWTAB : union des tables et des vues. Utilisée dans l’éditeur de formules
AVVTEXTRA : produit table langue et texte traduit
AVWTEXTRA : jointure externe entre la vue AVVTEXTRA et la table ATEXTRA

Vues avec Crystal Report :


Accessible en conception d’état (si autorisé dans fichier/option/base de données)
Utilisables comme des tables (Sélection, lien, et placement champ)

Validation d’une table ou d’une vue utilisée dans une vue :


Sur une base Oracle, la vue est « cassée » suite à validation forcée table ou vue utilisée dans sa
requête. Une validation est forcée par choix utilisateur ou automatiquement lorsqu’il y a changement
de structure. Donc, suite à validation table ou vue le superviseur relance la validation des vues
« cassées » sur dossier courant et historisé. Revalider manuellement les vues sur autres dossier

Nommage des vues


Validation dans l’ordre alphabétique du nom des vues. Une vue appelée doit être validée avant la vue
principale. Son nom doit être antérieur à celui de la vue principale (suivant l’ordre alphabétique).

Dossier historisé
Les vues du dossier principal sont crées automatiquement dans le dossier historisé à la création du
dossier historisé, et à la validation des vues.

8.3.1.Programmer avec des vues

Une vue s’utilise globalement comme une table, avec les restrictions suivantes :
Utilisable en lecture uniquement
Ne peut pas être précisée dans les champs « tables » des dictionnaires
N’intervient aujourd’hui que dans le dictionnaire des objets.

Instructions utilisables pour les vues


(local) file
close (local) file
Default file
Filter [x] Where … Order by …
For [x]… Next
Read [x] = (ou > < )
Read [x] first (ou last)
Read [x] next (ou prev) si clé sans homonyme
Columns
Link

Filter :
la clause where se cumule avec celle de la requête,
la clause order by inhibe celle contenue dans la requête.

Règles d’écriture :
Abréviation unique pour la classe [F] des tables et vues

Copyright © Sage 2009-2010 Page 45


SAFE X3 DEVELOPPEMENT

Notes

Copyright © Sage 2009-2010 Page 46


SAFE X3 DEVELOPPEMENT

9. CODES ACTIVITÉ

9.1. DEFINITION
Les codes activités sont saisis dans le menu :
« Développement>Dictionnaire données>Ouverture au paramétrage>Codes activité »

− Quelques soit le type de code activité, il s’agit d’un flag pouvant être positionné sur les
éléments catalogués dans les dictionnaires. Ces flags permettent d’activer ou de
désactiver ces éléments, de les dimensionner et de les protéger des éventuelles
évolutions non voulues.

− Il existe 4 types de codes activités :


> Les codes activités fonctionnels standards
> Les codes activités de dimensionnement
> Les codes activités de localisation
> Les codes activités fonctionnels spécifiques

9.2. CODES ACTIVITES FONCTIONNELS STANDARDS


Flag actif :
Rend actif un élément ou pas (saisi en validation dossier)

Rang :
Rang d’apparition en validation dossier

Type :
Catégorie de codes activité, fonctionnel implique que le code activité peut être actif ou inactif.

Dépendance :
Dépendance du code activité par rapport à celui précisé sur cette fiche.
Ce code activité n’apparaît pas en validation de dossier
Il est déduit de celui précisé sur cette fiche.
type de dépendance : dimensionnement, inverse, formule

9.3. CODES ACTIVITES DE DIMENSIONNEMENT


• Dimension mini : les états et traitements Adonix fonctionnent
• Dimension maxi : traitements Adonix fonctionnent ( il faut adapter les états )
• Dimension écran : saisissable en validation dossier entre 0 et dim. maxi
Æ La table sera dimensionnée par la plus grande des 2 : dim écran et dim mini
Dépendance :
Code non saisissable déduit d’un autre code activité
• Inverse :
code actif si le code de référence est inactif
• dimension :
code XXn actif si le code de référence est au moins dimensionné à n
n = 1 à 9 ( puis A à Z si nécessaire )
• formule :
code actif en fonction d’une condition sur un autre code.
Exemple : SLO
Permet l’ajout de spécifique sur du standard ayant déjà un code activité

Copyright © Sage 2009-2010 Page 47


SAFE X3 DEVELOPPEMENT

9.4. CODES ACTIVITES DE LOCALISATION


Code activité peut être actif ou inactif, ce type de code activité ne doit être utilisé que sur des
éléments ayant un rapport avec les localisations.

9.5. CODE ACTIVITES FONCTIONNELS SPECIFIQUES


Code activité peut être actif ou inactif, il peut être dimensionné et permet d’identifier un
vertical.
Ce type de code activité devra être systématiquement utilisé pour protéger les
développements spécifiques des intégrations de patchs standards.

Pour tester la présence d’un élément dés activable par code activité :

• Vérifier le positionnement du code activité (la meilleure solution est d'avoir une variable
globale déclarée dans le dictionnaire des variables et alimentée par le WWAGLOBxxx, sinon
on utilise la fonction ACTIV,)
• ou filinfo(filpath("FIL",table,"fde",nomap),0)>0 (pour savoir si une table existe).

Pour les champs de table

• Rien à faire, car les champs existent systématiquement dans la table, pour Crystal Report.

Pour les champs d'écran

• Tester l'existence d'un champ par la fonction Dim

9.6. PARTICULARITE DE LA DESACTIVATION PAR CODE ACTIVITE

Champ table toujours présent :

• ce champ est généré dans la base de données.


• En effet, les états Crystal s'appuyant sur la définition de nos tables doivent fonctionner que ce
champ soit actif ou inactif.

Type de données de base :

Pour ne pas avoir le risque d'avoir un type de donnée associé inexistant, le type de donnée est
remplacé par un type de données "de base" correpondant au type interne du type de données initial :

• C pour numérique,
• DCB pour nombre décimaux
• D pour Date
• A pour tout le reste. ces champs de type A seront sur 1 caractère.

Dimension du champ Table :

Pour un champ dimensionné avec code activité inactif, sa dimension champ de table sera 1.

Développement :

Copyright © Sage 2009-2010 Page 48


SAFE X3 DEVELOPPEMENT

• Un champ soumis à un code activité dans une table, est toujours présent avec une dimension
à 1.
• Pour un champ dimensionné avec un code activité inactif, il faut impérativement tester le code
activité.
• Utiliser, pour cela, la fonction ACTIV du traitement AFNC.

Erreurs à éviter sur code activité, car peut entraîner des pertes de données :

• un code activité absent à tort, sur un champ spécifique : le champ sera supprimé de la base
de données
• un code activité inactif à tort, sur champ alpha : le champ sera réduit à 1 seul caractère dans
la base de données
• un code activité inactif à tort, sur champ dimensionné : le champ sera réduit à 1 seule
occurrence dans la base de données.

Notes

Copyright © Sage 2009-2010 Page 49


SAFE X3 DEVELOPPEMENT

10. ACTIONS CHAMPS

Action champ

Types de donnée
Table
M. Locaux
T. Diverses
Codes activités
Objet

Types de donnée
Fenêtre Écrans
M. Locaux
Unique T. Diverses
Codes activités
Action : GOBJET Traitement standard SUBxxx
Traitement superviseur GOBJET
Générée Traitement vertical SPVxxx
Traitement spécifique SPExxx
Traitement standard SUBxxx
Traitement vertical SPVxxx
Fonction : GESxxx Traitement spécifique SPExxx

Copyright © Sage 2009-2010 Safe X3 Développement 25

10.1. DEFINITION
Les actions sur champs permettent de renseigner des contrôles, des affichages ou d’initialiser d’autres
champs.
Exemple : Afficher les informations du client une fois que celui-ci a été saisi sur une commande,
contrôler la saisi d’un montant etc…
 

Copyright © Sage 2009-2010 Page 50


SAFE X3 DEVELOPPEMENT

10.2. APPEL DES ACTIONS SUR CHAMP

Action champ

Ecran
EcranOnglet
OngletChamps
Champs

Action
Actionsur
sur Paramètres
Paramètres
Champ1
Champ1 champs
champs
Champ2
Champ2 Contrôles,
Contrôles, Objets,
Objets,
Champ3 init,
init,...
... bornes,…
bornes,…
Champ3

...... ...
...

Développement>Dictionnaire traitements>Ecrans

Copyright © Sage 2009-2010 Safe X3 Développement 26

Type d’action :
On peut saisir plusieurs actions de même type, même pour « sélection » et « bouton ».

Code d’action :
STD : le sous-pro est à écrire dans le traitement standard SUBxxx
SPV : le sous-pro est à écrire dans le traitement vertical SPVxxx
SPE : le sous-pro est à écrire dans le traitement spécifique SPExxx
autre : l’action peut être cataloguée dans le dictionnaire des actions.
nommée Xxxxxx, Yxxxxxx, Zxxxxx pour le spécifique (ne nécessite pas de code activité)
Dans ce cas, le traitement & les sous-programmes appelés sont définis dans le dictionnaire.

Exécution :
Interactive / Import-Web services / Toujours

Désactivation :
Aucune / Standard / Vertical / Toutes

Paramètres :
Permet de saisir 1 valeur pour chaque paramètre des actions du dictionnaire.

A propos du traitement :
La suppression d’une action dans le dictionnaire des écrans n’entraîne pas de suppression dans les
traitements SUBxxx, SPVxxx ou SPExxx

Copyright © Sage 2009-2010 Page 51


SAFE X3 DEVELOPPEMENT

Action champ

Code action
placée sur un champ
Traitement nommé sur écran

STD SUBxxx

SPV SPVxxx

SPE SPExxx

action Traitement capitalisé

Copyright © Sage 2009-2010 Safe X3 Développement 27

Ordre d’exécution est SpécifiqueÎ VerticalÎStandard


 

Copyright © Sage 2009-2010 Page 52


SAFE X3 DEVELOPPEMENT

Action champ

Sous-programmes
Dictionnaire
Dictionnaireécran
écran

Pour
Pour11Action
Actioncontrôle
contrôleSPE
SPEdécrite
décrite
Traitement Généré

W1xxxxxxx
W1xxxxxxx

VALIDATION Call
CallC_champ
C_champ(VALEUR)
(VALEUR)from
fromSPExxx
SPExxx

Traitement à compléter

SPExxxxxxx
SPExxxxxxx

Subprog
SubprogC_champ(VALEUR)
C_champ(VALEUR)
Variable
VariableChar
CharValeur()
Valeur()
#VALEUR<>[M]champ
#VALEUR<>[M]champ
End
End
Copyright © Sage 2009-2010 Safe X3 Développement 28

Sous-programme appelé d’une action champ STD, SPV ou SPE :


Sous-programme de l’action sur champ
Nom normalisé : xx_yyyyyyyy (xx : type d’action, yyyyyyyy : nom du champ)
Appelé par Call du traitement généré de l’écran
Paramètre VALEUR contient la nouvelle valeur du champ. [M:XXX]champ = ancienne valeur
Type de la variable VALEUR dépend du type du champ courant (ex: Char, Date)
Les variables des classes [F],[M],[V] sont disponibles
Les variables locales du traitement principal ne sont pas disponibles
 

Copyright © Sage 2009-2010 Page 53


SAFE X3 DEVELOPPEMENT

10.3. LISTE DES ACTIONS SUR CHAMPS

Action champ

Type action Contexte d ’appel & emploi Etiquette

Avant_zone avant l’affichage de la zone AV_zone


ex : définir le format
conditionner l’affichage
affecter une couleur (V130)

Init initialisation de la zone D_zone


en création seulement
Affichage
Avant_saisie avant la saisie de la zone AS_zone
ex : désactiver éléments menu local
conditionner la saisie

Copyright © Sage 2009-2010 Safe X3 Développement 29

Avant_zone :
Eviter l’affichage et la saisie d’un champ : [S]mkstat = 2
Idem + réinitialiser ce champ : [S]mkstat = 1
Attribuer une couleur dans un champ de bloc tableau
(option c sur le champ) [S]pcolor = [V]GCOUL(n) (n=0 à 3)

Init :
Initialisation d’un champ
Ex : [L]VALEUR = « toto »
Attention, dans un tableau, l’init est seulement actif à la création de ce tableau.

Avant_saisie :
Pour éviter la saisie d’un champ : [S]mkstat = 2
Pour effacer puis éviter la saisie d’un champ : [S]mkstat = 1
Pour affecter une nouvelle valeur à un champ : [S]mkstat = 3

Pour supprimer des valeurs d’un menu local. GMENLOC(n)=1 (n=1 à 123)
Utilisez un type de donnée MM.

Copyright © Sage 2009-2010 Page 54


SAFE X3 DEVELOPPEMENT

Action champ

Type action Contexte d’appel & emploi Etiquette


Saisie
Contrôle après la saisie d’une zone C_zone
ex : Contrôler la validité du champ
Afficher un message d’erreur

Après_zone après passage sur la zone AP_zone


ex : affecter et afficher des zones
Champ valide
Griser - Dégriser des zones

Après_modif après la saisie, AM_zone


si la zone est modifiée et valide Valeur modifiée
ex : idem après_zone

[M]CHAMP = [L]VALEUR
Copyright © Sage 2009-2010 Safe X3 Développement 30

Contrôle, Après_zone, Après_modif :


affichage d’un message [V]GMESSAGE = « message » ou [V]GMESSAGE = mess(10,100,1)
dans une boite d’erreur [S]mkstat=2 ( GERR = 1 automatiquement )
dans une boite de message GERR = 2
dans une boite d’avertissement GERR = 3 ( mkstat = 2 automatiquement, si l’opérateur répond
« annuler »)
dans la barre de texte GERR = 4

Pour les boites d’avertissement :


Les sous-programmes OUINON et AVERTIR … From GESECRAN
sont utilisables si l’on veut exploiter la réponse dans l’action de controle.

Après_zone, Après_modif :
Alimentation et affichage d’un champ suivant
Ex : [M:ABC]champ = « toto » : Affzo [M:ABC]champ
Actzo [M:ABC]champ : # dégrisage du champ
Diszo [M:ABC]champ : # grisage du champ avec conservation du focus
Grizo [M:ABC]champ : # grisage du champ sans conservation du focus
Zonsui : déplacement sur un autre champ
 

Copyright © Sage 2009-2010 Page 55


SAFE X3 DEVELOPPEMENT

Action champ
Menu contextuel
Type action Contexte d’appel & emploi Etiquette

Sélection Fenêtre de sélection S_zone

Init_bouton Attribuer ou effacer le texte du bouton IB_zone

Bouton i A l’activation d’un bouton Bi_zone


(i = 1 à 20) ex : traitement lié au bouton

Copyright © Sage 2009-2010 Safe X3 Développement 31

Création d’un bouton contextuel :

IB_zone :
Activation désactivation en attribuant ou pas un libellé au bouton.
On utilise les variables [V]GBOUT1 à [V]GBOUT20, pour stocker ce libellé.
[V]GBOUTS, [V]GBOUTA, [V]GBOUTI pour sélection, sélection avancée, clic
Ex :
[V]GBOUT1 = mess(90,198,1) Activation du bouton 1
Raz [V]GBOUT1 Désactivation du bouton 1

S_zone :
Après la sélection, le curseur se positionne automatiquement sur le champ suivant
Positionner mkstat = 2, pour bloquer le curseur sur le champ courant.

Bi_zone :
Exécution du bouton i
Utilisation d’une action dictionnaire si saisie/affichage d’une fenêtre (pour version Web)
Positionner mkstat = 4, pour déclencher l’activation du bouton enregistrer.
Positionner mkstat = 99, pour positionner le curseur sur le champ suivant.

Remarque :
Le bouton B1 est pris par le superviseur s’il y a un type de données lié à l’objet.

Copyright © Sage 2009-2010 Page 56


SAFE X3 DEVELOPPEMENT

Action champ
Icône
Type action Contexte d’appel & emploi Etiquette

Clic Clic sur icône CL_zone

Copyright © Sage 2009-2010 Safe X3 Développement 32

CL_zone :
Valeur contient le code de l’icône

Action disponible sur champ saisi


Action disponible également sur champ « diszonné ».

Utilisation d’une action dictionnaire si saisie/affichage d’une fenêtre (pour version Web)
Positionner mkstat = 4, pour déclencher l’activation du bouton enregistrer.

Copyright © Sage 2009-2010 Page 57


SAFE X3 DEVELOPPEMENT

Action champ
Variable bas tableau
Type action Contexte d’appel & emploi Etiquette

Avant_ligne avant la saisie d’une ligne AVANT_zone


dans un tableau déroulant

Après_ligne après la saisie d’une ligne APRES_zone


dans un tableau déroulant

Copyright © Sage 2009-2010 Safe X3 Développement 33

 
Avant_ligne & Après_ligne :
Ces 2 actions sont disponibles sur la variable de bas de tableau uniquement.

Copyright © Sage 2009-2010 Page 58


SAFE X3 DEVELOPPEMENT

Action champ
Ordre d’exécution
zone Diszo z. affichée
saisissable z. invisible
Grizo

Avant_zone AV_ AV_ AV_


Affichage
Init D_ D_ D_
Avant_saisie AS_ AS_
Saisie Contrôle C_
Champ valide Après_zone AP_
Après_modif AM_

Menu contextuel
Init_bouton IB_ IB_
Sélection S_ S_
Bouton Bn_ Bn_

Icône Clic CL_ CL_

Copyright © Sage 2009-2010 Safe X3 Développement 34

Champ désactivé par code activité :


Le champ n’existe pas dans la classe [M]
Aucune action n’est exécutée

Lorsqu’un champ est désactivable, il faut tester sa présence dans l’écran avant de l’utiliser.
Ex : If dim([M:ABC]CHAMP <= 0) infbox « variable inexistante » Endif

Copyright © Sage 2009-2010 Page 59


SAFE X3 DEVELOPPEMENT

10.4. VARIABLES UTILISABLES POUR LES ACTIONS SUR CHAMPS

Variables globales

√ GREP (1) char bouton standard sélectionné


√ GIMPORT int. Indicateur traitement import
√ GCOUL(0..7) int. Couleurs (130)

GBOUT1..20 (35) char intitulé bouton contextuel


GBOUTS (35) char intitulé bouton sélection
GBOUTA (35) char intitulé bouton sélection avancée
GBOUTI (35) char intitulé clic sur icône

GMESSAGE(250) char message d’erreur, d’information …


GERR int. Type message
GMENLOC(0..123) int. Désactive 1 élément de menu local

√ non modifiable

GREP :
vide : visualisation
A : annulation/suppression
C : création
D : duplication
M : modification

GIMPORT :
1 : traitement d ’import / export
0 : autres traitements

GERR :
1 : message d ’erreur
2 : message d ’information
3 : message d ’avertissement ( avec possibilité d ’arrêter le traitement )
4 : message en bas d ’ecran

Variables systèmes :
nolign nolign-1 est le numéro de ligne courante dans un tableau déroulant
indice indice courant d’une variable dimensionnée ( de 0 à N-1, N étant la dimension de la variable)
mkstat statut d’erreur suite à saisie, ou statut permettant de conditionner la saisie
status status de retour d’une instruction de saisie
pcolor couleur
fstat status de retour d’une opération sur table ou d’une instruction de verrouillage

Copyright © Sage 2009-2010 Page 60


SAFE X3 DEVELOPPEMENT

10.5. ACTIONS STANDARD CAPITALISEES

Actions sur champ clé (objet simple)


Les actions sur champs permettent l’ajout de spécifiques mais peuvent aussi faire
appels à des actions (traitements capitalisées) standards ou spécifiques.

Contrôle particulier sur champ clé lié à objet :

CONTOBJW évite le contrôle d’existence, valeur obligatoire


CONTOBJN évite le contrôle d’existence, valeur facultative

Sélection enregistrement d’une table gérée par objet :

SELOBJW sélection avec possibilité d’appliquer les filtres de sélection.


SELOBJAW sélection avancée avec possibilité d’appliquer les filtres de sélection.

Toutes ces actions utilisent au minimum le paramètre OBJET = « code objet »


 
 
Notes
 
 
 
 
 
 

Copyright © Sage 2009-2010 Page 61


SAFE X3 DEVELOPPEMENT

11. TYPES DE DONNÉES

11.1. DÉFINITION

Type de donnée de base

Développement>dictionnaire de données>Tables>Types de données

Stockage unique des informations


(format, longueur, options de saisie, actions)

Lié à un objet, il permet l’appel des fenêtres de sélection, le tunnel, la fenêtre de


propriétés, les contrôles d’existence.

Type de donnée technique

11.2. DONNEES DE BASE


Type de données de base :
A Alphanumérique
DCB Décimal
M Menu local
D Date
L Entier long
C Entier court
ABB Blob
ACB Clob

Type de données technique :


W espacement horizontal entre 2 champs d’une même ligne
ABS variable de bas de tableau
AEX éviter certaines lignes du tableau dans les graphes
AMM code mémo
AT typer les blobs

Ces éléments sont non modifiables

Copyright © Sage 2009-2010 Page 62


SAFE X3 DEVELOPPEMENT

11.3. DONNEES STANDARDS


Stockage uniques des informations
Type de données NAM, SHO

• Définition unique du format :


• homogénéité de cette définition de champ dans la base de données.
• Si évolution du format, une seule modification (dans le type de donnée) puis revalidation des
tables concernées.

Attention !
Si besoin de variable de travail, les définir avec une longueur définie dans la variable globale
GLONxxx.
xxx = type de donnée
ex :
Local Char WITEM(GLONITM)
WITEM = [F:ITM]ITMREF

Pour une validation globale du type de données :


« Développement>Utilitaires>Validation >Dictionnaire »

11.4. ACTIONS SUR CHAMP


Exemple d'une action unique
Type de donnée MD1 permettant d’afficher un montant en devise

• L’action d’avant_ zone sera exécutée sur le champ sur lequel s’applique le type de donnée.
• Dans l’exemple, l’action d’avant_zone sert à alimenter la variable [V]GDEVFMT.
• Ce type de donnée permet de définir le format du champ en fonction de la devise passée en
paramètre.
• Ce paramètre sera saisi dans le dictionnaire des écrans par le menu contextuel du type de
données.

• On peut renseigner plusieurs actions de même type sauf pour « sélection » et « bouton ».

• On ne peut pas saisir d’action STD, SPE, SPV ( qui sont liées à un objet )

11.5. ACTIONS SUR CHAMP POUR UN BLOC TABLEAU


Type de données :
Exemple type de données : MC1
Sur un champ devise ou quantité en bloc tableau.
On utilisera ce type de données pour une colonne de tableau (montant ou quantité) dont la devise ou
l’unité est identique pour toutes les lignes.
L’action d’avant_ zone sera exécutée sur la variable de bas de tableau (exécutée qu’une seule fois
pour tout le tableau)

Pour les devises : 5 types de données MC1 à MC5


Pour les quantités : 5 types de données QT1 à QT5

Format tableau :
Cochée, le sous-pro SETDEV du traitement TRTDIV est déclenché en avant_zone de la
variable de bas de tableau

Paramètre :

Copyright © Sage 2009-2010 Page 63


SAFE X3 DEVELOPPEMENT

Paramètre à renseigner dans le dictionnaire écran dans le menu contextuel du type de donnée. (dans
notre exemple, la devise)

Variable :
Variable globale permettant de passer le paramètre au sous-pro SETDEV.

11.6. TYPE DE DONNEES LIEES A L’OBJET :

Type de données lié à l’objet


Type de donnée SOH
• Permet d’accéder à une gestion objet par tunnel (optionnel), d’avoir les fenêtres de sélection
et sélection avancée, d’afficher les propriétés de l’objet, de contrôler la valeur saisie avec
celles de l’objet, d’afficher automatiquement le libellé à la suite du code de l’objet (optionnel).

• Si l’objet est identifié par une clé à 2 composantes, la 1ère composante est considérée
comme un paramètre qui sera saisi dans le dictionnaire des écrans par le menu contextuel du
type de données. Exemple : type ADI.

Pour désactiver le contrôle d’existence de la valeur dans la table liée à l’objet, 2 actions disponibles :

• CONTOBJW : le champ est obligatoire s’il est alphanumérique

• CONTOBJN : aucun contrôle n’est effectué

11.7. TEXTE TRADUITS

 
Texte traduit
Texte avec possibilité d’afficher la traduction pour les langues déclarées dans le
dossier.

• champ présent dans le dictionnaire de table, mais absent de la base de données.


• AX1 : longueur = 12
• AX2 : longueur = 20
• AX3 : longueur = 30
• AXX : longueur à définir dans l’écran

• Ses actions :
• LECTEXTRA : lecture et affichage du texte de la table ATEXTRA
• ATEXTRA : fenêtre de saisie du texte dans les différentes langues gérées dans le dossier.

Programmation :

• Il est absolument nécessaire de programmer la création, maj et suppression du texte traduit


dans la table ATEXTRA.
• Pour création et modif, il faut utiliser le sous-programme MAJTEXTRA de ATEXTRA.
• Pour la suppression, penser à faire le delete dans la table ATEXTRA.
• Pour le changement de code, penser à faire le update dans la table ATEXTRA.

Exemple de programmation sur la table TABCOUNTRY.

$CREATION
$MODIF
Call MAJTEXTRA([M]CRYDES,"TABCOUNTRY","CRYDES",[M]CRY,"") From ATEXTRA
Return

Copyright © Sage 2009-2010 Page 64


SAFE X3 DEVELOPPEMENT

$ANNULE
Delete [AXX] Where CODFIC="TABCOUNTRY" & IDENT1=[L]CODE
If fstat=1 | fstat>5
GOK=0 : Call RSTA([AXX],[L]CODE) From GLOCK : Return
Endif
Return

$CHANGE
Update [AXX] Where CODFIC="TABCOUNTRY" & IDENT1=[L]OCODE With
IDENT1=[L]NCODE
If fstat=1 GOK=-1 : GLOCK="$ATEXTRA TABCOUNTRY"-[L]OCODE : Return
Elsif fstat GOK=0 : Call RSTA([AXX],[L]OCODE) From GLOCK : Return
Endif
Return

Clé de la table ATEXTRA :


Nom de la table contenant le champ de type AXX
Nom du champ de type AXX
Langue
Clé_enreg(1)
Clé_enreg(2)

Copyright © Sage 2009-2010 Page 65


SAFE X3 DEVELOPPEMENT

11.8. CLOB ET BLOB


Les clobs sont les champs pouvant contenir des textes longs. Les blobs contiennent les fichiers
binaires, tel que les images.

Longueur = Valeur dossier


Pour ACB et ABB

Longueur non affectée


Pour AC0 et AB0

Affectation longueur
Voir la documentation fonctionnelle (1024 o * 2^n)

Les champs clob sont directement stockés dans la table ACLOB, les blob dans ABLOB

Remarque :
Les formats d'image supportés par Crystal 2008 sont : JPG ou JPEG - Photographic Experts BMP -
bitmap TIF - Tagged Image File Format PNG - Portable Network Graphics

Attention !
Les images de type *.GIF ne sont pas supportées par Crystal.
Les images de type *.TIF et *.PNG ne sont pas supportées par le client X3.

11.9. SYNTAXE DU FORMAT


Type Options : chaîne_de_formatage

Type
K affichage d’une chaîne de caractères
N affichage d’un nombre
D affichage d’une date

Options (commune)
c affichage d’un champ en couleur suivant la variable [S]pcolor (bloc tableau)
z commentaires non affichés quand la valeur du champ est nulle
X saisie masquée
= centré (uniquement sur champ de bloc tableau)
< cadré à gauche (uniquement sur champ de bloc tableau)
> cadré à droite (uniquement sur champ de bloc tableau)

Chaîne de formatage
n1 T1 n2 T2 .... n1, n2 sont des nombres optionnels (1 par défaut)
T1, T2 sont des types de caractères admis
Possibilité d’y ajouter des commentaires délimités par les caractères ‘[‘ et ‘]’
Ces commentaires ne sont pas stockés dans la base. (Uniquement affichés)
Ils peuvent être placés en début, milieu ou fin de chaîne.

Types caractères admis (chaîne de caractères)


A lettres majuscules (A-Z)
a lettres minuscules (a-z)
L lettres majuscules et minuscules (A-Z,a-z)
B lettres majuscules + chiffres
b lettres minuscules + chiffres
C lettres majuscules et minuscules + chiffres
c format clé
H chiffres hexadécimaux (0-9,A-F)

Copyright © Sage 2009-2010 Page 66


SAFE X3 DEVELOPPEMENT

X caractères quelconque imprimable


# chiffre (0-9)

Options (chaîne de caractères)


A obligation de taper les caractères demandés : majuscules ou minuscules
T tokenisation (reconnaissance des mots clés)
D pas de token

Options (nombre)
D placement du signe derrière le nombre
F nombre flottant
+ nombre positif
- affichage systématique du signe
* complète avec des * devant le nombre
0 complète avec des 0 devant le nombre
3 séparateur de groupe

Options (date)
Z date nulle autorisée
 

Type caractères admis (nombre)


# placement du signe derrière le nombre
. position du séparateur décimal pour les nombres en format fixe
F nombre en format flottant

Type caractères admis (date)


D chiffre composant le jour
M chiffre ou lettre composant le mois
Y chiffre composant l’année
h chiffre composant l’heure
m chiffre composant les minutes
s chiffre composant les secondes

Type caractères supplémentaires


Possibilité de se paramétrer jusqu’à 20 caractères supplémentaires dans les paramètres TUL1,
TUL2...TUL20 du chapitre ADX sous la forme C1 T1 T2 ... : c1 c2 ...
C1 est le nouveau type caractères à définir. Il comprend les types caractères T1 et T2 auxquels on
ajoute les caractères c1 et c2.

Exemples

K:3X2A3# sont identiques


K:XXXAA###

N:15.2 sont identiques


N:15#.2#

Nc:15#.2# affichage du nombre en couleur

D:[Le ]DD[ du mois de ]MMMMMMMM Le 12 du mois de janvier


DZz :[Le ]DD[ du mois de ]MMMMMMMM rien n’est affiché si la date est nulle
D:DDMMYY 120105

Copyright © Sage 2009-2010 Page 67


SAFE X3 DEVELOPPEMENT

Les formats particuliers de dates :

Les formats GFMx sont initialisés d'après les options du poste client (comme les champs date sur
écran). Pour les formats de date, utiliser ces variables globales, et non pas les formats pré-définis du
langage. Par exemple format$("D:"+GFMDAT4,date$) et non pas format$("DD2",date$) qui est figé
par le moteur.

Liste des variables globales contenant un format date :

• GFMD : "D:DD[/]MM[/]YYYY" format date interne.


• GFMDAT : "DD[/]MM[/]YY" date avec année sur 2 car.
• GFMDAT3 : "DD[ ]MM[ ]YYYY" date avec année sur 4 car., sans séparateur.
• GFMDAT4 : "DD[/]MM[/]YYYY" date avec année sur 4 car.
• GFMDAT9 : "DD[ ]MMMMMMMMM[ ]YYYY" date avec mois en alphanumérique.
• GFMJOU : "DD[/]MM" jour/mois
• GFMMOI : "MM[/]YY" mois/année sur 2 car.
• GFMMOI4 : "MM[/]YYYY" mois/année sur 4 car.

Formats prédéfinis du langage A EVITER :

• DD1 : format$("DD1",[1/1/1994]) -> "01/01"


• DD2 : format$("DD2",[1/1/1994]) -> "01/01/94"
• DD3 : format$("DD3",[1/1/1994]) -> "01 Janvier 1994 14:38"
• DD4 : format$("DD4",[1/1/1994]) -> "01 Janvier 1994 14:38:21"

Copyright © Sage 2009-2010 Page 68


SAFE X3 DEVELOPPEMENT

11.10. POUR UNE ACTION : ORDRE D’EXECUTION


S’exécute dans l’ordre :

• Type de donnée
• Action sur champ

• Pas de cumul des actions pour :

• Bouton
• Sélection
• Click sur icône

Pour une action Sélection, Bouton ou Icône :


1 seule action, sur le type de donnée
Plusieurs actions possibles, sur le champ (exceptionnel)
Action du type de donnée non exécutée si action sur champ.

Copyright © Sage 2009-2010 Page 69


SAFE X3 DEVELOPPEMENT

11.11. EXERCICE : GESTION DES CLIENTS (GESTION SIMPLE)

11.11.1. Objectif

Développer une gestion des clients sous forme entête, 2 onglets et liste gauche.

11.11.2. Marche à suivre

Table diverse
Création de la table diverse 1000 « Secteurs géographiques » qui comprendra un intitulé et un intitulé
court.
Création de quelques enregistrements dans cette table des secteurs géographiques.
Exemple : NORD, SUD, EST, OUEST.

Menu local
Création d’un menu local 1000 « Type de contact »
Ce menu comprend les 6 valeurs suivantes :
1_ sans type
2_ téléphone
3_ visite
4_ mail
5_ courrier
6_ divers

Gestion client
Modifier la table des clients YCUSTOMX par les particularités signalées ci-dessous.
Création des écrans clients YCX0, YCX1, YCX2.
Création de l’objet YCX.
Création de la fenêtre OYCX.

Pour ce faire, utiliser les descriptions ci-après.


Indication : la colonne « Particul. » indique qu’un paramétrage ou un développement est demandé
pour le champ.

Copyright © Sage 2009-2010 Page 70


SAFE X3 DEVELOPPEMENT

Table des clients

Code table : YCUSTOMX


Abréviation : YCX
Module : Tronc commun

Zone Type de la zone Dim. Particul. Intitulé


YBPCNUM Alphanumérique 10 1 Oui Client
YBPCNAM Alphanumérique 35 1 Raison sociale
YBPALIG Alphanumérique 35 3 Ligne adresse
YPOSCOD Alphanumérique 10 1 Code postal
YCTY Alphanumérique 30 1 Ville
YCRY Alphanumérique 3 1 Oui Pays
YARE Alphanumérique 3 1 Oui Secteur géographique
YPPTFLG Menu local 1 1 Prospect
YCNTLASTYP Menu local 1000 1 Oui Type dernier contact
YCNTLASDAT Date 1 Oui Date dernier contact
YBPCREM Alphanumérique 200 1 Oui Observations
YORDDAT Date 1 Date dernière commande
YORDTOTNOT Décimal 13.2 1 En commande HT
YORDTOTATI Décimal 13.2 1 En commande TTC
EXPNUM Entier long 8 1 Numéro export
CREUSR Alphanumérique 5 1 Opérateur création
CREDAT Date 1 Date création
UPDUSR Alphanumérique 5 1 Opérateur modif.
UPDDAT Date 1 Date modif

Index Descripteur de l’index Homonymes


YCX0 YBPCNUM Non

YBPCNUM :
Type de donnée lié à l’objet.

YCRY :
Interdire la suppression d’un pays dans la table pays, s’il est référencé dans la table des clients
Préparer dès maintenant la possibilité de :
• Contrôle d’existence
• Fenêtres de sélection
• Tunnel vers la gestion des pays
• Fenêtre de propriétés

YARE :
Interdire la suppression d’un secteur géographique dans la table diverse s’il est référencé dans la
table des clients. (La table diverse est ATABDIV, abréviation ADI ).
Les tables diverses possèdent 2 identifiants, le numéro de table et le code de l’enregistrement, ceux-ci
sont à paramétrer à l’appel du type de données ADI et dans la colonne « Expression de lien » de la
table.

Copyright © Sage 2009-2010 Page 71


SAFE X3 DEVELOPPEMENT

Préparer dès maintenant la possibilité de :


• Contrôle d’existence
• Fenêtres de sélection
• Tunnel vers la gestion des secteurs géographiques
• Fenêtre de propriétés

YCNTLASTYP :
Ajouter votre menu local.

YCNTLASDAT :
Date nulle autorisée. Se servir des options du champ

YBPCREM :
Transformer ce champ en clob.

Ecrans des Clients

Ecran d’entête « identification »

Code écran : YCX0


Abréviation : YCX0
Taille : En tête
Traitements associés : SUBYCX standard
SPEYCX spécifique

Champ Saisie Oblig. Particularités


YBPCNUM S Oui Type de donnée lié à l’objet
YBPCNAM S Oui

(Saisie : S Saisie / A Affiché / I Invisible)

Copyright © Sage 2009-2010 Page 72


SAFE X3 DEVELOPPEMENT

Onglet 1 « adresse »

Code écran : YCX1


Abréviation : YCX1
Taille : Onglet
Traitements associés : SUBYCX standard
SPEYCX spécifique

Champ Saisie Oblig. Particularités Dévelop.


YBPALIG S
YPOSCOD S
YCTY S
YCRY S Contrôle / Sélection / Tunnel / Propriétés
par rapport à la table des pays TABCOUNTRY
Affichage du libellé long

Message d’information ( non bloquant ) si la valeur est Oui


différente de : FR (France) et DE (Allemagne)
(Saisie : S Saisie / A Affiché / I Invisible)

Exemple de conditionnement d’un champ, avec affichage d’un message d’erreur :

If CHAMP = « val1 » or CHAMP = « val2» # opérateur utilisables ou : (Or, |) et : (And, &)


[V]GMESSAGE = “texte d’erreur”
[S]mkstat=2 # Utilisez GERR=2 pour afficher un message informatif et permettre la saisie
Endif

Copyright © Sage 2009-2010 Page 73


SAFE X3 DEVELOPPEMENT

Onglet 2 « général »

Code écran : YCX2


Abréviation : YCX2
Traitements associés : SUBYCX standard
SPEYCX spécifique

Champ Saisie Oblig. Particularités Dévelop.


YARE S Contrôle / Sélection / Tunnel / Propriétés
Affichage du libellé court
YPPTFLG S Case à cocher
Mise à jour du type et date de dernier contact suivant la Oui
règle suivante :
Si prospect :
YCNTLASTYP = 1 & YCNTLASDAT = date du jour
Dégriser ces 2 zones
Si non prospect :
YCNTLASTYP = 0 & YCNTLASDAT = nulle
Griser ces 2 zones
YCNTLASTYP S Valeur 3 (visite) non disponible pour les clients du pays DE Oui
(Allemagne).
YCNTLASDAT S Date nulle autorisée
YBPCREM S Saisie d’un clob de 4 lignes de 50 caractères (texte enrichi)
YORDDAT A
YORDTOTNOT A
YORDTOTATI A
(Saisie : S Saisie / A Affiché / I Invisible)

La caractéristique des champs de l’écran est identique à ceux de la table.


Les actions sur champ sont à créer dans le traitement spécifique.

Principe d’Alimentation d’un champ en fonction de son type :

• Champ alpha [M] CHAMP = « toto »


• Champ numérique [M] CHAMP = 1
• Champ date [M] CHAMP = [0/0/0]
• Date du jour [M] CHAMP = date$

Affichage de la valeur d’un champ : Affzo [M] CHAMP


Grisage d’un champ : Diszo [M] CHAMP
Dégrisage d’un champ : Actzo [M] CHAMP

Menu local 1 : 1 = non 2 = oui

Copyright © Sage 2009-2010 Page 74


SAFE X3 DEVELOPPEMENT

Objet des clients

Code objet : YCX


Module : Tronc commun
Menu standard : MCOU
Rang dans menu : 20
Ecran de sélection : Ascendant
Client / Raison sociale / Prospect

Fenêtre des clients

Code fenêtre : OYCX


Module : Tronc commun
Type fenêtre : Objet
Affichage : plein écran
Objet : YCX

11.11.3. A vérifier

• Création, modification, suppression.


• Fenêtre de sélection des clients.
• Interdiction de créer 2 codes client identiques.
• Message d’avertissement si le code pays n’est pas « FR » ou « DE ».
• Contrôle, Sélection, Tunnel sur les secteurs géographiques.
• Dans les secteurs géographiques, interdiction de supprimer un code utilisé pour un client.
• Saisie et non saisie du type et date de dernier contact.
• Type de dernier contact ne peut pas être égal à 3 (visite) si le pays est « DE ».
• Liste gauche présentant les clients existants.

Copyright © Sage 2009-2010 Page 75


SAFE X3 DEVELOPPEMENT

12. MODÈLE « OBJET »

12.1. DÉFINITION
Le principe des modèles est le suivant, rendre automatique des traitements utiles dans les
différents contextes de l’application (gestion d’objet, consultation, traitement batch…) et de permettre
l’ajout de traitements spécifiques via des évènements (ouverture de fenêtre, enregistrement des
données, changement d’enregistrement…).

Prenons comme exemple l’objet des clients réalisé dans l’exercice précédent. Il n’a pas été
nécessaire d’ajouter de traitement pour permettre la mise à jour ou l’affichage des données, les
traitements superviseurs ont pris en compte automatiquement ces besoins. Ces traitements sont
effectivement appelés pour une fenêtre contenant un objet et impliquant donc une gestion d’objet.

Modèle « objet »

Types de donnée
Table
M. Locaux
T. Diverses
Codes activités
Objet

Types de donnée
Fenêtre Écrans
M. Locaux
Unique T. Diverses
Codes activités
Action : GOBJET Traitement standard SUBxxx
Traitement superviseur GOBJET
Générée Traitement vertical SPVxxx
Traitement spécifique SPExxx
Traitement standard SUBxxx
Traitement vertical SPVxxx
Fonction : GESxxx Traitement spécifique SPExxx

Copyright © Sage 2009-2010 Safe X3 Développement 38

Gestion d’objet
L’Action GOBJET lancée est unique pour tous les objets qu’ils soient standards ou spécifiques. (Voir
chapitre sur les actions)
Traitement superviseur unique : GOBJET
Le traitement GOBJET permet : _ L’affichages des enregistrements
_ Leurs suppression, modification, création
_ La gestion de la liste gauche principale
Attention ! Tous ces automatismes ne sont gérés que pour la table liée à l’objet
Fonction générée : GES+ « code objet »

Copyright © Sage 2009-2010 Page 76


SAFE X3 DEVELOPPEMENT

Modèle « objet »

Gestion objet : Les Traitements


GOBJET
GOBJET

ANUCOD SUBxxx
SUBxxx
ANUCOD
GOBJSUB
GOBJSUB
SPVxxx
SPVxxx
CHGCOD
CHGCOD

SPExxx
SPExxx

GOBJET1
GOBJET1 GOBJET2
GOBJET2 GOBJET3
GOBJET3
(simple)
(simple) (tableau)
(tableau) (combiné)
(combiné)

TABLEAUX
TABLEAUX
(détail)
Copyright © Sage(détail)
2009-2010 Safe X3 Développement 39

Ces traitements permettent l’affichage, la création, la modification, la suppression des objets X3, sans
ajout de code spécifique.

Copyright © Sage 2009-2010 Page 77


SAFE X3 DEVELOPPEMENT

12.2. UTILISATION DU MODELE OBJET

12.2.1. Principe

Une fois le modèle appelé, il est alors possible d’utiliser les différents évènements liés à ce
modèle. Le traitement ci-dessous permet par exemple de prendre la main à l’ouverture du traitement
(action OUVRE) pour venir en ajout du traitement GOBJET courant. Cette action est surtout utiliser
pour déclarer les variables utiles au traitement spécifique.

Modèle « objet »

Lien entre programmes


$ACTION
Case ACTION
ACTION
ACTION==««OUVRE
OUVRE»» When «OUVRE » : Gosub OUVRE
GPE SPExxx
GPE==00 When default
Gosub
GosubACTION
ACTIONFrom
FromSPExxx
SPExxx Endcase
return
IfIfGPV
GPV==00
Gosub
GosubACTION
ACTIONFrom
FromSPVxxx
SPVxxx
Endif $ACTION
Endif Case ACTION
SPVxxx
IfIfGPE When «OUVRE » : Gosub OUVRE
GPE==00 When default
Gosub
GosubACTION
ACTIONFrom
FromSUBxxx
SUBxxx
Endif Endcase
Endif return

$ACTION
Superviseur SUBxxx Case ACTION
When «OUVRE » : Gosub OUVRE
When default
Endcase
return

Copyright © Sage 2009-2010 Safe X3 Développement 40

Dans les traitements du superviseur :


L’instruction Gosub permet d’utiliser les variables des classes [F] (table), [M] (écran), et les variables
locales des traitements superviseur.

Dans le SUBxxx, SPVxxx, SPExxx :


L’étiquette $ACTION est générée dans les traitements SUBxxx, SPVxxx et SPExxx. XXX étant le nom
de l’objet. Le traitement SUB est forcement généré à la validation de l’objet dans le dossier mère X3.
On complètera le sous-programme en testant la valeur de la variable ACTION. La variable ACTION
est modifiée par le traitement superviseur selon l’évènement à lancer.

Ordre d’appel des actions :


L’action spécifique
L’action verticale si GPV=0
L’action standard si GPE=0

Copyright © Sage 2009-2010 Page 78


SAFE X3 DEVELOPPEMENT

Modèle « objet »

traitement spécifique : règle d’écriture des actions

$ACTION
Case ACTION
When «OUVRE » : Gosub OUVRE
When «RAZCRE » : Gosub RAZCRE
When default
Endcase
Return

$OUVRE
Local char ma_variable
ma_variable = « test »
Return

$RAZCRE
[M]CHAMP = ma_variable
Return

Copyright © Sage 2009-2010 Safe X3 Développement 41

Copyright © Sage 2009-2010 Page 79


SAFE X3 DEVELOPPEMENT

Modèle « objet »

Cinématique de l’objet Pour la table


principale

Lock
Locklogique
logique
[M]=[F]
La saisie

Lock
Lockphysique
physique
Trbegin [F]=[M]
La transaction de mise à jour
Commit

Copyright © Sage 2009-2010 Safe X3 Développement 42

CINEMATIQUE DE L’OBJET :
Le superviseur ne gère en automatique qu’une seule table : la table principale liée à l’objet.
Le traitement applicatif doit prendre en charge les lectures et mises à jour sur les autres tables.

1 - La saisie
Lecture si l’enregistrement existe et affichage des champs par basculement de la classe [F] fichier
vers la classe [M] masque, puis lock logique de l’enregistrement. A la suite de ce lock, aucun
utilisateur ne pourra modifier l’enregistrement via l’interface graphique.

2 - La transaction de mise à jour


Commence dès que la saisie est terminée, après clique du bouton créer ou enregistrer. Basculement
de la classe [M] masque vers la classe [F] fichier et mise à jour de la table.
 
 
 

Copyright © Sage 2009-2010 Page 80


SAFE X3 DEVELOPPEMENT

12.2.2. Gestion simple en création

Les évènements utilisables en gestion de création d’un enregistrement sont les suivants :

Modèle « objet »

gestion simple : en création

RAZCRE avant la saisie

Saisie
VERIF_CRE avant la transaction de mise à jour

[F]=[M]
Trbegin
INICRE après le chargement de la classe [F]
WRITE
CREATION après l’écriture de l’enregistrement
Commit

APRES_CRE après la transaction de mise à jour

AB_CREATION si abandon de la transaction

Copyright © Sage 2009-2010 Safe X3 Développement 43

12.2.2.1. RAZCRE
Cette action est lancée en tout début de création après clique du bouton « nouveau », avant la saisie.

Sert à :
initialiser les variables de la classe [M]
activer / désactiver des champs par Actzo, Diszo, Grizo

Nécessite :
le rafraîchissement de l’écran par Affzo [M:abrev]1-99
il faut préciser le nom de l’écran

Ex. de devis:

###########################################################################
# -- gestion des textes
[M:SQH0]SQHTEX1 = "" : [M:SQH0]SQHTEX2 = ""
[M:SQH0]ANCSQHTEX1 = "" : [M:SQH0]ANCSQHTEX2 = ""
Raz [M:SQH2]SQDTEX
Raz [M:SQH2]ANCSQDTEX
Call RESET_IMAGE (4) From GESECRAN

#-- Effacement des masques adresse


Raz GTARFLG

Copyright © Sage 2009-2010 Page 81


SAFE X3 DEVELOPPEMENT

Raz [M:ADB1], [M:ADB2]

#-- Activation/Desactivation des zones en fonction du contexte #


Gosub GRIZE_LIENS
Affzo [M:SQH0]SALFCY, QUODAT
Affzo [M:SQH1]STOFCY
Return
###########################################################################

12.2.2.2. VERIF_CRE
Action lancée après la saisie du bouton « créer », avant la transaction de mise à jour.

Sert à :
effectuer des contrôles globaux
interrompre le traitement et retour à la saisie: [L]OK=0
afficher un message : GMESSAGE
indiquer le type de message : GERR
Positionnement du curseur (nom de champ) : [S]zonsui

Ex. de devis:

###########################################################################
# --> Il doit y avoir au moins une ligne
If [M:SQH2]NBLIG = 0
GERR=1 : GMESSAGE = mess(61,199,1) : OK=0 : [S]zonsui= “[M:SQH2]NBLIG” : Return
Endif
###########################################################################

12.2.2.3. INICRE
Action lancée en début de transaction de mise à jour après le chargement de la classe [F].

Sert à :
alimenter la classe [F]
interrompre la transaction : [V]GOK=0
afficher un message : GMESSAGE
indiquer le type de message : GERR

Attention ! L’ouverture de table est possible mais uniquement dans un sous-programme, sinon la
classe [F] par défaut est modifiée.

Ex. de devis:

###########################################################################
# Récupération du compteur de devis
If GMANCOU <> 2 | (GMANCOU=2 & vireblc([M:SQH0]SQHNUM,2)="")
Call NUMERO (GCPT,[F:SQH]SALFCY,[F:SQH]QUODAT,"",GNUM,STAT) From SUBANM
If STAT = 0
[F:SQH]SQHNUM = GNUM
[M:SQH0]SQHNUM = GNUM
Affzo [M:SQH0]SQHNUM
Else
# problème lors de la récupération du compteur

Copyright © Sage 2009-2010 Page 82


SAFE X3 DEVELOPPEMENT

GERR=1:GMESSAGE = mess(60,199,1) : GOK=0 : Return


Endif
Endif
###########################################################################

12.2.2.4. CREATION
Action lancée après l’écriture de l’enregistrement dans la transaction de mise à jour

Sert à :
créer, mettre à jour, supprimer enregistrement d’autres tables
gérer les verrouillages avec [V]GOK = -1
interrompre la transaction : [V]GOK = 0

Ex. de devis:

###########################################################################
# Mise à jour du champ contenant la date de demande du dernier devis du le client.
If clalev ([F:BPC]) = 0 : Local File BPCUSTOMER[BPC] : Endif
Readlock [BPC]BPC0 = [F:SQH]BPCORD
If fstat = 1 : GOK = -1 : GLOCK = "$SQUOTE"-[F:SQH]BPCORD : Return : Endif
If fstat : Call RSTA("BPC",[F:SOH]BPCORD) From GLOCK : Return : Endif

[F:BPC]QUOLASDAT = [F:SQH1]QUODAT

Rewrite [BPC]
If fstat : Call FSTA("BPC") From GLOCK : Return : Endif
###########################################################################

Copyright © Sage 2009-2010 Page 83


SAFE X3 DEVELOPPEMENT

Modèle « objet »
Action : création

$CREATION
Readlock [xxx]xxx0 = clé [f:abrv]champ
If fstat=1
GOK= -1 : GLOCK= «nom table + clé » : Return
Elsif fstat<>0
GOK= 0
Call RSTA(« abrev table »,clé) From GLOCK
Return
Endif

ReWrite [xxx]

If fstat
GOK= 0
Call FSTA(« abrev table ») From GLOCK
Return
Endif
Return
Copyright © Sage 2009-2010 Safe X3 Développement 44

Statut fstat :
Statut de retour d’une opération sur table.
0 : OK
1 : enregistrement verrouillé
autre : erreur

Sous-programme RSTA :
Affichage d’un message en fonction du fstat, suite à une tentative de lecture.

Sous-programme FSTA :
Affichage d’un message en fonction du fstat, suite à une tentative d’écriture, réécriture, ou
suppression.

fstat = 1 enregistrement verrouillé (lecture)


2 clé suivante lue (lecture)
3 clé déjà existante (écriture)
4 début/fin de fichier (lecture)
5 pas d’enregistrement courant (lecture)
autre erreur grave fstat = nnn
 
 

Copyright © Sage 2009-2010 Page 84


SAFE X3 DEVELOPPEMENT

12.2.2.5. APRES_CRE
Action lancée après la transaction de mise à jour, si la transaction s’est déroulée avec succès.
A la différence de création, si la mise à jour d’une autre table ne fonctionne pas dans cette action, la
création de l’enregistrement dans la table principal n’est pas empêchée.

Sert à :
imprimer un état
mettre à jour une table secondaire
activer / désactiver des champs par Actzo, Diszo, Grizo

Ex. de devis:

###########################################################################
# --- Impression devis client #
If WSLTDOCFLG = 2
Gosub SET_CLE From GOBJSUB
CLECUR = 1
Endif
If WSLTDOCFLG = 2 & !GINTRA & !GIMPORT
Call ETAT(WSLTDOCNAM,"GESSQH",TBPAR,TBVAL) From ETAT
Endif

# Actualise la liste gauche


Gosub RELIT From GOBJSUB
[M:SQH0]SQHNUM = [F:SQH]SQHNUM

#Mise à jour du champs "Nb de devis" de la fiche Affaire. #


If [M:SQH1]PJT <> ""
If !clalev([F:OPP]) : Local File OPPOR [OPP] : CLOFLG = 1 : Endif
Read [OPP] OPP0 = [M:SQH1]PJT
If !fstat
Call DEBTRANS From GLOCK
Trbegin [OPP]
[F:OPP]OPPNBQ += 1
Rewrite [OPP]
If fstat : Rollback : Else : Commit : Endif
Endif

If CLOFLG : Close Local File [OPP] : Endif


Endif
###########################################################################

Copyright © Sage 2009-2010 Page 85


SAFE X3 DEVELOPPEMENT

12.2.2.6. AB_CREATION
Action lancée en abandon de la transaction après le Rollback

Sert à :
déverrouiller un symbole
réaffecter des variables globales

Ex. de fournisseur:

###########################################################################
#-- il faut deverrouiller BPARTNER
SYMBOLE2 = "BPR"+num$([M:BPS0]BPSNUM)
Lock = SYMBOLE2
Unlock = SYMBOLE2
###########################################################################

12.2.3. Gestion simple en duplication

Modèle « objet »

gestion simple : en duplication

RAZDUP avant la saisie


Saisie

VERIF_CRE avant la transaction de mise à jour


Trbegin
[F]=[M]
INICRE après le chargement de la classe [F]
CREATION après l’écriture de l’enregistrement WRITE
Commit

APRES_CRE après la transaction de mise à jour

AB_CREATION si abandon de la transaction


Copyright © Sage 2009-2010 Safe X3 Développement 45

RAZDUP

Action lancée en tout début de duplication avant la saisie

Sert à :
initialiser les variables de la classe [M]

Copyright © Sage 2009-2010 Page 86


SAFE X3 DEVELOPPEMENT

activer / désactiver des champs par Actzo, Diszo, Grizo

Nécessite :
le rafraîchissement de l’écran par Affzo
il faut préciser le nom de l’écran.

12.2.4. Gestion simple en modification

Modèle « objet »

V gestion simple : en modification

V [M]=[F]
I LIENS après la lecture de l’enregistrement
S
U
AVANT_MOD dès le début de la saisie (120)
Saisie
VERIF_MOD avant la transaction de mise à jour

AVANT_MODFIC après la lecture enreg. Avec verrouillage


[F]=[M]
INIMOD après le chargement de la classe [F]
REWRITE
MODIF après la ré-écriture de l’enregistrement

APRES_MOD après la transaction de mise à jour

AB_MODIF si abandon de la transaction

Copyright © Sage 2009-2010 Safe X3 Développement 46

12.2.4.1. LIENS
Action lancée après la lecture de l’enregistrement, avant l’affichage de la classe [M]

Sert à :
alimenter des variables
lire des tables supplémentaires
alimenter des champs de la classe [M]
activer / désactiver des champs par Actzo, Diszo, Grizo

Attention ! Il est nécessaire de préciser le nom de l’écran

Ex. de devis:

###########################################################################
#------------------------------------------------------------#
# Ré-alimentation site fin.(GFINRSP)
# soc. (GSOCIETE)

Copyright © Sage 2009-2010 Page 87


SAFE X3 DEVELOPPEMENT

# dev.soc. (GLOCALDEV)
# Récupération des paramètres vente du site / de la société
# Ré-alimentation du cours devise dossier/devise cde
# -----------------------------------------------------------#
GFCY = [F:SQH]SALFCY
Call GETDEV(GFCY) From DEVSUB
Call GLOBVAR(GFCY) From AGLOBVEN

#------------------------------#
# Lecture du site d'expédition
#------------------------------#
If [F:FCY]FCY <> [F:SQH]STOFCY
Read [F:FCY]FCY0 = [F:SQH]STOFCY
If fstat Raz [F:FCY] : Call RSTA("FCY", [F:SQH]STOFCY) From GLOCK : Endif
Endif
###########################################################################

12.2.4.2. AVANT_MOD
Action lancée dès le début de la saisie, c’est à dire dès la saisie d’un champ qui identifie le mode
saisie.

Sert à :
contrôler l’autorisation de la saisie
interrompre le traitement : [L]OK=0
afficher un message : GMESSAGE
indiquer le type de message : GERR

Ex. de devis:

###########################################################################
$AVANT_MOD
#-----------------------------------------#
# Controle de modification d'un devis
#-----------------------------------------#

# --> devis non modifiable si transformé totalement en cde


If [F:SQH]QUOSTA = 3
GERR=1 : GMESSAGE = mess(36,192,1) : OK=0 : Return
Endif
Return
###########################################################################

12.2.4.3. VERIF_MOD
Action lancée après la saisie bouton « enregistrer » avant la transaction de mise à jour.

Sert à :
effectuer des contrôles globaux
interrompre le traitement : [L]OK=0
afficher un message : GMESSAGE
indiquer le type de message : GERR
Positionnement du curseur (nom de champ) : zonsui

Ex. de devis:

idem VERIF_CRE

Copyright © Sage 2009-2010 Page 88


SAFE X3 DEVELOPPEMENT

12.2.4.4. AVANT_MODFIC
Action lancée en début de transaction mise à jour après la lecture de l’enregistrement, [F] est non
encore mise à jour, les anciennes données sont donc encore visualisable.

Sert à :
verrouiller des informations complémentaires
mettre à jour des tables secondaires (-)
interrompre la transaction : [V]GOK=0

Éviter les ouvertures de table hors sous-programme

Ex. de devis:

###########################################################################
#-- Maj des statistiques
Call VALSTA("SQH",-1) From SUBPS2
If GOK < 1 : Return : Endif
###########################################################################

12.2.4.5. INIMOD
Action lancée après le chargement de la classe [F]

Sert à :
alimenter la classe [F]
interrompre la transaction : [V]GOK=0

Éviter les ouvertures de table hors sous-programme

Ex. de devis:

Local Integer I

###########################################################################
# Alimentation des types de frais/remises et des no éléments de facturation
For I = 1 To dim([F:SQH]DISCRGTYP)
[F:SQH]DISCRGTYP (I-1) = GDISCRGTYP (I-1)
[F:SQH]INVDTALIN (I-1) = GINVDTALIN (I-1)
Next I

# ALimentation du nbre de lignes


[F:SQH]LINNBR = [M:SQH2]NBLIG
###########################################################################

12.2.4.6. MODIF
Action lancée après la réécriture de l’enregistrement dans la transaction de mise à jour.

Sert à :
créer, mettre à jour, supprimer enregistrement d’autres tables
gérer les verrouillage avec [V]GOK = -1
interrompre la transaction : [V]GOK=0

Copyright © Sage 2009-2010 Page 89


SAFE X3 DEVELOPPEMENT

Ex. de devis:

###########################################################################
#-- Maj des statistiques
Call VALSTA("SQH",1) From SUBPS2
If GOK < 1 : Return : Endif
###########################################################################

12.2.4.7. APRES_MOD
Action lancée après la transaction de mise à jour, si la transaction s’est déroulée avec succès

Sert à :
Impression d’un état
Griser dégriser des zones de l’écran
mettre à jour une table secondaire

Ex. de devis:

###########################################################################
$APRES_MOD
Local Char TBPAR(10)(1..50),TBVAL(30)(1..50)
#-----------------------------------------------#
# Impression devis client
#-----------------------------------------------#
If WSLTDOCFLG=2 & [F:SQH]QUOPRN<>2
Gosub SET_CLE From GOBJSUB
CLECUR = 1
Endif
If WSLTDOCFLG=2 & [F:SQH]QUOPRN<>2 & !GINTRA & !GIMPORT
Call ETAT(WSLTDOCNAM,"GESSQH",TBPAR,TBVAL) From ETAT
Endif

# Maintenant, on fait toujours un gosub RELIT


Gosub RELIT From GOBJSUB
[M:SQH0]SQHNUM = [F:SQH]SQHNUM
###########################################################################

12.2.4.8. AB_MODIF
Action lancée en abandon de la transaction après le Rollback.

Sert à :
déverrouiller un symbole
réaffecter des variables globales
 
 

Copyright © Sage 2009-2010 Page 90


SAFE X3 DEVELOPPEMENT

12.2.5. Gestion simple en suppression

Modèle « objet »

gestion simple : en suppression


V
I
S [M]=[F]
U

VERF_ANU avant la transaction de suppression

Trbegin
ANNULE avant la suppression de l’enregistrement
commit DELETE

AP_ANNULE après la transaction de suppression

Copyright © Sage 2009-2010 Safe X3 Développement 47

12.2.5.1. VERF_ANU
Action lancée dès l’activation du bouton supprimer, après les contrôles du dictionnaire, avant la
transaction de suppression.

Sert à :
contrôler l’autorisation de la suppression
interrompre le traitement par [L]OK=0
afficher un message : GMESSAGE
indiquer le type de message : GERR

Ex. de devis:

###########################################################################
# --> devis non supprimable si transformé totalement ou partiel. en cde
If [F:SQH]QUOSTA <> 1
GERR=1:GMESSAGE=mess(37,192,1):OK=0
Return
Endif
###########################################################################

Copyright © Sage 2009-2010 Page 91


SAFE X3 DEVELOPPEMENT

12.2.5.2. ANNULE
Action lancée avant la suppression de l’enregistrement, dans la transaction de mise à jour.

Sert à :
créer, mettre à jour, supprimer enregistrement d’autres tables
gérer les verrouillage avec [V]GOK = -1
interrompre la transaction : [V]GOK=0

Éviter les ouvertures de table hors sous-programme

Ex. de devis:

###########################################################################
#-- suppression des textes associés
WNUMTEX = [M:SQH0]SQHTEX1
If WNUMTEX <> ""
WRETOUR = 0
Call TEX(5,"SQH1","","","",WNUMTEX,"A",WRETOUR) From TRTX3TEX
Endif
WNUMTEX = [M:SQH0]SQHTEX2
If WNUMTEX <> ""
WRETOUR = 0
Call TEX(5,"SQH2","","","",WNUMTEX,"A",WRETOUR) From TRTX3TEX
Endif

#-- Maj des statistiques


Call VALSTA("SQH",-1) From SUBPS2
If GOK < 1 : Return : Endif
###########################################################################

12.2.5.3. AP_ANNULE
Action lancée après la transaction de suppression si la transaction s’est déroulée avec succès

Sert à :
Mettre à jour une table secondaire

Copyright © Sage 2009-2010 Page 92


SAFE X3 DEVELOPPEMENT

12.3. GESTION TABLE D’ENTETE PLUS TABLE DE DETAIL

12.3.1. Principe

Gestion table entête + table détail

La gestion du modèle objet ne gère par défaut qu’une seule table, la table lié à l’objet.

Ors il est souvent nécessaire de gérer sur un même objet un entête et des lignes détail, pour
permettre cette gestion un traitement standard (TABLEAUX) est disponible.

L’objectif est de créer, afficher, modifier et supprimer un objet avec ses lignes de détail.

Par exemple pour la gestion des devis :


Objet SQH, table entête SQUOTE table détail SQUOTED.

12.3.2. Utilisation

L’appel de ce traitement TABLEAUX permet la gestion de la table de détail. Les différentes actions à
appeler du traitement sont énumérés ici.

12.3.3. Gestion détail en création

Modèle « objet »

gestion détails : en création

Transaction sur table principale de l’objet

Trbegin
INICRE
CREATION gosub CREATION From TABLEAUX
Commit

INICRE_LIG après l’écriture de l’enregistrement entête


après le chargement de la classe [F] détail
avant l’écriture de l’enregistrement détail
sert à compléter la classe [F] détail

VALLIG appelée après l’écriture


sert à traiter d’autres tables liées au détail
TRTLIG = C
SIGN = +1
GERR
GMESSAGE
GOK

Copyright © Sage 2009-2010 Safe X3 Développement 48

Copyright © Sage 2009-2010 Page 93


SAFE X3 DEVELOPPEMENT

L’exécution des actions se fait dans l’ordre suivant :

CREATION
DEFLIG exécuté 1 seule fois
INICRE_LIG `` pour chaque ligne détail
VALLIG

VALLIG : Pour chaque ligne détail traitée, le superviseur nous envoie le contexte :
TRTLIG = C, M, A ( création, modification, annulation )
SIGN = +1 ( pour création et modif après le rewrite )
-1 ( pour annulation et modif avant le rewrite )

Les lignes non modifiées ne sont pas traitées.

12.3.4. Gestion détail en modification

Modèle « objet »

gestion détails : en modification

V
I [M]=[F]
S LIENS gosub LIENS From TABLEAUX
U

LIENS_LIG après le chargement de la classe [M] détail


avant l’affichage
sert : compléter la classe [M] détail

Copyright © Sage 2009-2010 Safe X3 Développement 49

L’exécution des actions se fait dans l’ordre suivant :

LIENS
DEFLIG exécuté 1 seule fois
LIENS_LIG `` pour chaque ligne détail

LIENS_LIG
NOL = nolign-1

Copyright © Sage 2009-2010 Page 94


SAFE X3 DEVELOPPEMENT

###########################################################################
# --- Chargement de la quantité pour calcul de qté en nomenclature
[M]CQTY(NOL) = [M]QTY(NOL)

# --- Lecture article pour charger le flag mise à jour stock


If [F:ITM]ITMREF <> [F:SQD]ITMREF
Read [F:ITM]ITM0 = [F:SQD]ITMREF
If fstat Raz [F:ITM] : Call RSTA ("ITM",[F:SQD]ITMREF) From GLOCK Endif
Endif
[M:SQH2]STOMGTCOD(NOL) = [F:ITM]STOMGTCOD
###########################################################################

Modèle « objet »

gestion détails : en modification


Trbegin
AVANT_MODFIC
INIMOD
MODIF gosub MODIF From TABLEAUX
Commit

INICRE_LIG
INIMOD_LIG après ré-écriture enregistrement entête
après le chargement de la classe [F] détail
avant ré-écriture enregistrement détail
sert : compléter la classe [F] détail

VALLIG appelée après la ré-écriture


sert : traiter une autre table liée au détail
Copyright © Sage 2009-2010 Safe X3 Développement 50

L’exécution des actions se fait dans l’ordre suivant :

MODIF
DEFLIG exécuté 1 seule fois
INICRE_LIG `` pour chaque création ligne détail
VALLIG

INIMOD_LIG `` pour chaque modification ligne détail


VALLIG avant la ré-écriture
VALLIG après la ré-écriture

VALLIG `` pour chaque suppression ligne détail

Copyright © Sage 2009-2010 Page 95


SAFE X3 DEVELOPPEMENT

Modèle « objet »
gestion détails : en suppression

Trbegin
ANNULE gosub ANNULE From TABLEAUX
Commit

VALLIG appelée après la suppression du détail


sert : traiter une autre table liée au détail

Copyright © Sage 2009-2010 Safe X3 Développement 51

L’exécution des actions se fait dans l’ordre suivant :

ANNULE
DEFLIG exécuté 1 seule fois
VALLIG `` pour chaque ligne détail

12.3.5. Définition des paramètres

12.3.5.1. DEFLIG
Action appelée avant les actions sur table détail par le traitement TABLEAUX lui-même

Sert à
Positionner des variables nécessaires au traitement TABLEAUX

Exemple des devis :

###########################################################################
$DEFLIG
Default Mask [SQH2]
Default File [SQD]
CRIT = 'SQHNUM="'+[M:SQH0]SQHNUM+'"'
FICLIG = "SQUOTED" : ABLIG = "SQD"
ZONLIG = "SQDLIN"
Return
##########################################################################

Copyright © Sage 2009-2010 Page 96


SAFE X3 DEVELOPPEMENT

DEFLIG
$DEFLIG
# Critère de lecture (CRIT)
# Nom du fichier (FICLIG)
# Abréviation du fichier (ABLIG)
# Zone numéro de ligne (ZONLIG)
#----------------------------------#

12.3.5.2. Champs nécessaires à déclarer dans l’écran


gestion détails : champs nécessaires à déclarer dans l’écran
Exemple écran SOH4

NBLIG (nom fixe) variable de bas de tableau

UPDFLG (nom fixe) flag identifiant une ligne modifiée

CREFLG (nom fixe) flag identifiant une ligne créée

SQDLIN nom du champ de la table détail contenant le no de ligne

Contrôle : contrôle possibilité d’insertion ligne à positionner sur la variable de bas de tableau
DIVLINCONT avec paramètre = nom champ du no ligne

Après-ligne : attribution du no de ligne (de 1000 en 1000) à positionner sur la variable de bas
de tableau
DIVLINNUM avec paramètre = nom champ du no ligne

12.3.5.3. Variables utilisables


Variable [V]GOK

à positionner dans les actions appelées durant une transaction.

[V]GOK = -1
Verrouillage d’information par un autre poste.
Abandon de la transaction puis nouvelle tentative

[V]GOK = 0 (Abandon de la transaction)

[V]GOK = 1 (tout est OK)

Verrouillage d’informations :

Abandon de la transaction par l’instruction Rollback


Nouvelle tentative (jusqu’à concurrence d’un nombre de tentatives défini par la variable GROLLBACK)

Variable [L]OK

À positionner dans certaines actions appelées hors d’une transaction


(ex : VERIF_CRE).

[L]OK = 1 (tout est OK)

[L]OK = 0 (réaction différente en fonction des actions)

Ex : OK = 0 dans VERIF_CRE : Abandon de la création

Copyright © Sage 2009-2010 Page 97


SAFE X3 DEVELOPPEMENT

Ex : OK = 0 dans AV_LISTE & AV_IMPRIME : pas de déclenchement de l’impression.

Copyright © Sage 2009-2010 Page 98


SAFE X3 DEVELOPPEMENT

12.4. EXERCICE : GESTION DES COMMANDES (GESTION ENTETE - DETAIL)

12.4.1. Objectif

Développer une gestion des commandes en ajoutant du spécifique au standard. Un traitement


standard SUBYOX a été créé pour la gestion entête détail.
Cette gestion s’appuiera sur votre gestion article YIX et gestion client YCX.

12.4.2. Marche à suivre

Modification des tables YORDHEAX et YORDDETX.


Création des écrans YOX0, YOX1, YOX2.
Création de l’objet YOX.

Pour ce faire, utiliser les descriptions ci-dessous.

Table des entêtes de commande

Code table : YORDHEAX


Abréviation : YHX
Module : Tronc commun

Zone Type de la zone Dim. Particul. Intitulé


YORDNUM Alphanumérique 15 1 oui No commande
YFCY Alphanumérique 3 1 Site
YBPCNUM Alphanumérique 10 1 Client
YORDDAT Date 1 Date
YBPALIG Alphanumérique 35 3 Ligne adresse
YPOSCOD Alphanumérique 10 1 Code postal
YCTY Alphanumérique 30 1 Ville
YORDTOTNOT Décimal 13.2 1 En commande HT
YORDTOTATI Décimal 13.2 1 En commande
YHXSTA Menu local 1 1 Soldée
YDLVDAT Date 1 Date livraison demandée
YSHIDAT Date 1 Date expédition
YMDL Alphanumérique 3 1 Mode livraison
YBPTNUM Alphanumérique 10 1 Transporteur
EXPNUM Entier long 8 1 Numéro export
CREUSR Alphanumérique 5 1 Opérateur création
CREDAT Date 1 Date création
UPDUSR Alphanumérique 5 1 Opérateur modif
UPDDAT Date 1 Date modif

Index Descripteur de l’index Homonymes


YHX0 YORDNUM Non

Copyright © Sage 2009-2010 Page 99


SAFE X3 DEVELOPPEMENT

YORDNUM :
Type de donnée VCR.

Type de donnée VCR :


Type de donnée utilisé pour les compteurs de document.
Voir ces caractéristiques :
Longueur banalisée de 17 caractères.
Option d’affichage M.
Conversion automatique des lettres en majuscules.

Table des détails de commande

Code table : YORDDETX


Abréviation : YDX
Module : Tronc commun

Zone Type de la zone Dim. Particul. Intitulé


YORDNUM Alphanumérique 15 1 oui No commande
YORDLIN Entier long 8 1 No ligne
YITMREF Alphanumérique 20 1 Article
YUOM Alphanumérique 3 1 Unité
YQTY Décimal 9.2 1 Quantité
YVATRAT Décimal 3.2 1 Taux Taxe
YORDNOT Décimal 13.2 1 Prix unitaire HT
YORDATI Décimal 13.2 1 Prix unitaire TTC
YDXSTA Menu local 1 1 Soldée
EXPNUM Entier long 8 1 Numéro export
CREUSR Alphanumérique 5 1 Opérateur création
CREDAT Date 1 Date création
UPDUSR Alphanumérique 5 1 Opérateur modif.
UPDDAT Date 1 Date modif

Index Descripteur de l’index Homonymes


YDX0 YORDNUM+YORDLIN Non

YORDNUM :
Type de donnée VCR.

Pour activer les automatismes de la sélection et du tunnel sur objet, pour les champs liés à ce type de donnée.
Paramétrez le code de l’objet dans le paramètre VCROBJ.

Copyright © Sage 2009-2010 Page 100


SAFE X3 DEVELOPPEMENT

Ecrans des Commandes


Ecran d’entête « identification »

Code écran : YOX0


Abréviation : YOX0
Traitements associés : SUBYOX standard
SPEYOX spécifique

Champ Saisie Oblig. Particularités Dévelop.


YORDNUM S Type de donnée lié au compteur VCR
Alimenter le numéro de commande à la création Oui
Ajout d’une fenêtre de sélection affichant les commandes
déjà existantes par l’action SELOBJW
Non saisissable en Création Oui
Contrôler que la valeur saisie, corresponde bien à une Oui
commande existante. Vous remarquerez que, de ce fait, on
interdit la duplication.
YHXSTA S Case à cocher
(Saisie : S Saisie / A Affiché / I Invisible)

Remarque :
Pour la mise en place des traitements liés au compteur, une aide est disponible au chapitre 12.4.4
Informations techniques et au chapitre Affecter un numéro de commande.

Copyright © Sage 2009-2010 Page 101


SAFE X3 DEVELOPPEMENT

Affecter un numéro de commande


Créer un compteur YOX par la fonction Paramétrage>Paramètres généraux>Compteurs avec les
caractéristiques suivantes :

• Niveau de définition : Site


• Niveau raz : Mensuel
• Type séquence : Normal
• Construction du compteur :
o Constante CDE 3 caractères
o Mois 2 caractères
o Année 2 caractères
o Site 5 caractères
o Séquence 5 caractères

Sous-programme à utiliser NUMERO From SUBANM. Les paramètres sont :


• Value char CODE_COMPTEUR
• Value char SITE
• Value date DATE
• Value char COMPLEMENT
• Variable char VALEUR_COMPTEUR
• Variable integer STATUT

Les 2 variables retournées au sous-programme sont :


• Variable char VALEUR_COMPTEUR (valeur pour no de la commande)
• Variable integer STATUT (Si aucune erreur, STATUT=0)

Changer les caractéristiques du numéro de commande

• En création, ce champ est non saisissable. Affecter un numéro de commande et l’afficher.


• Dans les autres cas, on interdit une valeur ne correspondant pas à une commande déjà
existante. On interdit ainsi la duplication.

Copyright © Sage 2009-2010 Page 102


SAFE X3 DEVELOPPEMENT

Onglet 1 « général »

Code écran : YOX1


Abréviation : YOX1
Traitements associés : SUBYOX standard
SPEYOX spécifique

Champ Saisie Oblig. Particularités Dévelop.


YFCY S Oui Contrôle / Sélection / Tunnel sur les sites standards
Affichage du libellé court
Saisissable uniquement en création Oui
YBPCNUM S Oui Contrôle / Sélection / Tunnel sur vos clients
Affichage du libellé long
Filtre pour sélection des clients non prospect
YORDDAT S Oui Initialisation par la date du jour en création Oui
YBPALIG S Alimenté par le client Oui
YPOSCOD S Alimenté par le client Oui
YCTY S Alimenté par le client Oui
(Saisie : S Saisie / A Affiché / I Invisible)

Copyright © Sage 2009-2010 Page 103


SAFE X3 DEVELOPPEMENT

Onglet 2 « lignes »

Code écran : YOX2


Abréviation : YOX2
Traitements associés : SUBYOX standard
SPEYOX spécifique

Champ Saisie Oblig. Particularités Dévelop.


YITMREF S Oui Contrôle / Sélection / Tunnel sur vos articles
YUOM S Oui Contrôle / Sélection / Tunnel sur les unités standard
Alimenté par l’article Oui
YQTY S Oui Positif
YORDNOT S Oui Alimenté par l’article Oui
YVATRAT S Alimenté par l’article Oui
Positif
YORDATI A Calculer à partir du prix HT et la TVA Oui
YORDTOTNOT A Cumul des lignes ( HT * QTE ) attention cette information ne Oui
doit pas faire partie du tableau
YORDTOTATI A Cumul des lignes ( TTC * QTE ) attention cette information Oui
ne doit pas faire partie du tableau
(Saisie : S Saisie / A Affiché / I Invisible)

Objet des commandes

Code objet : YOX

Fenêtre des commandes

Code fenêtre : OYOX

Copyright © Sage 2009-2010 Page 104


SAFE X3 DEVELOPPEMENT

12.4.3. Spécifique à développer

• Contrôler en fin de saisie qu’au moins une ligne ait été renseignée.
• Ajouter le champ « raison sociale » du client (paramétrage)

12.4.4. Informations techniques

La date du jour : variable système date$


Numéro de ligne courante variable système nolign-1
Statut retour après opération sur table variable système fstat

Déclaration d’une variable caractère : Local char nom_var


Déclaration d’une variable numérique : Local integer nom_var

Ouverture d’une table : Local File table [abrev]

Lecture : Read [abrev] index = champ


Lecture lockée : Readlock [abrev] index = champ
Lecture sans récuperation enregistrement : Look [abrev] index = champ
Mise à jour d’un enregistrement : Rewrite [abrev]

Augmentation de la valeur d’un champ : champ += nombre


Diminution de la valeur d’un champ : champ -= nombre

Alimentation d’un champ écran à partir de celui d’une table :

[M:abrev]champ_ecr = [F: abrev]champ_tab

[M: abrev]champ_ecr(0) = [F: abrev]champ_tab(0) pour un champ dimensionné


[M: abrev]champ_ecr(1) = [F: abrev]champ_tab(1)

12.4.5. A vérifier

• Création, duplication, modification, suppression de commandes


• Site non saisissable en modification
• Tunnel vers la gestion client et la gestion article.
• Initialisation de champs par le client et l’article
• En gestion Client : suppression non autorisée d’un client qui a passé une commande
• En gestion Article : suppression non autorisée d’un article commandé
• Initialisation de la date par la date du jour
• Client prospect interdit
• Article non actif interdit
• Format de la date de commande
• Suppression de ligne détail commande
• En création de commande, affectation automatique d’un numéro de commande
• Calcul du TTC de chaque ligne
• Calcul des totaux HT et TTC

Copyright © Sage 2009-2010 Page 105


SAFE X3 DEVELOPPEMENT

Mettre à jour la table client YCUSTOMX.


Lors de la création, modification ou suppression d’une commande, mettre à jour la fiche du client par :
le montant HT et TTC ainsi que la date de dernière commande.

A vérifier

• Affectation du compteur
• Numéro de commande saisi doit exister.
• Numéro de commande non saisissable en création.
• Mise à jour de la table client.

Notes

Copyright © Sage 2009-2010 Page 106


SAFE X3 DEVELOPPEMENT

Copyright © Sage 2009-2010 Page 107


SAFE X3 DEVELOPPEMENT

12.5. GESTION DES BOUTONS/MENUS

Les Boutons / Menus

Les boutons menus et bas d’écrans spécifiques sont à déclarer dans la fenêtre onglet
« Boutons/menus ».

Un sous-menu est rattaché à son menu d’origine par la première lettre de son code menu. Un menu
peu déclencher les actions sur champs de type contrôlent de la fenêtre si celui-ci est validant.

Dans cette fenêtre on peut affecter un titre aux menus, affecter l’action à exécuter, ajouter un code
activité s’il s’agit d’un menu spécifique.

12.5.1. Action sur modèle objet

Modèle « objet »

Gestion des boutons

SETBOUT Désactivation des boutons


Utiliser le sous-pro VIREBOUT pour enlever
le code bouton(s) de la variable CHAINE

AVANTBOUT Avant l’exécution du bouton


le code bouton est disponible dans la variable BOUT

Action
Action Dico
Dico déclaré
déclaré dans
dans la
la fenêtre
fenêtre

EXEBOUT Après l ’exécution du bouton


le code bouton est disponible dans la variable BOUT

Copyright © Sage 2009-2010 Safe X3 Développement 53

SETBOUT
Par défaut les boutons sont tous activés.
# Suppression du bouton supprimer si devis partiellement ou totalement cde
###########################################################################
If !CLECUR | [M]QUOSTA <> 1
Call VIREBOUT(CHAINE,"A") From GOBJET
Endif
###########################################################################

AVANTBOUT
###########################################################################
Case BOUT
When "A" : # Contrôle des autorisations

Copyright © Sage 2009-2010 Page 108


SAFE X3 DEVELOPPEMENT

GBIDC2= "A": Gosub AUTORIS_OPT From CONTX3


If !GBIDI2 : GERR = 1 : GMESSAGE = mess(2,104,1) : Return : Endif
….
Endcase

EXEBOUT
###########################################################################
Case BOUT
When "a" : GFONC1=WFONC1 : # Proforma
Gosub RELIT From GOBJSUB # Permet d’actualiser le browser courant
Endcase
###########################################################################

Le code bouton doit être différent de ceux possibles pour les boutons pré-définis. Les codes standards
étant soit des numériques soit des lettres majuscules, les code boutons spécifiques doivent donc être
des lettres minuscules.

Modèle « objet »

Gestion des menus

SETBOUT Activation des lignes de menu


CHMEN += « code(s) ligne de menu »
Gosub SET_BOUT_SPE From GSAISIE

AVANTBOUT Avant l’exécution du menu


le code menu est disponible dans la variable BOUT

Action
Action dico
dico déclarée
déclarée dans
dans la
la fenêtre
fenêtre

STATUT Après l ’exécution du menu


le code menu est disponible dans la variable BOUT

Copyright © Sage 2009-2010 Safe X3 Développement 54

SETBOUT
Par défaut les menus sont actifs mais les lignes ne le sont pas.
###########################################################################
: # activation des lignes menu précisées
CHMEN += "b"
Gosub SET_BOUT_SPE From GSAISIE

AVANTBOUT
Case BOUT
When "i" : [M]CNTNAM=[M:ADB2]CNTNAM : # Adresse livraison
Endcase

Copyright © Sage 2009-2010 Page 109


SAFE X3 DEVELOPPEMENT

###########################################################################

STATUT
###########################################################################
Case BOUT
When "i" :
If [M:ADB2]ADBFLG = 2 | [M]CNTNAM <> [M:ADB2]CNTNAM : # Adresse client livré
If GREP <> "C" & GREP <> "M" & GREP <> "D"
Gosub MAJADRESSE From SUBSQHB
Endif
If [M:ADB2]BPRNAM(0) <> ""
[M:SQH1]BPDNAM = [M:ADB2]BPRNAM(0)
Affzo [M:SQH1]BPDNAM
Endif
Endif
Endcase
###########################################################################

12.5.2. Après bouton / menus / liste gauche

FIN_ACTION
Action lancée après activation (click) d’un bouton, d’un menu ou d’une liste gauche

Est surtout utilisé pour l’activation du bouton « Enregistrer »

REP= « M »

Exemple :

$FIN_ACTION
Case BOUT
When "a"
If mkstat=4 & GREP=""
REP=”M”
Endif
Endcase
Return

Dans l’exemple
"a" est le code bouton ou menu
mkstat=4 n'est qu'un exemple. Le but est de tester la variable positionnée dans l'action appelée du
bouton / menu, qui indique que le contexte de mise à jour est à déclencher. Il est tout à fait possible
de passer par une variable global.

12.6. LES BROWSERS

12.6.1. Présentation

Listes gauche d’un objet, celle-ci peuvent être filtrées, triées de différentes manières par traitements.

Il est aussi possible d’ajouter une liste gauche par l’intermédiaire d’objet de type browser. Exemple
objet SQ1 ajouté dans la liste gauche de la fenêtre OSOH.

Cette liste peut être de type simple hiérarchisé ou picking.

Copyright © Sage 2009-2010 Page 110


SAFE X3 DEVELOPPEMENT

Normalisation des browsers :


2 premier caractères de l’objet
1 numéro de 1 à 9

Liste simple
25 colonnes max.
Clé doit être sans homonymes
Champ table secondaire autorisé si expression de lien

Liste hiérarchisée
16 niveaux hiérarchiques max.
Nb champs de clé constituent le nb de niveaux hiérarchiques
Il faut donc définir des niveaux hiérarchiques ( >= nb champs clé )
Si nb de niveaux hiérarchiques > nb champs clé, il y a une concaténation sur le dernier niveau
Champ table secondaire autorisé si expression de lien

12.6.2. Types de browser

Liste gauche principale

liste simple ou hiérarchisée ( picking possible )


présente si code objet dans l’onglet browser (fenêtre)
par usage, affichée par défaut

Liste des derniers lus

liste simple
présente si case cochée
par usage, affichée

Listes gauches secondaires

liste ou picking, simple ou hiérarchisée


nécessite le paramétrage d’un objet de type browser
doit être placé dans l’onglet browser (fenêtre)

Nommage superviseur
CLE_GAUCHE liste principale (GAU_CHE)
CLE_GAUCHE1 à 8 liste secondaires
CLE_GAUCHE9 liste derniers lus
Tester [S]currbox

Automatismes du superviseur
Remplissage : non, total, partiel
Partiel sur le browser principal
En fonction du paramètre CHDERLUS, sur les derniers lus
Chargement partie droite : oui, non
oui sur browser principal et derniers lus

Contraintes
On ne peut pas griser ou supprimer un browser ( solution : le laisser vide )
On ne peut pas changer l’ordre des browsers

Copyright © Sage 2009-2010 Page 111


SAFE X3 DEVELOPPEMENT

12.6.3. Actions sur modèles

Modèle « objet »

Les Browsers

OUVRE_BOITE Stocker le nom des browser

FILTRE Filtrer les enregistrements


liste principale et derniers lus

FILGAUCHE Filtrer les enregistrements


liste principale et secondaires

CLE_GAUCHE Pour modifier la clé de tri


liste simple et picking simple

[S]currbox : variable système indiquant le browser courant

Copyright © Sage 2009-2010 Safe X3 Développement 55

OUVRE_BOITE :
$OUVRE_BOITE
# Construction du nom des tiroirs comporté ensuite à currbox
Global Char GBOXSQ1(10)
GBOXSQ1 = "GAU_CHE"+num$(find("SQ1",OBJLIS(1..10)))
Return

FILTRE :
FILTSUP += « » pour le standard
CRITERE += « » pour le spécifique

FILGAUCHE :
FILGAUCHE(0..1) += « » pour le standard pour liste principale & derniers lus
FILGAUSUP(0..1) += « » pour le standard pour liste secondaire
CRITERE += « » pour le spécifique pour liste principale & derniers lus
FILGAUSUP(2) += « & » pour le spécifique pour liste secondaire

CLE_GAUCHE :
SNSLIS 1=ascendant, 2=descendant
LENLIS nombre d’éléments dans la clé
CLELISTE chaîne de 250 caractères. Liste champs composant la clé séparés par ;

Copyright © Sage 2009-2010 Page 112


SAFE X3 DEVELOPPEMENT

Modèle « objet »

Les Browsers – sélection sur picking

DEB_PICK début de sélection d’un groupe

PICKE après la sélection de chaque élément

DEPICK après la dé-sélection de chaque élément

FIN_PICK fin de sélection d’un groupe

Copyright © Sage 2009-2010 Safe X3 Développement 56

Pour toutes les actions :


OK = 0 pour interdire la sélection ou dé-sélection.

PICKE :
Permet d’écrire l’alimentation de la partie droite, pour un élément sélectionné.

DEPICK :
Permet d’écrire l’alimentation de la partie droite, pour un élément dé-sélectionné.

Copyright © Sage 2009-2010 Page 113


SAFE X3 DEVELOPPEMENT

13. ACTIONS

13.1. DEFINITION
L’action permet :
De cataloguer des traitements
D’identifier le modèle superviseur utilisé
Le passage de paramètres

L’action est obligatoire s’il y a ouverture d’une fenêtre, pour que le traitement superviseur puisse
appeler le modèle à utiliser.

Actions

Types de donnée
Table
M. Locaux
T. Diverses
Codes activités
Objet

Types de donnée
Fenêtre Écrans
M. Locaux
T. Diverses
Codes activités
Action Traitement standard
Traitement standard
Traitement vertical Traitement vertical
Traitement spécifique Traitement spécifique

Fonction

Copyright © Sage 2009-2010 Safe X3 Développement 58

Copyright © Sage 2009-2010 Page 114


SAFE X3 DEVELOPPEMENT

Actions

Action
Action
FONCTION
FONCTION
Menu
MenuX3
X3 Fenêtre
Fenêtre

FENETRE Écrans Objets browser


FENETRE Traitement standard
bouton
bouton/ /menu
menu ++ Boutons
Traitement / /Menus
Boutonsvertical
Menus
Traitement spécifique

ECRAN
ECRAN
champ
champ

TYPE
TYPE
DONNEE
DONNEE

Copyright © Sage 2009-2010 Safe X3 Développement 59

Exemple d’une action appelée


D’une fonction : GOBJET pour tous les objets X3
D’un menu : ACLOB sur la fenêtre OSOH, permet l’appel de la fenêtre d’enregistrement des clob.
D’une action sur champ : CONTOBJW, permet d’inhiber le contrôle d’existence.
D’un type de donnée : ATEXTR, permet de lancer la traduction en ligne pour les types de données
AXX.

13.2. INFORMATIONS GENERALES


Toutes les actions sont stockées dans le dictionnaire des actions :
« Développement>Dictionnaire traitements>Actions>Actions »

Modèle :
I s’agit du traitement modèle superviseur à lancer, par exemple le modèle objet.

Type :

Nouveau champ V6, dans le but d'une meilleure recherche et ré-utilisabilité

Permet de classer les sous-programmes et actions afin d'en faciliter la recherche, et ce, dans le but
d’une meilleure ré-utilisabilité.

Les actions et sous-programmes sont à classer en fonction de leur objectif :

• Contrôle
• Saisie
• Sélection
• Mise à jour

Copyright © Sage 2009-2010 Page 115


SAFE X3 DEVELOPPEMENT

• Xsl (traitement lié au composant écran)


• Retour d'un statut
• Recherche d'information
• Calcul
• Divers

Traitement :
En cas de modèle, ce traitement contient les actions écrites autour de ce modèle.
S’il n’y a pas de modèle, c’est le traitement à exécuter directement.

Instruction Adonix
sur traitement divers uniquement
%1, %2, … désigne la valeur du paramètre1 et du paramètre2.
Exemple : Affzone

Action suite :
Lorsque l’action principale est terminée, l’action suite est déclenchée. ( 5 enchaînements maxi.)
Sur l’écran, la fenêtre, ou la fonction, la saisie des paramètres cumule les paramètres de l’action suite
à ceux de l’action principale.

13.3. RENSEIGNEMENT DES PARAMETRES


Permet de définir tous les paramètres à passer pour l’action.

Zone courante
Si flag positionné, le 1er paramètre récupère automatiquement la valeur du champ courant.
Intéressant pour une action sur champ.

Action avant zone :


Appelée d’un bouton champ, elle permet de prendre la main avant et après l’action.

Paramètre :
Par valeur : sauvegarde puis restauration du paramètre pour garder sa valeur
l’argument est soit une constante, soit une variable.
Par adresse : modification du paramètre acceptée au retour du sous-programme
l’argument est obligatoirement une variable

Action avant zone :


Appelée d’un bouton champ
Permet de prendre la main avant et après l’action au niveau du programme appelant (trait. associé à
l’écran) dans l’étiquette $ACTION.
La variable ACTION a les valeurs
ABi_zone action avant Bi_zone
BBi_zone action après Bi_zone
i correspond au numéro du bouton (de 1 à 20), zone au nom du champ
Permet de positionner des variables globales (ex : GCONSULT)
Attention au contexte d’appel !
modèle appelant si action bouton /menu
traitement généré écran si action champ

13.3.1. Variable de l’action

Sur un modèle : Variable [L]PARAM()(1..)

Contient la valeur des paramètres de l’action dictionnaire.

Si zone courante est à non PARAM(1) = valeur 1er param.

Copyright © Sage 2009-2010 Page 116


SAFE X3 DEVELOPPEMENT

PARAM(2) = valeur 2ème param.


...

Si zone courante est à oui VALEUR = valeur 1er param.


PARAM(1) = valeur 2ème param.

Les paramètres sont des variables alphanumériques


Utiliser la fonction val qui transforme une chaîne de caractères en nombre
Ex : VARNUM = val(PARAM(1))

Copyright © Sage 2009-2010 Page 117


SAFE X3 DEVELOPPEMENT

13.3.2. Liste des actions standards principales pour le modèle objet

Appel d’une gestion objet :

GOBJET avec zone courante


GOBJETA avec zone courante
possibilité d’ajout de développement à l’appel de la fonction objet
GOBJETC sans zone courante
GOBJETN champ clé numérique

Contrôle particulier sur champ clé lié à objet :

CONTOBJW évite le contrôle d’existence, valeur obligatoire


CONTOBJN évite le contrôle d’existence, valeur facultative

Sélection enregistrement d’une table gérée par objet :

SELOBJW sélection avec possibilité d’appliquer les filtres de sélection.


SELOBJAW sélection avancée avec possibilité d’appliquer les filtres de sélection.

Action GOBJETA
Possibilité de restreindre l’accès à la gestion objet en positionnant la variable [V]GCONSULT

Variable [V]GCONSULT
Les valeurs possibles sont les suivantes :
0 : modification possible
1 : modification impossible, accès à tous les enregistrements
2 : modification impossible, accès à un seul enregistrement
0 est la valeur par défaut.

Copyright © Sage 2009-2010 Page 118


SAFE X3 DEVELOPPEMENT

14. MODÈLE « SAISIE FENÊTRE »

14.1. DEFINITION
Ce modèle permet :
la saisie d’informations complémentaires liées à une fenêtre de gestion objet
la saisie d’une fenêtre de critères

A l’inverse du modèle objet, aucun automatisme lié à l’affichage ou à la sauvegarde des données
n’est exécuté, ceux-ci devront être renseignés dans les traitements ci besoin est.

Ce modèle se lance :
d’une fonction, bouton/menu fenêtre, bouton champ.

Exemple dans la fenêtre des livraisons « Ventes>Livraisons>Livraisons » menus fenêtre


« Options>Informations douanières ».

14.2. PARAMETRAGE DE L’ACTION


Action de lancement du modèle « Saisie fenêtre »

Action de type saisie fenêtre.


Fenêtre principale : la fenêtre lancée lors de l’appel de l’action.
Traitement standard/spécifique.
Action suite : permet de lancer une action à la suite de celle-ci.

Fenêtre lancée « Saisie fenêtre »


Type fenêtre : Divers
Affichage :
– Boite de dialogue (fenêtre indépendante pas forcément pleine page)
– Plein écran
– Boite message (aucun bouton, menu, browser)

La fenêtre peut contenir boutons, menus, listes gauches, onglets, contrairement à GOBJET, aucune
action standard n’est déclenchée sur les boutons sauf pour : impression, liste, pièce jointe,
commentaires, propriétés, fin.

La fenêtre se lance d’une fonction, bouton/menu fenêtre, bouton champ


Le traitement lancé est GSAISIE

Copyright © Sage 2009-2010 Page 119


SAFE X3 DEVELOPPEMENT

14.3. ACTIONS SUR MODELE

Saisie Fenêtre

OUVRE début traitement


TITRE avant l’ouverture de la fenêtre
Affichage
DEBUT avant la saisie de la fenêtre

APRES_MODIF après la modification de chaque champ


Saisie

FIN après la saisie de la fenêtre


FINSAI fin de traitement

ABANDON en cas d’abandon

Copyright © Sage 2009-2010 Safe X3 Développement 61

14.3.1. OUVRE

Action lancée en tout début de traitement avant l’ouverture du masque

Sert à :

déclarer, alimenter des variables locales, globales


ouvrir des tables
afficher un message d’erreur : GERR = 1
GMESSAGE = « mess »
interrompre le traitement : FIN = 1

Sauvegarder la variable nolign : SVNOLIGN=Nolign

14.3.2. TITRE

Action lancée avant l’ouverture de la fenêtre

Sert à :

Sert à modifier le titre de la fenêtre : TIT


Titre de la fenêtre
Par défaut, il est alimenté par la désignation de la fenêtre stockée dans le dico des fenêtres.

Copyright © Sage 2009-2010 Page 120


SAFE X3 DEVELOPPEMENT

14.3.3. DEBUT

Action lancée avant la saisie de la fenêtre

Sert à :

pré-charger l’écran, avec nécessité de faire l’Affzo


afficher un message d’erreur : GERR = 1
GMESSAGE = « mess »
interrompre le traitement : FIN = 1

14.3.4. APRES_MODIF

Action lancée après la saisie de tout champ

Sert à :

activation boutons ENREGISTRER et ABANDON : REP= « M »

Saisie Fenêtre
Saisie fenêtre : Action événementielle

APRES_MODIF
AV_zone
AV_zone
D_zone
D_zone
AS_zone
AS_zone
C_zone
C_zone
AP_zone
AP_zone
AM_zone
AM_zone
[L]ACTION traitement SUBxxx ou SPExxx
[L]ACTION=="APRES_MODIF"
"APRES_MODIF"
Gosub
GosubACTION
ACTION $ACTION
$ACTION
Case
Case[L]ACTION
[L]ACTION
When
When""APRES_MODIF
APRES_MODIF"": :Gosub
GosubAPRES_MODIF
APRES_MODIF
When
Whendefault
default
cinématique Endcase
Endcase
sur champ Return
Return
$$APRES_MODIF
APRES_MODIF
REP=
REP=««MM»»
return
return

Copyright © Sage 2009-2010 Safe X3 Développement 62

Copyright © Sage 2009-2010 Page 121


SAFE X3 DEVELOPPEMENT

se déclenche pour tout champ modifié après l’action sur champ AM_zone, avant la
mise à jour de la classe [M].

se déclenche dans $ACTION du traitement SUBxxx ou SPExxx par GOSUB

variables système utilisables :


nom du champ courant : zoncou
valeur du champ courant : zc
indice du champ courant : indice

variables locales utilisables :


nom du champ courant : COUZON
valeur du champ courant : CZ
indice du champ courant : COUIND

Ex : SUBBPT (transporteur)

#############################################################################
$APRES_MODIF
Local Integer OKWEU
#---- si saisie de donnée poids et pas de saisie de unité poids : message
Case COUZON
When "ADL", "BKT", "PLIMAX", "PLIBKT" : Gosub CONT_WEU
When Default
Endcase

$CONT_WEU
If val(CZ)<>0 & [M:BPT1]WEU=""
OKWEU=2
Call AVERTIR(mess(169,192,1),OKWEU) From GESECRAN
Endif
Return
#############################################################################

14.3.5. FIN

Action lancée après la saisie de la fenêtre

Sert à :

Restaurer la variable nolign : Nolign= SVNOLIGN

14.3.6. FINSAI

Action lancée en fin de traitement

Sert à :

Rafraîchir la fenêtre d’appel : NBAFF= 1

Copyright © Sage 2009-2010 Page 122


SAFE X3 DEVELOPPEMENT

14.4. GESTION DES BOUTONS/MENUS

Saisie Fenêtre

Boutons Pré-définis

SETBOUT Désactivation des boutons


(« Enregistrer » et « Abandon » sont grisés par défaut
pour les activer REP=« M » en APRES_MODIF)
Call VIREBOUT (CHBOU, « x ») From GOBJET
Gosub SET_BOUT_STD From GSAISIE

AVANT_xxx Avant l’exécution du bouton

Action
Action Dictionnaire
Dictionnaire
XXX Après l ’exécution du bouton
pour sortir de la fenêtre FIN=1
(sortie automatique pour bouton « OK » et « FIN »

Copyright © Sage 2009-2010 Safe X3 Développement 63

Bouton actif par défaut


(*) Pour chaque bouton du superviseur, une action AVANT_xxx et une action xxx

Pour chaque bouton du superviseur, valeur de xxx :


Fin ACT = END (sortie fenêtre)
Enregistrer ENR code bouton = E
Créer CRE C
Supprimer SUP S
Abandon ABA A
Ok OK O (sortie fenêtre)
Nouveau NEW N
Premier FIR 0
Dernier LAS 9
Précédent PRE <
Suivant SUI >
Sélection SEL X
Changement de clé CHG H
Impression EDI I
Liste LIS L
Pièces jointes JOI J
Commentaires COM M
Propriétés PRO P

Copyright © Sage 2009-2010 Page 123


SAFE X3 DEVELOPPEMENT

Saisie Fenêtre

Boutons Spécifiques

SETBOUT Désactivation des boutons


Call VIREBOUT (CHMEN, « x ») From GOBJET
Gosub SET_BOUT_SPE From GSAISIE

AVANT_BOUTON Avant l’exécution du bouton


la variable BOUT contient le code bouton

Action
Action Dictionnaire
Dictionnaire

BOUTON Après l ’exécution du bouton


la variable BOUT contient le code bouton
pour sortir de la fenêtre FIN=1
Copyright © Sage 2009-2010 Safe X3 Développement 64

Activation Bouton
Bouton actif par défaut

Exécution bouton
Par défaut, ne sort pas de la fenêtre.
Pour sortir, faire FIN=1

Particularité : Action SPE ou STD


Autorisées s’il n’y a pas d’ouverture de fenêtre à faire.
Il n’y a pas de traitement lié à l’action dictionnaire
Le traitement lié au bouton est à écrire dans l’action BOUTON
 

Copyright © Sage 2009-2010 Page 124


SAFE X3 DEVELOPPEMENT

Saisie Fenêtre

Menus

SETBOUT Désactivation des menus


Call VIREBOUT (CHMEN, « x ») From GOBJET
Gosub SET_BOUT_SPE From GSAISIE

AVANT_MEN Avant l’exécution du menu


la variable BOUT contient le code menu

Action
Action Dictionnaire
Dictionnaire

MEN Après l ’exécution du menu


la variable BOUT contient le code bouton
pour sortir de la fenêtre FIN=1
Copyright © Sage 2009-2010 Safe X3 Développement 65

Activation Menu
Menu actif par défaut

Exécution Menu
Par défaut, ne sort pas de la fenêtre.
Pour sortir, faire FIN=1

Particularité : Action SPE ou STD


Autorisées s’il n’y a pas de ’ouverture de fenêtre à faire.
Il n’y a pas de traitement lié à l’action dictionnaire
Le traitement lié au bouton est à écrire dans l’action MEN
 

Copyright © Sage 2009-2010 Page 125


SAFE X3 DEVELOPPEMENT

14.5. GESTION DES BROWSERS

14.5.1. Presentation

Liste gauche principale


Pas de liste principale

Liste des derniers lus


Pas de liste des derniers lus

Listes gauches secondaires


liste ou picking, simple ou hiérarchisée
nécessite le paramétrage d’un objet de type browser
doit être placé dans l’onglet browser (fenêtre)

Nommage
CLE_GAUCHE1 à 8 liste secondaires

Automatismes du superviseur
Listes : remplissage de la liste (non, partiel, total)
sélection charge la partie droite ( si browser=oui)
Picking : remplissage de la liste (non, partiel, total)
un niveau par élément de clé ( 16 max. )

Contraintes
On ne peut pas griser ou supprimer un browser ( solution le laisser vide )
On ne peut pas changer l’ordre des browsers

14.5.2. Actions sur modèle

TIR Première action

FILGAUCHE Filtrer les enregistrements


FILGAUCHE(0..1) += « » pour le standard
FILGAUCHE(2) += « » pour le spécifique pour liste secondaire

CLE_GAUCHE Pour modifier la clé de tri


Liste simple et picking simple
SNSLIS 1=ascendant, 2=descendant
LENLIS nombre d’éléments dans la clé
CLELISTE chaîne de 250 caractères. Liste champs composant la clé séparés
par le caractère « ; »

AP_FILGAUCHE Durant l'affichage de la liste

Copyright © Sage 2009-2010 Page 126


SAFE X3 DEVELOPPEMENT

14.6. EXERCICE : MENU DANS GESTION COMMANDE

14.6.1. Objectif

Développer un traitement qui permettra de saisir des informations complémentaires dans une fenêtre
appelée depuis la gestion commande GESYOX, par la barre de menu. On profitera de la transaction
de mise à jour de l’objet pour mettre à jour la table entête.

14.6.2. Marche à suivre

Créer un écran XLIV


Créer une fenêtre XLIV
Créer une action XLIV
Ecrire un traitement XLIV
Appel de cette fenêtre de saisie depuis un menu de la gestion des commandes.

Pour ce faire, utiliser les descriptions ci-dessous.

L’écran XLIV

Code écran : XLIV


Abréviation : XLIV
Traitements associés: XLIV spécifique

Champ Saisie Oblig. Particularités Dévelop.


YDLVDAT S Non « Date de livraison demandée »
YSHIDAT S Non « Date d’expédition »

Elle doit être inférieure ou égale à la date de livraison Oui


demandée.
YMDL S Non « Mode de livraison »

Contrôle / Sélection / Tunnel


Affichage du libellé long
YBPTNUM S Non « Transporteur »
Contrôle / Sélection / Tunnel
Affichage du libellé long

Copyright © Sage 2009-2010 Page 127


SAFE X3 DEVELOPPEMENT

La fenêtre XLIV

Code fenêtre : XLIV


Boutons bas d’écran : Ok, Abandon, Fin

Le traitement XLIV
Le principe de ce traitement est de permettre une saisie complémentaire, par une fenêtre
supplémentaire à la fenêtre principale de gestion des commandes.
La mise à jour des informations de la fenêtre XLIV se fera par la transaction de l’objet.
Pour ce faire, on crée les champs de l’écran XLIV en invisible dans l’écran YOX0.

De ce fait, la gestion objet prendra automatiquement en charge :

• l’alimentation des informations dans la classe [M : YOX0] à l’affichage de la fenêtre OYOX,


• la mise à jour de l’enregistrement YORDHEAX à partir de la classe [M :YOX0]

Ce qu’il nous reste à développer :

• Avant la saisie dans la fenêtre, basculer le contenu des champs invisibles de l’écran YOX0
dans l’écran XLIV.
• A l’activation du bouton OK, on fait un transfert de classe [M :XLIV] vers [M :YOX0]

Saisie dans cette fenêtre XLIV :

• Si la commande n’est pas soldée : les champs sont saisissables


• Si la commande est soldée : les champs sont grisés

Gestion des boutons :

• OK : on ferme la fenêtre et on récupère les données.


• FIN : on ferme la fenêtre sans récupération des données
• ABANDON : on reste sur la fenêtre et on réinitialise les données

14.6.3. A vérifier

• Fenêtre saisissable ou pas en fonction du statut de la commande


• Saisie + Ok
• Saisie + Abandon
• Saisie + Fin
• Mise à jour des informations dans la table des commandes

Copyright © Sage 2009-2010 Page 128


SAFE X3 DEVELOPPEMENT

Notes

Copyright © Sage 2009-2010 Page 129


SAFE X3 DEVELOPPEMENT

15. MODÈLE « TRAITEMENT STANDARD »

15.1. DEFINITION
Ce modèle permet :
saisie d’une fenêtre de critère, boite de dialogue, ou simple confirmation
saisie d’une fenêtre principale
exécution d’un traitement procédural silencieux
il peut être lancé en batch, par la soumission des requêtes
générer une trace

Ce modèle n’a rien à voir avec les traitements standards X3

Ce modèle se lance :
se lance d’une fonction, bouton/menu fenêtre, bouton champ.

Exemple : « Ventes>Livraisons>Livraisons automatiques »

Traitement standard

Traitement standard
Fenêtre Écrans Traitement vertical
critères Traitement spécifique

Traitement standard
Action Fenêtre Écrans Traitement vertical
Principale Traitement spécifique

Fonction Traitement superviseur GTRAITE


Traitement standard
Traitement spécifique

Tâche Soumission en batch

BATCH
Lancement automatique
Abonnement avec périodicité

Copyright © Sage 2009-2010 Safe X3 Développement 68

Copyright © Sage 2009-2010 Page 130


SAFE X3 DEVELOPPEMENT

15.2. PARAMETRES

Action de lancement du modèle « Saisie fenêtre »

Action de modèle Traitement standard.


traitement standard / traitement spécifique
fenêtre principale, venant en ajout après la fenêtre de critère (peu renseignée)
saisie initiale
= sans saisie initiale
= confirmation oui / non
= boite de dialogue + fenêtre de critères
= saisie de fenêtre + fenêtre de critères (modèle saisie fenêtre)
= sélection de table
= sélection de liste

Traitement standard
Le traitement superviseur lancé est GTRAITE

Remarque
Actions à écrire sur le même traitement pour :
fenêtre principale
fenêtre de critères
sélection table
sélection liste

[L]BOITE permet de dissocier les 2 fenêtres.

Copyright © Sage 2009-2010 Page 131


SAFE X3 DEVELOPPEMENT

15.3. ACTIONS SUR MODELES : MODE INTERACTIF

Traitement standard : en interactif

INIT début traitement


AVANT_PAR avant l’ouverture de la fenêtre critère
INIT_DIA seulement pour une boite de dialogue
avant l’affichage de cette fenêtre
Retour saisie

Saisie fenêtre de critères

CONTROLE après la saisie de cette fenêtre

Saisie fenêtre principale

traitement
EXEC une fois les contrôles OK
TERMINE après le traitement
Affichage de la trace
SORTIE fin de traitement
Copyright © Sage 2009-2010 Safe X3 Développement 69

L’exécution d’une action de type traitement standard se fait en plusieurs temps :

Saisie d’une fenêtre de critère, boite de dialogue, fenêtre de sélection ou simple confirmation.
Saisie d’une fenêtre principale si celle-ci a été définit.
Exécution d’un traitement procédural silencieux (action EXEC).
Puis lecture d’une trace contenant les informations liées à l’exécution du traitement (erreur,
nombre d’enregistrement touchés…).

Chaque étape est facultative.

15.3.1. INIT

Action lancée en tout début de traitement, ne s’exécute qu’une seule fois

Sert à :

déclarer, alimenter des variables locales, globales


ouvrir des tables
ouvrir l’écran si saisie initiale par ‘saisie fenêtre’
afficher un message d’erreur : GERR = 1
GMESSAGE = «mess»
interrompre le traitement : FIN = 1

affecter un titre à la boite de dialogue ou


une question à la boite de confirmation : TIT = « titre »

Copyright © Sage 2009-2010 Page 132


SAFE X3 DEVELOPPEMENT

Remplacer la fenêtre précisée dans l’action : BCRIT = « fenêtre critères »


BOITE = « fenêtre principale »

Message de confirmation :
Il faut indiquer le message.
Le superviseur gère les boutons « oui » « non ».
non : déclenche la fin du traitement standard (équivalent à FIN=1)

Boîte de dialogue :
Il faut créer l’écran et la fenêtre avec les boutons pré-définis « ok» « fin ».
Le superviseur gère les boutons « ok» « fin ».
fin : déclenche la fin du traitement standard (équivalent à FIN=1)

Saisie fenêtre :
Il faut créer l’écran et la fenêtre
Le superviseur utilise le modèle « saisie fenêtre ».
Obligation d’ouvrir le masque dans l’action INIT
Pour connaître le bouton activé, tester GSTATUT dans les actions CONTRÔLE, EXEC.

Sélection Table / Sélection liste :


Pas d’écran, pas de fenêtre à créer
Alimentation de la fenêtre par traitement
Variable VALEUR est alimentée en retour.

15.3.2. AVANT_PAR

Action lancée avant l’ouverture de la fenêtre de critère, possibilité de boucler sur la saisie des
paramètres dans l’action « CONTROLE » et « EXEC ».

Sert à :

inhiber la fenêtre de saisie de critères : TYPPRG = 0

Copyright © Sage 2009-2010 Page 133


SAFE X3 DEVELOPPEMENT

15.3.3. INIT_DIA

Action lancée seulement pour une boite de dialogue avant l’affichage de cette fenêtre.

Sert à :

affecter des champs de cette fenêtre

Attention !
Actzo, Diszo, & Grizo ne sont pas disponibles dans cette action
On pourra les utiliser dans les actions sur champs (ex : en avant_zone du champ courant)

L’abréviation DIA n’est plus obligatoire pour l’écran.

15.3.4. Gestion des saisies fenêtre

Traitement standard

cas des saisies fenêtre

Traitement standard

INIT Local Mask nom_mask [abrev]

2ème niveau de localité

Call « Saisie fenêtre » Fenêtre de critères


Toutes les actions liées à ce modèle « saisie fenêtre »

Call « Saisie fenêtre » Fenêtre principale


Toutes les actions liées à ce modèle « saisie fenêtre »

EXEC
Copyright © Sage 2009-2010 Safe X3 Développement 70

#############################################################################
$ACTION
Case ACTION
When « INIT » Gosub INIT
….
# actions du modèle saisie fenêtre
When « DEBUT » Gosub DEBUT

Endcase
Return

$init

Copyright © Sage 2009-2010 Page 134


SAFE X3 DEVELOPPEMENT

Local mask XXX [XX]


return

$ DEBUT
Case BOITE
When « code_fenêtre » Gosub …
When « code_fenêtre » Gosub …
Endcase
Return
#############################################################################

15.3.5. CONTROLE

Action lancée après la saisie des paramètres de lancement dans la fenêtre de critères, exécutée
systématiquement

Sert à :

effectuer les derniers contrôles avant traitement


GSTATUT permet de connaître le bouton activé en saisie fenêtre
afficher un message d’erreur : GERR = 1
GMESSAGE = «mess»
interrompre le traitement : FIN = 1
retourner à la saisie des paramètres : SAI = 1
Positionnement du curseur (nom de champ) : zonsui

afficher un message d’attente : TMP = 1


message d’attente : TIT = x

TIT : code texte du message d’attente


V « validation en cours ...»
F « vérification en cours ...»
L « lecture en cours ...»
E « écriture en cours ...»
A « annulation en cours ...»
R « recherche en cours ...»
C « calcul en cours ...»
« opération en cours ... »

texte spécifique à afficher (dans une chaîne de 50 caractères)

Variable SAI :
SAI=1 retour en saisie, juste avant l’action AVANT_PAR (en mode interactif)

15.3.6. EXEC

Action lancée une fois les contrôles OK

Sert à :

lancer votre traitement


GSTATUT permet de connaître le bouton activé en saisie fenêtre
afficher un message d’erreur : GERR = 1
GMESSAGE = «mess»
interrompre le traitement : FIN = 1
ouvrir & fermer la trace

Copyright © Sage 2009-2010 Page 135


SAFE X3 DEVELOPPEMENT

affichage trace : TRA = 1 ou 9


retourner en saisie paramètres
après exécution de ce traitement : SAI = 1

Variable TRA :
0 pas d’affichage & conservation de la trace
1 affichage & conservation de la trace
9 affichage & suppression de la trace

Ouverture & fermeture trace :


Call OUVRE_TRACE(« titre ») From LECFIC
Call FERME_TRACE From LECFIC

Ecriture trace en interactif et batch :


Call ECR_TRACE(MESSAGE,0) FROM GESECRAN : # information (couleur 1)
Call ECR_TRACE(MESSAGE,1) FROM GESECRAN : # Erreur (couleur 2)
Call ECR_TRACE(MESSAGE,-1) FROM GESECRAN : # Warning (couleur 3)

Les couleurs utilisées sont celles paramétrées dans le menu Outils / Options

Variable SAI :
1 retour en saisie, juste avant l’action AVANT_PAR, en mode interactif
aucun effet en mode batch

Trbegin – Commit :
Pour un traitement de mise à jour, définir la transaction

15.3.7. TERMINE

Action lancée après l’action EXEC


si pas de retour en saisie SAI<> 1
si pas de fin de traitement FIN <> 1

Sert à :

même possibilité que l’action EXEC


Par contre, exécution unique

15.3.8. SORTIE

Action lancée en fin de modèle

Sert à :

charger des variables


indiquer au programme appelant d’activer le bouton enregistrer
par mkstat = 4 ou une variable globale

Activation du bouton Enregistrer :

Il sera nécessaire d’écrire dans l’action SETBOUT de l’objet appelant :


If mkstat = 4 & GREP = « » : REP = « M » : Endif

Copyright © Sage 2009-2010 Page 136


SAFE X3 DEVELOPPEMENT

15.4. ACTION SUR MODÈLES : MODE BATCH

15.4.1. Etape interactive : le lancement

Etape 1 :
- Saisie des paramètres
- Le superviseur les stocke dans la table ABATRQT

Le lancement ce fait via le menu « Exploitation>Serveur batch>Soumission des requêtes ».

Renseignements des informations de lancements :


Le dossier sur lequel va être exécuté le traitement
L’utilisateur, permet de vérifié les droits d’accès aux requêtes.
Un groupe ou une tache à exécuter, il s’agit de la requête contenant la fonction ou le
traitement à exécuter. Cette tache est à créer dans le menu « Exploitation>Serveur
batch>Gestion des taches ».

Date et heure de lancement.

Soumission d’une requête :


Recherche de la tâche associée
Contrôle des droits de l’utilisateur
Saisie des paramètres nécessaires au lancement du traitement
Création de la requête avec stockage des paramètres, code tâche, traitement à exécuter

Création Requête :
Le champ DEB(15)(80) contient le nom du champ dans l'écran de saisie des critères
Le champ FIN(30)(80) contient la valeur de ce champ.
Si la valeur du champ>30, les caractères>30 sont mis sur l'indice suivant.
Si + de 80 champs, on enregistre la requête courante avec DEB(79)="&"
et on crée un deuxième enregistrement (no de requête +1) avec FLAG=99

Variable identifiant le contexte :


GBATCH = 1, si le traitement est lancé par le serveur batch.
 

Copyright © Sage 2009-2010 Page 137


SAFE X3 DEVELOPPEMENT

15.4.2. Les actions sur modèles

Traitement standard : batch

Etape interactive : le lancement

Soumission de requêtes

OUVRE_BATCH après le bouton validation de cette fenêtre

INIT_DIA avant l’affichage de la boite de la dialogue


pour saisie des paramètres

fenêtre de critères

CONT_BATCH après la saisie de cette fenêtre


Stockage dans table requêtes
[F]=[M]
Copyright © Sage 2009-2010 Safe X3 Développement 71

Soumission d’une requête - phase 1


2 actions propres aux batchs

OUVRE-BATCH :
Possibilité d’ouvrir une fenêtre différente en positionnant BCRIT pour le code fenêtre

CONT-BATCH :
Permet les contrôles dès la saisie des paramètres
Possibilité identique à l’action CONTROLE du lancement interactif.

Copyright © Sage 2009-2010 Page 138


SAFE X3 DEVELOPPEMENT

15.4.3. Etape interactive : l’exécution

Etape 2 :
Le superviseur lit le paramètre depuis la table ABATRQT
Exécution du traitement

− Visualisation des taches et de leurs déroulements dans le menu


« Exploitation>Serveur batch>Gestion des requêtes »

− Couleurs des taches :


> Gris : Taches exécuté.
> Rouge : Taches avortés ou exécuté avec erreurs.
> Vert : Taches en attente ou en cours d’exécutions.
− Si la requête n’a pas encore été exécutée il est possible de modifier ses paramètres
de lancements.
− Après exécution la trace de la requête est visualisable par clique droit sur la requête
option trace. Il est aussi possible de la relancer.

Soumission d’une requête :

Exécution de la requête à la date et heure prévue par le serveur batch


GSERVEUR = 1, si le traitement est lancé par le serveur batch.

Copyright © Sage 2009-2010 Page 139


SAFE X3 DEVELOPPEMENT

15.4.4. Exécution en mode batch

Traitement standard : batch


Etape batch : l’exécution

INIT début traitement


AVANT_PAR avant l’ouverture de la fenêtre critère
INIT_DIA seulement pour une boite de dialogue
avant l’affichage de cette fenêtre

Lecture de la requête
[M]=[F]

CONTROLE après la saisie de cette fenêtre

traitement
EXEC une fois les contrôles OK

TERMINE après le traitement


Affichage de la trace

SORTIE fin de traitement


Copyright © Sage 2009-2010 Safe X3 Développement 72

Soumission d’une requête - phase 2 :


C’est le modèle GTRAITE qui est utilisé.
La lecture de la requête alimente l’écran de saisie des paramètres.
L’ouverture et la fermeture de la trace est prise en charge par le superviseur.

Attention ! Il n’y pas de saisie de fenêtre principale.

Action CONTROLE :
Si erreur, affichage dans la trace.
Pas de retour possible en saisie.

Attention aux licences d’exécution des taches batch !

Les traitements silencieux sont en général des traitements couteux en ressources. Pour trouver les
possibilités d’amélioration des performances un Utilitaire peut-être déclenché par traitement.

# Activation
Call ACTIVE from TIMING
...
# Affichage du temps passé par chaque sous-programme et étiquettes avec le nombre d’appel et le
temps d’exécution entre le lancement et l’arrêt.
Call ARRET From TIMING

Copyright © Sage 2009-2010 Page 140


SAFE X3 DEVELOPPEMENT

16. FONCTIONS

Présentation :
Se situe dans le menu « Développement>Dictionnaires traitments>Fonctions »
fait le lien entre le menu et soit :
– un menu (sous-niveau de menu)
– un traitement

GESxxx pour un objet (générée automatiquement)


CONSxxx pour une consultation
FUNxxxxxx pour tout autre traitement

onglet général :
Sélection du menu contenant la fonction, du rang et du libellé à afficher.
Sélection des autorisations d’accès.
Sélection des états à imprimer.

onglet action :
Sélection de l’action à exécuter sur une fonction de type traitement.
Sélection des paramètres pour cette action

Menu / Rang / Intitulé : information pour le menu page HTML (idem objet)
Type fonction : élément appelé par la fonction ( traitement ou menu )
Type accès objet : positionné à oui en automatique par la validation d’objet
permet le contrôle d’autorisation en création, modif. et suppression
Autorisation site : permet le contrôle d’autorisation par site.
oui en auto. par la validation d’objet, si champ site identifié dans l’objet
Exécution mono : exécution de cette fonction possible alors qu’une autre fonction est
lancée en mode mono.
Impression : affectation d’un document Crystal Report (idem objet)
Liste : affectation d’une liste Crystal Report (idem objet)

Test des options dans l’objet :


AVANTBOUT
Case BOUT
When "a" : # Contrôle des autorisations
GBIDC2= "A": Gosub AUTORIS_OPT From CONTX3
If !GBIDI2 : GERR = 1 : GMESSAGE = mess(2,104,1) : Return : Endif
….
Endcase

Action :
A renseigner pour une fonction de type « traitement »
Le traitement se lance soit en précisant l’action, soit le traitement
Favoriser la technique de l’action
S’il y a ouverture de fenêtre, on devra absolument indiquer l’action
Tout type d’action sauf action de type « Hors modèle »

Paramètres :
Possibilité d’affecter des valeurs par défaut aux paramètres de l’action.
en validation d’objet, alimentation automatique de l’action et des paramètres.

Navigation :
Par défaut, une fonction est accessible à la navigation "Aller à (touche F7)" ou en utilisant le bandeau
de la barre des menus.
Pourquoi et comment réduire les droits d'accès par la navigation ?
Interdite vers cette fonction :
Fonction nécessitant, par exemple, un contexte d'appel. Exemple: les fonctions non rattachées à un
menu X3.

Copyright © Sage 2009-2010 Page 141


SAFE X3 DEVELOPPEMENT

Interdite depuis cette fonction :


Fonction ayant, par exemple, des filtres positionnés, et pouvant ainsi amener de faux résultats dans la
fonction appelée.
Interdite dans tous les cas :
Fonction interdite dans les deux cas cités au-dessus.
 
 
 

Copyright © Sage 2009-2010 Page 142


SAFE X3 DEVELOPPEMENT

17. MODÈLE « AFFICHAGE DIVERS »

17.1. DEFINITION:
ce modèle permet :
– exécuter un traitement sans ouverture de fenêtre

Ce modèle se lance :
– D’une action champ, d’un bouton bas d’écran ou d’un menu
– D’une fonction

Exemple :
– Action sur champ contrôle CTLNUM appelé sur le champ SOHNUM de
l’écran SOH0 pour contrôler le N° de document.

Paramètres de l’action
– Modèle : affichage divers
– Traitement standard, traitement spécifique.
– Code action contenu dans la variable GACTION à l’intérieur du traitement.

17.2. ACTION UNIQUE TRT_DIV


Action lancée au début de traitement

Sert à :

lancer votre traitement


afficher un message d’erreur : GERR = 1
GMESSAGE=«mess»

###############################################################################
$ACTION
Case ACTION
When « TRT_DIV » : Gosub TRT_DIV
Endcase

$TRT_DIV

Return
###############################################################################

Variable TRAIT :
Contient l’identifiant de l’action dictionnaire.

Copyright © Sage 2009-2010 Page 143


SAFE X3 DEVELOPPEMENT

18. MODÈLE « HORS MODÈLE »

18.1. DEFINITION :
ce modèle permet :
– D’exécuter un sous-programme

Ce modèle se lance :
– D’une action champ, d’un bouton bas d’écran ou d’un menu
– D’une fonction

Exemple :
– Action sur champ après-ligne DIVLINNUM appelé sur le champ NBLIG de
l’écran SOH4 pour l’attribution du numéro de ligne.

Paramètres de l’action
– Modèle : Hors modèle
– Traitement standard ou traitement spécifique.
– Renseignement du sous-programme.

Paramètres du 1er onglet :


Traitement & sous-programme
Traitement standard ou spécifique : pas d’ajout de spécifique sur le standard
Instruction Adonix (possibilité d’utiliser seulement une instruction et non un sous-pro.)

18.2. PARAMETRE DU SOUS-PROGRAMME


Onglet Paramètre de l’action

Cohérence des paramètres action et sous-programmes :


Ordre
Nombre
Nature (char, integer, decimal, date,…)
Mode (par valeur ◊ value, par adresse ◊ variable)

Exemple avec l’action LINNUM du traitement TABLEAUX :

Traitement TABLEAUX
Subprog LINNUM (ZONLIG)
Value char ZONLIG

End

Description dans le dictionnaire des actions


• nom : Lig, type : char, passage par valeur

Copyright © Sage 2009-2010 Page 144


SAFE X3 DEVELOPPEMENT

Hors modèle

FONCTION
FONCTION
Menu
MenuX3
X3
Action
Action
FENETRE
FENETRE Traitement
Traitementstandard
standard
bouton
bouton/ /menu Traitement
menu Traitementspécifique
spécifique

ECRAN
ECRAN
champ
champ

TYPE
TYPE
DONNEE
DONNEE

Copyright © Sage 2009-2010 Safe X3 Développement 76

Hors modèle
Le traitement lancé est votre propre traitement
Il n’y a pas de traitement superviseur

Ce modèle se lance :
D’une action champ, d’un bouton bas d’écran ou d’un menu
Mais jamais d’une fonction.

18.3. DECLARATION DU SOUS-PROGRAMME


Une fois que le sous-programme a été écrit dans l’action, si celui-ci peut être réutilisé ultérieurement, il
faudra alors le déclarer dans le dictionnaire des sous-programmes « Développement>Dictionnaires
traitements>Traitements>Sous-Programmes ».

Renseignement du traitement contenant le sous-programme, puis le nom de celui-ci.


Ajout d’un descriptif.

Type :
Permet de classer les sous-programmes et fonctions afin d'en faciliter la recherche, et ce, dans le but
d’une meilleure réutilisabilité.
Les fonctions et sous-programmes sont à classer en fonction de leur objectif :
• Contrôle
• Saisie
• Sélection
• Mise à jour
• Xsl (traitement lié au composant écran)
• Retour d'un statut

Copyright © Sage 2009-2010 Page 145


SAFE X3 DEVELOPPEMENT

• Recherche d'information
• Calcul
• Divers

Type argument :
Ce champ est à renseigner pour les fonctions. Celles-ci sont à classer en fonction de la nature de leur
argument de retour :
• Char
• Intéger
• Decimal
• Date
• etc.

Copyright © Sage 2009-2010 Page 146


SAFE X3 DEVELOPPEMENT

18.4. EXERCICE : CALCUL DE L’EN-COMMANDE CLIENT EN BATCH

18.4.1. Objectif

Re-calcul de l’en-commande client par un traitement qui analyse les commandes.


Ce traitement se lance aussi bien en temps-réel qu’en batch.

18.4.2. Marche à suivre

Création d’un écran YEX


Création d’une fenêtre YEX
Création d’une action YEX
Création d’une fonction YEX
Création du traitement YEX

Pour ce faire, utiliser les descriptions ci-dessous.

Ecran de sélection

Code écran : YEX


Abréviation : YEX
Traitements associés: YEX

Champ Saisie Oblig. Particularités Dévelop.


YBPCNUMD S non Fenêtre de sélection sur vos clients
Pas de contrôle d’existence de la valeur, et champ vide
autorisé (action CONTOBJN)
YBPCNUMF S non Fenêtre de sélection sur vos clients
Pas de contrôle d’existence de la valeur, et champ vide
autorisé (action CONTOBJN)
Contrôler que la borne fin soit bien supérieure ou égale à
la borne début. Faire en sorte que ce contrôle soit
réutilisable.
Aurait-on la possibilité de faire ce contrôle par
paramétrage ? si oui, de quelle façon ?
(Saisie : S Saisie / A Affiché / I Invisible)

Remarque :
Les valeurs saisies dans les bornes peuvent ne pas correspondre à des clients existants et peuvent
ne pas être saisies.

Copyright © Sage 2009-2010 Page 147


SAFE X3 DEVELOPPEMENT

18.4.3. Traitement

Lire les clients sélectionnés


Pour chacun d’eux :
o Verrou logique de l’enregistrement lu
o Constitution de la transaction de mise à jour
ƒ Verrou physique de l’enregistrement à mettre à jour
ƒ Remise à zéro des cumul HT et TTC ( enregistrement client )
ƒ Lecture des commandes passées pour ce client avec calcul des cumuls
ƒ Mise à jour des cumuls HT et TTC du client
o Enlever le verrou logique
Constitution d’une trace :
o Message d’information : « Client mis à jour : xxxxx»
o Message d’erreur : « xxxxx Rollback suite à erreur dans la transaction »

Le traitement YEX est à compléter.

18.4.4. A vérifier

• Contrôles de la saisie des bornes client


• Les résultats dans les fiches clients
• L’exécution du traitement en mode interactif et batch
• La trace

Notes

Copyright © Sage 2009-2010 Page 148


SAFE X3 DEVELOPPEMENT

Copyright © Sage 2009-2010 Page 149


SAFE X3 DEVELOPPEMENT

19. MODÈLE « SÉLECTION TABLE »

19.1. DEFINITION :
Ce modèle permet :
– L’ouverture d’une fenêtre de sélection d’une table ou d’un link

Ce modèle se lance :
– principalement d’une action champ : sélection ou bouton
– depuis un traitement standard
– Depuis une fonction

Exemple :
– Dans les livraisons automatiques, sur le champ client livré, menu contextuel
option sélection.

Paramètres de l’action
– Modèle : Sélection dans table
– Traitement standard et traitement spécifique.
– Identifiant action.
– Intitulé bouton (le nom de l’option dans le menu contextuel)

Sélection dans table


Les éléments proposés dans la fenêtre s’appuient sur une table ou une classe [F] issue du Link
Possibilité de filtre des enregistrements
On indique les champs à présenter dans cette fenêtre
1 enregistrement = 1 ligne, 1 champ= 1 colonne (25 colonnes maximum)
Le nombre de lignes affichées est fonction du paramètre utilisateur NBRCHOOSE
Ensuite possibilité de pagination

Le traitement superviseur est GACTION

Pour créer une fenêtre de sélection :


Utiliser le type de donnée lié à l’objet
Sinon, utiliser les actions SELOBJW et SELOBJAW
L’option # permet de ne pas appliquer le filtre sur ENAFLG, et l’action FILTRE liée à l’objet.
Sinon, se créer une action « sélection table »

Copyright © Sage 2009-2010 Page 150


SAFE X3 DEVELOPPEMENT

19.2. ACTIONS SUR MODELE

Sélection dans table

SEL_TABLE avant l ’affichage de la fenêtre

Saisie

VERF_TABLE après la saisie du choix


Valeur= [M]START

FIN_TABLE fin de traitement

Copyright © Sage 2009-2010 Safe X3 Développement 79

19.2.1. SEL_TABLE

Action lancée avant l’affichage de la fenêtre.

Positionner la table par défaut


Définir les colonnes de la fenêtre de sélection avec :
No de colonne NBCOL
Nom du champ COL(NBCOL)
Titre de la colonne TIT(NBCOL)
Donner un titre à la fenêtre : TIT(0)

Colonne à récupérer suite au choix : START


Filtre de sélection des enregistrements : CRITERE
Critère de tri : ORDRE
Sens du tri : SENS
Gérer une pagination : DEFPAG=1
Afficher éléments à partir de EXPSTART
Affecter une taille de fenêtre SIZLIG & SIZCOL

Pagination :
Gérée par le superviseur si DEFPAG=1,
Tient compte du tri positionné dans ORDRE et SENS.

Tri :
Par défaut, tri sur la première colonne déclarée dans la fenêtre.
Possibilité de trier les enregistrements d'une autre façon.

Copyright © Sage 2009-2010 Page 151


SAFE X3 DEVELOPPEMENT

On indique le nom d'un ou plusieurs champs appartenant à la table mais pas forcément à la fenêtre.
Les noms de champs sont séparés entre eux par le caractère ";".
Exemple : ORDRE = "[F:ADI]NUMTAB;[F:ADI]CODE«

Par défaut, sens du tri est ascendant


Possibilité de tri descendant avec SENS=2

19.2.2. VERF_TABLE

Action lancée après la saisie du choix, avant l’alimentation de VALEUR

Sert à :

Affecter d’autres champs : [M]champ = [F]champ


Affzo [M]

Effectuer des contrôles du choix


Afficher un message d’erreur : GERR = 1
GMESSAGE = « mess »

La classe [F] complète de l’enregistrement est disponible.


Il est alors possible d’affecter d’autres champs, puis de les afficher.

19.2.3. FIN_TABLE

Action lancée en fin de traitement même si aucune sélection n’a été effectuée

Sert à :

Enlever un filtre positionné auparavant


Intervenir sur le choix : Valeur

Sur action Sélection


Automatisme de passage au champ suivant par le superviseur
Forcer le curseur à rester sur le champ courant mkstat=2

Sur action Bouton


Forcer le curseur à passer au champ suivant mkstat=99

Copyright © Sage 2009-2010 Page 152


SAFE X3 DEVELOPPEMENT

20. MODÈLE « SÉLECTION LISTE »

20.1. DEFINITION :
Ce modèle permet :
– L’ouverture d’une fenêtre de sélection des éléments d’une liste

Ce modèle se lance :
– principalement d’une action champ : sélection ou bouton
– depuis un traitement standard
– Depuis une fonction

Exemple :
– action AMENLOCSEL : menus locaux modifiables par module menu :
« Paramétrage>Paramètres généraux>Menus locaux »

Paramètres de l’action
– Modèle : Sélection dans liste
– Traitement standard et traitement spécifique.
– Identifiant action.
– Intitulé bouton (le nom de l’option dans le menu contextuel)

Ce modèle permet :
L’ouverture d’une fenêtre de sélection des éléments d’une liste
On doit fournir les éléments à afficher dans un tableau : les lignes sont à constituer
Tous les éléments sont affichés en même temps dans la fenêtre (limite de 200 max)
Sélection rapide et pagination non supportées
Possibilité de créer de 1 à 5 colonnes

Copyright © Sage 2009-2010 Page 153


SAFE X3 DEVELOPPEMENT

20.2. ACTIONS SUR MODELES

Sélection dans liste

SEL_LISTE avant l ’affichage de la fenêtre

Saisie

VERF_ LISTE après la saisie du choix

FIN_ LISTE fin de traitement

Copyright © Sage 2009-2010 Safe X3 Développement 81

SEL_LISTE :
Action majeure
Le superviseur ne prend pas en charge l’ouverture de la table ni les lectures d’enregistrement.
Pas d’écran ni de fenêtre à créer.

20.2.1. SEL_ LISTE

Action lancée avant l’affichage de la fenêtre

Sert à :

charger la fenêtre de sélection avec :


No de ligne NBTEX
Nom de champ invisible TEX (NBTEX)
Texte affiché TEXTE (NBTEX)

Donner un titre à la fenêtre : TIT

SEL_LISTE :
Nécessité d’ouvrir les tables à explorer
Nécessité de lire les enregistrements pour constituer les lignes à proposer
Possibilité d’augmenter la limite de 200 lignes en re-déclarant TEX et TEXTE dans cette action.

Afficher de 1 à 5 colonnes alignées :


Les textes :

Copyright © Sage 2009-2010 Page 154


SAFE X3 DEVELOPPEMENT

La variable TEXTE est dimensionnée à TEXTE(80)(0..200) dans le superviseur.


Il faut la re-déclarer dans l’action SEL_LISTE en ajoutant une 2ème dimension ( de 5 postes max )
Exemple :
Local Char TEXTE(80)(1..200,1..2) pour afficher une liste sur 2 colonnes.

Les titres de colonnes :


La variable TIT est dimensionnée à TIT (50)(0..5) dans le superviseur.
Inutile de la re-déclarer
L’indice 0 est réservé au titre de la fenêtre (comme actuellement)
Le titre des colonnes se paramètre à partir de l'indice 1.

Action disponible :
Tri sur colonne
(sélection rapide et pagination non supportées)

20.2.2. VERF_LISTE

Action lancée après la saisie du choix, après l’alimentation de VALEUR

Sert à :

Affecter d’autres champs : [M]champ = [F]champ


Affzo [M]

effectuer des contrôles du choix


afficher un message d’erreur : GERR = 1
GMESSAGE = « mess »

20.2.3. FIN_LISTE

Action lancée en fin de traitement même si aucune sélection n’a été effectuée

Sert à :

Enlever un filtre positionné auparavant


Intervenir sur le choix : Valeur

Sur action Sélection


Automatisme de passage au champ suivant par le superviseur
Forcer le curseur à rester sur le champ courant mkstat=2

Sur action Bouton


Forcer le curseur à passer au champ suivant mkstat=99

Copyright © Sage 2009-2010 Page 155


SAFE X3 DEVELOPPEMENT

20.3. VARIABLES DISPONIBLES EN LECTURE :

[V]GACTION Code action dictionnaire

Traitement standard

[L]BOITE Code fenêtre

[L]GBATCH Etape de lancement : 0 interactif – 1 soumission requête


[L]GSERVEUR Etape d’exécution : 0 interactif – 1 batch

Sélection table et liste / Affichage divers

[L]TABLE Identification action sel. table


[L]LISTE Identification action sel. liste
[L]TRAIT Identification action aff. Divers

Copyright © Sage 2009-2010 Page 156


SAFE X3 DEVELOPPEMENT

21. MODÈLE « CONSULTATION »

21.1. DEFINITION :

− Ce modèle permet :
> afficher un ensemble d’enregistrements en fonction de critères de sélection.

− Ce modèle se lance :
> Depuis une action champ
> Depuis une fenêtre
> Depuis une fonction

− Exemple :
> Affichage de la liste des commandes dans le menu :
« Ventes>Consultation>Commandes>Listes commandes »

> Paramètres de l’action


> Modèle : Consultation
> Code consultation

Type de traitement : consultation


Gère les consultations
Le traitement lancé est GCONSULT

Remarque :
Le traitement qui contiendra vos actions est le CNSxxxSPE.

21.2. FENETRE PRINCIPALE :

− Affichage de la liste des éléments.


− Possibilité de passer d’une page à une autre.
− Affichage de la fenêtre de critère.

Ergonomie générale fenêtre principale :


Un écran entête figé, un onglet unique figé ou dynamique
L’écran d’entête comprend les principaux critères de recherche
L’onglet est sous forme de tableau.
La variable de bas de tableau doit se nommer NBLIG.

Boutons standards sont :


Critères, Recherche, Suite, Retour, Dernier, Graphique, Fin
Critères présent, si une fenêtre de critère est définie pour la consultation
Graphique présent, si un graphique est défini pour la consultation
Boutons / menus particuliers à la consultation
F5 permet le rafraîchissement de la page courante
Les boutons magnéto permettent de faire défiler la clé principale de recherche.
Fichier/Impression permet l’impression de la fenêtre principale
Fichier/Liste permet l’impression de la liste précisée dans la fonction
Les derniers lus de l’objet associé sont mis à jour
Pas de liste de gauche

Copyright © Sage 2009-2010 Page 157


SAFE X3 DEVELOPPEMENT

21.3. FENETRE DE CRITERES :

− Enregistrer et modifier de nombreux critères de sélection et de tri.


− enregistrer et choisir 1 écran paramétré.
− enregistrer le tout dans un mémo

Ergonomie générale fenêtre critère


Création d’un écran critère si trop de critères, si zone affichage, si mémo, si écran dynamique
un bloc de sélection et un bloc d’affichage
Si modif des zones d’affichage, la page courante est réaffichée.
Si modif des zones de sélection, la recherche est relancée depuis la 1ère page.
Boutons standard sont : ok, fin, mémo, rappel, eff. mémo,
mémo : création d’un mémo
rappel : chargement d’un mémo
eff.mémo : suppression du mémo
Boutons particuliers à la consultation pour cette fenêtre
Le champ « mémo actif » doit se nommer MEMO
Le champ « code écran » doit se nommer ECRAN
Il a en paramètre le code consultation
Initialisation des critères à l’entrée dans la fonction si mémo STD
Chaque mémo est créé dans le répertoire ETM sur le serveur sous la forme :
utilisateur_mémo.consultation
Se réserver dans le dictionnaire le code mémo

21.4. ELEMENTS COMPOSANT UNE CONSULTATION

Consultations

Action
Action

FONCTION Consultation
Consultation
FONCTION
Menu
MenuX3
X3
Fenêtre
Fenêtreprincipale
principale
FENETRE
FENETRE Écrans
bouton
bouton/ /menu
menu ++ Boutons
Boutons/ /Menus
Menus

ECRAN Fenêtre
ECRAN Fenêtrede
decritères
critères
champ
champ
Écran
TYPE ++ Boutons
Boutons/ /Menus
Menus
TYPE
DONNEE
DONNEE
Traitement superviseur GCONSULT

Traitement standard
Traitement spécifique
Copyright © Sage 2009-2010 Safe X3 Développement 83

Copyright © Sage 2009-2010 Page 158


SAFE X3 DEVELOPPEMENT

Pour une consultation xxx :

Fenêtre principale FCNSxxx (obligatoire) : type = plein écran


• écran entête CONSxxx1 abrév. xxx1 (obligatoire)
• écran détail CONSxxx2 abrév. xxx2 (obligatoire)

Fenêtre critère DCNSxxx (facultative) : type = boite dialogue


• écran critère CRITxxx abrév. Cxxx

Action CONSxxx
• type de traitement Consultation
• code consultation xxx (obligatoire)
• définition des paramètres

Fonction CONSxxx
• action CONSxxx (obligatoire)
• valeur des paramètres

21.5. PARAMETRES D’UNE CONSULTATION

21.5.1. Onglet Ecrans:

− Renseignement de la fenêtre principale et de la fenêtre de critère.


− Correspondance des champs entête de la fenêtre de principale et de la fenêtre de
critères
− Traitements standard/spécifiques.

Onglet Ecrans
Code : Ce code obligatoire identifie la consultation. Il a au plus 3 caractères. Comme le code
consultation en minuscule sert d’extension au fichier mémo associé aux critères de consultation, il ne
faut pas lui donner le code d’extension mémo déjà existante (ddm, sel, rpt à éviter).

Intitulé : Ce texte est repris en titre de l’onglet de la fenêtre principale.

Traitement standard : Ce traitement est réservé à SAGE et doit contenir les actions standards liées à
la consultation. Il doit contenir une étiquette $ACTION.

Traitement spécifique : Ce traitement est réservé aux distributeurs et doit contenir les actions
spécifiques liées à la consultation. Il doit contenir une étiquette $ACTION.

Fenêtre principale : Cette zone est obligatoire.

Fenêtre critères : Cette zone est facultative. Elle conditionne la présence du bouton « critère ».

Code écran par défaut : Cette zone est facultative. Elle permet d’affecter automatiquement un écran
paramétré au lancement de la consultation. Cet écran est modifiable par la zone ECRAN de la fenêtre
de critères.

Tableau des critères : Ce tableau n’est saisi que si une fenêtre critère est renseignée. Il permet :
- de faire correspondre les zones critères de l’écran entête avec les zones de l’écran critères

génère les sous-pro $CRITENT (alim. critères) et $ENTCRIT (alim. entête) dans le traitement
CNSxxx
- d’identifier les critères d’affichage
génère le sous-pro $CRITAFF dans le traitement CNSxxx
30 lignes de critères maximum peuvent être renseignées.

Copyright © Sage 2009-2010 Page 159


SAFE X3 DEVELOPPEMENT

21.5.2. Onglet Tables :

− Tables ouvertes automatiquement dans le traitement.

21.5.3. Onglet Divers :

− Permet de renseigner la table principale.


− La clef de parcours.

Onglet divers:
- Objet : Cette zone est facultative. Si vous souhaitez que la consultation exploite et mette à jour les
derniers lus, indiquer l’objet associé.

- Table & abréviation : Si un objet est précisé, la table est forcée à celle de l’objet, sinon la table
indiquée ici ne servira qu’à gérer les boutons magnétos. Indiquer sous quelle abréviation utilisée cette
table en gestion de consultation, par défaut l’abréviation du dictionnaire des tables est proposée.

- Clé : Toujours pour la gestion des derniers lus ou des boutons magnétos, indiquer la clé de parcours
de fichier. Cette zone est obligatoire si une table est renseignée.

- Condition : Ces zones sont facultatives et permettent de sauter certains enregistrements de la table
en exploitation des derniers lus et en utilisation des boutons magnétos. Utiliser le caractère ‘ pour
délimiter une valeur alphanumérique.

- Composantes de clé : Indique la correspondance entre les composantes de la clé et les champs de
l’écran d’entête.

- Magnétos O/N : Indique si les boutons magnétos sont gérés. Non saisi si aucune table
n’est précisée.

21.6. ACTION SUR MODELE CONSULTATION

Modèle « consultation »

AUTORIS En tout début de modèle, sert à gérer les droits


OUVRE Permet l’ouverture des tables et des mask

Affichage

LECTURE Quand on lance la recherche


FILTRE Depuis l'action de lecture, pour le spécifique
uniquement

Copyright © Sage 2009-2010 Safe X3 Développement 84

Copyright © Sage 2009-2010 Page 160


SAFE X3 DEVELOPPEMENT

21.6.1. AUTORIS

Cette action est appelée en tout début de modèle. Le modèle a contrôlé que l'utilisateur a les droits de
lancer cette consultation.

Sert à :
Effectuer des contrôles supplémentaires au modèle, et d'empêcher la consultation en
positionnant OK = 0.

Changer le code mémo associé à la consultation en fonction du contexte en alimentant la


variable MEMO.

Exemple :

Consultation de la balance agée. consultation BAG.

$AUTORIS
If GFONCTION="CONSBAG"
MEMO="bag"
If PARAM(1) = "2" : MEMO = "bg2" : Endif
Else
MEMO="bah"
If PARAM(1) = "2" : MEMO = "bh2" : Endif
Endif
Return

21.6.2. OUVRE

Cette action est appelée en début de modèle, lorsque la consultation est autorisée pour l'utilisateur.
Les tables et masques ont été ouverts par le modèle.

Sert à :
Faire des déclarations de ressources nécessaires et des initialisations, par exemple :

Déclarer des variables globales ou locales par les syntaxes du type


Local Integer MA_VARIABLE
Global Char POUR_TOUS(100)

Affecter des variables globales

Ouvrir des tables avec des instructions du type


If clalev ([F :XXX]) = 0 : Local File XXXXX : Endif

Elle sert aussi à alimenter les critères de sélection, par exemple

Elle sert aussi indiquer, si on lance la recherche au lancement de la consultation ou pas. Dans
certains cas, il peut être préférable de faire saisir les critères avant toute tentative de recherche ; cela
se fera en positionnant la variable CHARGMT à 1.

Les variables disponibles sont les suivantes :

PARAM()(1..) : paramètres passés à l'appel de la consultation

PROGCNS : traitement généré à la validation de la consultation. Il est nommé CNS+code


consultation

Copyright © Sage 2009-2010 Page 161


SAFE X3 DEVELOPPEMENT

CHARGMT : recherche déclenchée dès l'entrée dans la consultation ( 0 oui / 1 non ). oui, par
défaut.

21.6.3. LECTURE

Cette action est appelée quand on lance la recherche, c'est à dire au lancement de la fonction,
lorsque l'on pagine ou lorsque l'on change les critères. Cette action est indispensable pour alimenter
l'écran de consultation par l'ensemble des enregistrements sélectionnés.

Sert à :
Alimenter l'écran de consultation par l'ensemble des enregistrements sélectionnés. On appelle
l'action "FILTRE" afin que le spécifique puisse éventuellement insérer un filtre de sélection. Cette
action sera écrite sur le modèle ci-dessous (extrait de la consultation des devis).

Exemple :

$LECTURE
#-- critères obligatoires (section facultative)
If [M:CSQ1]CPY="" & [M:CSQ1]SALFCY="" : NBLU=0 : Return
Endif

Gosub CHANGE_MSK From GCONSULT


If CHGPAG<0 : NOL = MAXLIG : Endif

#-- Positionnement des Filtres


Gosub LOAD_FILTER

#-- dans les traitements standards uniquement : appel au spécifique


If PROGSPE<>""
ACTION = "FILTRE" : Gosub ACTION From =PROGSPE
Endif

#-- Application des Filtres et tri des enregistrements


If CHGPAG > 0
SUITE=1
If CHGPAG = 1 : RETOUR = 1 : Elsif CHGPAG = 2 : RETOUR = 2 : Endif
Case [M:CCSQ]TRI
When 1 : # tri par numéro
Filter [SQH] Where evalue(WFIL) & evalue(WFIL1) & evalue(WFIL2) Order By Key SQH0
When 2 : # tri par date
Filter [SQH] Where evalue(WFIL) & evalue(WFIL1) & evalue(WFIL2)
& Order By Key CLE=[F:SQH]QUODAT;[F:SQH]SQHNUM
Endcase
Else
RETOUR=1
If CHGPAG = -1 : SUITE = 1 : Else SUITE = 2 : Endif
Case [M:CCSQ]TRI
When 1 : # tri par numéro
Filter [SQH] Where evalue(WFIL) & evalue(WFIL1) & evalue(WFIL2) Order By Key SQH0
Desc
When 2 : # tri par date
Filter [SQH] Where evalue(WFIL) & evalue(WFIL1) & evalue(WFIL2)
& Order By [F:SQH]QUODAT Desc ;[F:SQH]SQHNUM Desc
Endcase
Endif

#-- raz du masque si 1ere ou dernière page


If CHGPAG<>2 & CHGPAG<>-2 : Raz [M:CSQ2] : Endif

Copyright © Sage 2009-2010 Page 162


SAFE X3 DEVELOPPEMENT

#-- boucle de lecture


$BOUCLE
For [SQH]

#-- Filtre supplémentaire (section facultative)


If [M:CSQ1]CPY <> ""
If [F:FCY]FCY <> [F:SQH]SALFCY
Read [F:FCY]FCY0 = [F:SQH]SALFCY
If fstat Raz [F:FCY] : Endif
Endif
If [F:FCY]LEGCPY <> [M:CSQ1]CPY Goto SUIV : Endif
Endif

If NBLU = 1
If CHGPAG=2 | CHGPAG=-2 : Raz [M:CSQ2] : Endif
NBLU = 2
Endif

#-- stockage des bornes début et fin d'enregistrement pour l'écran


If CHGPAG > 0
If NOL >= MAXLIG-1 : SUITE=2 : Break : Endif
NOL += 1
If NOL=0
DEBNUM = [F:SQH]SQHNUM
DEBDAT = [F:SQH]QUODAT
Endif
FINNUM = [F:SQH]SQHNUM
FINDAT = [F:SQH]QUODAT
Else
If NOL <= 0 : RETOUR=2 : Break : Endif
NOL -= 1
If NOL=MAXLIG-1
FINNUM = [F:SQH]SQHNUM
FINDAT = [F:SQH]QUODAT
Endif
DEBNUM = [F:SQH]SQHNUM
DEBDAT = [F:SQH]QUODAT
Endif

#-- chargement du masque


nolign = NOL+1
[M:CSQ2]SQHNUM(nolign-1) = [F:SQH]SQHNUM
[M:CSQ2]BPCORD(nolign-1) = [F:SQH]BPCORD
[M:CSQ2]QUODAT(nolign-1) = [F:SQH]QUODAT
[M:CSQ2]VLYDAT(nolign-1) = [F:SQH]VLYDAT
[M:CSQ2]QUOSTA(nolign-1) = [F:SQH]QUOSTA
[M:CSQ2]QUONOT(nolign-1) = [F:SQH]QUONOT
[M:CSQ2]QUOATI(nolign-1) = [F:SQH]QUOATI
[M:CSQ2]CUR(nolign-1) = [F:SQH]CUR
...

$SUIV
Next
Filter [SQH]
Return

#--- Préparation du filtre #


$LOAD_FILTER
WFIL = "1=1"
WFIL1 = "1=1"

Copyright © Sage 2009-2010 Page 163


SAFE X3 DEVELOPPEMENT

WFIL2 = "1=1"
If [M:CSQ1]SALFCY <> ""
WFIL += "&[F:SQH]SALFCY=[M:CSQ1]SALFCY"
Endif
...
Case CHGPAG
When 3 : # rafraichissement
Case [M:CCSQ]TRI
When 1 : # tri par numéro
WFIL1 += "&[F:SQH]SQHNUM>=DEBNUM"
When 2 : # tri par date
WFIL1 += "&([F:SQH]QUODAT>DEBDAT | ([F:SQH]QUODAT=DEBDAT &
[F:SQH]SQHNUM>=DEBNUM))"
Endcase
When 2 : # suite
Case [M:CCSQ]TRI
When 1 : # tri par numéro
WFIL1 += "&[F:SQH]SQHNUM>FINNUM"
When 2 : # tri par date
WFIL1 += "&([F:SQH]QUODAT>FINDAT | ([F:SQH]QUODAT=FINDAT &
[F:SQH]SQHNUM>FINNUM))"
Endcase
When -2 : # retour
Case [M:CCSQ]TRI
When 1 : # tri par numéro
WFIL1 += "&[F:SQH]SQHNUM<DEBNUM"
When 2 : # tri par date
WFIL1 += "& ([F:SQH]QUODAT<DEBDAT | ([F:SQH]QUODAT=DEBDAT &
[F:SQH]SQHNUM<DEBNUM))"
Endcase
Endcase
Return

Les variables disponibles en lecture sont les suivantes :

CHGPAG : identifie l'action qui a déclenché la lecture


1 < Recherche >
2 < Suite >
3 < Raffraichissement >
- 1 < Dernier >
- 2 < Retour >
MAXLIG : nombre de lignes maximum dans le tableau.

Les variables disponibles en mise à jour sont les suivantes :

NBLU : nombre d'enregistrements à afficher.

NOL : indice de remplissage du tableau


l'incrémenter si CHGPAG > 0
le décrémenter si CHGPAG < 0

SUITE : permet de désactiver les boutons < Suite > et < Dernier >

RETOUR : permet de désactiver le bouton < Retour >

Copyright © Sage 2009-2010 Page 164


SAFE X3 DEVELOPPEMENT

21.6.4. FILTRE

Cette action est prévue pour le spécifique uniquement. Elle est appelée depuis l'action LECTURE
pour positionner un filtre spécifique sur les enregistrements à sélectionner.
Attention cette action ne doit jamais être utilisée pour le standard.

Pour le spécifique, on positionne un filtre qui s'exprime sous la forme d'une chaîne de caractères
contenant une condition logique sur un ou plusieurs champs de la table principale. On peut écrire par
exemple :
WFIL+= "BPSTYP=2".

Nous n'avons pas, dans cette version, une variable dédiée à cela. Il faut donc vérifier dans l'action
standard LECTURE, la variable qui est prévue pour le filtre.

21.7. EXERCICE CONSULTATION CLIENT

21.7.1. Objectif

Créer une consultation capable d’afficher et de trier les clients en fonctions de critères.

21.7.2. Marche à suivre

• Création des écrans entête et détail


• Création de la fenêtre
• Création de la consultation de nom YCL
• Création de l’action
• Création de la fonction

Ecran d’entête

Champ Saisie Oblig. Particularités


YTRI S Menu local
YORDTOTNOT S DCB
YARE S Type ADI

YTRI doit contenir les 3 possibilités : Aucun tri


Secteur géographique
Total HT

Ecran détail

Champ Saisie Oblig. Particularités


YBPCNUM S Menu local
YORDDAT S Date dernière commande
YORDTOTNOT S DCB
YORDATI S DCB
YARE S Type ADI

Traitement :
Le traitement devra permettre l’affichage de la liste des clients avec la possibilité de trier de 3
manières différentes :

Copyright © Sage 2009-2010 Page 165


SAFE X3 DEVELOPPEMENT

Aucun tri : La clef de parcours est définie par l’index YCX0


Secteur géographique : La clef de parcours est définie par YARE + YBPCNUM
Total HT : la clef de parcours est définie par YORDTOTNOT par ordre décroissant.

Le traitement permettra de filtrer les commandes en dessus du total HT définis dans le


YORDTOTNOT.
Enfin, le traitement permettra d’afficher uniquement les commandes réalisé dans un secteur
géographique, champ YARE.

Pour créer ce traitement aidez vous de l’exemple du cours décrit dans l’action LECTURE.

21.7.3. A vérifier

• Affichage des clients sur clique du bouton Recherche


• Gestion des tris et des filtres

21.7.4. Etape N°2

Gestion des boutons bas de pages.

Un traitement YGENETEST est présent sur votre dossier, ce traitement permet d’effacer toutes les
lignes précédemment créées (commandes, clients, articles) pour créer 1000 lignes de tests par tables.

Pour exécuter ce traitement allez dans le menu « Développement>Utilitaires>Divers>Exécution


Traitement » puis renseignez le nom du traitement.

Une fois le traitement exécuté, vérifiez que les lignes ont bien été créées, puis modifiez votre
traitement pour que celui-ci prenne en compte le changement de page devenu maintenant nécessaire.
Pour modifier le traitement aidez vous de l’exemple du cours décrit dans l’action LECTURE.

21.7.5. A vérifier

• Vérifier le fonctionnement des boutons RETOUR et SUITE

Copyright © Sage 2009-2010 Page 166


SAFE X3 DEVELOPPEMENT

22. POINT D’ENTRÉE

22.1. REGLES DES POINTS D’ENTREE


– Ils permettent l’ajout de code dans les traitements fonctionnels du standard
– Ils complètent les possibilités données par les actions
– Ils sont réservés uniquement aux spécifiques
– Ils sont systématiquement accompagnés d’une documentation
– Ils sont ajoutés à la demande.

Pour être actif, les points d’entrée doivent être reliés à un traitement standard.
Cette liaison est à renseigner dans le menu :
« Développement>Dictionnaire traitements>Points d’entrée »

Lier un traitement standard à un ou plusieurs traitements spécifiques.

Pour l’appel de plusieurs traitements spécifiques :


Renseigner le champ « paramétrage »
Sous la forme PROG1~CODACT1; PROG2~CODACT2;…
Programmer l’appel de ces traitements depuis le traitement spécifique principal.

Points d’entrée

Trait.
Trait.Standard
Standard FUNAUTDLV
FUNAUTDLV

GPOINT
GPOINT ==««AUTDLVFIL
AUTDLVFIL»»

Gosub
GosubENTREE
ENTREEFrom
FromEXEFNC
EXEFNC

Table
TableAENTREE
AENTREE
lien
lientrait
traitstandard
standard&&spécifique
spécifique

FUNAUTDLV
FUNAUTDLV ZZFUNAUTDLV
ZZFUNAUTDLV
Trait.
Trait.Spécifique
SpécifiqueZZFUNAUTDLV
ZZFUNAUTDLV

$ACTION
$ACTION
Case
CaseACTION
ACTION
When
When«AUTDLVFIL»
«AUTDLVFIL»: :Gosub
GosubAUTDLVFIL
AUTDLVFIL
When default
When default
Endcase
Endcase
return
return
Copyright © Sage 2009-2010 Safe X3 Développement 86

Traitement standard
Placement et attribution d’un nom au point d’entrée. Transmis par patch.

Traitement superviseur (EXEFNC)


Recherche du traitement spécifique dans la table AENTREE par la variable adxpno(1) contenant le
nom du traitement standard.
Appel du traitement spécifique.

Copyright © Sage 2009-2010 Page 167


SAFE X3 DEVELOPPEMENT

Traitement spécifique
Le nom doit commencer par X,Y ou Z.
Doit contenir l’étiquette $ACTION

Table AENTREE
Livrée vide
Doit faire la correspondance entre un traitement standard et spécifique
Développement / Dictionnaire traitements / Points d’entrée

Deux Variables Globales disponibles


• GENTSTD(i) : traitement standard de la table AENTREE
• GENTSPE(i) : traitement spécifique associé

22.2. EXERCICE : GESTION DES COMMANDES STANDARD

22.2.1. Objectif

Ajouter un champ spécifique dans la gestion des commandes standard.


Ce champ pourra être saisissable, affiché ou invisible par paramétrage dans les transactions de
saisie.

22.2.2. Marche à suivre

Ajout du champ en gestion commande

• Ajouter le champ YFLGSPE d’intitulé « Flag Spécifique », de type menu local 1, dans la table
SORDER.
• Ajouter ce même champ dans l’écran SOH2, en case à cocher saisissable.

Ajout d’un champ en transaction de saisie des commandes

Cette fonction est accessible depuis le menu : Paramétrage / Ventes / Transactions de saisie /
Commandes

• Ajouter le champ YFLGSPECOD dans la table SALTRS pour permettre le paramétrage du champ
YFLGSPE par transaction de saisie. Il est de type menu local 35, longueur 15.
• Ajouter ce même champ dans l’écran SLC2.

• Utiliser le point d’entrée approprié pour que le champ YFLGSPECOD paramètre l’affichage du
champ YFLGSPE (saisissable, affiché, invisible).

Copyright © Sage 2009-2010 Page 168


SAFE X3 DEVELOPPEMENT

Ces transactions de saisie permettent de générer des écrans à partir des écrans de base des
commandes (SOH0, SOH1, SOH2, SOH3, SOH4).

Copyright © Sage 2009-2010 Page 169


SAFE X3 DEVELOPPEMENT

22.2.3. A vérifier

Pour la gestion des commandes standards :


• Saisie et stockage du champ YFLGSPE

Pour les transactions de saisie :


• Générer une transaction ou tous les champs sont saisissables
• Générer une transaction ou tous les champs sont affichés
• Générer une transaction ou tous les champs sont invisibles
• Les utiliser dans la gestion des commandes

Notes

Copyright © Sage 2009-2010 Page 170


SAFE X3 DEVELOPPEMENT

Copyright © Sage 2009-2010 Page 171


SAFE X3 DEVELOPPEMENT

23. ECRANS GRAPHIQUES

23.1. PRESENTATION GRAPHE SIMPLE ET MULTI

Ecrans graphiques : Graphe simple

Axes d’analyse

Ventes > Consultations > Commandes par période

Copyright © Sage 2009-2010 Safe X3 Développement 88


libellés
Graphe simple et multi-graphe
• Visualisation
• Survol d’un élément affiche l’abscisse et coordonnée
• Simple click sur une barre permet d’afficher le menu contextuel de la variable de bas de
tableau

• Champ invisible : non affiché dans le graphe, et axe invisible


• Champ avec intitulé vide : non affiché dans le graphe, et axe invisible
• Champ invisible par trt : non affiché dans le graphe, mais axe visible
• Intitulé évalué : non géré sur graphe simple. (multi ok)

Graphe simple :
Visualisation successives, si plusieurs axes d’analyse paramétrés pour le graphe
Permet d’avoir une échelle adaptée aux données de chaque axe.

Exemple :
• Commandes normales
• Commandes de prêt
• Commandes à facturation directe

Copyright © Sage 2009-2010 Page 172


SAFE X3 DEVELOPPEMENT

Ecrans graphiques : Multi-graphe

Axes d’analyse

Ventes > Consultations > Commandes par période

Copyright © Sage 2009-2010 Safe X3 Développement 89


libellés
Multi-graphe :
Visualisation de plusieurs valeurs sur le même graphe.
Représentation pouvant être différente pour chaque valeur (barre, ligne)
Représentation distincte, cumulative ou comparative

Limites des graphes simples ou multi


• 550 cellules pour les valeurs de graphe
• 16 axes d’analyses max. (au-delà, se dessine mais pas de couleur affectée)
• Couleur affectée automatiquement
• Taille et disposition du libellé calculées automatiquement (horizontale si possible, sinon
verticale)

Copyright © Sage 2009-2010 Page 173


SAFE X3 DEVELOPPEMENT

23.2. PARAMETRAGE

23.2.1. Paramétrage du bloc et du graphe

> Appel d’un graphe à partir d’un tableau dans le dictionnaire des écrans
− Représentation du bloc :
> Caractères
> Car. ou Graph.
> Car. et Graph.
> Graphique

− Paramétrage du graphe par click droit sur ce champ.

− Option
> T : affichage complet du tableau
> Permet d’afficher un graphe complet (si graphe est affiché par défaut)

− Exemple
> Ecran SGO1, permettant de visualiser la liste des commandes.

> Paramétrage du graphe sur click droit de la colonne « représentation »


− Type graphique :
> Graphe simple
> Multi-graphe
> XLS
> Gantt
> Agenda
− Position du graphe par rapport au tableau (car. et graphe)
− Affichage par défaut (car. ou graphe)
> Tableau
> Graphique
− Représentation (multi-graphe)
> Multi
> Cumulatives
> Comparatives
− Tous les graphes se paramètres de la même façon : Insertion d’un tableau avec les
différents axes, puis renseignement des paramètres graphiques.

Copyright © Sage 2009-2010 Page 174


SAFE X3 DEVELOPPEMENT

23.2.2. Paramétrage des champs d’écrans

Ecrans graphiques : Graphe simple et Multi-


graphe

Axes d’analyse

Copyright © Sage 2009-2010 Safe X3 Développement 90


libellés
Paramétrage des champs :
• Libellé ( sur champ caractères ) 1 seul
• Valeur ( sur champ numérique ) plusieurs possible
• Défaut ( sur champ numérique ) 1 seul

Défaut : axe analytique affiché par défaut

Représentation des axes :


• Défaut (suit la définition du graphe)
• Barre
• Ligne

23.2.3. Effacement des lignes de totalisation

− Lorsqu'on a une ligne de totalisation dans une consultation, l'objectif est généralement
d'avoir cette ligne de totalisation dans le tableau, mais pas sur le graphe associé.

− Pour cela, il faut :


− prévoir un champ de type de données AEX en invisible dans le tableau
− alimenter ce champ par la valeur "X" sur les lignes à exclure du graphe.

− Le superviseur se chargera ensuite automatiquement de l'exclusion.

Copyright © Sage 2009-2010 Page 175


SAFE X3 DEVELOPPEMENT

23.3. GANTT

23.3.1. Présentation

Ecrans graphiques : Gantt

Copyright © Sage 2009-2010 Safe X3 Développement 91

Graphe à déclarer de type Gantt dans les paramètres graphiques.

Graphe
• Visualisation
• Ordonnancement et enchaînement dans le temps, des tâches et opérations nécessaires à
l’aboutissement d’un projet.
• Les opérations apparaissent en ordonnée
• La durée (mois, jour, semaine) apparaît en abscisse
• Chaque tâche est représentée par une barre horizontale dont la longueur est proportionnelle à
la durée de sa réalisation
• Le minipad affiche un aperçu de la zone du graphique en cours de visualisation.

• capacités de déplacement et de zoom grâce à son MiniPad.


• Lors d'un zoom, l'échelle de temps (timeline) évolue en temps réel pour une plus grande
fluidité de l'interface.

Exemple : « Production > Données techniques > Gammes > Gestion Gammes »

Copyright © Sage 2009-2010 Page 176


SAFE X3 DEVELOPPEMENT

23.3.2. Paramétrages des champs d’écrans

Ecrans graphiques : Gantt

Clé Nom Date interne Durée D affichée Type jour

Copyright © Sage 2009-2010 Safe X3 Développement 92

Lignes
Plusieurs lignes pour chaque opération.
• Une ligne entête (clé et nom doivent être renseignés)
• Des lignes détail (nom doit être absent, et tous les autres champs renseignés)

Colonnes
• Aucun nom n’est imposé.
• Le paramétrage permet l’identification de chaque colonne.
• Paramétrage par table diverse 915

Date interne
Champ A(12)
Date exprimée sous la forme AAAAMMJJHHMM
Pour formater cette date interne : Call CONVDATI (date, heure, date_interne) From INTRUTILA
Avec date en type date, heure en integer, date_interne en char

Durée affichée
Alimente les barres du gantt (7 j avec le week-end)
Champ DCB(9,2)
Unité : journée de 24 heures
Ex : pour exprimer une durée de 1h30, c’est 1,5/24= 0.0625
Durée obligatoire pour chaque tache.
Remarque : mettre 0.01 pour ne pas afficher la barre

Durée
Alimente l’info bulle par survol sur la barre (5 j travaillés)
Description identique, par contre cette durée peut être égale à 0

Copyright © Sage 2009-2010 Page 177


SAFE X3 DEVELOPPEMENT

23.4. AGENDA

23.4.1. Présentation

Ecrans graphiques : Agenda

Copyright © Sage 2009-2010 Safe X3 Développement 93

Graphe à déclarer de type Agenda dans les paramètres graphiques.

Graphe :
• L’agenda permet une consultation des évènements (rdv, tâches, appels) de la CRM
• Avec Création, modification ou suppression d’événement par tunnel depuis l’agenda
• Type d’événement différencié par sa couleur
• Evènement terminé symbolisé par un trait gris
• Survol événement : affiche un résumé
• Click événement : affiche une fiche plus détaillée
• Interface entre agenda CRM et Outlook
• Bi-directionnel
• Paramétrable par utilisateur

Exemple : « Relation>Action commerciale>Agenda »

Copyright © Sage 2009-2010 Page 178


SAFE X3 DEVELOPPEMENT

23.4.2. Paramétrage des champs d’écrans

Ecrans graphiques : Agenda

Copyright © Sage 2009-2010 Safe X3 Développement 94

Tableau :
Lignes
1 ligne pour chaque évènement.

Colonnes
• Aucun nom n’est imposé.
• Le paramétrage permet l’identification de chaque colonne.
• Paramétrage par table diverse 915

Copyright © Sage 2009-2010 Page 179


SAFE X3 DEVELOPPEMENT

23.5. PLANNING MENSUEL

23.5.1. Présentation

Ecrans graphiques : Planning mensuel

Type de jour
1 Ouvré
2 Week-end
3 Férié
Activité
1 Travaillé
2 Congés payés
3 RTT
4 Maladie
5 Formation

Copyright © Sage 2009-2010 Safe X3 Développement 95

Graphe :
Interactif : affectation d’une activité
Avec le traitement interactif standard, seul les jours ouvrés sont modifiables.
Possibilité de rendre le planning non modifiable en mettant tous les champs du tableau en affiché
Possibilité d’afficher des totaux par activité (calcul automatique par traitement du composant écran)

• Planning gérant de 1 à 12 mois (remplissage du tableau)


• Affichage de 1 à 12 mois simultanément (paramétrage graphe)
• Affectation de 1 à 8 activités (paramétrage graphe par menu local)
• Découpage des jours en 1 à 4 plages (présence champ « plage » dans tableau)

Tableau :
• 1 ligne par jour
• 1 colonne par plage d’activité (1 à 4)

Copyright © Sage 2009-2010 Page 180


SAFE X3 DEVELOPPEMENT

23.5.2. Paramétrage des champs

Ecrans graphiques : Planning mensuel

mess(1,9837,1)

Copyright © Sage 2009-2010 Safe X3 Développement 96

Bloc technique
Champ clob invisible pour recevoir le graphe

Tableau
Lignes :
• 1 ligne par jour (maximum : 365 lignes pour un planning d’un an)

Colonnes :
• TECDAT : date interne Champ A(12)
Date exprimée sous la forme AAAA-MM-JJ-SS-J (SS-J = no semaine – no jour dans la semaine)
À alimenter par le sous-pro TRSFDATP (date, TECDAT) From INTRUTILA
• TYPDAY : type jour (ouvré, we, férié)
• PLAG1 à PLAG4 : 1 à 4 plages d’activité par jour
La présence des champs définit le nb de plages par jour
• TOTTYP1 à TOTTYP8 : 1 à 8 totaux d’activité
Les mettre en fonction du nombre d’activités (menu local 9837)

Nom champ imposé (sauf pour le clob) si utilisation du traitement standard de l’XSL

Copyright © Sage 2009-2010 Page 181


SAFE X3 DEVELOPPEMENT

23.5.3. Paramètres graphiques

> Paramètres graphiques

− Appel d’un graphe de type XSL

− Appel du champ clob définis dans un bloc technique de l’écran pour recevoir le code
d’affichage XSL du composant écran APLNAM

− Paramétrage des valeurs suivantes :


> Nombre de mois affichés
> Menu des types d’activité
> Remise à jour graphique
> Programme d’interaction

Paramètres :
Nombre de mois affichés :
1 à 12 mois

Menu des types d’activité :


Menu local modifiable (1 à 8 activités)

Remise à jour graphique :


Permet le recalcule du graphe suite à l'interaction sur le graphe lui-même
1 non : cet XSL fait systématiquement la mise à jour du graphe

Programme d’interaction :
• AMAJPLAN par défaut (programme livré)
• possibilité d’avoir un autre traitement
• Doit obligatoirement appeler le sous-programme MAJPLAN
• Doit obligatoirement avoir les paramètres identiques au sous-
programme MAJPLAN de AMAJPLAN
• Doit être déclaré dans le dictionnaire des sous-programmes

Copyright © Sage 2009-2010 Page 182


SAFE X3 DEVELOPPEMENT

23.6. COMPOSANTS GRAPHIQUES


> Présentation

− Les composants graphiques permettent la réalisation de graphes interactifs appelable


dans les écrans X3.
− Traitement en langage XSL, transforme du xml en html ( + ajout de javascript )
− Renseignements des paramètres d’interactions entre X3 et le composant graphique.
− Le dictionnaire des composants graphiques se situ dans le menu :
« Développement>Dictionnaire traitements>Ecrans>Composants Ecran »

Codes :
Associés des menus locaux à des codes XSL pour fournir un jeu de libellés dans la langue de
l’utilisateur

Programmes :
Mise à jour de la classe [M] à partir de la modification du graphe :
• affecter de l’activité
• Calcul des totaux

Pour le planning, ce traitement est exécuté à chaque affectation d’activité, et les paramètres sont :
• Date début (identifiée par la ligne du tableau X3)
• Plage début (de 1 à 4)
• Date fin (identifiée par la ligne du tableau X3)
• Plage fin (de 1 à 4)

Ce traitement Sage X3 est livré.

Remarque :
La mise à jour du graphe depuis le tableau est prise en charge par l’XSL.

Paramètres :
Jusqu’à 5 paramètres avec leur valeur par défaut, modifiable éventuellement dans l’écran d’appel.

Copyright © Sage 2009-2010 Page 183


SAFE X3 DEVELOPPEMENT

23.7. PLANNING ANNUEL

23.7.1. Présentation

Ecrans graphiques : Planning annuel

Copyright © Sage 2009-2010 Safe X3 Développement 97

Graphe :
Interactif : affectation d’une activité
Avec le traitement interactif standard, seul les jours ouvrés sont modifiables.
Possibilité de rendre le planning non modifiable en mettant le ts les champs du tableau en affiché
Possibilité d’afficher des totaux par activité (calcul automatique par traitement du composant écran)

• Planning gérant de 1 à 12 mois (remplissage du tableau)


• Affectation de 1 à 8 activités (paramétrage graphe par menu local)
• Découpage des jours en 1 à 4 plages (présence champ « plage » dans tableau)

Copyright © Sage 2009-2010 Page 184


SAFE X3 DEVELOPPEMENT

23.7.2. Paramètres écrans

> Paramètres :
− Code XSL : APLANY
− Menu des types d’activité :
> menu local modifiable (1 à 8 activités)
− Remise à jour graphique :
> permet le recalcule du graphe suite à l'interaction sur le graphe lui-même
> 1 non : cet XSL fait systématiquement la mise à jour du graphe
− Programme d’interaction :
> AMAJPLAN par défaut (programme livré)
> possibilité d’avoir un autre traitement
> Doit obligatoirement appeler le sous-programme MAJPLAN
> Doit obligatoirement avoir les paramètres identiques au sous-programme
MAJPLAN de AMAJPLAN
> Doit être déclaré dans le dictionnaire des sous-programmes

Copyright © Sage 2009-2010 Page 185


SAFE X3 DEVELOPPEMENT

23.8. NOMENCLATURE HORIZONTALE

23.8.1. Présentation

Ecrans graphiques : Nomenclature horizontale

Copyright © Sage 2009-2010 Safe X3 Développement 98

Graphe :
Le composant XSL permet de représenter des nomenclatures horizontalement.

Avec le traitement interactif standard, il est possible de :


• Déplacer un élément et tout ce qui lui est attaché, si autorisé
• Afficher une photo pour chaque élément
• Avoir un menu contextuel (click droit sur élément)
• D’exécuter un traitement associé par double-click sur dernier niveau d’élément, si autorisé
(point d’entrée CLICNOM depuis AMAJHIER)

Le menu contextuel est à constituer, par l’ajout d’action Bouton, sur la variable de bas de tableau
• Exemple suppression de l’élément :
Subprog B2_NBCMP
Local Char MESSAGE(100)
Local Integer CODRET
Call MAJHIER("D",nolign,"",0,MESSAGE,CODRET) From AMAJHIER
If CODRET<>1
Call ERREUR(MESSAGE) From GESECRAN
Endif
End

Copyright © Sage 2009-2010 Page 186


SAFE X3 DEVELOPPEMENT

23.8.2. Paramétrage écran

> Paramètres écran

− Appel d’un graphe de type XSL

− Appel du champ clob définis dans un bloc technique invisible de l’écran pour recevoir
le code d’affichage XSL du composant écran ANOMH

Bloc tableau
lignes
• 1 ligne par élément de nomenclature
colonnes
• PARENT : « clé du père » de l’enregistrement courant. Obligatoire, sauf la tête de
nomenclature.
• KEYC : « clé » de l’enregistrement courant. Obligatoire
• IMG : « image ». Facultatif. Image redimensionnée à la hauteur du nœud (paramètre
SIZEB)
• LIBSHORT : « libellé court ». Facultatif. Affiché dans le cadre du nœud
• LIBL1 : « libellé long ». Facultatif. Info bulle affichée au survol d’un noeud

Nom champ imposé (sauf pour le clob) si utilisation du traitement standard de l’XSL

23.8.3. Paramétrage graphique

> Paramètres graphiques :


− Composant écran : ANOMH
− Modification autorisée : 1 non, 2 oui (Déplacement d’une hiérarchie)

− Exécution sur double clic


> 1 non / 2 oui (traitement à écrire dans AMAJHIER) sur élément le + bas
> point d’entrée CLICNOM depuis AMAJHIER

− Remise à jour graphique


> permet le recalcul du graphe suite à l'interaction sur le graphe lui-même
> 2 OUI : flag à positionner sur nomenclature horizontale et verticale

− Taille des boites :


> 100 x 100 points par défaut (adaptée pour image)

− Programme d’interaction :
> AMAJHIER par défaut (programme livré)
> possibilité d’avoir un autre traitement
> Doit obligatoirement appeler le sous-programme MAJHIER
> Doit obligatoirement avoir les paramètres identiques au sous-programme
MAJHIER de AMAJHIER
> Doit être déclaré dans le dictionnaire des sous-programmes

Paramètres : ANOMH
Modification autorisée :
1 non, 2 oui (Déplacement d’une hiérarchie)

Exécution sur double clic


• 1 non / 2 oui (traitement à écrire dans AMAJHIER)
• Sur élément le + bas
• point d’entrée CLICNOM depuis AMAJHIER

Remise à jour graphique

Copyright © Sage 2009-2010 Page 187


SAFE X3 DEVELOPPEMENT

Permet le recalcule du graphe suite à l'interaction sur le graphe lui-même


2 OUI : flag à positionner sur nomenclature horizontale et verticale

Taille des boites :


• 100 x 100 points par défaut (adaptée pour image)

Programme d’interaction :
• AMAJHIER par défaut (programme livré)
• possibilité d’avoir un autre traitement
• Doit obligatoirement appeler le sous-programme MAJHIER
• Doit obligatoirement avoir les paramètres identiques au sous-programme MAJHIER de
AMAJHIER
• Doit être déclaré dans le dictionnaire des sous-programmes.

Chemin d’accès aux icones :

4.7 Nomenclature horizontale

Stockage images

Copyright © Sage 2009-2010 Safe X3 Développement 99

Images
A placer dans le répertoire X3_PUB/ »dossier »/RES

Le traitement applicatif doit lire les images dans la base de données.


Puis les stocker dans ce répertoire, avant l’affichage de l’organigramme.

Copyright © Sage 2009-2010 Page 188


SAFE X3 DEVELOPPEMENT

23.9. NOMENCLATURE VERTICALE

23.9.1. Présentation

Ecrans graphiques : Nomenclature verticale

Paramétrage > Utilisateurs > Profil menu Safe X3 Développement 100


Copyright © Sage 2009-2010

Graphe :
Composant XSL permettant de représenter des nomenclatures verticales

Avec le traitement interactif standard, il est possible de :


• Déplacer un élément et tout ce qui lui est attaché, si autorisé
• Plier / déplier un élément (clic sur symbole ou double-click sur l’élément)
• Avoir un menu contextuel (click droit sur élément)
• D’exécuter un traitement associé par double-click sur dernier niveau d’élément, si autorisé
(point d’entrée CLICNOM depuis AMAJHIER)

Le menu contextuel est à constituer, par l’ajout d’action Bouton, sur la variable de bas de tableau
• Exemple suppression de l’élément :
Traitement identique à la suppression sur nomenclature horizontale

Copyright © Sage 2009-2010 Page 189


SAFE X3 DEVELOPPEMENT

23.9.2. Paramètres écran

− Appel d’un graphe de type XSL

− Appel du champ clob définis dans un bloc technique invisible de l’écran pour recevoir
le code d’affichage XSL du composant écran ANOMV.

− Renseignement des paramètres écrans


> 1 ligne par élément de nomenclature
> PARENT : « clé du père » de l’enregistrement courant. Obligatoire, sauf la
tête de nomenclature.
> KEYC : « clé » de l’enregistrement courant. Obligatoire
> ICO : « icône ».
> LIBL1 : « libellé long ».

− Nom champ imposé (sauf pour le clob) si utilisation du traitement standard de l’XSL

23.9.3. Paramètres graphiques :

− Composant écran : ANOMV


− Modification autorisée : 1 non, 2 oui (Déplacement d’une hiérarchie)

− Exécution sur double clic :


> 1 non, 2 oui (traitement à écrire dans AMAJHIER) sur élément le + bas
> point d’entrée CLICNOM depuis AMAJHIER

− Remise à jour graphique


> permet le recalcule du graphe suite à l'interaction sur le graphe lui-même
> 2 OUI : flag à positionner sur nomenclature horizontale et verticale

− Programme d’interaction :
> AMAJHIER par défaut (programme livré), possibilité d’avoir un autre
traitement
> Doit obligatoirement appeler le sous-programme MAJHIER
> Doit obligatoirement avoir les paramètres identiques au sous-programme
MAJHIER de AMAJHIER
> Doit être déclaré dans le dictionnaire des sous-programmes

Copyright © Sage 2009-2010 Page 190


SAFE X3 DEVELOPPEMENT

Ecrans graphiques : Nomenclature verticale

Stockage images

Copyright © Sage 2009-2010 Safe X3 Développement 101

Icones
À placer sous X3_PUB/X3_ROOT
• RESSTD/IMG pour le standard
• RESPER/IMG pour le spécifique
• RESVER/IMG pour le vertical

Copyright © Sage 2009-2010 Page 191


SAFE X3 DEVELOPPEMENT

23.10. RADAR

23.10.1. Présentation

Ecrans graphiques : Radar

Copyright © Sage 2009-2010 Safe X3 Développement 102

Graphe :
visualisation uniquement
Possibilité de sélectionner ou pas un élément à analyser ( clic sur l’œil )
Possibilité de mettre en évident un élément à analyser ( clic sur couleur )

23.10.2. Paramétrage écran

− Appel d’un graphe de type XSL

− Appel du champ clob définis dans un bloc technique invisible de l’écran pour recevoir
le code d’affichage XSL du composant écran ARADAR

− Renseignement des paramètres écrans


> 1 ligne par élément à analyser
> libellé : un identifiant unique ( ex : Matric1, Matric2, … ) un libellé associé à
l’identifiant
> valeur : valeur correspondant à l’axe d’analyse précisé dans l’intitulé, doit être
de type entier ou décimal et avoir un intitulé

− Remarque :
> Possibilité de bouton sur variable de bas de tableau (click droit sur zone)
> Aucun nom n’est imposé.

Copyright © Sage 2009-2010 Page 192


SAFE X3 DEVELOPPEMENT

23.10.3. Paramètres graphiques :

− Composant écran : ARADAR


− Echelle :
> Permet de fixer une valeur maximum pour repère graphique, et calcule d’une
échelle.
> 0 : le composant adapte son échelle à la + grande valeur à représenter

− Menu échelle :
> Menu local permettant de définir une légende pour la graduation de l’échelle

− Remise à jour graphique 1 non / 2 oui

− Composant écran :
> Aucun programme d’interaction.
> Il n’y aura donc pas de possibilité d’intervenir sur ce graphe.
> Il sera juste en visualisation.

Copyright © Sage 2009-2010 Page 193


SAFE X3 DEVELOPPEMENT

23.11. BROWSER

23.11.1. Présentation

Ecrans graphiques : Browser

Copyright © Sage 2009-2010 Safe X3 Développement 103

Objectif
Afficher une à trois pages html, dans un bloc écran.
Onglet dans une barre en haut du bloc.

Exemple d’utilisation en standard :


• Plan d’accès par clic droit sur la ville (type donnée CTY)

23.11.2. Paramètres écran

− Code url ou html à renseigner par click droit sur le bloc « browser »
− Possibilité d’avoir 3 pages web
− 1 Champ clob pour recevoir ces pages html
− Ajout d’un champ clob récepteur du code HTML.

23.11.3. Définition composant écran

− Ce code doit exister dans la gestion des composants écran


− Soit une adresse url (peut être évalue)
− Soit une page html
− L’url évaluée est déterminée en initialisation du clob. (affzo)

Copyright © Sage 2009-2010 Page 194


SAFE X3 DEVELOPPEMENT

23.12. BUREAUTIQUE

23.12.1. Présentation

Ecrans graphiques : Bureautique

Copyright © Sage 2009-2010 Safe X3 Développement 104

Graphe
• Saisir ou afficher un document word, excel ou powerpoint (en fonction du mode saisie champ
blob)
• Stockage du document dans un champ de la base de données X3.
• Possibilité « d’enregistrer sous » … et de constituer un fichier.
• Possibilité « d’ouvrir » et d’insérer un document existant.
• Des macros peuvent être déclenchées depuis X3, pour permettre une interaction dans les 2
sens entre document et données X3.

Exemple : « Vente>Devis>Devis »

Copyright © Sage 2009-2010 Page 195


SAFE X3 DEVELOPPEMENT

23.12.2. Traitement X3 de mise à jour

La mise à jour d’un tableau X3 avec un document WORD ou Excel est effectuée par le traitement
suivant :

###############################################################################
$MAJX3
# maj Excel vers X3
# le blob contenant le document Excel s’appelle CEXCEL
CALLIU "majx3" From CEXCEL With CART(0..20),CINTIT(0..20),CQTE(0..20),CPRIXU(0..20)
Effzo [M]10
For I=0 To 19
If CART(I)="" : Break 1 : Endif
[M]ARTICLE(I)=CART(I)
[M]INTIT(I)=CINTIT(I)
[M]QTE(I)=CQTE(I)
[M]PRIXU(I)=val(ctrans(CPRIXU(I),",","."))

$CHMULTLIG
# maj X3 vers Excel
Local Char DESIMG(100)(0..9),CPRIXU(20)(0..9),CPRIXTOT(20)(0..9),CTTC(20)(0..9)
CALLIU "majexc" From CEXCEL With
[M]ARTICLE(0..[M]NBLIG),[M]INTIT(0..[M]NBLIG),[M]QTE(0..[M]NBLIG),[M]PRIXU(0..[M]NBLIG)
Return
###############################################################################

Le choix du document de devis à utilisé est à paramétrer dans le menu suivant :


« Vente > Devis > Documents office par défaut »

23.12.3. Paramètres écran

− Appel d’un champ blob définis dans un bloc bureautique de l’écran pour recevoir le
document.

− Dimension (lignes - colonnes / capacité de stockage)

− Par click droit sur le type bloc « bureautique » possibilité de typer le document (Word,
Excel, power point), ou de laisser le choix à l’utilisateur (banalisé)

23.12.4. Instruction calliu

Appel d’une Macro Visual Basic Application associée à un document bureautique


(word, excel, powerpoint) contenu dans un champ blob d’écran X3
Appel d’une méthode JScript associée à un bloc graphe de type DHTML contenu
dans un champ blob d’écran X3

Syntaxe
CALLIU macro From champ_blob With liste_paramètres

Macro : nom de la macro VBA ou méthode javascript à exécuter sur le client


champ_blob : champ BLOB ou CLOB d’un écran contenant document ou graphe
liste_paramètres : liste des paramètres à passer entre l’application X3 et la macro
Exemple
CALLIU "majx3" From CEXCEL With CART(0..20),CINTIT(0..20),CQTE(0..20),CPRIXU(0..20)

Copyright © Sage 2009-2010 Page 196


SAFE X3 DEVELOPPEMENT

23.12.5. Programme VBA

Pour écrire un programme VBA allez dans le menu « Outils>Macro>Visual Basic


Editor »
La sécurité doit être au minimum pour permettre l’exécution des macros
« Outils>Options… ».
Exécution de la macro par Calliu.

Traitement X3
##########################################################################
# maj tableau X3 à partir du document excel
Local Char CART(20)(0..20)
Local Char CINTIT(40)(0..20)
Local Integer CQTE(0..20)
Local Char CPRIXU(20)(0..20)
CALLIU "majx3" From CEXCEL With CART(0..20),CINTIT(0..20),CQTE(0..20),CPRIXU(0..20)
Effzo [M]10
For I=0 To 19
If CART(I)="" : Break 1 : Endif
[M]ARTICLE(I)=CART(I)
[M]INTIT(I)=CINTIT(I)
[M]QTE(I)=CQTE(I)
[M]PRIXU(I)=val(ctrans(CPRIXU(I),",« »","."))
Next I
[M]NBLIG=I : Gosub CALCTOT : Affzo [M]10
Return
##########################################################################

Macro Visual Basic Application


Function majx3(article() As String, desig() As String, qte() As Integer, prixu() As Variant)
Dim Range1 As String
For i = 0 To 20
Range1 = "A" + CStr(i + 2)
Range(Range1).Select
article(i) = ActiveCell.Value
desig(i) = ActiveCell.Offset(0, 1).Value
qte(i) = ActiveCell.Offset(0, 2).Value
prixu(i) = ActiveCell.Offset(0, 3).Value
Next
Range("A1").Activate
End Function

Copyright © Sage 2009-2010 Page 197


SAFE X3 DEVELOPPEMENT

23.13. METHODES JAVASCRIPT

23.13.1. Présentation

Ecrans graphiques : macro VBA / méthode


Javascript

Copyright © Sage 2009-2010 Safe X3 Développement 105

Bloc graphique de type DHTML


Dans cet exemple, les icônes permettent l’appel à une méthode Jscript, du composant écran lié au
bloc « browser »

23.13.2. Traitements X3

Subprog CL_ICO1(VALEUR)
Variable Char VALEUR()
CALLIU "verifierActionJoueurA" From CLT1 With 38
End

Subprog CL_ICO2(VALEUR)
Variable Char VALEUR()
CALLIU "verifierActionJoueurA" From CLT1 With 37
End

Subprog CL_ICO4(VALEUR)
Variable Char VALEUR()
CALLIU "verifierActionJoueurA" From CLT1 With 32
End

Subprog CL_ICO5(VALEUR)
Variable Char VALEUR()

Copyright © Sage 2009-2010 Page 198


SAFE X3 DEVELOPPEMENT

CALLIU "verifierActionJoueurA" From CLT1 With 39


End

Subprog CL_ICO6(VALEUR)
Variable Char VALEUR()
CALLIU "verifierActionJoueurA" From CLT1 With 40
End

23.13.3. Méthode javascript

Les méthodes JavaScript sont à écrire directement dans le composant écran.

Copyright © Sage 2009-2010 Page 199


SAFE X3 DEVELOPPEMENT

23.14. EDITEUR HTML

23.14.1. Présentation

Ecrans graphiques : Editeur html

> Bloc Editeur HTML

− Permet de saisir une documentation pour un objet.

Développement > Dictionnaire données > Documentation > Documentation


Copyright © Sage 2009-2010 Safe X3 Développement 106

Exemple dans le menu :


« Développement > Dictionnaire données > Documentation > Documentation »

Gestion Documentation
Existe aussi en gestion documentation champ

Dégriser le bouton « ENREGISTRER » pour une modification dans le clob


###########################################################################
$STYLE
Setmok [M] With 0
Return

Subprog C_VLDFLG(VALEUR)
Variable Integer VALEUR
Look [ADH]ADH0=[M]LAN;[M]TYP;[M]COD;[M]LEV;[M]SUBLEV
If !fstat : mkstat = 4 : Endif
End
###########################################################################

Copyright © Sage 2009-2010 Page 200


SAFE X3 DEVELOPPEMENT

23.15. VUE PORTAIL

23.15.1. Présentation

> Paramètres écran

− Appel d’un champ clob définis dans un bloc Editeur HTML de l’écran pour recevoir les
informations.

− Dimension ( lignes - colonnes / capacité de stockage )

Ecrans graphiques : Vue portail

Copyright © Sage 2009-2010 Safe X3 Développement 107

Vue portail
• Visualisation uniquement
• Eléments portail insérables dans les écrans
• Pas de tableau de données associé
• Pas de traitement à écrire
• C’est un jeu de paramétrage à insérer dans l’écran
• Vue portail autorisée : calendrier, agenda ou graphe flash (type composant = FCA, FAG,
FGR)

Exemple :
C’est une requête restituée par un graphe flash.
Pour chaque fenêtre, est indiqué le nombre de masques.

Copyright © Sage 2009-2010 Page 201


SAFE X3 DEVELOPPEMENT

23.15.2. Paramètres écran

− Permet l’affichage de données externes à la fonction

− Description bloc
> Sélection d’une vue portail (paramétrage/portail/vues portail)
> Paramètre est un champ clob

− Les champs
> Un seul champ de type clob
> C’est le réceptacle des informations
> Dimension ( lignes - colonnes / capacité de stockage )

23.16. EXERCICE : CONSULTATION DES COMMANDES

23.16.1. Objectif

Consulter un ensemble de commandes en fonction de critères de sélection saisis en entête.

Visualiser le résultat sous forme de graphe dans deux onglets :

• Visualisation de la quantité et Prix ht pour chaque article commandé (graphe)


• Visualisation de la quantité pour chaque article commandé mois par mois (radar)

Le traitement appliquera le filtre sur le fichier article, selon les critères de sélection.

Pour l’onglet 1 :

Pour chaque article, on lira l’ensemble des lignes de commande correspondantes pour remplir le
tableau.

Copyright © Sage 2009-2010 Page 202


SAFE X3 DEVELOPPEMENT

Copyright © Sage 2009-2010 Page 203


SAFE X3 DEVELOPPEMENT

Pour l’onglet 2 :

Pour chaque article, on lira l’ensemble des lignes de commande correspondantes pour remplir le
tableau ; et pour chaque ligne de commande, on lira l’entête de commande.

23.16.2. Marche à suivre

Création d’un écran d’entête YGX1


Création de 2 onglets YGX2, YGX3
Création d’une action YGX
Création d’une fonction YGX
Création du traitement YGX

Pour ce faire, utiliser les descriptions ci-dessous.

Ecran d’entête

Saisie de bornes article.

Champ Saisie Oblig. Particularités Dévelop.


YITMREFD S non Fenêtre de sélection sur vos articles
Pas de contrôle d’existence de la valeur
YITMREFF S non Fenêtre de sélection sur vos articles
Pas de contrôle d’existence de la valeur

Copyright © Sage 2009-2010 Page 204


SAFE X3 DEVELOPPEMENT

Onglet 1

Prévoir un tableau, dans lequel on aura une ligne par article.


Pour chaque ligne d’article, on a un champ quantité et prix ht * quantité
Associer un graphe à ce tableau.
Le tableau et le graphe sont visualisables.

Champ Libellé Saisie Spécifique Dévelop.


NBLIG S Tunnel sur la fiche article
YITMREF Article A Alimenté par la référence article Oui
YQTY Quantité A Alimenté par la quantité Oui
YORDNOT Prix HT A Alimenté par: prix * quantité Oui

Onglet 2

Prévoir un tableau, dans lequel on aura une ligne par article.


Pour chaque ligne d’article, on a la désignation article et la quantité mois par mois.
Associer un radar à ce tableau.
Le tableau et le graphe sont visualisables.

Champ Libellé Saisie Spécifique Dévelop.


NBLIG S Tunnel sur la fiche article
YITMREF Article A Alimenté par la référence article Oui
YITMDES Nom A Alimenté par la désignation article Oui
YCRIT1 Janvier A Alimenté par la quantité Oui

YCRIT12 Décembre A Alimenté par la quantité Oui

Fenêtre YGX

Cette fenêtre est composée de :


• un entête et deux onglets
• boutons « recherche » et « fin »

Action YGX

Choisir le modèle pour le développement de cette fonction.

Traitement

Suite à la saisie des bornes articles, l’utilisateur clique sur le bouton « Recherche ».
Ce bouton doit lire les commandes et afficher les résultats dans les deux onglets à la fois.
Le traitement YGX est à compléter.

Copyright © Sage 2009-2010 Page 205


SAFE X3 DEVELOPPEMENT

23.16.3. A vérifier

• Les données restituées dans les graphes et tableaux.

Notes

Copyright © Sage 2009-2010 Page 206


SAFE X3 DEVELOPPEMENT

Copyright © Sage 2009-2010 Page 207


SAFE X3 DEVELOPPEMENT

24. SPÉCIFIQUE

24.1. REGLES GENERALES

24.1.1. Règles de nommage

Les caractères suivants sont strictement réservés et ne doivent pas être utilisé hors
de ce contexte : A* superviseur
– J* produit TMS
– W* éléments générés
– X* add-on et verticaux,
– Y* spécifiques partenaires
– Z* spécifiques clients

Les caractères suivants sont recommandés :


– M* module GPAO
– P* module achat
– S* module vente, stock

Utilisation d'une codification anglophone, pouvant être constituée de groupes de 3


car. capitalisés dans la fonction "codification/rubriques"

Positionnement Code activités verticaux et spécifiques

– Création : code activité au niveau le plus haut


– Modification : code activité au niveau le plus bas
– Suppression : code activité inactif

Les noms de traitements sont limités à 30 caractères.

24.1.2. Règles pour action / champ standard

STD ne sont ni modifiable ni supprimable

SPV action verticale


SPE action spécifique

Action dictionnaire X, Y ou Z

Remarque : Les actions spécifiques sur champs ne nécessitent pas de codes activité.

24.1.3. Règles pour action / modèle

Ordre d’exécution figé : spécifique, vertical puis standard


Désactivation de l’action standard : GPE=1
Désactivation de l’action verticale : GPV=1
Possibilité d’appel de l’action standard ou vertical par programmation :

################################################################################
#Permet l’exécution du standard avant le spécifique

Copyright © Sage 2009-2010 Page 208


SAFE X3 DEVELOPPEMENT

$ACTION
Case ACTION
When «OUVRE » : Gosub OUVRE
When default
Endcase
return

$OUVRE
Gosub OUVRE From SUBxxx
… ( spécifique)
GPE = 1
return
################################################################################

Copyright © Sage 2009-2010 Page 209


SAFE X3 DEVELOPPEMENT

24.1.4. Nommage des traitements spécifiques

Objet : SPE+objet
SPV+objet pour traitement vertical

Consultation : CNS+consultation+SPE

Traitement standard
Saisie fenêtre :
Sélection table :
Sélection liste : Xxxx, Yxxx, Zxxx
Affichage divers :
Etat :
Import / export :

24.1.5. Transaction de saisie

Certains écrans standards sont affichés dans l’application via des écrans générés par les
fonctions de transactions de saisie

Exemple pour les inventaires (écrans standard SNL0) Stock>Inventaires>Inventaires

L’écran SLN0 n’est jamais affiché.


L’écran de nom W+compteur généré par la transaction de saisi est utilisé.

Pour modifié l’écran appelé par « Stock>Inventaires>Inventaires » la marche à suivre est la suivante:

_ Modification de SNL0.
_ Puis validation de la ou des transactions dans « paramétrage>Stock>Transactions de
saisie>Inventaire ».
Les autres transactions sont répertoriées dans les différents modules.

Attention ! Si l’on modifie directement les écrans de transaction alors les modifications seront
écrasées par la prochaine validation de la transaction!

24.1.6. Traitements générés

Noms Intitulés
W0+écran Traitement d'import d'un écran
W1..9+écran Traitements d'un écran
WO + objet Traitement d'un objet
WG + fenêtre Traitement d'une fenêtre
WWCNS + cons. Traitement d'une consultation
WWINI + abrév. Traitements d'initialisation d'une table
WWI + compteur Traitement d'import
WWE + compteur Traitement d’export
WWGLOBLON Var. glob. liées aux types de données alphanumériques
WWGLOBVAR Variables globales liées aux paramètres
WWGLOB + chap Variables globales liées aux paramètres par chapitre

Copyright © Sage 2009-2010 Page 210


SAFE X3 DEVELOPPEMENT

24.1.7. Limites des composants dictionnaires

Eléments Total Standard Spécifique


Nombre d’onglets 15 10 5
Nombre de browsers 9 6 3
Nombre de boutons sur champs 20 16 4
Nombre de boutons et menus 60 minuscules
Nombre d’options dans les fonctions 8 minuscules
Nombre d’options dans les objets 9 minuscules
Textes de la table ATEXTE 1 – 49 999 50 000 – 99 999

Ajout des éléments spécifiques (onglets, browsers, …) en fin de liste standard


Placement par le rang

Messages :
Vertical 160 - 169
5000 – 5199
Spécifique 6000 – 6199

Menus locaux :
Vertical 1000 – 1999
5200 – 5999
Spécifique 6200 – 6999

Pour les tables diverses


1000 - 1999 Tables diverses

Un code activité est nécessaire dans leur définition

24.1.8. Règles des paramètres généraux

Ajout d’un chapitre spécifique (Xxx, Yxx, Zxx) dans la table diverse 901 chapitres pour paramètres

– Ajout d’un paramètre spécifique (Xxx, Yxx, Zxx) dans ce chapitre

Ajout d’un paramètre spécifique


Peut aussi se faire dans un chapitre standard
Dans tous les cas, il doit avoir un code activité spécifique

Traitement WWGLOBVAR
Dès qu’une variable globale, est associée au paramètre
• exécuté automatiquement à la connexion du dossier

Traitement WWGLOBXXX ( XXX = module )


• est alimenté dès qu’un paramètre de niveau société ou site est associé à un une variable
globale
• n’est pas exécuté automatiquement
• dès l’entrée dans une fonction ou dès la saisie du champ site faire
Call GLOBVAR (SITE) From WWGLOBXXX

Variable globale
Est à créer dans le dictionnaire associé
Pour le spécifique doit commencer par X,Y,Z,GX,GY ou GZ.

Copyright © Sage 2009-2010 Page 211


SAFE X3 DEVELOPPEMENT

24.1.9. Création de patch avec bornes de date

La création de patch peut être exécutée depuis le menu « Développement \ Utilitaires \ Patch \
Création automatique de patch »

Cette fonction permet :


Sélection automatique :
Tous les éléments spécifiques modifiés entre 2 dates avec code activité.

Langue :
Pour sélectionner les messages attachés aux éléments patchés.

Traitement à exécuter :
Sera lancé en fin d’intégration de patch
Doit contenir le sous-programme PATCH. Le dossier est passé en paramètre.
Exemple :

####################################################################
Subprog PATCH(APPLI)
Value Char APPLI
If clalev([F:ADS])=0 local File ADDOSSIER [ADS] Endif
Read [ADS]DOSSIER=APPLI : If fstat Raz [F:ADS] Endif
If [F:ADS]MODULE(n)<>2 End Endif

End
####################################################################

Type de patch
Provisoire ou définitif

24.1.10. Création de patch sans bornes de date

La création de patch peut être exécutée depuis le menu « Développement \ Utilitaires \ Patch \
Création de patch »

Sélection automatique :
tous les éléments spécifiques pour le code activité renseigné.

Langue :
Pour sélectionner les messages attachés aux éléments patchés.

Traitement à exécuter :
sera lancé en fin d’intégration de patch

Type de patch
Provisoire ou définitif
Patch normal : intégration du standard dans tous les dossiers. Spécifique et vertical
conservés
Patch superviseur : intégration dans le dossier mère uniquement. (réservé au
standard pour la doc.)
Patch vertical : intégration dans tous les dossiers. Spécifique conservé. Suppression
des actions SPV obsolètes.
Patch spécifique : intégration dans tous les dossiers. Suppression des actions SPE
obsolètes.
Nom fichier :
SRCxxxxxxxx
Insertion des traitements et états dans les répertoires adéquats du dossier applicatif.

Copyright © Sage 2009-2010 Page 212


SAFE X3 DEVELOPPEMENT

Type objet :
Ordre de déclaration sans importance (tri du superviseur)
patch d’un traitement : source ou compilé
pour tout type patchable : validation associée effectuée
pour les fonctions : validation menus ADMIN seulement
tout enregistrement de toute table est patchable
abrev de la table
Filtre de sélection du ou des enregistrements
table système sont à intégrer dans le dossier mère
pour lancer un traitement suite à l’intégration du patch
type = EXE
nom = nom du traitement à exécuter
ce traitement aura un sous-programme PATCH
peut écrire dans la trace

Code activité :
Code activité spécifique obligatoire et doit être créé dans le dossier du client et coché actif.

24.1.11. Exécutables

EXE à insérer lorsqu'on patches les éléments suivants :

Ecran de consultation ( AMK )


EXE SUBGTC permet la validation de tous les écrans de paramétrage

Ecran de base ( AMK )


EXE SUBxxx permet la validation de toutes les transactions de saisie ( xxx= code objet de la
transaction )

Styles de présentation ( ASY )


EXE SUBASY permet la validation de tous les styles

Transactions systèmes ( AMI )


EXE SUBAMI permet la validation de toutes les transactions

Paramètres statistiques ( PS2 )


EXE SUBPS2 permet la validation de toutes les stats

Eléments associés à insérer lorsque l’on patches les éléments suivants :


Style conditionnel (ASL)
patcher les écrans associés ( AMK ).

24.1.12. Nommage d’un patch

La règle de nommage conseillée, pour les fichiers patchs en spécifique ou vertical est :
<SpecificId>_<PatchNumber>_<X3RequiredPatchLevel>_<X3Version>.dat

• SpecificId : identifiant du spécifique ou vertical


• PatchNumber : numéro d’ordre séquentiel
• X3RequiredPatchLevel : numéro de liste de patch standard à partir duquel est compatible le
spécifique/vertical (facultatif)
• X3Version : version du produit hôte avec laquelle est compatible le patch spécifique/vertical

pré-requis : dossier déclaré de type spécifique pour intégration des traitements.

Copyright © Sage 2009-2010 Page 213


SAFE X3 DEVELOPPEMENT

24.1.13. Patch concernant une table :

Pour la structure d’une table


type ATB, suivi du nom de la table.

Pour annuler et remplacer tous les enregistrements d'une table


type TAB, suivi du nom de la table.

Pour patcher un ou plusieurs enregistrements d'une table,


type abrév. table, suivie d'une expression de filtre.
Le patch permet la création ou la modification d'enregistrements, mais pas la suppression.

Type TAB :
Attention ! Aucun lien avec une autre table n'est pris en compte ( ex : textes traduits ).

Copyright © Sage 2009-2010 Page 214


SAFE X3 DEVELOPPEMENT

24.1.14. Test d’un patch

Le test d’un patch se fait via le menu : « Développement \ Utilitaires \ Patch \ Test de patch »

Avant l’intégration de patch standard

Vérifie si des éléments à patcher sont en conflit avec les éléments protégés par code activité
spécifique.

Vérification de tous les patchs d’un répertoire

Une trace détaille l’ensemble des conflits

Exemple :
La consultation BAL protégée par le code activité ZDA ne sera pas mise à jour par patch standard.

24.1.15. Intégration d’un patch

Renseignement du chemin du fichier à créer.


Ne pas oublier de cocher l’information « Intégration des patchs ».
Ne garder sélectionner que les dossiers ou doit être intégré le patch.

Dossier :
• passer le patch sur le dossier applicatif uniquement

Intégration de traitements spécifiques :


• il faut un dossier typé « dossier spécifique »
• Ou un patch nommer SRCxxxxxxx
• Sinon, seuls les traitements spécifiques déjà existant seront mis à jour.

Sur un dossier de test :


• Intégration des traitements standards qui sinon resteraient dans le dossier mère.

Action ZSPX sur un champ d’écran :


Supprime toute les actions spécifiques de même type sur ce champ
SPE, SPX, actions > X.
Ce type de traitement est surtout utilisé dans les versions antérieures à la V5, car maintenant, nous
pouvons désactiver les actions standards ou verticales directement à partir du paramétrage de l’écran.
 

Copyright © Sage 2009-2010 Page 215


SAFE X3 DEVELOPPEMENT

25. CONCLUSION

25.1. THEMES ABORDES AU COURS DE CETTE FORMATION :

− Création des éléments suivants :


> tables, écrans, objet, fenêtre, actions, fonction, batch, traitement SPE

− Modification de l’existant :
> tables, écrans, objet, fenêtre, fonctions, code activité, traitement SPE

− Choix du modèle à utiliser pour le développement d’une fonction :


> Modèle objet, saisie fenêtre, traitement standard…

− Apprentissage du langage X3.

Copyright © Sage 2009-2010 Page 216


SAFE X3 DEVELOPPEMENT

25.2. TABLEAU DES FORMATIONS

CURSUS Sage ERP X3 – Outils & Développement

FONDAMENTAUX ADVANCED EXPERT

Sage ERP X3
Introduction
Business Intelligence Installation des
X3F-INT 1 jour Exploitation patchs
X3E-BIU 2 jours X3E-IPT 2 heures

Overview Outils communs Outils avancés Crystal Reports Eclipse


Fonctionnel Integration

X3F-OVW 3 jours X3F-CTO 3 jours X3A-ADM 3 jours X3E-CRI 2 jours X3E-ECP 1 jour

Web Services Lien Office


Développement
1 &2
X3E-WSE 2 jours X3E-OFF 2 heures
X3A-DEV 8 jours

Interfaces
Import / Export

X3E-IEX 2 jours

Pré-requis obligatoire
Pré-requis recommandé
“Sage Certified Consultant” examen
Web Formation
6 © 2009 Sage – Division Moyennes & Grandes Entreprises

Copyright © Sage 2009-2010 Page 217


SAFE X3 DEVELOPPEMENT

26. EXERCICES COMPLÉMENTAIRES

26.1. EXERCICE A : CHANGEMENT DE STYLE (COMPLEMENT EX 1)

26.1.1. Objectif

En gestion article, déclencher le changement de style lorsque l’utilisateur modifie le statut actif/inactif
sur une ligne article.

26.1.2. Marche à suivre

Programmer le changement du style sur la référence article, en utilisant l’instruction Chgstl (voir la
syntaxe dans l’aide en ligne).

26.1.3. A vérifier

• Si on rend l’article actif, le style devient visible sur la référence article.


• Si on rend l’article inactif, le style est effacé.

Notes

Copyright © Sage 2009-2010 Page 218


SAFE X3 DEVELOPPEMENT

26.2. EXERCICE B : TEXTES TRADUITS EN GESTION ARTICLE (COMPLEMENT EX 1 )

26.2.1. Objectif

Ajouter 2 champs dans la gestion article :

• Texte traduit long YDESTRA


• Texte traduit court YSHOTRA

26.2.2. Marche à suivre

Ajouter ces 2 champs dans la table, l’écran et la fenêtre de sélection des articles.
Permettre une mise à jour de ces champs dans la table des Textes traduits, pour ce faire aidez vous
de l’exemple du traitement SUBTUN utilisé pour traduire les unités.

26.2.3. A vérifier

• En gestion commande, ouvrir la fenêtre de sélection des articles.


• Dans la fonction des articles créez des intitulés traduits.

Notes

Copyright © Sage 2009-2010 Page 219


SAFE X3 DEVELOPPEMENT

26.3. EXERCICE C : LISTES GAUCHES EN GESTION CLIENT


(COMPLEMENT EX 2)

26.3.1. Objectif

Ajouter 4 listes gauches simples, dans la gestion client :

• YC1 Liste des prospects, en ne proposant que les prospects


• YC2 Liste des clients, en ne proposant que les clients
Ces 2 listes sont composées des champs YBPCNUM et YBPCNAM.

• YC3 Liste composée des champs YBPCNAM et YBPCNUM, triée par nom.

Ajouter une liste gauche hiérarchisée, dans la gestion client :

• YC4 Liste composée des champs YARE et YBPCNUM.

26.3.2. Marche à suivre

Pour répondre au besoin de la liste YC4 qui est une liste hiérarchisée, créer un index supplémentaire
dans table YCUSTOMX, sur laquelle cette liste pourra s‘appuyer.

Pour filtrer les enregistrements sur une liste, aidez vous de l’aide sur les actions liées aux browsers.

Pour l’identification de la liste gauche, aidez vous de l’aide de l’action OUVRE_BOITE définis à la fin
du chapitre 12 du cours.

26.3.3. A vérifier

• Présence des nouveaux browsers.


• L’alimentation de ces browsers
• Browser hiérarchisé pour le browser YC4
• Alimentation partie droite de l’écran, lorsqu’on sélection un élément d’un browser.

Copyright © Sage 2009-2010 Page 220


SAFE X3 DEVELOPPEMENT

Notes

Copyright © Sage 2009-2010 Page 221


SAFE X3 DEVELOPPEMENT

26.4. SUJETS ABORDES

Exercice 1 Objet de type tableau

Exercice 2 Objet de type simple


Action du dictionnaire
Appel action champ
Type de donnée
Table diverse
Menu local

Exercice 3 Objet de type simple (entête – détail)


Actions sur champ
Action sur l’objet

Exercice 4 Menu dans barre de menu


Saisie fenêtre

Exercice 5 Bouton en bas d’écran


Traitement standard
Locks logiques – Locks physiques
Ecriture dans une trace

Exercice 6 Point d’entrée


Transaction de saisie

Exercice 7 Visualisation avec graphes

Exercice A Changement de style

Exercice B Texte traduit

Exercice C Liste gauche

Copyright © Sage 2009-2010 Page 222


SAFE X3 DEVELOPPEMENT

Copyright © Sage 2009-2010 Page 223