Récupération de variable

RPG (3 et 4, free), CL, SQL, etc...
Répondre
RV2gre
Messages : 5
Enregistré le : mar. 12 avr. 2011, 06:36:54

Récupération de variable

Message par RV2gre »

Bonjour à tous,

Je suis un petit nouveau avec ce langage, et on m'a demandé un petit programme.
Le but étant de récupérer la valeur VOL d'un CHKTAP dans une variable, afin d'utiliser cette variable, pour savoir si la bande de sauvegarde du jour est bien insérée, et surtout si c'est bien la bonne ...

Je pense que c'est assez simple pour vous, mais moi je me prends un peu la tête.... :(

Dans mon programme je cherche à faire:
CHKTAP DEV(TAPVRT01) VOL(&VOL)

En déclarant au préalable ma variable évidemment.
S'il n'y a pas de cartouches dans le lecteur:
MONMSG MSGID(CPF6760) EXEC(CALL PGM(HL/ENVMAIL1))

S'il y en a une, je check que ce soit bien celle du jour:
IF COND((&JOUR *EQ '*MON') *AND (&VOL *EQ +
'SAVPLU')) THEN(GOTO CMDLBL(ENDPGM))
ELSE CMD(CALL PGM(HL/ENVMAIL))

S'il n'y a pas de cartouches je reçoit bien un mail.
Par contre je reçoit aussi le mail me disant que ce n'est pas la cartouche du jour.
S'il y a une cartouche avec un nom de volume qui n'a rien à voir, je ne reçoit pas le premier mail (pas de cartouches), mais je reçoit l'autre.
Si la bonne cartouche est insérée, c'est exactement la même chose.

Je pense que je ne récupère pas la valeur VOL de mon CHKTAP....

cmasse
Site Admin
Messages : 813
Enregistré le : mer. 14 févr. 2007, 18:00:03
Localisation : Nantes
Contact :

CHKTAP et paramètre VOL

Message par cmasse »

Je pense qu'il y a confusion le paramètre VOL sur la commande CHKTAP ne permet PAS de retrouver le label actuel, mais de vérifier que la bande chargée dans le lecteur a bien CE label la !


pour retrouver le label actuel il faut envisager une API comme QTARTLBL
http://publib.boulder.ibm.com/infocente ... artlbl.htm
Christian Massé (Volubis.fr)

gmenu
Messages : 30
Enregistré le : ven. 22 juin 2007, 17:12:22
Localisation : CARQUEFOU( 44470)
Contact :

(sans texte)

Message par gmenu »

Effectivement, Christian a raison ce paramètre sert à fournir une valeur pas à la récupérer.
Sans utiliser l'API, on peut déjà écrire ceci en inversant les commandes:

IF COND((&JOUR *EQ '*MON') THEN(CHGVAR &VOL 'SAVPLU')
...
CHKTAP DEV(TAPVRT01) VOL(&VOL)
MONMSG MSGID(CPF6720) EXEC(CALL PGM(HL/ENVMAIL1)

(A valider quand même pour le CPF6720)

RV2gre
Messages : 5
Enregistré le : mar. 12 avr. 2011, 06:36:54

(sans texte)

Message par RV2gre »

Merci pour vos réponses, je vais utiliser la seconde méthode.
Elle est plus simple (même si surement plus lourde du fait de la répétition), en tous cas pour moi.

Répondre