Vous êtes sur la page 1sur 72

JBASE & T24-2 Support de cours

STAGE DE FORMATION TECHNIQUE


LIVRET 2 : INTRODUCTION A GLOBUS

T24
LORIEUX Vianney

15/10/2006 T24 Page 1


JBASE & T24-2 Support de cours

AVANT PROPOS
Dans le livret 1, nous avons étudié le système jBASE et sa programmation en jBC, nous
étudierons la partie GLOBUS avec ce livret 2, en utilisant le plan :

1 - La notion de USER, son environnement, sa sécurité


2 - La navigation DESKTOP et de BROWSER
3 - Quelques Tables spécifiques
4 - Les ENQUIRIES
5 - Les VERSIONS
6 - La programmation (partie interface GLOBUS)

Chaque fois qu’un consultant à besoin d’extraire des données de la base T24, il doit
passer par une ‘Enquiry’ s’il veut pouvoir reprendre et mémorisé son extraction.
Il peut également le faire à travers le langage jQL de jBASE, mais ici la présentation est
standard, tout est une question de présentation et surtout de véracité de l’information.
Pour pouvoir faire une saisie de donnée, il faut impérativement passer par une ‘version’, ce
qui correspond à un écran de saisie. Le noyau central du système contrôle la cohérence de la
saisie et assure une synchronisation avec la base en mettant à jour un ou plusieurs fichiers
directs ou indirects.
On ne peut en aucun cas se substituer au système, car il faudrait agir sur trop de paramètres et
cela imposerait une connaissance de jBASE et de T24, très pointu.

Il arrive parfois qu’un client désir réaliser une consultation, une saisie d’un nouveau
fichier, dans ce cadre, celui-ci doit faire des contrôles spécifiques pour des données locales, il
va donc y avoir des extensions par l’intermédiaires de routines en Basic (la tendance actuelle
de langage est le Java)
Temenos a normalisé l’écriture des routines en imposant une logique de mise en forme des
routines par des APIs Basic, par des Inclusions.
Ces consignes sont bien suivies au niveau des routines du noyau système. Le développeur du
Client devra se plier à cette logique qui n’a rien de bien astreignante.

15/10/2006 T24 Page 2


JBASE & T24-2 Support de cours

1- LE USER ET SON ENVIRONNEMENT


L’utilisateur qui doit se connecter à GLOBUS (T24), doit être répertorié au niveau du
système d’exploitation et au niveau de la base T24 utilisée.
Au niveau du système d’exploitation l’administrateur doit avoir déclaré le nom de la base
comme ‘utilisateur’ (cas sous Unix) ou comme un utilisateur (cas NT)
Dans une base T24, le fichier F.USER contient la définition des utilisateurs. La clé du fichier
correspond au profile de l’utilisateur et son « SIGN.ON.NAME » correspond au nom de
l’utilisateur au moment de la connexion.
Un utilisateur peut travailler au sein d’une ou plusieurs compagnies. Ainsi, pour chaque
compagnie, il faudra que l’administrateur lui définisse ses droits et ses fonctions.
Sous TCL, la commande
SORT F.USER SIGN.ON.NAME
permet de mettre en évidence le profile et le nom de connexion.

1.1 LA CONNEXION

Quelle que soit sa connexion, l’utilisateur doit choisir son mode de connexion. Il y a 3 modes
en vigueur :
- Le mode Classique utilisé surtout par l’équipe d’exploitation et l’administration.
Il peut y avoir saisie dans certains cas comme la création de fichier par exemple.
- Le mode Desktop si l’utilisateur utilise le produit sur son PC, ce mode est souvent
utilisé par les développeurs.
- Le mode Browser, qui est le mode de l’utilisateur standard. La connexion se fait
via une adresse Url assurant la liaison avec le serveur intranet.
http://127.0.0.1:8080/BrowserWeb/servlet/BrowserServlet
127.0.0.1 correspond à l’adresse IP du serveur, ici le Laptop des consultants
Temenos. La tendance actuelle est la connexion en mode Browser.

Pour une connexion en mode classique, on peut répondre Y à la sollicitation


START GLOBUS Y/N. une réponse ‘Enter’ ou N met l’utilisateur au niveau TCL.
A niveau TCL, il peut lancer la procédure EBS.LOGIN.

Les schémas qui suivent montrent les écrans


- de la connexion classique et
- de la connexion sous Browser ou sous Desktop.
L’obtention des écrans Browser ou Desktop se fait au moment ou l’utilisateur fait son choix ;
accès à Internet ou via l’icône du Desktop.

15/10/2006 T24 Page 3


JBASE & T24-2 Support de cours

Mot de passe sign on name

15/10/2006 T24 Page 4


JBASE & T24-2 Support de cours

Quand on lance la connexion, deux saisies sont demandées, et l’utilisateur donne son
SIGN.ON.NAME et son mot de passe. S’il y a une erreur, un message système indique une
violation de la sécurité.
Dans le cas du Desktop, il faut donner les informations pour initier une connexion Telnet. Il
faut soit donner le nom de la base, le mot de passe et le nom du serveur ou son adresse IP.
Il est important que le script ‘.profile’ sous Unix ou ‘jGlobus.bat’ (voir REMOTE.CMD
sous NT) soient correctement configurés. Ces fichiers initialisent les variables pour jBASE et
lance le processus jBASE jsh.

1.2 LES COMMANDES TCL

La commande TCL LISTU ou WHERE permet de voir les utilisateurs connectés jBASE. Si
la commande courante est EX, on sait que l’utilisateur est sous T24.

Les commandes LOGOFF n°port ou LOGOUT –pid donne la possibilité de détruire un


processus. D’un point de vue plus ‘drastique’ la commande jkill –v pid fait une destruction
du processus sous Unix.
On sait que le fichier F.OS.TOKEN et F.OS.TOKEN.USE sont utilisés pour la
connexion avec le serveur sous le contrôle du TCServeur, dans le cas du Browser. Il est
recommandé en début de session de nettoyer ces fichiers pour ne pas avoir de problème sur la
connexion des utilisateurs du Net. Quand l’utilisateur travaillera dans T24, en utilisant une
fonction, le fichier F.ACTIVITY permet de mettre en évidence pour chaque utilisateur,
l’application, la fonction la clé de l’enregistrement sur lequel il travaille.
Un programme basic simple peut donner ces informations dans un format spécifique pour
l’administrateur.
Avec jBASE sous Unix les commandes who, id, pwd et tty sont utilisables. Par contre si
vous devez utiliser des caractères spéciaux, il faut passer sur une session Unix par la
commande sh puis faire votre commande. Prenez l’exemple de la commande ps –f|grep jsh
qui donne les processus sous jsh, sous TCL la commande ne fonctionne pas à cause du
caractère pipe ‘|’, par contre si vous faites la séquence ci après, vous obtenez votre édition.
TEST>sh
# ps –f|grep jsh
Vous avez ici votre édition
# exit
TEST>

N’oubliez pas de faire une vérification de la définition des imprimantes. Par


SP-STATUS
L’imprimante doit être ‘assignée’. Nous étudierons les imprimantes dans le livret 3.
Le processus jspprint doit être actif pour l’imprimante.

15/10/2006 T24 Page 5


JBASE & T24-2 Support de cours

Depuis la version G14, il n’y a plus de problèmes de connexion, car on peut avoir pour le
même utilisateur les 3 modes de connexion.

Sur cette commande WHERE figure sous ntcon la connexion à T24 fait par Desktop avec
EX. La ligne jspprint indique l’initialisation d’une imprimante.
La ligne sous xterm faisant appel a OFS.CONNEXION.MANAGER correspond à un
utilisateur sous Browser.
Dans la définition de l’utilisateur, si vous voulez avoir des menus en français, il faut que votre
code langage soit 2. Le menu dans INITAPPLICATION doit être le numéro du menu traduit
ou le menu numéro 1.

Les menus principaux sont dans le fichier F.HELPTEXT.MAINMENU et le fichier des


menus est F.HELPTEXT.MENU.

15/10/2006 T24 Page 6


JBASE & T24-2 Support de cours

2 – LA NAVIGATION PAR BROWSER


2.1 - CONNEXION

Le browser est mis en œuvre par une connexion a l’url correspondante. L’utilisateur doit
introduire son SIGN.ON et son mot de passe.

Name correspond au Sign On Name du fichier F.USER


Password correspond au mot de passe crypté en attribut 33 du fichier F.USER
S’il y a une erreur, le texte SECURITY VIOLATION apparaît, sinon après quelques instant
un autre écran apparaît :

Sur la partie adresse 127.0.0.1 est l’adresse IP du serveur, ici le Laptop .


Le bouton * donne l’accès aux favoris
Le bouton ? pour l’aide en ligne
Le bouton T24 rend visible le menu principal de la session.
Le bouton ‘montre’ donne les commandes exécutées durant la session

Exemple de commandes faites durant une


session.

15/10/2006 T24 Page 7


JBASE & T24-2 Support de cours

Le bouton ‘pince’ indique des outils pour le choix dans le profile ou pour les compagnies.

Permet de définir les menus et


sous-menus ainsi que les
commandes. Ces abréviations
seront visibles avec le bouton
*
Le fichier récepteur est :
F.USER.ABBREVIATION
Une * dans le nom du menu
permet la création
d’arborescence.

Ces menus venant de F.USER.ABBREVIATION sont


associés à l’utilisateur connecté (le Profile)
Le choix permet de la saisie ou de la consultation.
Nous avons fait figurer
VERSION,DESIGNER et
ENQUIRY,DESIGNER pour la saisie des versions et des
enquiries.

Cet écran correspond à l’outil préférences. On définit le menu principal pour l’écran
composite utilisé. Les choix correspondent à la saisie du fichier
F.BROWSER.PREFERENCES.

15/10/2006 T24 Page 8


JBASE & T24-2 Support de cours

Le bouton ‘x’ correspond à la fin de session, n’oublier pas de l’utiliser pour mettre à
jour les TOKEN.
Le bouton ‘rectangle’ permet d’ouvrir une nouvelle session

On voit qu’il est


possible d’ouvrir
plusieurs sessions, mais
il faut tenir compte du
nombre de sessions
maximum utilisables.
Cette donnée figure dans
le fichier F.SPF dans
l’enregistrement
SYSTEM.

Une zone de saisie permet d’utiliser les commandes T24 standards.

2.2 LA LIGNE DE COMMANDE

Une enquiry se lance suivant plusieurs façons :


ENQ nom_ enquiry, cette opération affiche une fenêtre de sélection dynamique
dans laquelle on précise la visualisation(display), la sortie sur imprimante ou
la sortie dans un fichier avec un format csv, HTML ou XML. Si on termine la
commande par NONE, il n’y a pas de sélections dynamiques.
On peut directement utiliser les critères de sélection :
Exemple ENQ ACCOUNT-LIST ACCOUNT EQ 100069
Ou
ENQ STMT.ENT.BOOK BOOKING.DATE EQ !TODAY ACCOUNT EQ 100069
Le mot clé LAST utilisé en fin de commande reprend les critères précédents.
ENQ ACCOUNT-LIST LAST
QUERY nom_ enquiry, cette opération n’utilise pas les critères dynamiques.
Pour les critères de sélection dit ‘statiques’, ils peuvent figurer dans la commande de
lancement.

15/10/2006 T24 Page 9


JBASE & T24-2 Support de cours

On peut choisir des champs, des


opérateurs relationnels et avoir
une sortie triée.
Cette sortie peut se faire sur une
imprimante du site ou dans un
fichier Excel ou Xml.

Fenêtre correspondante à la sélection dynamique sous DESKTOP.


Si la commande figure dans F.ABBREVIATION ou dans F.USER.ABBREVIATION ou
dans un menu de F.HELPTEXT.MENU, elle peut être lancée automatiquement.

15/10/2006 T24 Page 10


JBASE & T24-2 Support de cours

Sur le DESKTOP, l’écran se compose de 4 parties :


- Une partie menu, avec des menus déroulants.
- Une partie traitement des commandes, c’est à cet endroit que se visualise le
résultat des Enquiry ou les écrans de saisie des applications.
- Une partie commande, l’utilisateur entre les commandes avec une syntaxe simple :
o ENQ nom_enquiry
o Application,[nom_version]
o SPT nom-script (exclusivement sous Desktop)
o RPT nom_rapport_Crystal Report

o Application [A|I|S|P|C|R|H] [F3] Clé


 A pour Authorise
 I pour Input
 S pour See
 P pour recopie écran
 C pour copie
 R pour reverse
 H pour Holdé
 D pour Delete, effacement
 V pour verify, traitement spécifique.
o COS écran_composé
o TAB nom-fichier_onglets

- Une partie ‘Etat’ qui donne la date système, la date de la banque, le profile en
cours, le numéro de port, ainsi que la version du Globus.

Dans beaucoup de cas, on retrouve les mêmes manipulations sur Desktop ou sur Browser.

Attention : La validation dans un champ utilise la touche ‘Enter’. Par contre, sous Browser il
faut utiliser la tabulation, car ‘Enter’ valide la transaction dans son état.

Le Desktop et le Browser suivent le même automate des fonctions. Celles-ci permettent une
évolution entre un état saisie INAU, l’information est dans un fichier Nom$NAU

15/10/2006 T24 Page 11


JBASE & T24-2 Support de cours

Un passage dans le live avec la fonction Autorise, le fichier est Nom.


Après exploitation de la transaction, il peut y avoir historisation dans le fichier Nom$HIS.
Dans un état noté IHLD, il faut faire une saisie de l’enregistrement pour passer en INAU puis
une autorisation pour passer LIVE.
La manipulation par DL.DEFINE transfert les enregistrements en mode IHLD.

2.3 LOGIQUE DES FONCTIONS

Il existe une logique d’utilisation des fonctions sous T24. Après une saisie l’information se
trouve dans le fichier $NAU et il faut que le responsable autorise l’enregistrement.
La commande APPLICATION E permet d’avoir la liste des états de chaque enregistrement
du fichier.
Un état IHLD impose un passage en mode I de la saisie pour passer en INAU, puis une
manipulation d’autorisation permet de passer de l’état INAU à l’état live.
L’effacement ne peut se faire que sur un état INAU.
La visualisation, la copie ne se fait qu’à partir du fichier Live..

Les fonctions R et H agissent entre Historique et Live. On ne peut détruire qu’un


enregistrement en NAU.
Pour la suite des opérations, le menu TOOLS permet de se diriger vers la création de menus,
d’Enquiries ou de Versions.

15/10/2006 T24 Page 12


JBASE & T24-2 Support de cours

3 – QUELQUES TABLES SPECIFIQUES


F.SPF Le premier fichier que l’on doit manipuler, est le fichier F.SPF ayant un seul
enregistrement, l’enregistrement SYSTEM.
Dans SYSTEM figure la date limite de licence et le code de maintenance. Cette date et ce code sont à
demander à Temenos SA.
Pour la date la valeur est introduite au format ‘Globus’ 20060515 (année mois jour)
Le code licence est simple mais une erreur vous oblige à contacter la ‘hot line’.
Le fichier F.SPF n’a plus la même importance qu’avec les versions antérieures de Globus, mais
certaines données sont importantes pour l’administrateur. Nous étudierons ce fichier dans le livret
d’administration.

F.USER Ce fichier contient la définition des utilisateurs du site jBASE. Un utilisateur peut être
attaché à plusieurs compagnies. Un utilisateur peut avoir un menu principal pour ses manipulations. Il
peut avoir des restrictions sur l’utilisation des applications, de l’application ACCOUNT et de
l’application CUSTOMER.
Un utilisateur appartient à un groupe, on peut donner des possibilités aux utilisateurs du groupe.
Dans la restriction de compagnie, ALL indique le multi compagnies. Dans la partie application
ALL.PG indique l’utilisation de tous les programmes. Si on mentionne une application, les fonctions
s’appliquent à cette restriction. Field No, Data comparaison, Data from et Data to expriment un
domaine s’ils sont renseignés.

F.USER.SMS.GROUP Ce fichier permet de définir les permissions pour un groupe


d’utilisateurs. Pour que les éléments du groupe soient pris en compte, il suffit que dans la définition de
l’utilisateur, on mette, dans le champ Application la référence à un enregistrement du fichier
F.USER.SMS.GROUP sous la forme @Identifiant.

F.COMPANY Permet de définir les compagnies de référence. On donne


l’adresse, le code langage général et les applications dont la clé peut se générer par
APPLICATION I F3

