5

iSeries で新しいコマンドを作成しようとしていますが、パラメーターの 1 つは標準の LIBRARY/FILE MEMBER 構文を使用したファイル名でなければなりません。

MYCMD FILE(MYLIB/MYFILE MYMEMBER)

あるいは

MYCMD FILE(MYLIB/MYFILE) MEMBER(MYMEMBER)

私がしようとしました :

  • *CHAR タイプの FILE パラメーターを使用して PARM ステートメントを作成する
  • ELEM ステートメントを使用して特殊なタイプを作成する

しかし、CPYTOIMPF で使用される FROMFILE パラメーターのように、修飾されたオブジェクト名である値を受け入れるパラメーターを作成する方法が見つかりません。

アップデート

JamesA の回答は正常に機能しますが、どういうわけか、CL の変数に 2 つの余分な文字を取得します。

CMD

            PARM       KWD(FILE) TYPE(FNAME) PROMPT('CL +                  
                         source' 1)                                        
FNAME:      ELEM       TYPE(FILE) PROMPT('File')                        
            ELEM       TYPE(*NAME) LEN(10) PROMPT('Source +                
                         member')                                          
FILE:       QUAL       TYPE(*NAME) LEN(10)              
            QUAL       TYPE(*NAME) DFT(*CURLIB) SPCVAL(*CURLIB) PROMPT('Library') LEN(10) MIN(0)           

CL

PGM        PARM(&PFIC &OUTFILE &CODEPAGE)        
DCL        VAR(&PFIC) TYPE(*CHAR) LEN(32)        
DCL        VAR(&LIB) TYPE(*CHAR) LEN(10)         
DCL        VAR(&FILE) TYPE(*CHAR) LEN(10)        
DCL        VAR(&MEMBER) TYPE(*CHAR) LEN(10)      

CHGVAR     VAR(&FILE) VALUE(%SST(&PFIC 3 10))  
CHGVAR     VAR(&LIB) VALUE(%SST(&PFIC 13 10))              
CHGVAR     VAR(&MEMBER) VALUE(%SST(&PFIC 23 10))     
4

1 に答える 1

6

Qualifier Definitionを使用する必要があります。

CMD

    CMD
    PARM KWD(FILE) TYPE(Q1) PROMPT('File')
    PARM KWD(MBR) TYPE(*NAME) LEN(10) DFT(*FIRST) SPCVAL(*FIRST) PROMPT('Member')

Q1: QUAL TYPE(*NAME) LEN(10) 
    QUAL TYPE(*NAME) LEN(10) DFT(*LIBL) SPCVAL(*LIBL) PROMPT('Library')

CL

PGM PARM(&FILELIB &MBR)

DCL VAR(&FILELIB) TYPE(*CHAR) LEN(20)
DCL VAR(&MBR) TYPE(*CHAR) LEN(10)
DCL VAR(&FILE) TYPE(*CHAR) LEN(10)
DCL VAR(&LIB) TYPE(*CHAR) LEN(10)

CHGVAR VAR(&FILE) VALUE(%SST(&FILELIB 1 10))
CHGVAR VAR(&LIB) VALUE(%SST(&FILELIB 11 10))

. . .

ENDPGM
于 2012-07-03T12:20:48.780 に答える