2017-09-15 4 views
0

J'essaie de définir le paramètre PATH dans une étape IEBGENER d'un fichier JCL dans un fichier JCL. Mais je n'arrive pas à le faire fonctionner.Définition de PATH dans IEBGENER à partir du fichier

Voici ce que l'étape initiale, qui fonctionne très bien, ressemble à:

//COPY EXEC PGM=IEBGENER 
//SYSPRINT DD SYSOUT=* 
//SYSIN DD DUMMY 
//SYSUT1 DD * 
Some text 
//SYSUT2 DD PATH='/local/Folder1/File1', 
//   PATHDISP=(KEEP,KEEP), 
//   PATHOPTS=(OWRONLY,OCREAT,OEXCL), 
//   PATHMODE=(SIRUSR,SIWUSR) 

Ce que je veux faire est de définir le paramètre PATH dans SYSUT2 à partir d'un fichier qui est écrit dans une étape précédente. Quelque chose comme ceci:

BROWSE TEST.FILE1        Line 0000000000 Col 001 080 
Command ===>             Scroll ===> CSR 
    ********************************* Top of Data ********************************** 
TPATH='/local/Folder1/File1' 
******************************** Bottom of Data ******************************** 



//SETPATH SET DSN=TEST.FILE1,DISP=SHR 
//* 
//COPY EXEC PGM=IEBGENER 
//SYSPRINT DD SYSOUT=* 
//SYSIN DD DUMMY 
//SYSUT1 DD * 
Some text 
//SYSUT2 DD PATH='&TPATH', 
//   PATHDISP=(KEEP,KEEP), 
//   PATHOPTS=(OWRONLY,OCREAT,OEXCL), 
//   PATHMODE=(SIRUSR,SIWUSR) 

Bien sûr, se plaint pas TPATH ​​variable dans le JCL, ce qui rend logiquement le sens qu'il ne peut pas trouver le nom de la variable dans le JCL. Également essayé de mettre l'ensemble de SYSUT2 dans un fichier séparé, mais sans succès. Un compromis «assez bon» serait de concaténer un préfixe de fichier avec un paramètre date et heure, mais cela ne fonctionnerait en production que lorsque le travail est exécuté via un planificateur (avec OPCSCAN ou similaire). Pas dans le test où je soumets le travail moi-même, ou est-il possible de le faire sans un planificateur?

'/local/Folder1/File' & iDate & iTime -- You get the point. 

Des idées très appréciées!

+0

Il existe des symboles date/heure disponibles dans JCL, par exemple '& YYMMDD', si la date et l'heure sont suffisantes. Ils sont dynamiques mais leurs valeurs sont définies à des moments précis dans le traitement de l'entrée de travail. S'il y a plus que cela, la meilleure façon de le faire serait d'utiliser un script (REXX, shell, etc.) avec allocation dynamique. Co: Z serait aussi une bonne solution. – zarchasmpgmr

Répondre

0

Une façon de le faire serait d'écrire la déclaration SYSUT2DD à un membre dans un PDS séparé ou PDSE, puis INCLUDE que membre de votre étape IEBGENER. Le PDS ou PDSE séparé doit être spécifié dans une instruction JCLLIB.

Vous pouvez également exécuter BPXBATCH et utiliser cp au lieu de IEBGENER pour copier vos données.

Si vous avez installé la boîte à outils Dovetail Technologies Co: Z, il se peut que vous ayez besoin de fromdsn.