La clé doit être séquentielle, un M en option du nom oblige la saisie par un I F3. Pour d’autres
applications, le fichier F.AUTO.ID.START permet de définir la partie fixe de la clé.

15/10/2006 T24 Page 13


JBASE & T24-2 Support de cours

Chaque partie s’applique à une


application.
Il est possible d’imposer un
critère de sélection comme ici
LIKE MB.GIB…
Si on donne le nom de
l’application, on peut spécifier
uniquement le nom de la
version ici, dans l’application
IB.USER on donne à la version
IB.USER,MB.GIB les
fonctions A et I.

F.ACTIVITY Ce fichier permet d’avoir des informations concernant l’activité d’un


utilisateur effectuant une action sur T24.

On obtient les données


essentielles pour suivre
l’activité d’un utilisateur :
- Son identité.
- Sa compagnie.
- L’application.
- La fonction en cours.
- Le profile.
Une liste simple du fichier
donne ces informations

15/10/2006 T24 Page 14


JBASE & T24-2 Support de cours

La référence est reprise dans le fichier des utilisateurs. Les produits utilisés pour une compagnie doivent
être référencés dans son enregistrement.

USER.ABBREVIATION Permet de définir une commande en lui associant un sigle


simple, par exemple SS est pris pour STANDARD.SELECTION. C’est dans ce fichier que sont définis
les ‘favoris’.

ABBREVIATION Est plus général, les abréviations sont utilisées par tous les
utilisateurs alors que le fichier précédant ne concerne qu’un utilisateur particulier.

15/10/2006 T24 Page 15


JBASE & T24-2 Support de cours

4 – LES ENQUIRIES
Le propre d’une base de données, est de pouvoir extraire et utiliser les données. La puissance
intrinsèque de T24 est la présentation des données à l’utilisateur. Une ‘ENQUIRY’ est une
interrogation que vous faites sur la base de données T24. Le processus est identique pour sélectionner
un enregistrement et extraire des données simples ou multiples.
L’Enquiry est le moyen consultatif le plus standard de Temenos, bien qu’il utilise des fonctionnalités
du langage jQL, il apporte quelques améliorations, au niveau des en-têtes, par exemple. Le principe
fonctionnel est simple :
Un fichier de paramètres F.ENQUIRY est pris en compte par l’application ENQ[UIRY] ou
QUERY en mode Browser. Cette application s’appuie sur une scrutation du fichier lu dans laquelle
chaque attribut, pour un enregistrement donné, est mis dans la variable T24 O.DATA. Si une
transformation a été programmée, celle-ci met le résultat dans O.DATA et c’est la valeur résultante
qui est visualisée.
Au niveau de la programmation, le développeur utilisera O.DATA ou R.RECORD pour avoir
l’enregistrement complet (enregistrement courant)

Cette logique s’applique au corps de la consultation. Si on veut préciser des valeurs constantes, il faut
les définir en début de définition avec en type de visualisation ONCE (DISPLAY.TYPE)
Si maintenant, on veut sortir des informations après le traitement du corps de la consultation, il faut
utiliser le type END.

L’Enquiry est appliqué à un fichier que l’on peut qualifié de fichier maître dans le sens
Backmann du terme. Ce fichier peut être trier en ordre croissant ou décroissant (utilisation du mot clé
DSND) On peut aussi demander d’appliquer des critères sur les champs. Ces critères sont statiques, si
on fige ceux-ci dans les paramètres de l’enquiry. Les critères dynamiques apparaissent après le
lancement de la consultation sous la forme d’une fenêtre de sélection. On peut être amené à fixer le
nombre de champs soumis à une sélection de même que l’on peut fixer l’opérateur relationnel et le fait
que ce choix soit obligatoire.
Ceci correspond à la partie principale de la saisie des paramètres de l’enquiry.
La version ENQUIRY,DESIGNER permet la saisie des enquiries. Sous Desktop, le choix dans Tools
de Enquiry Designer permet de réaliser la saisie des paramètres de la consultation.

Schéma de l’ ENQUIRY.DESIGNER sous Browser.

15/10/2006 T24 Page 16


JBASE & T24-2 Support de cours

4.1 – MANIPULATION DE L’ENQUIRY

Il y a plusieurs façons de manipuler une Enquiry.


♦ Visualiser les données avec un formatage et trier les données si nécessaire.
♦ Faire appel aux Enquiries descendantes ou ‘drilldown’ pour avoir une vue récapitulative ou
pour avoir des détails.
♦ Charger une enquiry comme un contexte au moment de l’exécution d’une saisie applicative.
♦ Charger une application et remplir des champs de données par défauts par des informations
provenant de la consultation (CBW)
♦ Exporter le résultat d’une enquiry dans une application Windows Excel.

Pour créer une Enquiry, on peut utiliser les moyens suivants :

♦ Le Enquiry Wizard (On va dans le menu Tools) pour vous aider à créer une liste simple.
Ici on fait que définir les champs en leur donnant une priorité dans l’apparition. Au niveau
Browser, le ‘Tools’ donne ces mêmes possibilités.

(on illustre ici les outils du Browser, mais le Wizzard est identique sous Desktop)

♦ L’ EnquiryDesigner est, de loin, l’outil de création pour le concepteur de consultations


(on est guidé dans la création) Il permet la conception de consultations complexes avec
des ruptures, des totaux, des textes spécifiques. On y accède par menu déroulant ou par le
lancement d’une Version sous Browser.

15/10/2006 T24 Page 17


JBASE & T24-2 Support de cours

L’Enquiry Designer :

L’Enquiry Designer permet la création des Enquiries dans GLOBUS, en utilisant le système
des onglets du Desktop pour définir une nouvelle consultation ou la modifier.

Enquiry Designer

Toutes les saisies sont visibles avec l’onglet FULL VIEW. Chaque onglet est spécifique. Il
reprend les différentes sections y compris la partie Audit.

4.2 LES CHAMPS DE L’ENQUIRY

Ci-dessous, nous trouvons les éléments du FULL VIEW cette présentation est la seule façon de voir
les messages d’erreur au moment de la validation. Chaque champ de saisie a son importance dans la
consultation. Nous les analyserons ci-après.

1 PAGE.SIZE ........
2 FILE.NAME.........
3.1 FIXED.SELECTION
4.1 FIXED.SORT.....
5.1 SELECTION.FLDS.
6.1 SEL.FLD.OPER...
7.1 REQUIRED.SEL...
8.1 BUILD.ROUTINE..
9.1.1 HEADER......
10.1 FIELD.NAME.....
11.1.1 OPERATION...
12.1 COLUMN.........
13.1 LENGTH.MASK....
14.1.1 CONVERSION..
15.1.1 COMMENTS....
16.1 TYPE...........
17.1 DISPLAY.BREAK..
18.1 SINGLE.MULTI...
18.2 ……

D’une version à l’autre de T24, il y a des arguments supplémentaires surtout avec l’arrivée du
Browser, dans la mesure ou on peut intégrer des couleurs, des icônes des graphiques simples
(histogramme, camembert)

Dans le cas du Browser, pour avoir un FULL VIEW, il faut lancer la commande ENQUIRY,
Puis à la demande de la clé, on doit introduire le nom de l’enquiry.
Le choix entre Desktop et Browser, n’est souvent qu’une question d’habitude car les deux moyens
possèdent les mêmes possibilités.

15/10/2006 T24 Page 18


JBASE & T24-2 Support de cours

PAGE.SIZE (entrée obligatoire)

L’information ici permet de définir une page écran qui sera utilisée pour la consultation. Cette
information n’est pas reprise automatiquement.

(1) XX,YY ou XX défini la première ligne de la page et YY la dernière. La valeur doit être
numérique et comprise entre 0 - 24, les deux informations sont séparées par une virgule.
(2) La valeur par défaut est 4,19

FILE.NAME (entrée obligatoire)

Ce fichier est le fichier consulté par T24. Il doit avoir une entrée dans le fichier F.FILE.CONTROL ou
avoir un nom commençant par ‘NOFILE.’ On demande ici le nom GLOBUS, c’est à dire sans ‘F.’ ou
‘FXXX.’ en préfixe.

FIXED.SELECTION

On implante ici les critères de sélection statiques. L’enquiry exécutera toujours cette
sélection. Son fonctionnement est comparable à la clause « WHERE » du SELECT SQL.
Exemple: APPLICATION.ID EQ LD
Si on à besoin de plusieurs critères, on utilise une sous valeur.

FIXED.SORT

On donne, ici, les critères de tri. On donnant le nom du descripteur. Le fonctionnement est
identique à ORDER BY de SQL ou le BY de jQL . Le tri se fait en ordre croissant ou
décroissant.
Exemples: CUSTOMER - tri par CUSTOMER.
ACCOUNT DSND - tri par ordre décroissant de compte

SELECTION.FLDS

Indique les champs à sélectionner dynamiquement dans l’ENQUIRY.SELECT. Cette


application permet de définir les critères de sélection dynamiques. L’utilisateur ne verra dans
la fenêtre de sélection que ces champs la.

SEL.FLD.OPER

Permet de définir les opérateurs appliqués aux descripteurs.


Exemple: SELECTION.FLDS = CUSTOMER
SEL.FLD.OPER = EQ

Les opérateurs valides sont : NULL, EQ, RG, UL, LK, NR, GE, LE ou LT ou une combinaison
séparée par un espace.

REQUIRED.SEL

Cette information précise si la sélection dynamique est obligatoire ou non. Certaines enquiries
peuvent faire appel à des sélections spécifiques, C’est le cas lorsque le champ lance une
routine où utilise un concat file. La réponse est Y ou vide.

15/10/2006 T24 Page 19


JBASE & T24-2 Support de cours

BUILD.ROUTINE

Le nom de la routine présente ici, permet une définition programmée des critères de sélection. Cette
routine passe un tableau dynamique en argument. Cet argument agit comme une liste de critères de
sélection. La routine prend en compte ces critères dynamiques.

ENQ<1> = NOM DE L’ENQUIRY


ENQ<2,1> = NOM DU CHAMP SELECTIONNE (entrée User)
ENQ<3,1> = OPERATEUR ASSOCIE (EQ, LK) etc.
ENQ<4,1> = LISTE DE DONNEES

FIELD.NAME

On définit, ici, un nom symbolique de colonne. Ce nom n’est pas forcement pris dans le
STANDARD.SELECTION. Si le champ est celui du STANDARD.SELECTION les
composants du champ sont pris par défaut.

OPERATION (entrée obligatoire)

Ce champ contient, en général, le nom d’un champ pris dans le STANDARD.SELECTION,


mais une autre syntaxe est possible.

Instruction Action

FIELD.NAME Dynamiquement la localisation se fait par la définition


du STANDARD.SELECTION.

FIELD.NO Numéro de champ.


