SNDRCVF
Envoyer/recevoir fichier écran
En bref
La commande SNDRCVF (Envoyer/recevoir un fichier) permet à un programme CL ou à une procédure CL d'échanger des données avec une unité utilisée en mode interactif.
SNDRCVF se lit SND
(Envoyer) + RCVF.
Sur IBM i, le nom d'une commande associe presque toujours un verbe et un objet.
Syntaxe minimale
SNDRCVF
Paramètres
Astuce : dans une session 5250, tapez SNDRCVF puis F4 pour
l'invite de saisie, et F1 sur un paramètre pour son aide.
Aide IBM i de la commande
Texte du F1, IBM i 7.5 en français
(bibliothèque QSYS)
Où s'exécute :
- Programme batch (*BPGM)
- Programme interactif (*IPGM)
La commande SNDRCVF (Envoyer/recevoir un fichier) permet à un programme CL ou à une procédure CL d'échanger des données avec une unité utilisée en mode interactif. Ces données sont passées entre le programme exécutant la commande SNDRCVF et l'unité-écran indiquée dans cette commande. Le fichier d'unité-écran précédemment déclaré dans le programme sert à passer les données. (Le fichier a été déclaré à l'aide d'une commande DCLF incluse dans le source ayant servi à la compilation du programme.) Les données de chaque opération d'envoi/réception sont transmises en tant qu'un seul enregistrement au format identifié par le paramètre RCDFMT de cette commande. Ce format est défini dans les spécifications de description de données (DDS). Une seule variable CL est associée à chaque zone du format d'enregistrement pour la transmission des données. Les variables CL utilisées (y compris les indicateurs DDS) sont déclarées implicitement.
Un seul des formats d'enregistrement indiqués par la commande DCLF peut être défini avec chaque commande SNDRCVF. Si le fichier d'unité n'a pas été ouvert, il l'est par cette commande. Le fichier et le format d'enregistrement indiqués par cette commande peuvent être remplacés à l'aide d'une commande OVRDSPF (Substituer un fichier écran) si celle-ci est émise avant l'ouverture du fichier. Cependant, vérifiez que les zones du format d'enregistrement de substitution correspondent bien aux variables CL déclarées dans le programme.
Restrictions: Cette commande est valide uniquement dans un programme CL ou une procédure CL ILE, et uniquement pour les fichiers écran. Elle ne peut pas être utilisée avec les fichiers base de données.
Unité écran (DEV)
Indique le nom de l'unité-écran vers laquelle les données sont à envoyer et d'où les données utilisateur doivent provenir. Vous pouvez indiquer une variable CL pour ce paramètre afin de modifier le nom de l'unité tout en conservant la même commande.
- *FILE
- Les données doivent être échangées avec l'unité associée au fichier unité (lequel a été déclaré dans le paramètre FILE de la commande DCLF). Si plusieurs noms d'unité figurent dans le fichier d'unité, vous ne pouvez pas indiquer *FILE.
- nom
- Indiquez le nom de l'unité ou celui de la variable CL contenant le nom de l'unité avec laquelle le programme CL ou la procédure CL ILE doit échanger des données. Si ce paramètre contient un nom de variable CL, une seule commande SNDRCVF est nécessaire dans le programme pour la réception de données à partir de plusieurs unités.
Format d'enregistrement (RCDFMT)
Indique le nom du format d'enregistrement à utiliser pour la transmission de données entre le programme CL et la procédure CL ILE, et l'utilisateur. Ce format contient toutes les zones de l'enregistrement. Si le fichier d'unité contient plusieurs formats d'enregistrement, ce paramètre doit figurer avec le nom de l'un d'entre eux. Dans ce cas, vous ne pouvez pas indiquer *FILE. La commande SNDRCVF ignore le mot clé DDS INVITE.
- *FILE
- Le fichier unité contient un seul format d'enregistrement ; c'est ce format qui doit être utilisé pour échanger des données avec l'utilisateur.
- nom
- Indiquez le nom du format d'enregistrement qui doit être utilisé pour l'échange de de données avec l'utilisateur. Vous ne pouvez pas utiliser un nom de variable CL pour indiquer le nom du format d'enregistrement.
ID ouverture fichier (OPNID)
Indique l'ID d'ouverture de fichier déclaré dans une commande DCLF (Déclarer un fichier) précédente dans le même programme CL ou la même procédure CL ILE. Vous ne pouvez pas indiquer une variable CL comme valeur de ce paramètre.
- *NONE
- Aucun ID d'ouverture de fichier n'est fourni. Cette commande utilise le fichier associé à la commande DCLF ayant *NONE indiqué au paramètre OPNID. Un seul fichier peut être déclaré dans un programme CL ou une procédure CL ILE ayant *NONE comme ID d'ouverture de fichier.
- nom-simple
- Indiquez le nom correspondant à la valeur du paramètre OPNID indiqué dans une commande DCLF précédente dans le même programme CL ou la même procédure CL ILE.
Attendre (WAIT)
Indique si le programme CL ou la procédure CL ILE doit attendre la réception des données en provenance de l'unité utilisateur ou si elle doit passer à l'exécution des commandes suivant la commande SNDRCVF. Si la valeur WAIT(*NO) est précisée, le programme doit émettre ultérieurement une commande WAIT pour achever l'opération d'entrée.
Remarque :Vous ne pouvez pas indiquer une variable CL pour ce paramètre.
- *YES
- Le programme attend que l'entrée des données sur l'unité soit terminée avant d'exécuter la commande suivante.
- *NO
- Le programme n'attend pas l'entrée des données et poursuit l'exécution des commandes jusqu'à ce qu'il rencontre une commande WAIT.
Exemples
Exemple 1 : Utilisation d'un fichier écran avec un seul format d'enregistrement
DCLF FILE(MENU1) : SNDRCVF
Cette commande envoie et reçoit des données utilisateur via le fichier d'unité MENU1. Il n'existe qu'un seul format d'enregistrement dans le fichier. L'unité utilisée est indiquée dans le fichier.
Exemple 2 : Utilisation d'un fichier écran avec plusieurs formats d'enregistrement
DCLF FILE(SCR) RCDFMT(REC8) : SNDRCVF RCDFMT(REC8)
Le programme Cl ou la procédure CL ILE échange des données avec l'utilisateur de l'unité nommée dans le fichier d'unité (*FILE est pris par défaut car DEV n'est pas indiqué). Les données sont transmises au format d'enregistrement REC8 indiqué dans le fichier d'unité nommé SCR. Le programme Cl ou la procédure CL ILE attend les données utilisateur pour poursuivre.
Exemple 3 : Utilisation d'une variable CL pour nom d'unité
DCLF FILE(DF1) RCDFMT(REC8) : SNDRCVF DEV(&DN) RCDFMT(REC8) WAIT(*NO) : WAIT DEV(&DN)
Cette commande envoie et reçoit des données utilisateur via le fichier d'unité nommé DF1. En utilisant le format d'enregistrement REC8, le programme CL ou la procédure CL ILE échange des données avec l'utilisateur qui est sur l'unité nommée dans la variable &DN, mais elle n'attend pas de réponse en retour. Si la procédure envoie et reçoit des données à partir de plusieurs unités, la même commande SNDRCVF peut être utilisée. Seule l'unité indiquée par &DN pour le paramètre DEV doit être modifiée. Une commande WAIT pour chaque unité doit être émise ultérieurement dans la procédure pour garantir une réponse de toutes les unités.
Exemple 4 : Utilisation de l'ID d'ouverture de fichier
DCLF FILE(SCREEN1) RCDFMT(REC1 REC2) OPNID(OUTDSP1) DCLF FILE(SCREEN2) RCDFMT(REC3 REC4) OPNID(OUTDSP2) : SNDRCVF DEV(*FILE) RCDFMT(REC2) OPNID(OUTDSP1) WAIT(*YES)
Le fichier d'unité SCREEN1 est utilisé pour envoyer les données à l'unité-écran nommée dans ce même fichier d'unité et attendre une entrée. Les données sont présentées à l'utilisateur au format d'enregistrement REC2 indiqué. La commande SNDRCVF est associée au fichier d'unité SCREEN1 car l'ID d'ouverture de fichier indiqué dans cette commande correspond à celui indiqué dans la commande DCLF pour le fichier écran SCREEN1.
Messages d'erreur
Messages *ESCAPE
- CPF0859
- Dépassement de la mémoire tampon E/S dû à une substitution de fichier.
- CPF0861
- Le fichier &1 de &2 n'est pas un fichier écran.
- CPF0863
- Valeur de la donnée binaire trop élevée pour la variable CL décimale.
- CPF0864
- Fin du fichier &1 de &2.
- CPF0883
- *FILE incorrect pour le paramètre DEV, dans le fichier &1.
- CPF0886
- L'enregistrement contient une zone de données incorrecte.
- CPF0887
- Données disponibles consécutivement à la demande d'entrée précédente.
- CPF4101
- Fichier &2 de &3 non trouvé ou fichier spoule en entrée manquant.
- CPF5068
- Unité-programme &4 non trouvée dans fichier &2 de &3.
- CPF5070
- Aucune unité-programme acquise au fichier &2 de &3.
© Copyright IBM Corp. Texte d'aide reproduit à des fins de formation.