Bonjour .
j'ai un petit souci de programmation CL ..
J'ai un programme batch qui tourne toute la journée et qui scrute si des membres ont été ajoutés dans un fichier (SENDEDI).
Voici en gros le code :
Mon souci : le programme fonctionne farpaitement la 1ère fois mais si de nouveaux membres sont ajoutés au fichier SENDEDI dans la journée , le EOF détecté la 1 ère fois de la commande RCVF sur le fichier SENDMBR est toujours actif , le message de fin de fichier CPF0864 aussi.. Et donc il va directement au label END
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 /* Fichier vides --> END OF TREATMENT */ RTVMBRD FILE(AREDI/SENDEDI) NBRCURRCD(&RECORD) MONMSG MSGID(CPF3019) EXEC(GOTO CMDLBL(ENDTRT)) /*Récupération de la liste des membres pour les traiter séparement */ DSPFD FILE(AREDI/SENDEDI) TYPE(*MBR) + OUTPUT(*OUTFILE) FILEATR(*PF) + OUTFILE(APFBRAIN/SENDMBR) LECT: RCVF MONMSG MSGID(CPF0864) EXEC(GOTO CMDLBL(END)) OVRDBF TO MEMBER */ OVRDBF FILE(SENDEDI) TOFILE(AREDI/SENDEDI) + MBR(&MBNAME) /* Mes differents traitements sur chacun des membres */ ------------------------ /* REMOVE MEMBER FROM SENDEDI FILE */ RMVM FILE(AREDI/SENDEDI) MBR(&MBNAME) GOTO LECT END: autres traitement divers ENDTRT: DLYJOB DLY(3500) GOTO RESTART RCLRSC ENDPGM
J'ai bien essayé de fermer le fichier par un CLOF , mais ça ne change rien..?
Partager