(0 - ID) (Non recommandé, uniquement dans le cas de NOFILE ou
quand une définition n’existe pas.

IDESC XXX Exécute le I-descriptor défini dans le


STANDARD.SELECTION du fichier
En type I ou J, avec le nom
FIELD.NAME XXX. Le résultat est retourné
comme valeur de la colonne.

SELECTION XXX Donne la valeur du champ de sélection


XXX entré dans le critère de sélection.

FIELD XXX Prend la valeur de la colonne de l’enquiry (dans le cas de


calcul par exemple)

TOTAL XXX Totalisation sur-le-champ XXX.

BREAK CHANGE XXX Rupture sur le changement de valeur du champ XXX.

BREAK LINE NN Rupture sur un comptage de NN ligne.

CALC XXX + YYY Addition XXX et YYY.

CALC XXX / YYY Division du champ XXX par YYY.

15/10/2006 T24 Page 20


JBASE & T24-2 Support de cours

CALC XXX * YYY Multiplication.

CALC XXX – YYY Soustraction.

CALC XXX : YYY Concaténation.

IF AA GT BB XXX YYY Décisions.

Si le champ AA est > au champ BB alors on utilise le champ


XXX sinon, on prend le champ YYY. Les opérateurs valables
sont : EQ, NE, GT, LT, GE, LE, RG, NR, LK, UL.
Ce champ est sous valué pour permettre plusieurs critères de
décisions.

"zzzzz" On utilise une constante chaîne encadrée par guillemet.

!USER Pour extraire l’identification du profile utilisateur.


!TODAY Pour avoir la date du jour.
!COMPANY Pour avoir la compagnie.
!LANGUAGE Pour avoir le code langage
!LOCAL.CCY Pour avoir le code de devise locale.
!LAST.WORKING.DAY Pour avoir le dernier jour travaillé.
!NEXT.WORKING.DAY Pour avoir le prochain jour travaillé..

Note important : Ne jamais faire référence à un champ numérique ou


standard(XXX or 0-999) pendant la rupture. Utiliser toujours une référence FIELD XXX.

COLUMN

On exprime ici la position de la donnée à sortir. Une valeur indique un numéro de colonne exprimé par
rapport à la marge gauche. Si les numéros de colonnes sont séquentiels, il y a une sortie en mode grille
avec un calcul automatique de la largeur de colonnes. En mode Page, on est obliger de définir la bonne
position de sortie.
L’absence de valeur indique que la valeur n’est qu’une donnée de manœuvre.
Si la valeur s’exprime ‘col,ligne’ l’information sortira dans les 4 lignes d’en-tête.
‘Col,+n’ permet d’indiquer la ligne courante plus n, en générale ce type de sortie se fait avec le
BREAK DISPLAY ‘END’
Le code P indique un saut de page au moment de la rupture. Cette option est conforme à l’option P du
BREAK.SUP du langage jQL.

CONVERSION

Ceci permet de transformer la valeur de la donnée en visualisation.


Les codes de conversions permettent une manipulation du résultat de l’extraction. S’il y a plusieurs
codes, on utilise les sous-valeurs. Les codes sont :

Conversion Action

FIELD X,N1,N2 Fait une extraction de groupe avec X en délimiteur, N1 est


l’occurrence. N2 le nombre d’extraction.
EXTRACT N1,N2 Extraction de chaîne, de N1 sur N2 caractères.
SUBSTITUTE X,Y Si la donnée est = à X on la remplace par Y.
CONVERT X,Y On remplace le caractère X par Y pour toutes les
Occurrences.

15/10/2006 T24 Page 21


JBASE & T24-2 Support de cours

VALUE X,Y Extraction de la valeur X , de la sous-valeur Y.


JULIAN Conversion de date GLOBUS en date interne.

OCONV XXX Conversion standard UniVerse/jBASE en sortie.


ICONV XXX Conversion en entrée UniVerse /jBASE.
LINK XXX,YYY On lit le fichier XXX avec, en clé étrangère la valeur de
la colonne et on met la valeur du descripteur YYY dans
la colonne, à la fin. Si on a des valeurs, les séparateurs
se traduisent par des espaces.(TRANS en Basic)
@XXX Appel d’une routine utilisateur XXX.
$XXX Appel de la routine XXX au niveau de la sélection
seulement, on manipule les critères de sélection.

TYPE

Permet le formatage de la donnée numérique ou date.


Ce formatage intervient après conversion.

CCY XXX Y Le montant utilise la devise exprimée dans XXX


Et le montant négatif par le code présent en Y.
Les formats courants sont :
E une valeur se présente comme <123,456.12>
M une valeur se présente comme 123,456.12-
B une valeur se présente comme 123,456.12db
N une valeur se présente comme 123,456.12
null c’est le format par défaut -123456.12
Exemple : CCY CURRENCY E
TRANSLATE Traduction par le mécanisme du texte dynamique et du code
Langage.
LANGUAGE Extraction du code langage.
DATE de la date interne GLOBUS en date européenne.
(YYYYMMDD) à DD Mmm YYYY.

DISPLAY.BREAK

Défini une précision sur le mode de sortie en indiquant si le traitement se fait en début ou en
fin d’Enquiry.
Défini le champ à manipuler quand une condition de rupture arrive. Dans le cas d’un champ
TOTAL, le total général sera visualise et le total courant efface.
Le nom des champs de rupture peut exprimer certaines conditions :

ONCE Indique une opération qui s’effectue avant le traitement du


corps de la consultation.
END Inique un travail en fin d’enquiry.
NEWPAGE Exécution à chaque debout de page.
NONE Utilisée si le critère de sélection ne donne pas de résultats.
Nom de Variable Si on veut préciser la dépendance de la rupture.

SINGLE.MULTI

15/10/2006 T24 Page 22


JBASE & T24-2 Support de cours

On précise ici, que le processus demandé se fera pour des valeurs ou sous-valeurs multiples.
Le code ‘M’ indique la multi-valeur ou la sous-valeur. Toutes les valeurs/sous-valeurs sont
associées et alignées sur l’écran (le code S est pris par défaut)

ENQUIRY.NAME

On donne le nom de l’enquiry, de l’application ou de la version à exécuter sur les niveaux


inférieurs (Drill Down)
Exemple : ACCOUNT,AC.TEST I F3 Dans cet exemple, on fait appel à une version
en mode Entrée en générant un nouvel @ID.

SEL.CRITERIA

Critère de sélection pour le niveau Drill Down. Cette saisie ne concerne que les enquiries (on
ne l’utilise pas pour une application)
Les opérateurs corrects sont : EQ, NE, GT, LT, GE, LE, RG, NR, LK, et UL.
Exemple : CUSTOMER EQ CUST.ID

LABEL.FIELD

On précise ici, le nom du champ sur lequel un click droit fait apparaître l’enquiry,
l’application ou la version. C’est normalement la clé étrangère.

SMS.APPLICATION

Ce champ défini le nom de l’application à utiliser pour la vérification SMS.


Si une enquiry est basée sur un ‘NOFILE’ la seule vérification MS à faire s’exprime par un
lien défini dans la colonne conversion. Pour faire à cela, vous pouvez définir ici le nom de
l’application utilisant les règles du SMS.

SMS.ID

On donne le nom de l’enregistrement à lire depuis SMS.APPLICATION.


Chaque fois que ce champ est traité, l’enregistrement de SMS.APPLICATION sera lu et
vérifié par SMS. Si l’enregistrement ne satisfait pas les conditions du contrôle, il n’y a pas de
visualisation.

SMS.ABORT

Drapeau indiquant que l’enquiry sera abandonnée s’il y a violation SMS.


Le système lit les enregistrements et SMS et vérifie tous les enregistrements sélectionnés.
Cette opération peu prendre du temps si tous les enregistrements sont en erreur au niveau du
contrôle SMS.Il y a abandon. La réponse doit être Y ou N.

USE.FIELD.NUMBERS

Spécifie si le numéro de champ entré dans la zone OPERATION est converti en nom de
champ du STANDARD.SELECTION. Peut être Y or NO.

15/10/2006 T24 Page 23


JBASE & T24-2 Support de cours

CUSTOMER.NO.FLD

Indique le champ à sortir qui contient le numéro de CUSTOMER. Ceci est utilise en sortie
spool avec l’application ENQUIRY.REPORT, mais nous étudierons cet aspect plus tard dans
la suite du cours.

ACCOUNT.NO.FLD

Indique le champ qui contient le numéro d’ACCOUNT. On utilise cette information en sortie avec
l’application ENQUIRY.REPORT.

SPOOL.BRK.FLD

Spécifie le champ de rupture entre deux pages, certains rapports peuvent demander une sortie
particulière pour un CUSTOMER ou un ACCOUNT. Ou bien quand on veut un rapport pour
chaque CUSTOMER ou ACCOUNT. En indiquant le champ de rupture ici, un état spoolé est
généré à chaque rupture. Ce champ doit être défini dans l’enquiry dans la colonne FIELD NAME.
Passons aux exemples pour bien comprendre l’enquiry.

4.3 COMMENT CEER UNE ENQUIRY


Exemple 1 : En utilisant l’ENQUIRY DESIGNER, créer une grille qui visualise le numéro de
ACCOUNT, et le CUSTOMER depuis le fichier ACCOUNT.
Les champs à renseigner sont : le nom du fichier (FILE.NAME), le nom de la colonne
(FIELD.NAME), la position en colonne (COLUMN), la donnée source (OPERATION), le masque de
sortie (LENGTH.MASK), la taille de la page (PAGE.SIZE).

Noter que vous devez donner une position colonne pour que la donnée apparaisse. La taille de page
par défaut est positionnée à 4,19
Si vous voulez travailler à la colonne prés, il faut déclarer un attribut PAGE et définir la
véritable position de la colonne par rapport à la sortie.

15/10/2006 T24 Page 24


JBASE & T24-2 Support de cours

Exemple 2 Ajouter la devise CURRENCY et la balance WORKING.BALANCE des comptes,


faites en sorte de formater correctement la WORKING.BALANCE en fonction de sa devise
Field Nom (FIELD.NAME), Colonne (COLUMN), Type (TYPE). Voir le Helptext sur Type
Solution 2

Les éléments à ajoutter sont :


10.3 FIELD.NAME CURRENCY
11.3.1 OPERATION CURRENCY
12.3 COLUMN 31
13.3 LENGTH.MASK 3L
18.3 SINGLE.MULTI S
10.4 FIELD.NAME WORKING BALANCE
11.4.1 OPERATION WORKING.BALANCE
12.4 COLUMN 35
13.4 LENGTH.MASK 19R
16.4 TYPE CCY CURRENCY
18.4 SINGLE.MULTI S
Au niveau du Desktop le résultat obtenu est celui
figurant sur la figure de gauche.

15/10/2006 T24 Page 25


JBASE & T24-2 Support de cours

Exemple 3
Donner un en-tête à chaque colonne. Noter que le champ HEADER est sous valué et que pour cela,
vous devez vous mettre en FULL VIEW.
Solution 3
Structure en mode FULL VIEW. Il faut utiliser ici l’insertion de la sous valeur. Dans le cas de
traduction il faut générer une autre valeur correspondant au code langage.

9.1.1 HEADER @(25,0) Training Enquiry


9.1.2 HEADER @(3,2) Acct
9.1.3 HEADER @(15,2) Cust
9.1.5 HEADER @(31,2) Ccy
9.1.6 HEADER @(45,2) Wbal

Structure en mode DeskTop

15/10/2006 T24 Page 26


JBASE & T24-2 Support de cours

Exemple 4
Ajouter un lien au mnémonique du CUSTOMER et faites un tri par CUSTOMER. Assurez-
vous qu’aucune balance concernée sera négative ou nulle.
- C’est dans la conversion que se fait le lien.
- C’est dans la sélection statique que l’on précise la WORKING.BALANCE

3.1 FIXED.SELECTION WORKING.BALANCE GT '0'


3.1 FIXED.SELECTION CUSTOMER NE NULL
4.1 FIXED.SORT CUSTOMER
10.3 FIELD.NAME MNEMONIC
11.3.1 OPERATION CUSTOMER
12.3 COLUMN 56
13.3 LENGTH.MASK 10R
14.3.1 CONVERSION LINK CUSTOMER,MNEMONIC
18.3 SINGLE.MULTI S

On visualise les ACCOUNT d’un CUSTOMER avec un CUSTOMER par page. Pour faire cela, il faut
créer un champ pour la rupture qui spécifiera le changement de page au moment du changement de
numéro de CUSTOMER. On utilise le BREAK. CHANGE avec le positionnement P en colonne

15/10/2006 T24 Page 27


JBASE & T24-2 Support de cours

indiquant une rupture par page. On doit visualiser le numéro et le nom du CUSTOMER dans l’en-tête.
Faites de ce rapport, un rapport de mode PAGE plutôt que de mode grille (voir ATTRIBUTES)
Opération (OPERATION)
Colonne (COLUMN)
Display Break (DISPLAY.BREAK)
ATTRIBUTES
Note: Votre enquiry doit apparaître en mode page.

10.2 FIELD.NAME CUSTOMER


11.2.1 OPERATION CUSTOMER
13.2 LENGTH.MASK 10L
18.2 FIELD.LABEL Customer
31.2 SINGLE.MULTI S

10.3 FIELD.NAME B.CUS


11.3.1 OPERATION B C CUSTOMER
12.3 COLUMN P
17.3 DISPLAY.BREAK NEWPAGE

10.4 FIELD.NAME D.CUS


11.4.1 OPERATION FIELD CUSTOMER
12.4 COLUMN 15,1

10.7 FIELD.NAME MNEMONIC


11.7.1 OPERATION CUSTOMER
12.7 COLUMN 30,1
13.7 LENGTH.MASK 10R
14.7.1 CONVERSION L CUSTOMER,1
18.7 FIELD.LABEL Name
31.7 SINGLE.MULTI S

52.1 ATTRIBUTES PAGE

Exemple 6
Restreindre les critères de votre consultation pour les descripteurs : ACCOUNT.NUMBER,
CUSTOMER et CURRENCY.
Solution 6

15/10/2006 T24 Page 28


JBASE & T24-2 Support de cours

5. 1 SELECTION.FLDS. ACCOUNT.NUMBER
5. 2 SELECTION.FLDS. CUSTOMER
5. 3 SELECTION.FLDS. CURRENCY

Exemple 7
Ajouter un total pour la WORKING.BALANCE pour chaque CUSTOMER. Le total
apparaîtra à la rupture.

Nom (FIELD.NAME), Operation (OPERATION), Col (COLUMN),


Break (DISPLAY.BREAK)

10.8 FIELD.NAME TOTWB


11.8.1 OPERATION TOTAL WORKING.BALANCE
12.8 COLUMN 25
17.8 DISPLAY.BREAK B.CUS

10.9 FIELD.NAME TOTTEXT


11.9.1 OPERATION "Total"
12.9 COLUMN 19
17.9 DISPLAY.BREAK B.CUS

15/10/2006 T24 Page 29


JBASE & T24-2 Support de cours

Exemple 8 : Faites une rupture sur la devise pour donner un sens au total. pour faire cela, le
total doit se faire sur une rupture de deux éléments, la devise et le Customer. Pour ce faire, un
champ réalisera la concaténation de CUSTOMER et de CURRENCY, puis la rupture portera
sur ce champ. Chaque fois que la valeur changera, il y aura un sous total. Vous pouvez
choisir si vous voulez un saut de page. Dans le cas du saut de page la CURRENCY doit
apparaître dans l’en-tête.

15/10/2006 T24 Page 30


JBASE & T24-2 Support de cours

15/10/2006 T24 Page 31


JBASE & T24-2 Support de cours

4.4 - CONTEXT ENQUIRY

Quand vous ouvrez l’application CUSTOMER et que vous choisissez sur la barre de tâches, l’option
Enquiry, vous voyez une liste d’enquiries liées à l’application CUSTOMER
Si vous utilisez l’application ACCOUNT, vous aurez d’autres enquiries. Cette possibilité se
programme grâce à la technique des « CONTEXT.ENQUIRIES ».

Partie de l’écran de l’application CONTEXT.ENQUIRY


Ouvertes, ces enquiries sont dites ‘Context Enquiries d’application’. Si l’enquiry est lancée quand on
fait un click droit sur un champ on dit que ce sont des ‘Context Enquiries de champ’

La clé d’un enregistrement de CONTEXT.ENQUIRY doit avoir le format suivant :


Pour le niveau application – NOM APPLICATION

Pour un champ dans une application- ApplicationName-FieldName


Pour une version – Nom_application,nom_version
Pour un champ – Nom_application,nom_version-nom_champ

Prenons un exemple :

Assurez-vous que, si l’application ACCOUNT est ouverte, un utilisateur puisse lister le


numéro des CUSTOMER et leurs MNEMONIC. Cette option ne devant existée que si
l’application ACCOUNT est ouverte.

Etape 1 : Créer une enquiry (CUS.MNEMONIC.LIST) qui listera le CUSTOMER et son


MNEMONIC.

10.1 FIELD.NAME @ID


11.1.1 OPERATION @ID
12.1 COLUMN 1

10.1 FIELD.NAME MNEMONIC


11.1.1 OPERATION MNEMONIC
12.1 COLUMN 10

15/10/2006 T24 Page 32


JBASE & T24-2 Support de cours

Etape 2 : Ouvrir CONTEXT.ENQUIRY et renseigner le champ ENQUIRY.NAME.


La clé doit être impérativement ACCOUNT qui est le nom de l’application.

ACCOUNT

Context Enquiry niveau champ


Assurez-vous qu’un click droit sur le champ CUSTOMER de ACCOUNT donne accès à l’enquiry
donnant le nom et l’adresse.

Etape 1 : Créer une enquiry qui listera le nom du CUSTOMER et son adresse.
Le fichier utilisé : CUSTOMER

10.1 FIELD.NAME SHORT.NAME


11.1.1 OPERATION SHORT.NAME
12.1 COLUMN 1

10.1 FIELD.NAME STREET1


11.1.1 OPERATION STREET1
12.1 COLUMN 20

Etape 1 : Ouvrir l’application CONTEXT.ENQUIRY et renseigner les données demandées.

15/10/2006 T24 Page 33


JBASE & T24-2 Support de cours

4.5 - DRILL DOWN

Maintenant que vous êtes familiarisé avec ‘CONTEXT ENQUERY’, étudions un autre point . Une
possibilité importante de l’enquiry est de pouvoir relancer d’autres enquiries ou des commandes de
saisie en sélectionnant une donnée. C’est ce que propose la technique du ‘Drill Down’. Prenons un
exemple :

Créer une enquiry qui listera les numéros de ACCOUNT et leur MNEMONIC. Faites le lien avec
l’enquiry ACCT.BAL.TODAY qui visualise les données des comptes spécifiés. Faire un Drill Down
sur le numéro de compte.
Enquiry (ENQUIRY.NAME), Sélection (SEL.CRIT), Champ en sur brillance (LABEL.FIELD),
Description (NXT.LVL.DESC)

Notez que le nom des champs doit être différents dans les deux enquiries pour que le lien soit possible.

Solution 13
32.1 ENQUIRY.NAME ACCT.BAL.TODAY
33.1.1 SEL.CRIT ACCOUNT.NUMBER EQ ACCT
34.1 LABEL.FIELD ACCT 1
35.1 NXT.LVL.DESC Acct Bal Today enquiry

Il faut changer le champ 10 ACCOUNT.NUMBER en ACCT, car on ne peut faire une jonction avec
des noms identiques de champ, même si en valeur les deux champs doivent être identiques.
Ici dans l’enquiry le numéro de compte sera défini comme ACCT puisque dans l’enquiry
ACCT.BAL.TODAY la zone correspond à ACCOUNT.NUMBER

15/10/2006 T24 Page 34


JBASE & T24-2 Support de cours

4.6 - CONTEXT BASED WORKFLOW

Le ‘Context Based Workflow’ permet de populer une application, une version à partir d’une
enquiry. Les information listées deviennent des valeurs par défaut.
Prenons un exemple :

Créer une Enquiry qui listera le détail des clients. Depuis la liste, un click droit sur un customer
particulier permet de créer un compte pour le customer. Le numéro de customer est valorisé par défaut
dans le champ CUSTOMER.NUMBER de ACCOUNT. Le mnémonique est aussi pris par défaut
depuis le champ MNEMONIC de ACCOUNT.

Etape 1: Créer une enquiry qui liste le détail des CUSTOMER.

Fichier à utiliser : CUSTOMER

10.1 FIELD.NAME @ID


11.1.1 OPERATION @ID
12.1 COLUMN 1

10.1 FIELD.NAME SHORT.NAME


11.1.1 OPERATION SHORT.NAME
12.1 COLUMN 10

10.1 FIELD.NAME MNEMONIC


11.1.1 OPERATION MNEMONIC
12.1 COLUMN 25

Note: ACCREATE est le nom de la version qui est automatiquement appelé en saisie, la clé est
générée automatiquement et CUSTOMER et MNEMONIC sont renseignés par défaut.

Etape 2
Créer la version ACCOUNT,ACCREATE qui permet de créer un nouvel ACCOUNT.

Partie de la version ACCOUNT,ACCREATE qui liste les détails.


La technique mise en œuvre ici, consiste à définir des valeurs à intégrer dans la version comme
éléments du Drill Down. La commande du Drill Down étant une commande de saisie.
Dans la version les valeurs sont reprises mais en ‘valeur par défaut’ avec la même syntaxe.
Nom_fichier>champ

15/10/2006 T24 Page 35


JBASE & T24-2 Support de cours

4 .7 – ENQUIRY REPORT

Habituellement quand on fait une enquiry, la sortie se fait sur l’écran. Dans le cas ou la sortie d’une
enquiry doit être imprimée comme un rapport, il faut utiliser l’application ‘ENQUIRY.REPORT’.

L’application ENQUIRY.REPORT prend dans le compte des informations de détail comme le nom
de l’imprimante utilisée pour imprimer. La mise en page doit tenir compte de l’imprimante. Une entrée
‘SYSTEM’ doit exister dans le fichier PRINTER.ID. Ce nom est utilisé comme valeur par défaut de
DE.FORM.TYPE. Pour définir l’équivalent du SETPTR d’UniVerse. Pour sortir le rapport avec
ENQUIRY.REPORT, il faut se mettre en mode Verify.

PRINTER.ID

DE.FORM.TYPE

REPORT.CONTROL

ENQUIRY.REPORT

Nota : Pour exécuter l’édition pendant le COB, l’enregistrement du ENQUIRY.REPORT doit être pris
en compte dans les datas du BATCH pour le job EB.PRINT précédé de ENQ.

Quand on défini le rapport PAGE.SIZE doit être adapté. Il n’y a pas de restriction de largeur
ou de hauteur de rapport.

Réaliser les étapes pour que la sortie de l’enquiry LOANS.LIST sorte sur l’imprimante.

Etape 1 Définir l’imprimante dans PRINTER.ID, on peut utiliser une imprimante existante.
Etape 2 Définir la forme de l’imprimé dans DE.FORM.TYPE, on peut utiliser une définition
existante.
Etape 3 Créer un enregistrement dans REPORT.CONTROL pour faire le routage de
l’impression.
Etape 4 Créer un ENQUIRY.REPORT avec le nom de l’enquiry et la clé du
REPORT.CONTROL.

2 ENQUIRY Nom enquiry


7 REPORT.CONTROL clé du report control

Etape 5 Pour lancer le rapport ouvrez ENQUIRY.REPORT avec la fonction ‘VERIFY’, puis
faites F5.

15/10/2006 T24 Page 36


JBASE & T24-2 Support de cours

4.8 - FAST PATH ENQUIRY

On donne la possibilité de faire des sélections de clés rapidement, voir des modifications si nécessaire.

Sélection

Rapport d’exécution

Colonne de l’enquiry

La zone Attribut de la définition de l’enquiry doit avoir le mot FASTPATH sélectionné (en
multivaleur) et pour pouvoir faire une modification, on utilise le mot clé EDIT au niveau du
DISPLAY TYPE .
Quand on veut éditer un grand nombre de colonnes, il est possible de cacher les colonnes et
les faire apparaître à la demande. Pour cela la colonne doit être indiquée HIDEN dans la partie
attribut de la colonne. Un bouton ‘>’ ou ‘<’ indique cette possibilité dans l’en-tête de la
colonne.

15/10/2006 T24 Page 37


JBASE & T24-2 Support de cours

5 – LES VERSIONS

Introduction:

Dans T24, Les données partageables et spécifiques sont possibles dans un fichier nommé
‘SECURITY.MASTER’. Ce fichier contient 150 champs. Prenons le cas ou il y aurait 2 catégories
d’utilisateurs dans la banque, L’une qui opérera sur des transactions partageables et les autres sur des
transactions ‘spécifiques”. L’affichage de la totalité des champs pour les deux catégories d’utilisateurs,
compliquerait la situation et générerait le chaos. Pour résoudre ce problème, on a la possibilité de
saisir les champs partagés avec un écran de saisie et de faire la saisie des données spécifiques avec un
autre écran.
C’est exactement ce que permettent les versions. L’application “VERSION” est un standard des
applications GLOBUS. La version permet aux utilisateurs de créer des écrans adaptés pour la saisie,
les autorisations, les visualisations, etc. On peut aussi utiliser des automatismes de remplacement des
données dans les enregistrements. En fait, GLOBUS dans la majorité des applications utilise des
versions Il est possible d’ajouter des routines locales qui sont associées à un champ, une validation,
une autorisation. Ces petits programmes permettent une grande adaptation à l’utilisateur de GLOBUS.

5-1 LE SCREEN DESIGNER

Le Screen Designer est un outil graphique inclus dans le Desktop de GLOBUS ou dans le BROWSER
pour aider la création et l’aménagement d’un écran de saisie ( ou version) Vous pouvez utiliser la
technique du « drag and drop » pour implanter les champs à saisir.
Attention, la création d’une image écran ne peut se faire qu’à partir du Desktop.

Utilisation du Screen Designer

Si on est sous Browser, il suffit de lancer VERSION,DESIGNER pour arriver aux mêmes onglets
que le mode Desktop
La partie principal permet de décrire l’application, le (ou les) code(s) langage, le nombre d’autoriseurs
si on a la valeur 0, la saisie est implicitement autorisée.

La version à suivre (Next Version) permet de lancer une autre version après la validation de la version
que vous définissez.
En générale, une version complexe se subdivise en plusieurs onglets comme la version qui permet la
création de version. Chaque version indiquée dans Versions sous onglets, correspondra à un onglet
avec comme intitulé le contenu de la description.

15/10/2006 T24 Page 38


JBASE & T24-2 Support de cours

La partie valeur par défaut permet d’initialiser directement des champs par une constante chaîne
encadrée par guillemet.

15/10/2006 T24 Page 39


JBASE & T24-2 Support de cours

Choisissez dans la barre d’outils Tools >Screen Designer, ceci à fin d’obtenir une grille de saisie.
La saisie du ‘Screen Designer’ se fait par l’intermédiaire de l’application VERSION,DESIGNER.

Avant de débuter la création d’une version, comprenez bien la signification des champs de
l’application.

5.2 – LES CHAMPS DANS UNE VERSION

Cette visualisation correspond à l’onglet FULL VIEW


1 PRINT.ONLY........
2 RECORDS.PER.PAGE..
3 FIELDS.PER.LINE...
4.1 LANGUAGE.CODE..
5.1 HDR.1.001..039.
6.1 HDR.1.040..078.
7.1 HDR.1.079..117.
8.1 HDR.1.118..132.
9.1 HDR.2.001..039.
10.1 HDR.2.040..078.
11.1 HDR.2.079..117.
12.1 HDR.2.118..132.
13.1 FIELD.NO.......
14.1 COLUMN.........
15.1 EXPANSION......
16.1 TEXT.CHAR.MAX..
17.1.1 TEXT........
18.1.1 TXT.040..078
19.1.1 TXT.079..117

15/10/2006 T24 Page 40


JBASE & T24-2 Support de cours

20.1.1 TXT.118..132
21.1 ENRICHM.CHAR...
22.1 TABLE.COLUMN...
23.1 TABLE.LINE.....
24.1 RIGHT.ADJ.FIELD
25 REF.NO.IN.1ST.LINE
26.1 ID.AUTOM.SEQU..
27 NO.OF.AUTH........
28.1 NOINPUT.FIELD..
29.1 NOCHANGE.FIELD.
30.1 REKEY.FIELD.NO.
31.1 AUTOM.FIELD.NO.
32.1 AUT.OLD.CONTENT
33.1 AUT.NEW.CONTENT
34.1 MANDATORY.FIELD
35 MULTI.POSSIBLE....
36.1.1 VAL.ASSOC...
36.1.2 VAL.ASSOC...
36.2.1 VAL.ASSOC...
36.2.2 VAL.ASSOC...
36.3.1 VAL.ASSOC...
36.3.2 VAL.ASSOC...
37.1.1 SUB.ASSOC...
38 LOCAL.REF.FIELD...
39.1 VALIDATION.FLD.
40.1 VALIDATION.RTN.
41.1 D.SLIP.FORMAT..
42.1 D.SLIP.FUNCTION
43 D.SLIP.TRIGGER....
44.1 INPUT.ROUTINE..
45.1 AUTH.ROUTINE ..
46 REPORT.LOCKS......
47 GTS.CONTROL.......
48.1 GB DESCRIPTION.
49.1 ASSOC.VERSION..
50 NEXT.VERSION......
51 RESERVED.1........
52 RECORD.STATUS.....
53 CURR.NO...........
54.1 INPUTTER.......
55 DATE.TIME.........
56 AUTHORISER........
57 CO.CODE...........
58 DEPT.CODE.........
59 AUDITOR.CODE......
60 AUDIT.DATE.TIME...

PRINT.ONLY Cet indicateur précise la possibilité d’édition sur écran ou sur imprimante.
Un écran permet un colonage de 80 positions, pour une imprimante, on peut
avoir en standard 132 positions caractères en largeur. La valeur à donner est
‘Y’ dans le cas le plus général.

RECORDS.PER.PAGE
On indique ici si on veut visualiser plusieurs enregistrements par page
sur le même écran, en standard, il n’y a qu’un seul enregistrement par page
écran. Un cas typique de multi enregistrements serait dans le cadre de la
création d’une version permettant la saisie d’un taux d’échange de différentes
devises sur un seul écran.

FIELDS.PER.LINE
Cet indicateur précise la structure de l’écran concernant les champs, on
précise ici si on désir un ou plusieurs champs par ligne.
1 Indique un champ unique par ligne
MULTI Indique plusieurs champs par ligne.

LANGUAGE.CODE
Défini la langue dans laquelle les textes de la version doivent apparaître

15/10/2006 T24 Page 41


JBASE & T24-2 Support de cours

(tel que l’en-tête, le nom des champs, les remarques, etc. ) Le code langage de
l’utilisateur est défini dans son profile figurant dans le fichier USER.

HDR.1.001..039
On implante ici les 40 premiers caractères du premier en-tête.
La première ligne d’en-tête correspond à la ligne 2, ici, les espaces
ne sont pas éliminés
FIELD.NO
Indique le nom du champ que l’utilisateur veut définir dans la version.
C’est le nom du champ pour l’application.
Quand FIELDS PER LINE (Chp 3) contient 1 et, s’il n’y a pas de nom
introduit, tous les champs sont visualises.
Autrement dit, le nom des champs peut être entré avec les formats
suivants :

a) Nom de Champ (ex. : MNEMONIC pour le champ 1 de CUSTOMER,


suivi de « , »

b) "-" Quand un utilisateur veut définir un champ multi-valué,suivi de « , ».

