Figure 6, j'utilise deux instructions READE, dont l'une est incorporée
à la fin de la boucle DOW, pour contrôler la lectu-re des enregistrements provenant
d'un fichier avec clés. La figure 7 présente une autre structure de lecture
qui réalise la même tâche, mais avec une seule instruc-tion READE. Les différences
entre cette structure de lecture et la première com-mencent ligne 4, où j’utilise
une opération DOUEQ (Do Until Equal) au lieu d’une instruction DOWEQ. L’opération
DOUEQ vérifie la condition à la fin de la structure de boucle au lieu du début,
et il y a donc au moins une itération de la boucle.
Ensuite, ligne 5, l’opération READE met *IN81 à *ON si un enregistrement correspond
à la zone de clé que je recherche, et il met *IN81 à *OFF si le READE échoue.
Avant de poursuivre le traitement plus en détail, je vérifie la valeur de *IN81
(ligne 6) et imprime une ligne détail sur un rapport d’employés (ligne 7). La
ligne 9 est le ENDDO pour notre processus de boucle DOUEQ. Si *IN81 est à *ON
à ce stade, le programme quitte la structure de boucle et la lecture se termine.
Si *IN81 est à *OFF, le traite-ment reprend l’opération DOUEQ et, dans ce cas,
tente de lire un autre enregistre-ment dans le fichier AS/400.
Ces deux techniques de lecture sont logiques et simples à utiliser. Il existe
d’autres structures de lecture en boucle mais ces deux là conviendront le plus
souvent. A vous de décider si vous voulez utiliser deux instructions READE ou
une condition IF supplémentaire.
FIGURE 1
LES DDS DE EMPLF1
….+….1….+….2….+….3….+….4….+….5….+….6….+….7.
A……….T.Name++++++.Len++TDpB……Functions++++++++++++++++++
A R EMPPFR PFILE(EMPPF)
A K DEPT
A K LNAME
A K FNAME
FIGURE 2
COMMANDE DSPFD SUR EMPPF
8/07/99 Display File Description
DSPFD Command Input
File . . . . . . . . . . . . . . . . . . . . : FILE EMPPF
Library . . . . . . . . . . . . . . . . . . : *LIBL
Type of information . . . . . . . . . . . . . : TYPE *ACCPTH
File attributes . . . . . . . . . . . . . . . : FILEATR *ALL
System . . . . . . . . . . . . . . . . . . . : SYSTEM *LCL
File Description Header
File . . . . . . . . . . . . . . . . . . . . : FILE EMPPF
Library . . . . . . . . . . . . . . . . . . . : JSUTHERL
Type of file . . . . . . . . . . . . . . . . : Physical
File type . . . . . . . . . . . . . . . . . . : FILETYPE *DATA
Auxiliary storage pool ID . . . . . . . . . . : 01
Access Path Description
Access path . . . . . . . . . . . . . . . . . : Arrival
FIGURE 3
COMMANDE DSPDBR SUR EMPPF
8/07/99 Display Data Base Relations
DSPDBR Command Input
File . . . . . . . . . . . . . . . . . . . . : FILE EMPPF
Library . . . . . . . . . . . . . . . . . . : *LIBL
Member . . . . . . . . . . . . . . . . . . . : MBR *NONE
Record format . . . . . . . . . . . . . . . . : RCDFMT *NONE
Output . . . . . . . . . . . . . . . . . . . : OUTPUT *
Specifications
Type of file . . . . . . . . . . . . . . . . : Physi-cal
File . . . . . . . . . . . . . . . . . . . . : EMPPF
Library . . . . . . . . . . . . . . . . . . : JSU-THERL
Member . . . . . . . . . . . . . . . . . . : *NONE
Record format . . . . . . . . . . . . . . . : *NONE
Number of dependent files . . . . . . . . . : 2
Files Dependent On Specified File
Dependent File Library Dependency JREF
Constraint
EMPLF1 JSUTHERL Data
EMPLF2 JSUTHERL Data
FIGURE 4 COMMANDE
DSPFD SUR EMPLF1
8/07/99 Display File Description
DSPFD Command Input
File . . . . . . . . . . . . . . . . . . . . : FILE EMPLF1
Library . . . . . . . . . . . . . . . . . : *LIBL
Type of information . . . . . . . . . . . . : TYPE *ACCPTH
File attributes . . . . . . . . . . . . . . : FILEATR *ALL
System . . . . . . . . . . . . . . . . . . : SYSTEM *LCL
File Description Header
File . . . . . . . . . . . . . . . . . . . : FILE EMPLF1
Library . . . . . . . . . . . . . . . . . . : JSUTHERL
Type of file . . . . . . . . . . . . . . . : Logical
File type . . . . . . . . . . . . . . . . . : FILETYPE *DATA
Auxiliary storage pool ID . . . . . . . . . : 01
Access Path Description
Access path maintenance . . . . . . . . . . : MAINT *IMMED
Unique key values required . . . . . . . . : UNIQUE No
Key order . . . . . . . . . . . . . . . . . : Not specified
Select/omit specified . . . . . . . . . . . : No
Access path journaled . . . . . . . . . . . : No
Access path . . . . . . . . . . . . . . . . : Keyed
Number of key fields . . . . . . . . . . . : 3
Record format . . . . . . . . . . . . . . . :
EMPPFR
Key field . . . . . . . . . . . . . . . . . : DEPT
Sequence . . . . . . . . . . . . . . . . : Ascending
Sign specified . . . . . . . . . . . . . : UNSIGNED
Zone/digit specified . . . . . . . . . . : *NONE
Alternative collating sequence . . . . . : No
Key field . . . . . . . . . . . . . . . . . : LNAME
Sequence . . . . . . . . . . . . . . . . : Ascending
Sign specified . . . . . . .
. . . . . . : UNSIGNED
Zone/digit specified . . . . . . . . . . : *NONE
Alternative collating sequence . . . . . : No
Key field . . . . . . . . . . . . . . . . . : FNAME
Sequence . . . . . . . . . . . . . . . . : Ascending
Sign specified . . . . . . . . . . . . . : UNSIGNED
Zone/digit specified . . . . . . . . . . : *NONE
Alternative collating sequence . . . . . : No
Files accessed by logical file PFILE
File Library LF Format
EMPPF JSUTHERL EMPPFR
FIGURE 5
CARTE F POUR NOTRE EXEMPLE DE PROGRAMME RPG
….+….1….+….2….+….3….+….4….+….5….+….6….+….7.
FFilenameIPEAF……..L..I……..Device+……KExit++Entry+A….U
FEMPLF1 IF E K DISK
FIGURE 6
PREMIER EXEMPLE DE BOUCLE READE
….+….1….+….2….+….3….+….4….+….5….+….6….+….7.
CL0N01N02N03Factor1+++OpcdeFactor2+++ResultLenDHHiLoEqComments++++
1 C MOVEL’SALES’ DEPT
2 C DEPT SETLLEMPPFR 80 ON IF THERE
3 C *IN80 IFEQ *ON
4 C DEPT READEEMPPFR 81
5 C *IN81 DOWEQ*OFF
6 C EXCPTDETAIL
7 C DEPT READEEMPPFR 81
8 C ENDDO
9 C ENDIF
FIGURE 7
SECOND EXEMPLE DE BOUCLE READE
….+….1….+….2….+….3….+….4….+….5….+….6….+….7.
CL0N01N02N03Factor1+++OpcdeFactor2+++ResultLenDHHiLoEqComments++++
1 C MOVEL’SALES’ DEPT
2 C DEPT SETLLEMPPFR 80 ON IF THERE
3 C *IN80 IFEQ *ON
4 C *IN81 DOUEQ*ON
5 C DEPT READEEMPPFR 81
6 C *IN81 IFEQ *OFF
7 C EXCPTDETAIL
8 C ENDIF
9 C ENDDO
10 C ENDIF
|
Téléchargez cette ressource
Guide de Sécurité IA et IoT
Compte tenu de l'ampleur des changements que l'IA est susceptible d'entraîner, les organisations doivent élaborer une stratégie pour se préparer à adopter et à sécuriser l'IA. Découvrez dans ce Livre blanc Kaspersky quatre stratégies efficaces pour sécuriser l'IA et l'IoT.