Particularités d'IMS
Voici quelques-unes des particularités
du langage ULTIM qui s'appliquent au traitement des bases de données
IMS. Plusieurs de celles-ci sont illustrées dans
l'exemple qu'on retrouve plus loin.
- Possibilité d'appeler dynamiquement le SGBD IMS et de le
garder en mémoire seulement le temps nécessaire pour extraire les
données requises.
- Gestion automatique des protocoles de liaison avec les bases.
- Mots-clés supplémentaires permettant de reprendre la
lecture d'un
type de segments à partir du PREMIER, du DERNIER ou du SUIVANT.
- Parenté entre les segments traités établie automatiquement, comme il est illustré dans l'exemple qui suit.
- Possibilité de lecture séquentielle ou directe au moyen d'une clé.
Exemple de dictionnaire IMS codé en ULTIM avec certaines définitions de zones en COBOL
./ OPTIONS PSB = MONPSB ; PSB donnant accès à la BD
./*
Information de base sur le client ./ IMS CLIENT, DBPROD, SEGCUST, 102, CUSTKEY
NO-COMPTE
(16, N, 7)
SECTEUR
(73, A, 6)
SOLDE (79, N, 8.2, 10,
@ED:$) DERNIER-PAIEMENT (87, N,
8, 10, @ED:@DATE)
./* Nom et adresse du client
./ IMS NOMADR, DBPROD, SEGNAME(SEGCUST), 105, CUSTNAME
./ COBOL
./ COPIER DESC (CUSTNAME)
./* Zones COBOL provenant de CUSTNAME et traduites en ULTIM * NOM (1,A,15) * ADR-1 (16,A,30) * ADR-2 (46,A,30) * ADR-3 (76,A,30)
Exemple de programmation
DEBUT
DEMO.
* Lecture des données TRAITER
CHAQUE CLIENT OU DERNIER-PAIEMENT < 20150301 ET SOLDE > 0. TRAITER OBTENIR NOMADR. ; Nom et adresse correspondant à CLIENT seulement
* Rapport à produire
OPTIONS
ENTETE=AUTO, ESPACEMENT = 5.
TABLEAU
SECTEUR, NOM, NO-COMPTE, SOLDE(12,TOTAL), DERNIER-PAIEMENT.
TITRE COMPTES EN SOUFFRANCE DE
DEUX MOIS
OU PLUS AU 1 MAI 2015
CONTROLE
SOUS-TOTAUX=1.
FIN
Rapport
en colonnes produit par les énoncés TABLEAU, TITRE et CONTROLE
5
MAI 2015 PAGE
1
COMPTES EN
SOUFFRANCE DE DEUX MOIS OU PLUS
AU 1 MAI 2015
SECTEUR
------NOM------ NO
COMPTE
SOLDE
DERNIER
PAIEMENT
ESTRIE
BELLE
LUMIERE
843896
$360.47 2015/02/11
BRILLANTINE
3246538
$199.00 2014/12/15
ECLAIRAGE
INC.
386660
$895.45 2015/01/12
LUMIERE
INC.
2369108
$34.94 2015/02/21
...........................................
$1,489.86
MTL
DECOR
SANTE
3143486
$10.00 2015/02/01
DECORUM
INC.
1071638
$2,189.10 2015/01/06
RUSSELL &
SONS
2225751
$194.90 2014/12/21
SERVICES
RAPIDO
1387
$4,189.95 2015/01/28
...........................................
$6,583.95
............................................
$8,073.81
|