c) Numéro de valeur (ex. : RELATION-1 pour RELATION du


fichier CUSTOMER ) quand l’utilisateur veut définir des champs multi-
valués, suivi de « , ».

d) “.” Quand l’utilisateur veut définir un champ avec des sous-valeurs, suivi
par « , »

e) Numéro de sous valeur pour avoir un champ sous-valeur.

COLUMN

L’utilisateur indique le numéro de la colonne ou l’implantation du champ commence ( il faut tenir


compte du libellé et de la référence numérique du champ)
Quand le champ est laissé à blanc, le système calcul automatiquement la colonne en fonction de la
position précédente.

EXPANSION

Indique si le nombre de champs prévus peut être augmenté dans la version en ligne..

Ce champ ne doit être renseigné que si FIELDS PER LINE (chp 3) est égal à MULTI L’utilisateur ne
peut pas étendre les multi valeurs ou les sous-valeurs. Si ce champ est vide, alors multi valeur est sous-
valeurs peuvent être étendues à l’utilisation de la version.

TEXT.CHAR.MAX

Indique la longueur maximum de texte relatif au champ défini précédemment (chp 13, FIELD
NO)Cette longueur définie le nombre de caractères.

TEXT

Indique le texte que l’utilisateur veut définir dans le champ spécifié dans FIELD NO (Field 13) Ce
n’est rien qu’un intitulé visualisé dans la version. Ce champ est sous-valué ce qui permet une

15/10/2006 T24 Page 42


JBASE & T24-2 Support de cours

expansion vis à vis des textes dans des langues précises suivant le code langage. S’il n’y a pas de
saisie, aucun textes n’apparaîtront.

TXT.040..078

Indique le contenu du texte que l’utilisateur veut faire passer cette partie concerne les colonnes 40 à79.
Si on veut une ligne de séparation, il faut mettre « * » dans le champ FIELD.NO
Le champ n’est actif que s’ il y a « * » dans FIELD.NO.

ENRICHM.CHAR

Indique combien de caractères l’utilisateur désir pour visualiser le texte de la rubrique (Enrichment)

TABLE.LINE

Indique la ligne ou l’utilisateur veut visualiser la référence, la clé de l’enregistrement. Si on ne précise


rien, c’est la ligne 3 qui est prise en compte.

RIGHT.ADJ.FIELD

Cette zone peut contenir le nom des descripteurs dont le contenu doit impérativement être cadré à
droite.

NOINPUT.FIELD

On impose à la liste de champs d’apparaître en sous brillance. Il n’y a pas de saisie possible.

NOCHANGE.FIELD

L’utilisateur peut définir un champ qui peut être protégé après sa saisie initiale, après autorisation.
Aucune saisie n’est alors possible.

REKEY.FIELD.NO

L’utilisateur demande d’avoir recourt à une autre saisie au moment de l’autorisation, afin de pouvoir
valider la valeur.

AUTOM.FIELD.NO

L’utilisateur peut définir un champ ayant une valorisation par défaut. La valeur du champ est fonction
des arguments de AUT.OLD.CONTENT /AUT.NEW.CONTENT.

AUT.OLD.CONTENT

L’utilisateur peut définir une valeur initiale qui serra remplacer par la nouvelle valeur par défaut. On
exprime cette possibilité conjointement avec AUTOMATIC.NEW.CONTENT (Field 33) et
AUTOMATIC. FIELD.NUMBER (Field 31)
Ce champ peut être une constante, un code IN2, un lien FICHIER>DESCRIPTEUR ou une routine
@Nom_routine.

AUT.NEW.CONTENT

C’est la zone définissant la valeur par défaut

15/10/2006 T24 Page 43


JBASE & T24-2 Support de cours

MANDATORY.FIELD

On indique ici une saisie obligatoire VALIDATION.FLD


Cette définition permet d’indiquer le nom des champs qui auront une routine associée à la
validation. On utilise cette définition avec la zone ‘VALIDATION.RTN’

VALIDATION.RTN

On implante ici directement le nom de la routine à utiliser (cf:VALIDATION.FLD)

D.SLIP.FORMAT

L’utilisateur va définir ici la clé de l’enregistrement de DEAL.SLIP.FORMAT ou on trouve la


définition du ticket deal slip ou l’enquiry correspondante.

D.SLIP.FUNCTION

On spécifie les fonctions de déclenchement du deal slip.


Il y a une association entre le DEAL.SLIP.FORMAT et la fonction utilisée (ou le mot clé
FINISH); à la validation, à la copie, etc.
Si FINISH est spécifié, le processus est dépendant de l’application, et ne peut pas être fonctionnel pour
d’autres : L’application TELLER peut utiliser ce code.

D.SLIP.TRIGGER

On spécifie ici la source globale du déclenchement du deal slip..

(1) OL - On utilise comme déclencheur les fonctions définies dans


D.SLIP.FUNCTION

RQ - On utilise une HOT.KEY défini dans SYSTEM.

INPUT.ROUTINE

On donne ici, le nom d’une routine à exécutée au moment de valider la transaction après autorisation.

AUTH.ROUTINE

Nom de la routine qui s’exécute avant la mise à jour finale de la transaction.

REPORT.LOCKS

On définit ici, si les informations de verrous sont données à l’utilisateur durant son blocage. Si le
paramètre n’est pas à « NO », l’utilisateur recevra un message d’un fichier des verrous. Le nom du
user et son numéro seront visualisés, si la valeur est « NO », il n’y aura pas de message en cas de
verrou.

(1) YES or NO

GTS.CONTROL

On contrôle ici comment GTS prend en compte une erreur lorsqu’on manipule la version ; On
peut utiliser les code suivants :

15/10/2006 T24 Page 44


JBASE & T24-2 Support de cours

Null ==== L’enregistrement étant rejeté, l’enregistrement GTS dans le répertoire de sortie, sera
implanté avec le code (90) Les recouvrements (overrides) validés par défaut apparaîtront avec un code
(00)

1 = La validation met l’enregistrement en état « hold », GTS mettra un code (80) Le recouvrement
ajoutera un code (00)

