0

経由でファイルを動的に割り当てようとしています

OPEN FILE (OUT) TITLE('DSN(XXXXX.XXXXX.MILTEST),LRECL(80)'); 

ファイルは作成されますが、レコードサイズはデフォルト値です。環境変数と代替名を試しましDD_DDNAMEたが、取得し続けます

UNDEFINEDFILE 条件が発生しました ABENDU4038

4

1 に答える 1

0

これを試して、Enterprise PL/I で新しいファイルを作成します。

Dcl theLrecl = 42;
 Dcl userDataset char(44) init('USER.DATASET');
dcl fileTitle char(88);                           
fileTitle ='DSN('||trim(userDataset)||'),NEW,CYL,SPACE(1,1),KEEP,LRECL('||theLrecl||')';       

Put Skip List('fileTitle=',trim(fileTitle));  /* optionally show the title for debugging purposes */    
dcl tempFile file print;                          
OPEN FILE(tempFile) title(trim(fileTitle));       

注: 「タイトル」文字列に空白を含めることはできません。確実にトリミングしてください。
詳細はhttp://www-01.ibm.com/support/docview.wss?uid=isg1PK74015にあります。

おっと、質問を読み間違えました。LRECL に関するナレッジ センターのスニペットを次に示します。

LRECL LRECL オプションは RECSIZE オプションと同じです。

LRECL (n) LRECL が指定されておらず、LINESIZE 値によって暗示されていない場合 (TYPE(FIXED) ファイルを除く)、デフォルトは 1024 です。

RECSIZE RECSIZE オプションは、データ・セット内のレコードの長さ n を指定します。

RECSIZE 512 ( n ) - 地域および固定長のデータ セットの場合、RECSIZE はデータ セット内の各レコードの長さを指定します。他のすべてのデータ・セット・タイプの場合、RECSIZE はレコードの最大長を指定します。

両方のオプションの詳細については、第 6 章「Enterprise PL/I for z/OS - Programming Guide Version 4 Release 4」のデータセットとファイルの使用を参照してください。

于 2016-08-04T02:34:20.267 に答える