Académique Documents
Professionnel Documents
Culture Documents
Support de formation
Développement
Version 6
SAFE X3 DEVELOPPEMENT
PRE REQUIS
Pour accéder à cette formation, vous devez avoir au préalable :
SOMMAIRE
SOMMAIRE .................................................................................................................................................... 3
1. INTRODUCTION........................................................................................................................................ 7
2. TABLES ..................................................................................................................................................... 9
3. ECRANS .................................................................................................................................................. 15
4. OBJETS ................................................................................................................................................... 23
5. FENETRE ................................................................................................................................................. 31
6. MENUS LOCAUX..................................................................................................................................... 39
8. VUES ...................................................................................................................................................... 42
1. INTRODUCTION
Introduction
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.
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
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.
2. TABLES
2.1. RESUME
> Audit
Permet de tracer les modifications d‟une table.
2.2.1.Onglet « Général »
Idem pour les « Abréviations » : Axx / X,Y,Zxx table superviseur / table spécifique
Champs « Intitulé » :
Renseignement des champs d‟intitulé long et court pour les traitements superviseurs.
Ceci permet l‟affichage automatique de cet intitulé dans les écrans.
Champ « Module » :
Il définit le module d‟une table.
Lors de l‟installation d‟une solution, nous pouvons activer les éléments associés 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 désactivés dans un dossier client, il est nécessaire d'avoir une
cohérence dans l'affectation du module aux tables.
2.2.2.Onglet « Champ »
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 garantit l‟intégrité de la base de données (annulation, Changement de code,
épuration), il s‟agit de la table correspondant à la clef étrangère.
Expression de lien :
Si la table liée à une clé primaire a 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és
+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.
Cet 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)
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.
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
Mode de stockage :
unicode ou ascii
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ée
et la fenêtre de la table quittée, 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.
Supprimer :
Supprime la table de la base de données, *.srf, *.fde et la description dans le dictionnaire.
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.
Ceux-ci sont à déclarer 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.
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.
3.5.1.Clob :
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.
3.5.2.Blob :
Paramètres :
Occupation : Lignes et colonnes physiques
Type photo :
Normale
Etirée
Proportionnelle
Menu contextuel :
Sélectionner
Enregistrer
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.
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.
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.
Etre déclarée dans la colonne « Paramètre » paramètre sur le bloc tableau de l‟écran.
Etre appelée 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 lignes à 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.
Exemple
Ecran SOH4 contenant les lignes de commandes de ventes.
Traitement W0xxx :
Traitements entièrement générés pour l‟import
Traitement W1xxx :
Traitements entièrement générés pour la saisie
Notes
4. OBJETS
4.1. DEFINITION
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 choisi pour l‟objet.
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
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.
La création et la suppression d‟un groupe se fait par : fichier nouveau et le bouton bas d‟écran
« supprimer »
Une liste de picking servant à mettre à jour les lignes d‟un tableau.
Exemple « Vente>Commandes>Commandes » la liste de picking des devis.
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)
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ées dans le traitement WOxxx. ( xxx = code objet )
4.6.5.Onglet Vues
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 )
4.6.6.Champs de 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
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
++ Boutons
Boutons/ /Menus
Menus Objets browser
Fenêtre objet :
Elle se nomme Oxxx ( xxx=code objet )
5.2. RESUME
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 Browser
Ajout des listes gauches spécifiques, exemple fenêtre OSOH (gestion des
commandes)
Type fenêtre :
Objet
5.7.1.Objectif
5.7.2.Marche à suivre
5.7.6.A vérifier
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 :
6. MENUS LOCAUX
6.1. DEFINITION
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
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.
7. TABLES DIVERSES
7.1. DEFINITION
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ères depuis la V6
Les données sont :
Un code pour l‟enregistrement
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.
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).
Cette gestion permet une hiérarchisation entre tables divers, par exemple avec la table famille et la
table sous-famille des articles.
Tout d‟abord, renseignement dans la définition de la table fille, dans le champ « table de
dépendance » de la table mère.
Exemple dans la définition de la 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 ; clic droit sur le type de données ADI, puis
renseignement des paramètres suivants :
_ numéro de table diverse fille
_ champ contenant le numéro de la table mère
Exemple écran ITM1 pour le champ TSICOD statistique.
Nouveauté V6 :
Les champs dimensionnés tels que TSICOD ont un numéro de table paramétré avec la formule
« (numéro de table mère)+indice ».
Le champ tables diverses contient : func TRTX3.DEPFAM(TSICOD,indice,20)
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
Aide à la création
Fenêtre permettant la saisie d‟une table et la sélection d‟un ou plusieurs champs associés
8.2.4.Onglet Clés
Performances
Table sans trop d‟enregistrements, ou avoir une clause « Where » pertinente
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
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.
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.
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.
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 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" correspondant au type interne du type de donnée 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.
Pour un champ dimensionné avec code activité inactif, sa dimension champ de table sera 1.
Développement :
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
10.1. DEFINITION
Les actions sur champs permettent de renseigner des contrôles, des affichages ou
Action champ
Code action
placée sur un champ
Traitement nommé sur écran
STD SUBxxx
SPV SPVxxx
SPE SPExxx
Action champ
Avant_zone :
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 :
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 = « [M:ABC]champ » : déplacement sur un autre champ
Action champ
Menu contextuel
Type action Contexte d‟appel & emploi Etiquette
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.
Action champ
Icône
Type action Contexte d‟appel & emploi Etiquette
CL_zone :
Valeur contient le code de l‟icône
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.
Variables globales
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 ‟écran
Variables systèmes :
nolign nolign-1 est le numéro de ligne courant 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 statut de retour d‟une instruction de saisie
fstat statut de retour d‟une opération sur table ou d‟une instruction de verrouillage
CONTOBJW
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.
• 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 :
Texte traduit
Texte avec possibilité d‟afficher la traduction pour les langues déclarées dans le
dossier.
• 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 :
Les clobs sont les champs pouvant contenir des textes longs. Les blobs contiennent les fichiers
binaires, tel que les images.
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.
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.
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
Exemples
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.
• Type de donnée
• Action sur champ
• Bouton
• Sélection
• Click sur icône
11.11.1. Objectif
Développer une gestion des clients sous forme entête, 2 onglets et liste gauche.
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.
YCNTLASTYP :
Ajouter votre menu local.
YCNTLASDAT :
Date nulle autorisée. Se servir des options du champ.
YBPCREM :
Transformer ce champ en clob.
Onglet 2 « général »
11.11.3. A vérifier
12.1. DEFINITION
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
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
_ Leur 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 »
Modèle « objet »
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.
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 utilisée
pour déclarer les variables utiles au traitement spécifique.
Modèle « objet »
$ACTION
Superviseur SUBxxx Case ACTION
When «OUVRE » : Gosub OUVRE
When default
Endcase
return
Modèle « objet »
$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
Modèle « objet »
Lock
Locklogique
logique
La saisie
Lock
Lockphysique
physique
Trbegin
La transaction de mise à jour
Commit
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.
Les évènements utilisables en gestion de création d‟un enregistrement sont les suivants :
Modèle « objet »
Trbegin
INICRE après le chargement de la classe [F]
12.2.2.1. RAZCRE
Cette action est lancée en tout début de création après clic 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
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
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 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
###########################################################################
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.
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 principale n‟est pas annulé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
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 déverrouiller BPARTNER
SYMBOLE2 = "BPR"+num$([M:BPS0]BPSNUM)
Lock = SYMBOLE2
Unlock = SYMBOLE2
###########################################################################
Modèle « objet »
RAZDUP
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
il faut préciser le nom de l‟écran.
Modèle « objet »
V
I LIENS après la lecture de l‟enregistrement
S
U
AVANT_MOD dès le début de la saisie (120)
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
Ex. de devis:
###########################################################################
#------------------------------------------------------------#
# Ré-alimentation site fin.(GFINRSP)
# soc. (GSOCIETE)
# 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
#-----------------------------------------#
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
Ex. de devis:
idem VERIF_CRE
12.2.4.4. AVANT_MODFIC
Action lancée en début de transaction mise à jour après la lecture de l‟enregistrement, [F] et 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
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
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
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 verrouillages avec [V]GOK = -1
interrompre la transaction : [V]GOK=0
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
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
Modèle « objet »
Trbegin
ANNULE avant la suppression de l‟enregistrement
commit
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
###########################################################################
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 verrouillages avec [V]GOK = -1
interrompre la transaction : [V]GOK=0
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
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
12.3.1. Principe
La gestion du modèle objet ne gère par défaut qu‟une seule table, la table liée à l‟objet.
Or 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.
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ées ici.
Modèle « objet »
Trbegin
INICRE
CREATION gosub CREATION From TABLEAUX
Commit
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 )
Modèle « objet »
V
I
S LIENS gosub LIENS From TABLEAUX
U
LIENS
DEFLIG exécuté 1 seule fois
LIENS_LIG `` pour chaque ligne détail
LIENS_LIG
NOL = nolign-1
###########################################################################
# --- Chargement de la quantité pour calcul de qté en nomenclature
[M]CQTY(NOL) = [M]QTY(NOL)
Modèle « objet »
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
MODIF
DEFLIG exécuté 1 seule fois
INICRE_LIG `` pour chaque création ligne détail
VALLIG
Modèle « objet »
gestion détails : en suppression
Trbegin
ANNULE gosub ANNULE From TABLEAUX
Commit
ANNULE
DEFLIG exécuté 1 seule fois
VALLIG `` pour chaque ligne détail
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
###########################################################################
$DEFLIG
Default Mask [SQH2]
Default File [SQD]
CRIT = 'SQHNUM="'+[M:SQH0]SQHNUM+'"'
FICLIG = "SQUOTED" : ABLIG = "SQD"
ZONLIG = "SQDLIN"
Return
##########################################################################
DEFLIG
$DEFLIG
# Critère de lecture (CRIT)
# Nom du fichier (FICLIG)
# Abréviation du fichier (ABLIG)
# Zone numéro de ligne (ZONLIG)
#----------------------------------#
UPDFLG (nom fixe) flag identifiant une ligne modifiée, champ invisible
CREFLG (nom fixe) flag identifiant une ligne créée, champ invisible
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
[V]GOK = -1
Verrouillage d‟information par un autre poste.
Abandon de la transaction puis nouvelle tentative
Verrouillage d‟informations :
Variable [L]OK
12.4.1. Objectif
YORDNUM :
Type de donnée VCR.
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étrer le code de l‟objet dans le paramètre VCROBJ.
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.
Onglet 1 « général »
Onglet 2 « lignes »
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.5. A vérifier
A vérifier
Notes
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
peut déclencher les actions sur champ de type contrôle 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.
Modèle « objet »
Action
Action Dico
Dico déclaré
déclaré dans
dans la
la fenêtre
fenêtre
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
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 »
Action
Action dico
dico déclarée
déclarée dans
dans la
la fenêtre
fenêtre
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
###########################################################################
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
###########################################################################
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 globale.
12.6.1. Présentation
Listes gauche d‟un objet, celles-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.
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
liste simple
présente si case cochée
par usage, affichée
Nommage superviseur
CLE_GAUCHE liste principale (GAU_CHE)
CLE_GAUCHE1 à 8 liste secondaire
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
Modèle « objet »
Les Browsers
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
Remarque :
Pensez à tester le contenu des variables avant leur utilisation.
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 ;
Modèle « objet »
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é.
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
Actions
Action
Action
FONCTION
FONCTION
Menu
MenuX3
X3 Fenêtre
Fenêtre
ECRAN
ECRAN
champ
champ
TYPE
TYPE
DONNEE
DONNEE
Modèle :
Il s‟agit du traitement modèle superviseur à lancer, par exemple le modèle objet.
Type :
Permet de classer les sous-programmes et actions afin d'en faciliter la recherche, et ce, dans le but
d‟une meilleure ré-utilisabilité.
Contrôle
Saisie
Sélection
Mise à jour
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.
Paramètre par valeur : sauvegarde puis restauration du paramètre pour garder sa valeur. L‟argument
est soit une constante, soit une variable.
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.
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 si besoin est.
Ce modèle se lance :
d‟une fonction, bouton/menu fenêtre, bouton champ.
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.
Saisie Fenêtre
14.3.1. OUVRE
Sert à :
14.3.2. TITRE
Sert à :
14.3.3. DEBUT
Sert à :
14.3.4. APRES_MODIF
Sert à :
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 default
When default
cinématique Endcase
Endcase
sur champ Return
Return
$$APRES_MODIF
APRES_MODIF
REP=
REP=««MM»»
return
return
se déclenche pour tout champ modifié après l‟action sur champ AM_zone, avant la
mise à jour de la classe [M].
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
Sert à :
14.3.6. FINSAI
Sert à :
Saisie Fenêtre
Boutons Pré-définis
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 »
Saisie Fenêtre
Boutons Spécifiques
Action
Action Dictionnaire
Dictionnaire
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
Saisie Fenêtre
Menus
Action
Action Dictionnaire
Dictionnaire
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
14.5.1. Présentation
Nommage
CLE_GAUCHE1 à 8 liste secondaire
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.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.
L’écran XLIV
La fenêtre XLIV
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.
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]
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
Notes
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 se lance :
d‟une fonction, bouton/menu fenêtre, bouton champ.
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
BATCH
Lancement automatique
Abonnement avec périodicité
15.2. PARAMETRES
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
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…).
15.3.1. INIT
Sert à :
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.
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 à :
15.3.3. INIT_DIA
Action lancée seulement pour une boite de dialogue avant l‟affichage de cette fenêtre.
Sert à :
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)
Traitement standard
Traitement standard
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
$ 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 à :
Variable SAI :
SAI=1 retour en saisie, juste avant l‟action AVANT_PAR (en mode interactif)
15.3.6. EXEC
Sert à :
Variable TRA :
0 pas d‟affichage & conservation de la trace
1 affichage & conservation de la trace
9 affichage & suppression de la trace
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
Sert à :
15.3.8. SORTIE
Sert à :
Etape 1 :
- Saisie des paramètres
- Le superviseur les stocke dans la table ABATRQT
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
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.
Etape 2 :
Le superviseur lit le paramètre depuis la table ABATRQT
Exécution du traitement
Action CONTROLE :
Si erreur, affichage dans la trace.
Pas de retour possible en saisie.
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
16. FONCTIONS
Présentation :
Se situe dans le menu « Développement>Dictionnaires traitements>Fonctions »
fait le lien entre le menu et soit :
– un menu (sous-niveau de menu)
– un 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)
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.
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.
Sert à :
###############################################################################
$ACTION
Case ACTION
When « TRT_DIV » : Gosub TRT_DIV
Endcase
$TRT_DIV
…
Return
###############################################################################
Variable TRAIT :
Contient l‟identifiant de l‟action dictionnaire.
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
– Jamais 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.
Traitement TABLEAUX
Subprog LINNUM (ZONLIG)
Value char ZONLIG
…
End
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
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.
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 ».
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
• 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.
18.4.1. Objectif
Ecran de sélection
Remarque :
Les valeurs saisies dans les bornes peuvent ne pas correspondre à des clients existants et peuvent
ne pas être saisies.
18.4.3. Traitement
18.4.4. A vérifier
Notes
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)
19.2.1. SEL_TABLE
Pagination :
Gérée par le superviseur si DEFPAG=1,
Tient compte du tri positionné dans ORDRE et SENS.
Tri :
19.2.2. VERF_TABLE
Sert à :
19.2.3. FIN_TABLE
Action lancée en fin de traitement même si aucune sélection n‟a été effectuée
Sert à :
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
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.
Sert à :
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.
Les textes :
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.
Action disponible :
Tri sur colonne
(sélection rapide et pagination non supportées)
20.2.2. VERF_LISTE
Sert à :
20.2.3. FIN_LISTE
Action lancée en fin de traitement même si aucune sélection n‟a été effectuée
Sert à :
Traitement standard
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 »
Remarque :
Le traitement qui contiendra vos actions est le CNSxxxSPE.
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
Action CONSxxx
• type de traitement Consultation
• code consultation xxx (obligatoire)
• définition des paramètres
Fonction CONSxxx
• action CONSxxx (obligatoire)
• valeur des paramètres
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).
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 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.
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.
Modèle « consultation »
21.6.1. AUTORIS
Cette action est appelée en tout début de modèle. Et sert à contrôler 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.
Exemple :
$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 :
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.
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
If NBLU = 1
If CHGPAG=2 | CHGPAG=-2 : Raz [M:CSQ2] : Endif
NBLU = 2
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
$SUIV
Next
Filter [SQH]
Return
Endcase
Return
SUITE : permet de désactiver les boutons < Suite > et < Dernier >
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.1.1. Objectif
Ajout du champ YTTCD dans la consultation CSP. Le champ doit être positif et dans l‟écran
d‟entête.
Création du traitement CNSCSPSPE.
Ce traitement devra filtrer les commandes ayant un total TTC inférieur au critère saisi
en entête.
21.1.3. A vérifier
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>Traitements>Points d‟entrée »
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 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.
Menu : « Développement>Dictionnaire traitements>Traitements>Points d‟entrée »
22.2.1. Objectif
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.
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).
Ces transactions de saisie permettent de générer des écrans à partir des écrans de base des
commandes (SOH0, SOH1, SOH2, SOH3, SOH4).
22.2.3. A vérifier
Notes
Axes d’analyse
Graphe simple :
Visualisations 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
Axes d’analyse
23.2. PARAMETRAGE
> 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
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.
Axes d’analyse
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é.
23.3. GANTT
23.3.1. Présentation
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.
Exemple : « Production > Données techniques > Gammes > Gestion Gammes »
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
23.4. AGENDA
23.4.1. Présentation
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
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
23.5.1. Présentation
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
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)
Tableau :
• 1 ligne par jour
• 1 colonne par plage d‟activité (1 à 4)
mess(1,9837,1)
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
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ètres :
Nombre de mois affichés :
1 à 12 mois
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
> Présentation
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)
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.
23.7.1. Présentation
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 tous les champs du tableau en affiché
Possibilité d‟afficher des totaux par activité (calcul automatique par traitement du composant écran)
23.8.1. Présentation
Graphe :
Le composant XSL permet de représenter des nomenclatures horizontalement.
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
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 nœud
Nom champ imposé (sauf pour le clob) si utilisation du traitement standard de l‟XSL
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)
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.
Stockage images
Images
A placer dans le répertoire X3_PUB/ »dossier »/RES
23.9.1. Présentation
Graphe :
Composant XSL permettant de représenter des nomenclatures verticales
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
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.
Nom champ imposé (sauf pour le clob) si utilisation du traitement standard de l‟XSL
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
Stockage images
Icones
À placer sous X3_PUB/X3_ROOT
• RESSTD/IMG pour le standard
• RESPER/IMG pour le spécifique
• RESVER/IMG pour le vertical
23.10. RADAR
23.10.1. Présentation
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 )
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
Remarque :
> Possibilité de bouton sur variable de bas de tableau (clic droit sur zone)
> Aucun nom n‟est imposé.
Menu échelle :
> Menu local permettant de définir une légende pour la graduation de l‟échelle
Composant écran :
> Aucun programme d‟interaction.
> Il n‟y aura donc pas de possibilité d‟intervenir sur ce graphe.
> Il sera juste en visualisation.
23.11. BROWSER
23.11.1. Présentation
Objectif
Afficher une à trois pages html, dans un bloc écran.
Onglet dans une barre en haut du bloc.
Code url ou html à renseigner par clic 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.12. BUREAUTIQUE
23.12.1. Présentation
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 documents et données X3.
Exemple : « Vente>Devis>Devis »
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
###############################################################################
Appel d‟un champ blob définis dans un bloc bureautique de l‟écran pour recevoir le
document.
Par clic droit sur le type bloc « bureautique » possibilité de typer le document (Word,
Excel, power point), ou de laisser le choix à l‟utilisateur (banalisé)
Syntaxe
CALLIU macro From champ_blob With liste_paramètres
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
##########################################################################
23.13.1. Présentation
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)
Subprog CL_ICO6(VALEUR)
Variable Char VALEUR()
CALLIU "verifierActionJoueurA" From CLT1 With 40
End
23.14.1. Présentation
Gestion Documentation
Existe aussi en gestion documentation champ
Subprog C_VLDFLG(VALEUR)
Variable Integer VALEUR
Look [ADH]ADH0=[M]LAN;[M]TYP;[M]COD;[M]LEV;[M]SUBLEV
If !fstat : mkstat = 4 : Endifbouton
End
###########################################################################
23.15.1. Présentation
Appel d‟un champ clob définis dans un bloc Editeur HTML de l‟écran pour recevoir les
informations.
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.
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.1. Objectif
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.
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.
Ecran d’entête
Onglet 1
Onglet 2
Fenêtre YGX
Action YGX
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.
23.16.3. A vérifier
Notes
24. SPECIFIQUE
Les caractères suivants sont strictement réservés et ne doivent pas être utilisés 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
Action dictionnaire X, Y ou Z
Remarque : Les actions spécifiques sur champs ne nécessitent pas de codes activité.
################################################################################
#Permet l‟exécution du standard avant le spécifique
$ACTION
Case ACTION
When «OUVRE » : Gosub OUVRE
When default
Endcase
return
$OUVRE
Gosub OUVRE From SUBxxx
… ( spécifique)
GPE = 1
return
################################################################################
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 :
Certains écrans standards sont affichés dans l‟application via des écrans générés par les
fonctions de transactions de saisie
Pour modifier 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!
Messages :
Vertical 160 - 169
5000 – 5199
Spécifique 6000 – 6199
Menus locaux :
Vertical 1000 – 1999
5200 – 5999
Spécifique 6200 – 6999
Ajout d‟un chapitre spécifique (Xxx, Yxx, Zxx) dans la table diverse 901 chapitres pour paramètres
Traitement WWGLOBVAR
Dès qu‟une variable globale est associée au paramètre
• exécuté automatiquement à la connexion du dossier
Variable globale
Est à créer dans le dictionnaire associé
Pour le spécifique doit commencer par X,Y,Z,GX,GY ou GZ.
La création de patch peut être exécutée depuis le menu « Développement \ Utilitaires \ Patch \
Création automatique de patch »
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
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 standard : 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.
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
La règle de nommage conseillée, pour les fichiers patchs en spécifique ou vertical est :
<SpecificId>_<PatchNumber>_<X3RequiredPatchLevel>_<X3Version>.dat
Type TAB :
Attention ! Aucun lien avec une autre table n'est pris en compte ( ex : textes traduits ).
Le test d‟un patch se fait via le menu : « Développement \ Utilitaires \ Patch \ Test de patch »
Vérifie si des éléments à patcher sont en conflit avec les éléments protégés par code activité
spécifique.
Exemple :
La consultation BAL protégée par le code activité ZDA ne sera pas mise à jour par patch standard.
Dossier :
• passer le patch sur le dossier applicatif uniquement
25. CONCLUSION
Modification de l‟existant :
> tables, écrans, objet, fenêtre, fonctions, code activité
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.3. A vérifier
Notes
26.2.1. Objectif
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
Notes
26.3.1. Objectif
YC3 Liste composée des champs YBPCNAM et YBPCNUM, triée par nom.
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
Notes
26.4.1. Objectif
Créer une consultation capable d‟afficher et de trier les clients en fonctions de critères.
Ecran d’entête
Ecran détail
Traitement :
Le traitement devra permettre l‟affichage de la liste des clients avec la possibilité de trier de 3
manières différentes :
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.
Pour créer ce traitement aidez-vous de l‟exemple du cours décrit dans l‟action LECTURE.
26.4.3. A vérifier
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.
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.
26.4.5. A vérifier
Notes