2 = L’erreur à la validation génère dans le répertoire de sortie un code (90) et le recouvrement un code
(81 L’état de l’enregistrement est « holdé »

3 = Le code généré à la validation est (80) et au recouvrement (81), l’enregistrement est


déclaré « holdé »

GB DESCRIPTION

On donne un descriptif simple de la version.


(1) entrée optionnelle, pas plus de 35 caractères.
(1) Le langage est celui du champ LANGUAGE.

ASSOC.VERSION

C’est la liste des versions qui vont correspondre au différents onglets de la version principale.
Le premier caractère du descriptif peut être mis en majuscule souligné en utilisant la notation
« &lettre ».Cette zone est optionnelle.

La saisie de l’image de la saisie se fait par un outil simple qui permet de faire un drag-and-drop des
champs sur la surface écran.

Pour accéder à la construction de l’écran

15/10/2006 T24 Page 45


JBASE & T24-2 Support de cours

Numéro Intitulé ZONE DE SAISIE zone de message(Enrichment)

15/10/2006 T24 Page 46


JBASE & T24-2 Support de cours

5.3 - COMMENT CREER UNE VERSION

Au moment de créer la version, l’identifiant doit avoir la structure


Nom_application,Nom_version.

Exemple : Créer une application qui permette, à un utilisateur, de créer un CUSTOMER avec le
minimum de détails. Assurez-vous que la version n’ai pas besoin d’autorisation.

Note: L’utilisateur renseignera les champs obligatoires.

Globus Demo Account VERSION INPUT


PGM.NAME.VERSION.. CUSTOMER,INPUT
-----------------------------------------
---------------------------------
---------------------------------
1 PRINT.ONLY........
2 RECORDS.PER.PAGE.. 1
3 FIELDS.PER.LINE... 1
4.1 LANGUAGE.CODE.. 1 English
5.1 HDR.1.001..039.
6.1 HDR.1.040..078.
7.1 HDR.1.079..117.
8.1 HDR.1.118..132.
9.1 HDR.2.001..039.
10.1 HDR.2.040..078.
11.1 HDR.2.079..117.
12.1 HDR.2.118..132.
13.1 FIELD.NO....... MNEMONIC MNEMONIC
14.1 COLUMN.........
15.1 EXPANSION......
16.1 TEXT.CHAR.MAX..
17.1.1 TEXT........
18.1.1 TXT.040..078
19.1.1 TXT.079..117
20.1.1 TXT.118..132
21.1 ENRICHM.CHAR...
22.1 TABLE.COLUMN...
23.1 TABLE.LINE.....
13.2 FIELD.NO....... SHORT.NAME XX.LL.SHORT.NAME
14.2 COLUMN.........
15.2 EXPANSION......
EXPANSION......
16.2 TEXT.CHAR.MAX..
17.2.1 TEXT........
18.2.1 TXT.040..078
19.2.1 TXT.079..117
20.2.1 TXT.118..132
21.2 ENRICHM.CHAR...
22.2 TABLE.COLUMN...
23.2 TABLE.LINE.....
13.3 FIELD.NO....... NAME.1 XX.LL.NAME.1
XX.LL.NAME.1
14.3 COLUMN.........
15.3 EXPANSION......
16.3 TEXT.CHAR.MAX..
17.3.1 TEXT........
18.3.1 TXT.040..078
19.3.1 TXT.079..117
20.3.1 TXT.118..132
21.3 ENRICHM.CHAR...
22.3 TABLE.COLUMN...
23.3 TABLE.LINE.....
13.4
13.4 FIELD.NO....... STREET XX.LL.STREET
14.4 COLUMN.........
15.4 EXPANSION......
16.4 TEXT.CHAR.MAX..
17.4.1 TEXT........
18.4.1 TXT.040..078
19.4.1 TXT.079..117
20.4.1 TXT.118..132
21.4 ENRICHM.CHAR...
22.4 TABLE.COLUMN...
23.4 TABLE.LINE.....
13.5 FIELD.NO....... RESIDENCE RESIDENCE
14.5 COLUMN.........
15.5 EXPANSION......
16.5 TEXT.CHAR.MAX..
17.5.1 TEXT........
18.5.1 TXT.040..078
19.5.1 TXT.079..117
20.5.1 TXT.118..132
TXT.118..132
21.5 ENRICHM.CHAR...
22.5 TABLE.COLUMN...
23.5 TABLE.LINE.....

15/10/2006 T24 Page 47


JBASE & T24-2 Support de cours

13.6 FIELD.NO....... NATIONALITY NATIONALITY


14.6 COLUMN.........
15.6 EXPANSION......
16.6 TEXT.CHAR.MAX..
17.6.1 TEXT........
18.6.1 TXT.040..078
19.6.1 TXT.079..117
20.6.1 TXT.118..132
21.6 ENRICHM.CHAR...
22.6 TABLE.COLUMN...
23.6 TABLE.LINE.....
13.7 FIELD.NO....... SECTOR SECTOR
14.7 COLUMN.........
15.7 EXPANSION......
16.7 TEXT.CHAR.MAX..
TEXT.CHAR.MAX..
17.7.1 TEXT........
18.7.1 TXT.040..078
19.7.1 TXT.079..117
20.7.1 TXT.118..132
21.7 ENRICHM.CHAR...
22.7 TABLE.COLUMN...
23.7 TABLE.LINE.....
13.8 FIELD.NO....... LANGUAGE LANGUAGE
14.8 COLUMN.........
COLUMN.........
15.8 EXPANSION......
16.8 TEXT.CHAR.MAX..
17.8.1 TEXT........
18.8.1 TXT.040..078
19.8.1 TXT.079..117
20.8.1 TXT.118..132
21.8 ENRICHM.CHAR...
22.8 TABLE.COLUMN...
23.8 TABLE.LINE.....
24.1 RIGHT.ADJ.FIELD
25
25 REF.NO.IN.1ST.LINE
26.1 ID.AUTOM.SEQU..
27 NO.OF.AUTH........ 1
28.1 NOINPUT.FIELD..
29.1 NOCHANGE.FIELD.
30.1 REKEY.FIELD.NO.
31.1 AUTOM.FIELD.NO.
32.1 AUT.OLD.CONTENT
33.1 AUT.NEW.CONTENT
34.1 MANDATORY.FIELD
MANDATORY.FIELD
35 MULTI.POSSIBLE.... Y
36.1.1 VAL.ASSOC... RELATION.CODE
36.1.2 VAL.ASSOC... REVERS.REL.CODE
37.1.1 SUB.ASSOC...
38 LOCAL.REF.FIELD... LOCAL.REF
39.1 VALIDATION.FLD.
40.1 VALIDATION.RTN.
41.1 D.SLIP.FORMAT..
42.1
42.1 D.SLIP.FUNCTION
43 D.SLIP.TRIGGER....
44.1 INPUT.ROUTINE..
45.1 AUTH.ROUTINE ..
46 REPORT.LOCKS...... YES
47 GTS.CONTROL.......
48.1 GB DESCRIPTION.
49.1 ASSOC.VERSION..
50 NEXT.VERSION......
51 RESERVED.1........
52 RECORD.STATUS.....
53 CURR.NO........... 4
54.1 INPUTTER....... 1208_TRAINEE05
55.1 DATE.TIME...... 20 NOV 00 11:20
56 AUTHORISER........ 1208_TRAINEE05
57 CO.CODE........... GB-
GB-001-
001-0001
58 DEPT.CODE......... 1
59 AUDITOR.CODE......
60 AUDIT.DATE.TIME...

15/10/2006 T24 Page 48


JBASE & T24-2 Support de cours

5.4 NEXT VERSION


Habituellement, après avoir créer un CUSTOMER, il faut créer un ACCOUNT le concernant. Pour
faire cela, on peut créer un lien avec une autre version faisant la création du ACCOUNT. Cette version
correspond au champ ‘NEXT.VERSION’ dans la version du CUSTOMER. Utilisons un exemple.

Créer une version qui permette à un utilisateur de créer un CUSTOMER.Après validation(f5), on


demande de faire le lien avec une version de ACCOUNT pour créer un compte au client.

Etape 1 : Créer une version pour ACCOUNT(ACCOUNT,INPUT)

Etape 2 : Créer une version pour l’application(CUSTOMER,INPUT).


Assurez-vous que ACCOUNT,INPUT soit présent dans NEXT.VERSION (chp 50). Dés que
l’utilisateur validera CUSTOMER,INPUT on fera le lien avec ACCOUNT,INPUT.
(Nous utilisons ici l’image de la FULL VIEW)
Globus Demo Account VERSION INPUT
PGM.NAME.VERSION.. CUSTOMER,INPUT
------------------------------------------------------------------
-----------------------------------------------------------------------------
-----------------------------------------------------------------------------
1 PRINT.ONLY........
2 RECORDS.PER.PAGE.. 1
3 FIELDS.PER.LINE... 1
4.1 LANGUAGE.CODE.. 1 English
5.1 HDR.1.001..039.
6.1 HDR.1.040..078.
7.1 HDR.1.079..117.
8.1 HDR.1.118..132.
HDR.1.118..132.
9.1 HDR.2.001..039.
10.1 HDR.2.040..078.
11.1 HDR.2.079..117.
12.1 HDR.2.118..132.
13.1 FIELD.NO....... MNEMONIC MNEMONIC
14.1 COLUMN.........
15.1 EXPANSION......
16.1 TEXT.CHAR.MAX..
17.1.1
17.1.1 TEXT........
18.1.1 TXT.040..078
19.1.1 TXT.079..117
20.1.1 TXT.118..132
21.1 ENRICHM.CHAR...
22.1 TABLE.COLUMN...
23.1 TABLE.LINE.....
13.2 FIELD.NO....... SHORT.NAME XX.LL.SHORT.NAME
14.2 COLUMN.........
15.2
15.2 EXPANSION......
16.2 TEXT.CHAR.MAX..
17.2.1 TEXT........
18.2.1 TXT.040..078
19.2.1 TXT.079..117
20.2.1 TXT.118..132
21.2 ENRICHM.CHAR...
22.2 TABLE.COLUMN...
23.2 TABLE.LINE.....
13.3 FIELD.NO....... NAME.1 XX.LL.NAME.1
14.3 COLUMN.........
15.3 EXPANSION......
16.3 TEXT.CHAR.MAX..
17.3.1 TEXT........
18.3.1 TXT.040..078
19.3.1 TXT.079..117
20.3.1 TXT.118..132
21.3 ENRICHM.CHAR...
22.3 TABLE.COLUMN...
23.3 TABLE.LINE.....
13.4 FIELD.NO....... STREET XX.LL.STREET
14.4 COLUMN.........
15.4 EXPANSION......
16.4 TEXT.CHAR.MAX..
17.4.1 TEXT........
18.4.1 TXT.040..078
19.4.1 TXT.079..117
20.4.1 TXT.118..132
21.4 ENRICHM.CHAR...
ENRICHM.CHAR...
22.4 TABLE.COLUMN...
23.4 TABLE.LINE.....
13.5 FIELD.NO....... RESIDENCE RESIDENCE

15/10/2006 T24 Page 49


JBASE & T24-2 Support de cours

14.5 COLUMN.........
15.5 EXPANSION......
16.5 TEXT.CHAR.MAX..
17.5.1 TEXT........
18.5.1 TXT.040..078
19.5.1 TXT.079..117
TXT.079..117
20.5.1 TXT.118..132
21.5 ENRICHM.CHAR...
22.5 TABLE.COLUMN...
23.5 TABLE.LINE.....
13.6 FIELD.NO....... NATIONALITY NATIONALITY
14.6 COLUMN.........
15.6 EXPANSION......
16.6 TEXT.CHAR.MAX..
17.6.1 TEXT........
TEXT........
18.6.1 TXT.040..078
19.6.1 TXT.079..117
20.6.1 TXT.118..132
21.6 ENRICHM.CHAR...
22.6 TABLE.COLUMN...
23.6 TABLE.LINE.....
13.7 FIELD.NO....... SECTOR SECTOR
14.7 COLUMN.........
15.7 EXPANSION......
16.7 TEXT.CHAR.MAX..
17.7.1 TEXT........
18.7.1 TXT.040..078
19.7.1 TXT.079..117
20.7.1 TXT.118..132
21.7 ENRICHM.CHAR...
22.7 TABLE.COLUMN...
23.7 TABLE.LINE.....
13.8 FIELD.NO....... LANGUAGE LANGUAGE
14.8
14.8 COLUMN.........
15.8 EXPANSION......
16.8 TEXT.CHAR.MAX..
17.8.1 TEXT........
18.8.1 TXT.040..078
19.8.1 TXT.079..117
20.8.1 TXT.118..132
21.8 ENRICHM.CHAR...
22.8 TABLE.COLUMN...
23.8 TABLE.LINE.....
24.1 RIGHT.ADJ.FIELD
RIGHT.ADJ.FIELD
25 REF.NO.IN.1ST.LINE
26.1 ID.AUTOM.SEQU..
27 NO.OF.AUTH........ 1
28.1 NOINPUT.FIELD..
29.1 NOCHANGE.FIELD.
30.1 REKEY.FIELD.NO.
31.1 AUTOM.FIELD.NO.
32.1 AUT.OLD.CONTENT
33.1 AUT.NEW.CONTENT
34.1 MANDATORY.FIELD
35 MULTI.POSSIBLE.... Y
36.1.1 VAL.ASSOC... RELATION.CODE
36.1.2 VAL.ASSOC... REVERS.REL.CODE
37.1.1 SUB.ASSOC...
38 LOCAL.REF.FIELD... LOCAL.REF
39.1 VALIDATION.FLD.
40.1 VALIDATION.RTN.
41.1 D.SLIP.FORMAT..
D.SLIP.FORMAT..
42.1 D.SLIP.FUNCTION
43 D.SLIP.TRIGGER....
44.1 INPUT.ROUTINE..
45.1 AUTH.ROUTINE ..
46 REPORT.LOCKS...... YES
47 GTS.CONTROL.......
48.1 GB DESCRIPTION.
49.1 ASSOC.VERSION..
50 NEXT.VERSION......
NEXT.VERSION......
51 RESERVED.1........
52 RECORD.STATUS.....
53 CURR.NO........... 4
54.1 INPUTTER....... 1208_TRAINEE05
55.1 DATE.TIME...... 20 NOV 00 11:20
56 AUTHORISER........ 1208_TRAINEE05
57 CO.CODE........... GB-
GB-001-
001-0001
58 DEPT.CODE......... 1
59 AUDITOR.CODE......
60 AUDIT.DATE.TIME...

Globus Demo Account VERSION INPUT


PGM.NAME.VERSION.. ACCOUNT,INPUT
---------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------
1 PRINT.ONLY........

15/10/2006 T24 Page 50


JBASE & T24-2 Support de cours

2 RECORDS.PER.PAGE.. 1
3 FIELDS.PER.LINE... 1
4.1 LANGUAGE.CODE.. 1 English
5.1 HDR.1.001..039.
6.1 HDR.1.040..078.
7.1 HDR.1.079..117.
8.1 HDR.1.118..132.
HDR.1.118..132.
9.1 HDR.2.001..039.
10.1 HDR.2.040..078.
11.1 HDR.2.079..117.
12.1 HDR.2.118..132.
13.1 FIELD.NO....... CUSTOMER CUSTOMER
14.1 COLUMN.........
15.1 EXPANSION......
16.1 TEXT.CHAR.MAX..
17.1.1
17.1.1 TEXT........
18.1.1 TXT.040..078
19.1.1 TXT.079..117
20.1.1 TXT.118..132
21.1 ENRICHM.CHAR...
22.1 TABLE.COLUMN...
23.1 TABLE.LINE.....
13.2 FIELD.NO....... CATEGORY CATEGORY
14.2 COLUMN.........
15.2 EXPANSION......
16.2 TEXT.CHAR.MAX..
17.2.1 TEXT........
18.2.1 TXT.040..078
19.2.1 TXT.079..117
20.2.1 TXT.118..132
21.2 ENRICHM.CHAR...
22.2 TABLE.COLUMN...
23.2 TABLE.LINE.....
13.3 FIELD.NO....... CURRENCY CURRENCY
14.3 COLUMN.........
15.3 EXPANSION......
16.3 TEXT.CHAR.MAX..
17.3.1 TEXT........
18.3.1 TXT.040..078
19.3.1 TXT.079..117
20.3.1 TXT.118..132
21.3 ENRICHM.CHAR...
22.3 TABLE.COLUMN...
23.3 TABLE.LINE.....
24.1 RIGHT.ADJ.FIELD
25 REF.NO.IN.1ST.LINE
26.1 ID.AUTOM.SEQU..
27 NO.OF.AUTH........ 1
28.1 NOINPUT.FIELD..
29.1 NOCHANGE.FIELD.
30.1 REKEY.FIELD.NO.
31.1 AUTOM.FIELD.NO.
32.1 AUT.OLD.CONTENT
33.1 AUT.NEW.CONTENT
34.1 MANDATORY.FIELD
35 MULTI.POSSIBLE....
36.1.1 VAL.ASSOC... ACCR.CHG.CATEG
36.1.2 VAL.ASSOC... ACCR.CHG.SUSP
36.2.1 VAL.ASSOC... ACCR.CR.CATEG
36.2.2 VAL.ASSOC... ACCR.CR.SUSP
ACCR.CR.SUSP
36.3.1 VAL.ASSOC... ACCR.CR2.CATEG
36.3.2 VAL.ASSOC... ACCR.CR2.SUSP
36.4.1 VAL.ASSOC... ACCR.DR.CATEG
36.4.2 VAL.ASSOC... ACCR.DR.SUSP
36.5.1 VAL.ASSOC... ACCR.DR2.CATEG
36.5.2 VAL.ASSOC... ACCR.DR2.SUSP
36.6.1 VAL.ASSOC... BALANCE.CCY.MKT
36.6.2 VAL.ASSOC... MKT.CLEAR.BAL
36.7.1 VAL.ASSOC... VALUE.DATE
36.7.2 VAL.ASSOC... VALUE.DATED.BAL
36.8.1 VAL.ASSOC... ALT.ACCT.TYPE
36.8.2 VAL.ASSOC... ALT.ACCT.ID
36.9.1 VAL.ASSOC... PREMIUM.TYPE
PREMIUM.TYPE
36.9.2 VAL.ASSOC... PREMIUM.FREQ
36.10.1 VAL.ASSOC... JOINT.HOLDER
36.10.2 VAL.ASSOC... JOINT.NOTES
36.11.1 VAL.ASSOC... PENDING.ID
36.11.2 VAL.ASSOC... TOTAL.PENDING
36.12.1 VAL.ASSOC... FROM.DATE
36.12.2 VAL.ASSOC... LOCKED.AMOUNT
LOCKED.AMOUNT
36.13.1 VAL.ASSOC... DISPO.RESTRICT
36.13.2 VAL.ASSOC... RESTRICT.OFF
37.1.1 SUB.ASSOC...
38 LOCAL.REF.FIELD... LOCAL.REF
39.1 VALIDATION.FLD.
40.1 VALIDATION.RTN.
41.1 D.SLIP.FORMAT..

15/10/2006 T24 Page 51


JBASE & T24-2 Support de cours

42.1 D.SLIP.FUNCTION
D.SLIP.FUNCTION
43 D.SLIP.TRIGGER....
44.1 INPUT.ROUTINE..
45.1 AUTH.ROUTINE ..
46 REPORT.LOCKS...... YES
47 GTS.CONTROL.......
48.1 GB DESCRIPTION.
49.1 ASSOC.VERSION..
50 NEXT.VERSION......

5.5 VERSIONS ASSOCIEES

Considérer la situation ou un utilisateur saisi un enregistrement de CUSTOMER, il n’a pas besoin des
champs d’audit durant la saisie mais il doit les consulter pour avoir le nom de l’autoriser. On ne peut
pas saisir ces arguments s’ils ne sont pas intégrer dans la version initiale. Il faut simplement faire une
association de deux version sur la même application et chaque descriptif de la version apparaîtra sous
forme d’onglet.
Le champ utiliser, en multi-valeur est le champ ‘ASSOC.VERSION’ dans la version initiale.

Prenons un exemple pour illustrer notre propos.


Créer ‘CUSTOMER,INPUT’ qui contient les champs obligatoires. L’utilisateur
doit être capable de visualiser les champs d’audit.
Etape 1:
Création de la version CUSTOMER,AUDIT avec les champs d’audit uniquement
Etape 2
Création de CUSTOMER,INPUT avec les champs obligatoires pour le CUSTOMER.

15/10/2006 T24 Page 52


JBASE & T24-2 Support de cours

6 - LA PROGRAMMATION T24
Les routines permettent à l’utilisateur de lire sur un ou plusieurs fichiers, de réaliser des extractions
complexes.

6.1 – PRINCIPES T24

Le fichier GLOBUS.BP contient un ensemble d’inclusions standards nécessaires pour la


programmation en BASIC.
Pour toutes les routines, il faut avoir les deux lignes suivantes :
$INSERT I_COMMON
$INSERT I_EQUATE
Si votre routine est destinée à une utilisation sous enquiry, il faut en plus utiliser
$INSERT I_ENQUIRY.COMMON
Si dans la routine, vous avez besoin d’accéder aux champs d’un fichier, il faut utiliser:
$INSERT I_F.nom_de_fichier
quelque soit le nom du fichier sous T24. Par exemple pour le fichier FBNK.CUSTOMER, on
écrira $INSERT I_F.CUSTOMER
D’une façon la plus générale, on peut utiliser

$INSERT ou INCLUDE nom_fichier nom_include

La structure de l’include représente des équivalences mettant en relation le nom de la zone


préfixée et le numéro de colonne dans l’enregistrement.

Ici EB.CUS est le préfixe, il n’y a pas de suffixe. Nous vous conseillons de constituer un
dossier de programmation avec l’impression des includes dont vous avez besoin pour
programmer. Dans votre routine, la première ligne exécutable est celle contenant
SUBROUTINE.

15/10/2006 T24 Page 53


JBASE & T24-2 Support de cours

Le nom que vous donnez à la routine doit être le même que dans la déclaration
SUBROUTINE.
SUBROUTINE Nom_routine{(arg1, arg2, arg3,…,argn)
L’argument peut être :
- une constante
- un vecteur ou un tableau, il faut pour cela écrire MAT nom
- une variable simple
- une variable fichier ou liste
La logique Temenos veut que l’on fasse appel a des routines internes comme :

SUBROUTINE nom_routine
$INSERT I_COMMON
$INSERT I_EQUATE
$INSERT I_F.nom_fichier1
……….
$INSERT I_F.nom_fichiern
*------------------------------------------------
MAIN : *
GOSUB INITIALIZE ; * initialisation des varibales
GOSUB OPEN.FILES ; * vers les ouvertures de fichier
GOSUB PROCESS ; * vers le traitement proprement dit
GOSUB CLOSING ; * vers la fermeture des fichiers (non prévu mais ….)
*-------------------------------------------------
INITIALIZE : *
FN.nom= ‘F.nom_fichier’ ;* pour définir le nom du fichier
FV.nom=’’ ;* pour définir la variable fichier
Nom.ERRn=0 ;* pour définir les code erreur
R.mnemo.REC=’’ ;* pour définir les tableaux dynamiques
R.NEW ;* pour un nouvel enregistrement, c’est une variable
structurée
RETURN

La programmation de l’ouverture de la lecture des fichiers se fait en utilisant des routines déjà
existantes et fournies (une documentation pdf est fournie)
Nous prenons ici les cas les plus utilisés.

OUVERTURE DE FICHIER
CALL OPF(Variable_nom_fichier , Variable_fichier)

Exemple : FN.CUSTOMER = ’F.CUSTOMER’


FV.CUSTOMER = ‘’
CALL OPF(FN.CUSTOMER, FV.CUSTOMER)

LECTURE DE FICHIER

CALL F.READ(FN.nom, nom.ID,R.nom.REC,FV.nom, nom.ERR0)


FN.nom est la variable contenant le nom du fichier
Nom.ID est la clé de l’enregistrement
R.nom.REC est le tableau dynamique récepteur
FV.nom est la variable fichier

15/10/2006 T24 Page 54


JBASE & T24-2 Support de cours

Nom.ERR0 est le diagnostique d’erreur

CALL F.MATREAD(FN.nom, nom.ID, MAT nom_vect, nom.SZ, FV.nom, nom.ERR0)


nom.SZ est le nombre de postes du vecteur lu
nom_vect est le nom du vecteur

CALL F.READV (FN.nom, nom.ID,R.nom.REC,nom_champ, FV.nom, nom.ERR0)


Nom_champ est le numéro du champ, cf I_F.nom

SELECTION DE FICHIER

Ici , il y a plusieurs opérations:


Selection en fonction de la commande ou reprise d’une liste existante.
Enregistrement de la liste obtenue et calcul du nombre d’éléments.
Ecriture d’un code retour, pour parfaire la cohérence.

CALL F.EB.READLIST(CMD, FN.nom, nom.LIST,NM.nom, nbSelected, Ret.code)

CMD correspond à la commande, ou vide


Nom.LIST variable liste résultante
NM.nom nom d’une liste existante dans &SAVEDLISTS&
ou vide.
NbSelected Nombre d’éléments détecté
Ret.code Code retour.
Après cette opération l’exploitation de la liste se fait souvent par l’instruction REMOVE :
Mais les commandes standards peuvent être utilisées (READLIST, READNEXT)

REMOVE CLE FROM TD SETTING POS


CLE est la variable clé obtenue pour chaque passage
TD est ici le tableau dynamique correspondant à la liste.
Une liste est un tableau dynamique.
POS correspond à un diagnostique
=0 pour fin de liste
=1 pour un code FF
=2 pour un code FM
=3 pour un code VM
=4 pour un code SVM

15/10/2006 T24 Page 55


JBASE & T24-2 Support de cours

6.2 - LE TEMPLATE

Si vous voulez créer une application GLOBUS, vous devez créer un fichier et un programme
pour gérer cette application. TEMENOS donne un programme squelette TEMPLATE dans le
fichier GLOBUS.BP. Vous devez faire une copie dans votre programme et changer le nom de
la routine.
1 – Créer une définition de fichier dans F.FILE.CONTROL avec comme type 3 et un
modulo. Si votre fichier est partagés en général le nom doit être du type F.nom c’est à dire
que la classification est INT sinon pour les autres on a un nom avec FXXX.nom
XXX correspond a l’abréviation de la compagnie, pour une seule compagnie, XXX vaut BNK
Exemple: F.TFR.OBJECTS et FBNK.CUSTOMER
2 – En mode GLOBUS classique lancer sous Action CREATE.FILES pour créer un fichier
dans les répertoire xxx.data/lettre/ et xxx.dict
et dans le VOC.
3 – Copier TEMPLATE depuis GLOBUS.BP vers votre fichier des sources.
COPY GLOBUS.BP TEMPLATE
TO:(SOURCE.BP APPLICATION
4 – Modifier votre TEMPLATE à la ligne SUBROUTINE et au niveau de l’appel à d’autres
routines si nécessaire.
5 – Compiler et cataloger la routine ainsi adaptée
6 – Mettre à jour F.PGM.FILE en utilisant GLOBUS avec un enregistrement ou la clé
correspond au nom de votre routine. Valider et autoriser.
Note : Voici les types de codes:

H maintenance du Live, $NAU et $HIS. Exemple: MM.MONEY.MARKET.


U comme H, mais sans $HIS. Example: ABBREVIATION
L en lecture seule (cf READL). Le contrôle est fait par SMS comme
STMT.ENTRY
T cas des fichier concate comme LMM.CUSTOMER
W pour queleques fichier en verification comme REPGEN.OUTPUT
B cas de fichier de BATCH.
M Validation d’un programme sous le mode classique.
S Pour une routine. Un routine utilisée par GLOBUS dans une application .
R routine de génération de rapport.

7 – Copier à partir de XX.FIELD.DEFINITIONS votre fichier source modèle de définition de


champs. Dans ce programme vous devez définir les attributs de votre fichier applicatif :

ID.F="OBJECT KEY" ; ID.N ="40" ; ID.T = "A"


Z=0
Z+=1 ; F(Z)="TYPE" ; N(Z) = "4" ; T(Z)="A" ;T(Z)<5>="R"
Z+=1 ; F(Z)="EXPRESSION" ; N(Z) = "60" ; T(Z)="A" ;T(Z)<5>="L"
F(Z) est un vercteur qui contient les intitulés des attributs.On indique la notion de multi valeur
par XX.Label et la notion de sous valeur par XX.XX.Label
Pour les multivaleurs associées on fait une description par :
XX<label au début des attributs.
XX.Label pour un composants
XX>label à la fin des attributs multivalués.
N(Z) est un vecteur donnant la largeur de l’attribut : maximun.minimun{.C}

15/10/2006 T24 Page 56


JBASE & T24-2 Support de cours

C pour un contrôle type ‘vetting table’ utilisant un fichier de contrôle comme


CHECKFILE(Z)
CHECKFILE(Z)<1> est le nom du fichier a atteindre.
CHECKFILE(Z)<2> est la zone à visualiser.
CHECKFILE(Z)<3> donne le code langage et la date.
D’autre fichier sont accessible par CHECKFILE(Z)<4> à <6> etc …..
T(Z) Est un vecteur utilisé pour décrire un contrôle
T(Z)<1> Pour les routines IN2 sans le préfixe IN2, exemple “IN2A” donne “A”
T(Z)<2> Cas d’options comme “choix1_choix2_..._choix n” pour un choix limité
Cas des domaines en définissant “value1…value2”
T(Z)<3> Pour des restrictions comme “NOINPUT”,”NOCHANGE”,””
T(Z)<4> Pour définir un masque (instruction FMT {R|L}{#|%|*}n)
T(Z)<5> Pour définir la justification L pour gauche ou R pour droit

sur GLOBUS, on lance l’exécution de l’application STANDARD.SELECTION, en SS, puis


en fin d’enregistrement, on entre ‘Y’ en champ 28 nommé ‘Sys.Rebuild’, et on valide
l’enregistrement.
Normalement le dictionnaire doit être généré. Un problème? Contrôler votre definition de
fichier votre TEMPLATE et PGM.FILE.

Attention à l’état de l’enregistrement car il doit être en AUTHORISED.

Le programe FILE.LAYOUT est utilise pour faire la creation des includes comme
I_F.name. On génère ici des lignes avec des EQU donnant pour chaque champ le numéro
correspondant. Ce programme demande le nom du fichier et du prefixe comme par exemple
pour CUSTOMER on a CUST.

. PROBLEME : Création d’un fichier devant travailler sur T24.


(Nous appellerons BMCE.EX cette application)

1 – Il faut faire la création de la définition de votre fichier dans le fichier F.FILE.CONTROL


Vous avez 2 solutions :
a)Vous avez accès à l’application FILE.CONTROL et vous renseigner les
champs et vous faites un commit de la transaction.
b)Vous travailler directement avec JED sous la forme
BNM> JED F.FILE.CONTROL BMCE.EX <rc>
0001 Commentaire non obligatoire et peut être en multivaleur
0002 Nom du produit GLOBUS( ST, AC, RE, etc.) ici ST
0003 $HIS ou $HIS]$NAU ou rien,
le ‘]’ est le code @VM ici $HIS]$NAU
0004 3 correspond au type de fichier
0005 1 correspond au Modulo, c’est a dire le nombre d’Extend
0006 CUS vous donner la classification CUS ou FIN ou INT…

On peut à présent faire Escape+FI<rc> pour faire l’enregistrement dans le fichier


F.FILE.CONTROL

2 – Il faut créer le (ou les) fichier(s) par la commande CREATE.FILES qui ne peut se faire
que sous le mode classique. En voici les grandes lignes :

15/10/2006 T24 Page 57


JBASE & T24-2 Support de cours

Pour arriver au mode classique depuis jBASE lancer : EBS.LOGIN<rc>


Une liste d’émulation de terminaux apparaît et vous choisissez EBS-JBASE soit le choix 4
Puis une mappemonde s’affiche et un message vous demande de saisir votre
SIGN.ON.NAME puis votre mot de passe, au niveau de la sollicitation ACTION. Attention, il
n’y a pas d’écho pendant cette phase, votre clavier doit bien être configuré !
(Le développeur possède toujours son paragraphe de connexion)
BMCE>JED VOC LOGINVL
001 PA
002 EBS.TERMINAL.SELECT EBS-JBASE
003 EX
004 DATA votre Sign On Name
005 DATA Votre mot de passe

Au niveau ACTION, vous introduisez CREATE.FILES<rc>


Puis le message ‘compagny name’ apparaît. Introduisez le code sur 3 lettres comme BNK<rc>
Le message LIST.NAME vous demande une autre compagnie. En général, on répond <rc>
Enfin T24 nous demande le nom du fichier, ici BMCE.EX<rc>
Puis encore le même message, pour un autre fichier, on fait <rc> pour finir.
La dernière question arrive ; CONTINUE(Y/N) répondre Y<rc> et enfin les messages de
création apparaissent.

Revenu au niveau ACTION introduisez BK pour revenir au niveau TCL de jBASE.


Pour faire un vérification lancer BMCE>CT VOC FBNK.BMCE.EX , puis la même chose
pour les fichiers en $NAU et en $HIS

3 – On va travailler avec le fichier TEMPLATE et XX.FIELD.DEFINITIONS qui se trouvent


normalement dans GLOBUS.BP ici, j’ai implanté ces fichiers dans BMCE.BP
a) Il faut copier le TEMPLATE et lui changer de nom en prenant comme nom celui de
votre application, comme ceci
COPY FROM BNMCE.BP TEMPLATE,BMCE.EX<rc>
Puis mettez-vous sous JED par :

BMCE>JED BCEM.BP BMCE.EX

(<commande> <nom_fichier> <nom_prog>)


Changez le nom de la ligne SUBROUTINE TEMPLATE par SUBROUTINE BNM.EX
(ou le nom de votre application).
Faite Escape+ 370 pour être sur la ligne contenant le CALL XX.FIELD.DEFINITIONS
A la place de XX.FIELD.DEFINITIONS, mettez BMCE.EX.FIELD.DEFINITIONS
Enfin lancer Escape+FIBC<rc>

4 – Il faut réaliser la partie définissant la structure du fichier en travaillant sur le modèle de


programme XX.FIELD.DEFINITION. De la même manière que l’on a utilisé TEMPLATE,
on va ici faire la copie de XX.FIELD.DEFINITIONS sur BMCE.EX.FIELD.DEFINITION
On lance sous jBASE la commande :

BMCE>COPY FROM BMCE.BP XX.FIELD.DEFINITIONS,


BNMCE.EX.FIELD.DEFINITION <rc>
Et on lance BMCE>JED BMCE.BP BMCE.EX.FIELD.DEFINITIONS

15/10/2006 T24 Page 58


JBASE & T24-2 Support de cours

On fait comme le TEMPLATE, on corrige la ligne avec SUBROUTINE et on met a la place


BNM.EX.FIELD.DEFINITIONS

0001 * Version 4 22/05/01 GLOBUS Release No. G12.0.00 29/06/01


0002 SUBROUTINE BMCE.EX.FIELD.DEFINITIONS
0003 *---------------------------------------------------------------------
----
0004 *
0005 *---------------------------------------------------------------------
----
0006 * Modification History :
0007 *---------------------------------------------------------------------
----
0008 INCLUDE GLOBUS.BP I_COMMON
0009 INCLUDE GLOBUS.BP I_EQUATE
0010 INCLUDE GLOBUS.BP I_F.CATEGORY
0011 *-------------------------------------------------------------------------

Puis on se met au niveau de FIELD.DEFINITIONS, et on trouve les définitions de la clé et des


champs comme :

0023 ID.F = 'ORDER.NO' ; ID.N = '15' ; ID.T = 'A'


0024
0025 *
0026 Z=0
0027 *
0028 Z += 1 ; F(Z)="CUSTOMER.NO" ; N(Z)="10.1.C" ; T(Z)="CUS"
0029 CHECKFILE(Z)="CUSTOMER":FM:"@ID"
0030 Z += 1 ; F(Z)="ORDER.DATE" ; N(Z)="11.1" ; T(Z)="D"
0031 Z += 1 ; F(Z)="XX<ITEM" ; N(Z)="35.1" ; T(Z)="A"
0032 Z += 1 ; F(Z)="XX-QTC" ; N(Z)="4.1" ; T(Z)="AMT"
0033 Z += 1 ; F(Z)="XX>CONFIRME" ; N(Z)="3" ; T(Z)<2>="YES_NO"
0034 Z += 1 ; F(Z)="LOCAL" ; N(Z)="10" ; T(Z)<3>="NOINPUT"
0035 *
0036 REM > CHECKFILE(Z) = CHK.ACCOUNT
0037 *
0038 V = Z + 9
0039 RETURN

Finalement, on met en fichier et on compile par FIBC, mais on n’exécute pas car c’est une
subroutine qui doit être appelée par un programme ici BMCE.EX.

5 – Il faut maintenant mémoriser le fait que les programmes soient exécutables sous T24, pour
cela, on se met sous Desktop et après connexion, on lance au niveau commande
PGM.FILE, (la virgule indique que l’on fait une saisie, cas ici de BNM.STAGE)

15/10/2006 T24 Page 59


JBASE & T24-2 Support de cours

On met ‘H’ pour l’enregistrement de l’application, car il indique que le fichier est fait pour
générer du $NAU et $HIS.
On renseigne la saisie du nom du produit, ici ST, puis on valide.

6 - Cette phase va déclenché la création du dictionnaire et la mise a jour de


F.STANDARD.SELECTION.
Pour réaliser cette opération, vous reprenez le Desktop et après la connexion, vous introduisez
Au niveau commande SS, puis à la sollicitation de la clé, introduisez le nom de votre
application.
Normalement l’enregistrement doit être vide. Dans le cas contraire, deconnctez vous puis sous
JED faites :
BMCE>JED F.STANDARD.SELECTION BMCE.EX (c’est le nom de l’application)
Et la commande est Escape+FD<rc> puis Y<rc>

Donc si l’enregistrement est vide avec l’ascenseur atteindre le champ 28 Rebuild.Sys et


mettez ‘Y’, puis validez par F5 ou commit.
Si tout se passe bien les descripteurs se retrouvent dans le SS.
En sortant de T24, faites une vérification en faisant :
BMCE>LDICT BMCE.EX
Vous devez avoir l4edition de votre dictionnaire qui vous permettra de travailler sous jBASE.

7 – Si votre fichier doit être utilié par d’autres, il faut pouvoir utiliser des équivalences comme
dans I_F.ACCOUNT.

Ici, on va utiliser sous TCL la commande :

15/10/2006 T24 Page 60


JBASE & T24-2 Support de cours

BMCE>FILE.LAYOUT

Use Select List or Input Individually either :

List of FILE names from which to build insert modules via


their dictionarys

List of PROGRAM names from which to build insert modules


through calling.

Enter Program/File(s) :BMCE.EX


BMCE.EX
Enter Program/File(s) : ---------------- repondre <rc>

Build Insert from File (D)ictionarys or (P)rograms or (Q)uit


<CR = (P)rograms> :-------------------- repondre <rc>
Building Insert From Program(s)
___________________________________________________________________
Program is BNM.EX

Enter output Name - <CR> = I_F.Entryname :----- repondre <rc>

Enter PREFIX or <CR> = NONE :BMCE ---------------- indiquer un sigle


Enter SUFFIX or <CR> = NONE :-------------------- repondre <rc>

Processed 15 matrix entries for BMCE.EX program

Le fichier résultant est dans BP et non dans GLOBUS.BP, il faut donc le copier dedans par :

BMCE>COPY FROM BP TO GLOBUS.BP I_F.BMCE.EX

Command-
Command->
0001 * File Layout for BNM.STAGE Created 26 JUL 06 at 09:01PM by retail
0002 * PREFIX[BNM.] SUFFIX[]
0003 EQU BNM.CUSTOMER.NO TO 1, BNM.ORDER.DATE TO 2,
0004 BNM.ITEM
BNM.ITEM TO 3, BNM.QTC TO 4,
0005 BNM.CONFIRME TO 5, BNM.LOCAL TO 6,
0006 BNM.RECORD.STATUS TO 7, BNM.CURR.NO TO 8,
0007 BNM.INPUTTER TO 9, BNM.DATE.TIME TO 10,
0008 BNM.AUTHORISER TO 11, BNM.CO.CODE
BNM.CO.CODE TO 12,
0009 BNM.DEPT.CODE TO 13, BNM.AUDITOR.CODE TO 14,
0010 BNM.AUDIT.DATE.TIME TO 15

6.3 - PROGRAMMATION DES ROUTINES

Dans la programmation des routines associées aux Enquiries, il faut savoir que le
développeur n’a pas besoin de faire la lecture du fichier. Il doit savoir que la lecture se fait
dans R.RECORD qui est ici un tableau dynamique et la valeur en cours de traitement se situe
dans la variable commune O.DATA. Les vriables communes sont :

ID clé courante
R.RECORD enregistrement courant, c’est un tableau dynamique

15/10/2006 T24 Page 61


JBASE & T24-2 Support de cours

O.DATA variable correpondante à la valeur de la colonne en entrée-sortie


V$DISPLAY Valeur de O.DATA avec masque (CALL MSK)
VC numéro de la valeur courante
S numéro de la sous valeur courante
VM.COUNT compteur de valeurs
SM.COUNT compteur de sous valeurs

Une routine peut être capable de définir les critères de selection dynamique. Pour cela on
va utiliser un argument qui donne le nom d’un tableau dynamique ici Y.ENQ :
Y.ENQ est défini avec les champs suivants :
Y.ENQ<1> Nom de l’Enquiry
Y.ENQ<2,x> Champ sélection, x est le n° de la sélection, il indique une valeur.
Y.ENQ<3,x> Champ opérateurs (EQ,LT,GT,LE,GE,NE,LK,UK,RG,NR)
Y.ENQ<4,x,y> Donnée

Après une manipulation par un algorithme, il faut mettre le résultat dans O.DATA
Le nom de la routine à l’intérieure de la zone CONVERSION doit être @ nom (l’espace entre
@ et le nom est obligatoire) Ces routines sont attachées aux enquiries. Il y a deux endroits
dans la structure d’une enquiry ou l’on peut inclure l’appel a des types de routines :

♦ Build routine
♦ Conversion routine

Avec les routines utilisées dans les Enquiries, il faut tenir compte du fichier d’insertion
I_ENQUIRY.COMMON. C’est un fichier comme I_COMMON et I_EQUATE, mais il est
spécifiques aux enquiries et contient des variables communes comme O.DATA qui représente la
donnée en cours de traitement.

Par exemple, on veut avoir un cryptage du nom du client afin de faire une présentation client.

SUBROUTINE ENQ.CRYPT1.MT
$INSERT I_COMMON
$INSERT I_EQUATE
$INSERT I_ENQUIRY.COMMON
$INSERT I_F.CUSTOMER
O.DATA=ENCRYPT(O.DATA,"",1)
RETURN

6..4 - BUILD ROUTINES

Ces routines sont appelées après la spécification dynamique du user. Le nom de la routine doit
figurer dans le champ ‘BUILD ROUTINE’. Ces routines doivent passer un tableau
dynamique en argument. Ce tableau peut être vide ou avoir la structure suivante :

ENQ<1> = NOM DE L’ENQUIRY


ENQ<2,1> = CHAMP SELECTIONNE PAR LE USER.
ENQ<3,1> = OPERATEUR ASSOCIE (EQ, LK etc.)
ENQ<4,1> = LISTE DE DONNEES

Ce passage d’arguments permet la modification des critères de sélection. Un exemple


éclairera ce concept :

15/10/2006 T24 Page 62


JBASE & T24-2 Support de cours

Créer une enquiry qui acceptera la catégorie d’un utilisateur et visualisera la liste des ACCOUNT qui
ont une balance supérieure a une valeur spécifique comme par exemple,
Pour la catégorie 6000 – la Balance doit être comprise entre 60000 et 70000
Pour la catégorie 7000 - la Balance sera comprise entre 20000 et 30000
Pour une catégorie > 7000 – la Balance devra se situer au-dessus de 50000

Etape 1 Créer une routine (AC.BUILD.BAL)

*------------------------------------------------------------
* reconstitution des critères dynamiques
*-------------------------------------------------------------------
SUBROUTINE AC.BUILD.BAL(ENQ.DATA)
$INSERT I_COMMON
$INSERT I_EQUATE
$INSERT I_ENQUIRY.COMMON
*--------------------------------------------------------------------
GOSUB EXTRATCATEGORY
GOSUB CHECKCATEGORY
RETURN
*--------------------------
EXTRACTCATEGORY:
CATEGORY = ENQ.DATA<4,1>
BEGIN CASE
CASE CATEGORY = 6000
ENQ.DATA<2,2> = 'WORKING.BALANCE'
ENQ.DATA<3,2> = 'RG'
ENQ.DATA<4,2> = '60000 70000'
CASE CATEGORY = 7000
ENQ.DATA<2,2> = 'WORKING.BALANCE'
ENQ.DATA<3,2> = 'RG'
ENQ.DATA<4,2> = '20000 30000'
CASE CATEGORY > 7000
ENQ.DATA<2,2> = 'WORKING.BALANCE'
ENQ.DATA<3,2> = 'GT'
ENQ.DATA<4,2> = '50000'
END CASE
RETURN

Etape 2 : Créer l’enquiry et renseigner le champ 8.1 BUILD.ROUTINE avec le nom de votre
subroutine.
Nom de l’enquiry : AC.BUILD.CAT.BAL
Champ à utiliser : 8.1 BUILD.ROUTINE
Valeur du champ 8.1 : AC.BUILD.BAL

6. 5 - ROUTINES DE CONVERSION
Les routines de conversion sont les plus utilisées car elles permettent une transformation simple des
données. Ces routines sont associées au champ CONVERSION. Prenons un exemple :

Exemple Créer une enquiry qui donne le numéro de contrat LD et les montants de consignation
correspondants. Dans le cas ou le montant est exprimé dans une devise étrangère, il faut faire la
conversion dans la devise locale. (Nota: Multiplier le montant par ‘BUY.RATE’ du fichier
CURRENCY)
Le format de sortie peut être :

LD Contract Number Amount In Local Currency

15/10/2006 T24 Page 63


JBASE & T24-2 Support de cours

Etape 1:

*----------------------------------------------------------------------------
* Cette routine fait l’extraction depuis un LD pour chaque enregistrement du montant et de la devise.
* si la devise n’est pas locale on utilise la routine standard EXCH.RATE
* ---------------------------------------------------------------------------------------
SUBROUTINE E.CONV.LD.AMOUNT
$INSERT I_COMMON
$INSERT I_EQUATE
$INSERT I_ENQUIRY.COMMON
$INSERT I_F.LD.LOANS.AND.DEPOSITS
$INSERT I_F.CURRENCY
*-----------------------------------
GOSUB INITIALIZE
GOSUB OPENFILES
GOSUB CHECK.CONVERT.CURRENCY
RETURN
*-----------------------------------
INITIALIZE:
LD.ID = ''
R.LD.RECORD = ''
LD.EXTRACTED.AMOUNT = 0
LD.EXTRACTED.CURRENCY = ''
FN.LD = 'F.LD.LOANS.AND.DEPOSITS'
FV.LD = ''
LD.ERROR1 = 0; NEW.LCY.AMOUNT = 0
RETURN
*-----------------------------------
OPENFILES:
CALL OPF(FN.LD,FV.LD)
RETURN
*------------------------------------
CHECK.CONVERT.CURRENCY:
LD.ID = O.DATA
CALL F.READ(FN.LD,LD.ID,R.LD.RECORD,FV.LD,LD.ERROR1)
LD.EXTRACTED.CURRENCY = R.LD.RECORD<LD.CURRENCY>
LD.EXTRACTED.AMOUNT = R.LD.RECORD<LD.AMOUNT>
IF LD.EXTRACTED.CURRENCY NE LCCY THEN
CALL EXCHRATE('1',LD.EXTRACTED.CURRENCY,
LD.EXTRACTED.AMOUNT,LCCY,'',''
,EXCH.RATE,'',NEW.LCY.AMOUNT,RET.CODE)
O.DATA = NEW.LCY.AMOUNT
END ELSE
O.DATA = LD.EXTRACTED.AMOUNT
END
RETURN

Dans la routine ci-dessus, le montant qui est mis dans O.DATA est extrait du fichier
‘LD.LOANS.AND.DEPOSITS’, puis multiplier par le taux présent dans le fichier CURRENCY. Dans
GLOBUS, la routine EXCHRATE peut être utilisée pour réaliser la conversion.

6.6 - NOFILE ENQUIRY

15/10/2006 T24 Page 64


JBASE & T24-2 Support de cours

Si les données à presser dans l’enquiry n’existe pas dans un seul fichier. L‘enquiry doit
extraire les informations à partir d’une routine. Pour bien comprendre le mécanisme voici
comment le système travail.
La routine construit une liste des clés dans un tableau dynamique passé en argument,, puis
chaque clé est extraite et on construit un tableau dynamique qui contiendra les données à
visualiser. Normalement, on a besoin de 2 routines, une qui fait l’écriture de la liste des
données et une autre qui prend en compte la clé et reconstruit un enregistrement.

Si un champ est spécifié dans une enquiry, le type et la position du champ sont consultés
depuis le STANDARD.SELECTION du fichier mentionné dans la zone FILE.NAME.

STANDRAD.SELECTION est une application qui sauvegarde le dictionnaire d’un fichier.


On a des données sur les champs logiques. Cependant, quand vous essayez d’entrer un
enregistrement dans le STANDARD.SELECTION,, le système consulte le fichier
FILE.CONTROL pour voir si la définition du fichier existe. La seule exception est prise en
compte si le nom du fichier commence par ‘NOFILE.’. Aussi dans notre cas de figure, vous
devez créer un enregistrement de SS avec un nom ‘NOFILE.XXX’ et qui défini la zone
d’identifiant avec un type R et le nom de la routine qui lui est attachée.

I_ENQUIRY.COMMON, la définition d’insertion pour les enquiries doit être utilisée. La


variable O.DATA pourra être manipulée. Une autre variable est le tableau dynamique
R.RECORD. On peut en extraire des données, il représente un résultat de lecture ou
d’écriture.
Prenons un exemple: Créer une enquiry qui visualise la clé des clients et leur balance
respective.
Format de sortie demandé: Customer Number Currency Total Account Balance

Etape 1 : Créer une routine qui construira la liste des éléments.


SUBROUTINE CUSTOMER.BALANCE(CUSTOMER.ARRAY)
$INSERT I_COMMON
$INSERT I_EQUATE
$INSERT I_F.CUSTOMER
$INSERT I_F.ACCOUNT
$INSERT I_F.CUSTOMER.ACCOUNT
$INSERT I_F.MM.MONEY.MARKET
$INSERT I_F.LD.LOANS.AND.DEPOSITS
*---------------------------------------
GOSUB INITIALIZE
GOSUB OPENFILES
GOSUB CALCULATEAMOUNT
RETURN
*------------------------------------
INITIALIZE:
SEL.COMMAND = ''
SEL.LIST = ''
CUSTOMER.FIRST.ID = 0
CUSTOMER.ERR1 = 0
CUS.ACCT.ERR2 = 0
ACCOUNT.ERR3 = 0
NO.OF.REC = 0
CUSTOMER.FIRST.ID = 0
FN.CUSTOMER = 'F.CUSTOMER'
FV.CUSTOMER = ' '
FN.CUST.ACC = 'F.CUSTOMER.ACCOUNT'

15/10/2006 T24 Page 65


JBASE & T24-2 Support de cours

FN.ACCOUNT = 'FBNK.ACCOUNT'
FV.ACCOUNT = ''
FV.CUST.ACC = ''
R.CUS.ACCT.REC = ''
R.ACCT.REC = ''
Y.CNT = 0
CUSACCT.COUNTER = 0
ACCOUNT.ID = 0
ACCOUNT.EXTRACTED.CURRENCY = ''
ACCOUNT.EXTRACTED.WORKING.BALANCE = 0
CUSTOMER.TOTAL.AMOUNT = 0
CUSTOMER.ARRAY = ''
RETURN
*----------------------------------------
OPENFILES:
*Ouverture CUSTOMER
CALL OPF(FN.CUSTOMER,FV.CUSTOMER)
*Ouverture concate file CUSTOMER.ACCOUNT
CALL OPF(FN.CUST.ACC,FV.CUST.ACC)
CALL OPF(FN.CUST.ACC,FV.CUST.ACC)
*Ouverture ACCOUNT
CALL OPF(FN.ACCOUNT,FV.ACCOUNT)
RETURN
CALCULATEAMOUNT: SEL.COMMAND = "SELECT " : FN.CUSTOMER
SEL.LIST = ""
CALL EB.READLIST(SEL.COMMAND,SEL.LIST,"",NO.OF.REC,CUSTOMER.ERR1)
LOOP
REMOVE CUSTOMER.FIRST.ID FROM SEL.LIST SETTING POS
WHILE CUSTOMER.FIRST.ID:POS
CALL F.READ(FN.CUST.ACC,CUSTOMER.FIRST.ID,R.CUS.ACCT.REC,
FV.CUST.ACC,CUS.ACCT.ERR2)
Y.CNT = DCOUNT(R.CUS.ACCT.REC,FM)
FOR CUSACCT.COUNTER = 1 TO Y.CNT
ACCOUNT.ID = R.CUS.ACCT.REC<CUSACCT.COUNTER>
CALL F.READ(FN.ACCOUNT,ACCOUNT.ID,R.ACCT.REC,
FV.ACCOUNT,ACCOUNT.ERR3)
ACCOUNT.EXTRACTED.CURRENCY = R.ACCT.REC<AC.CURRENCY>
ACCOUNT.EXTRACTED.WORKING.BALANCE =
R.ACCT.REC<AC.WORKING.BALANCE>
IF ACCOUNT.EXTRACTED.CURRENCY = LCCY THEN
CUSTOMER.TOTAL.AMOUNT +=
ACCOUNT.EXTRACTED.WORKING.BALANCE
END ELSE
CALL EXCHRATE('1',ACCOUNT.EXTRACTED.CURRENCY,
ACCOUNT.EXTRACTED.WORKING.BALANCE,
LCCY,'','',EXCH.RATE,'',LCY.AMOUNT,RET.CODE)
CUSTOMER.TOTAL.AMOUNT += LCY.AMOUNT
END
EXCH.RATE = 0; LCY.AMOUNT = 0
NEXT CUSACCT.COUNTER
IF CUSTOMER.TOTAL.AMOUNT GT 0 THEN
CUSTOMER.ARRAY<-1> = CUSTOMER.FIRST.ID:'*':CUSTOMER.TOTAL.AMOUNT
END
CUSTOMER.TOTAL.AMOUNT = 0
REPEAT
RETURN

15/10/2006 T24 Page 66


JBASE & T24-2 Support de cours

Exemple sur le Browser pour l’enquiry du NOFILE

15/10/2006 T24 Page 67


JBASE & T24-2 Support de cours

6.7 - ROUTINES POUR LES VERSIONS

Il y a trois types de routines qui peuvent être associées aux versions. Chacune d’entre elle est liée à des
évènements différents. Les trois types de routine sont :

♦ Routine de validation
♦ Routine d’entrée
♦ Routine d’autorisation

Quelques points de détails.

Routine de validation

Ces routines, comme le type l’indique, sont mises en fonction, au moment ou l’utilisateur appui sur
« enter ». Le champ à renseigner est VALIDATION.FLD. Voici un exemple.

Créer une version sur le module FT. Quand le débit du compte est saisi, on veut que la devise soit
renseignée par défaut dans le champ CURRENCY.

Etape 1
Créer une version sur l ‘application FT nommée FT,INPUT, celle-ci fera la saisie des contrats.

Etape 2
Créer la routine V.ACCT.CUR qui fera une extraction du numéro de compte (ACCOUNT.NUMBER)
permettant ainsi d’ouvrir le fichier ACCOUNT pour venir prendre la devise (CURRENCY). Une fois
extraite la devise sera mise dans la valeur par défaut de la version.
Cette routine extrait les numéros de compte entrés dans la transaction FT, ouvre le fichier ACCOUNT
et extrait la devise et l’implante dans le FT dans le champ DEBIT.ACCT.CURRENCY.
La variable COMI est utilisée pour maintenir la dernière valeur introduite.
La routine REBUILD.SCREEN est utilisée pour rafraîchir l’écran.

**************************************************************
SUBROUTINE V.ACCOUNT.CURRENCY
$INSERT I_COMMON
$INSERT I_EQUATE
$INSERT I_F.ACCOUNT
$INSERT I_F.FT.FUNDS.TRANSFER
MAIN : *
GOSUB INITIALIZE
GOSUB OPENFILES
GOSUB EXTRACTCURRENCY
RETURN
INITIALIZE:*
ACC.NO = 0
ACC.CURRENCY = ‘’
FN.ACCOUNT = ‘F.ACCOUNT’
FV.ACCOUNT = ‘’
ERR1=’’
R.ACC.REC=’’
RETURN
OPENFILES:*
CALL OPF(FN.ACCOUNT,FV.ACCOUNT)
ACC.NO = COMI
RETURN

15/10/2006 T24 Page 68


JBASE & T24-2 Support de cours

EXTRACTCURRENCY:*
CALL F.READ(FN.ACCOUNT,ACCT.NO,R.ACC.REC,FV.ACCOUNT,ERR1)
ACC.CURRENCY = R.ACC.REC(AC.CURRENCY)
R.NEW(FT.DEBIT.CURRENCY) = ACCOUNT.CURRENCY
CALL REBUILD.SCREEN
RETURN

Etape 3
On attache la routine au champ ACCOUNT.NUMBER de la version.
Nom de la Version: FT,INPUT
Champs à utiliser dans la version:
39.1 VALIDATION.FLD DEBIT.ACCT.NO
40.1 VALIDATION.RTN V.ACCOUNT.CURRENCY

INPUT ROUTINE

Ces routines sont lancées au juste avant de faire F5 pour une transaction de type « unauthorise ». Ces
routines peuvent mettre à jour des fichiers locaux ou, peuvent faire un contrôle. A ce niveau de la
transaction, les valeurs par défaut et les validations ont été faites.

Exemple Créer une version pour FT dans laquelle l’appui sur F5 fait le contrôle suivant :
Le DEBIT.CURRENCY et le CREDIT.CURRENCY doivent être le même, sinon, un message
d’erreur doit apparaître.

Etape 1 : Créer la version FT,INPUT.

Etape 2: Créer une routine nommée V.CHECK.CUR qui fait une extraction de
DEBIT.ACCOUNT.CURRENCY et CREDIT.ACCOUNT, qui contrôle si les valeurs sont identiques,
et qui émet un message d’erreur le cas échéant.

La routine extrait la devise du débit du compte et du crédit du compte depuis R.NEW et en


contrôle l’égalité. S’il n’y a pas d’égalité, un message est émis par la variable ETEXT
Le numéro de champ doit figurer dans la variable AF et le message est émis en utilisant la routine
STORE.END.

**********************************************************
SUBROUTINE V.CHECK.CURRENCY
$INSERT I_COMMON
$INSERT I_EQUATE
$INSERT I_FT.FUNDS.TRANSFER
MAIN : *
GOSUB INITIALIZE
GOSUB CHECKCURRENCY
RETURN
INITIALIZE: *
DEBIT.CURRENCY = ‘’
CREDIT.CURRENCY = ‘’
RETURN
CHECKCURRENCY: *
DEBIT.CURRENCY = R.NEW(FT.DEBIT.CURRENCY)
CREDIT.CURRENCY = R.NEW(FT.CREDIT.CURRENCY)
IF DEBIT.CURRENCY NE CREDIT.CURRENCY THEN
ETEXT = “Debit account currency and credit account currency not equal”
AF = FT.DEBIT.CURRENCY

15/10/2006 T24 Page 69


JBASE & T24-2 Support de cours

CALL STORE.END.ERROR
END
RETURN

Etape 3: Installer le nom de cette routine dans le champ ‘INPUT.ROUTINE’de la


version.
Nom de la Version: FT,INPUT
Champ utilisé : INPUT.ROUTINE

ROUTINE POUR AUTORISATION

C’est une routine qui s’exécute à l’autorisation finale de la transaction. Plusieurs routines peuvent être
définies. Les routines appelées dans cette étape peuvent mettre à jour des fichiers locaux. A ce niveau
de la transaction, les valeurs par défaut et les validations ont été faites.

Pour comprendre ce principe, lier la routine précédente au champ ‘AUTH.ROUTINE’.


Le contrôle se fera à la validation finale.

ROUTINE POUR VALEUR AUTOMATIQUE

Créer une référence locale de CUSTOMER nommée TOTAL.ACCOUNTS. Ce champ


contiendra le nombre de comptes associés au client. Quand on ouvre un CUSTOMER, le
champ TOTAL.ACCOUNTS doit afficher le nombre de compte du CUSTOMER.
Les champs nécessaires du CUSTOMER sont:
1.Tous les champs obligatoires de CUSTOMER
2.La LOCAL.REF TOTAL.ACCOUNTS
Etape 1: Créer une référence locale ayant pour nom TOTAL.ACCOUNT et attachée au
fichier CUSTOMER application.
Etape 2: Créer une version pour l’application CUSTOMER contenant les champs
obligatoires et la LOCAL.REF TOTAL.ACCOUNTS.
Etape 3: Créer une routine qui visualisera le nombre total des comptes associés au client
dans le champ TOTAL.ACCOUNTS. Si un nouveau CUSTOMER est saisie le
calcul ne pouvant se faire on visualisera la valeur 0 pour le champ
TOTAL.ACCOUNTS.

1.Saisir la clé du CUSTOMER


2.Contrôler si cette clé existe, si c’est une nouvelle clé
3.Si c’est un nouveau CUSTOMER ,mettre 0 dans la valeur correspondant
TOTAL.ACCOUNTS
4.Si le client existe dans CUSTOMER, alors lire le ‘concate file’ CUSTOMER.ACCOUNT.
5.Compter le nombre de comptes du CUSTOMER, ici le nombre de champs et mettre le
résultat dans TOTAL.ACCOUNTS.

SUBROUTINE V.TRG.AUT.CNT.RTN
$INSERT I_COMMON
$INSERT I_EQUATE
$INSERT I_F.CUSTOMER
$INSERT I_F.CUSTOMER.ACCOUNT
GOSUB INIT
GOSUB OPENFILES

15/10/2006 T24 Page 70


JBASE & T24-2 Support de cours

GOSUB PROCESS
RETURN
INIT: *
FN.CUS.ACC = 'F.CUSTOMER.ACCOUNT'F.CUS.ACC = ''Y.CUS.ID =
ID.NEWR.CUS.ACC = ''Y.CUS.ACC.ERR = ''RETURN
OPENFILES:CALL OPF(FN.CUS.ACC,F.CUS.ACC)
RETURN
PROCESS: *
IF ID.OLD = ‘’ THEN
R.NEW(EB.CUS.LOCAL.REF)<1,29> = 0 ; * No calculation is require
END ELSE
CALL F.READ(FN.CUS.ACC,Y.CUS.ID,R.CUS.ACC,F.CUS.ACC,Y.CUS.ACC.ERR)
IF Y.CUS.ACC.ERR NE ‘’ THEN
R.NEW(EB.CUS.LOCAL.REF)<1,29> = 0
END ELSE
R.NEW(EB.CUS.LOCAL.REF)<1,29> = DCOUNT(R.CUS.ACC,FM)
END
END
RETURN

Etape 4:
Compiler et cataloguer la routine et faire une entrée dans PGM.FILE avec le type mis
à ‘S’.
Lier la routine au champ ‘Auto New Content’ (Préfixer le nom de la routine par @)
dans la version.
Spécifier le champ LOCAL.REF (TOTAL.ACCOUNTS) dans le champ
‘AUTOM.FIELD.NO’.

15/10/2006 T24 Page 71


JBASE & T24-2 Support de cours

TABLE DES METIERES


AVANT PROPOS 02
1 LE USER ET SON ENVIRONNEMENT 03
1.1 LA CONNEXION 03
1.2 LES COMMANDES TCL 05

2 LA NAVIGATION PAR BROWSER 07

2.1 CONNEXION 07
2.2 LA LIGNE DE COMMANDE 09
2.3 LOGIQUES DES FONCTIONS 11
3 QUELQUES TABLES SPECIFIQUES 13

4 LES ENQUIRIES 16

4.1 LES MANIPULATIONS DE L’ENQUIRY 17


4.2 LES CHAMPS DE L’ENQUIRY 18
4.3 COMMENT CREER UNE ENQUIRY 24
4.4 CONTEXT ENQUIRY 32
4.5 DRILL DOWN 34
4.6 CONTEXT BASED WORKFLOW 35
4.7 ENQUIRY REPORT 36
4.8 FAST PATH ENQUIRY 37

5 LES VERSIONS 38

5.1 LE SCREEN DESIGNER 38


5.2 LES CHAMPS DANS UNE VERSION 40
5.3 COMMENT CREER UNE VERSION 47
5.4 NEXT VERSION 49
5.5 VERSIONS ASSOCIES 52

6 PROGRAMMATION 53

6.1 PRINCIPES T24 53


6.2 LE TEMPLATE 55
6.3 PROGRAMMATION DES ROUTINES 61
6.4 BUILD ROUTINE 62
6.5 ROUTINES DE CONVERSION 63
6.6 NOFILE ENQUIRY 65
6.7 ROUTINES POUR LES VERSIONS 68

15/10/2006 T24 Page 72

Vous aimerez peut-être aussi