2012-07-03 26 views
5

Próbuję utworzyć nowe polecenie na serwerze iSeries, gdzie jednym z parametrów musi być nazwa pliku przy użyciu standardowej składni biblioteki LIBRARY/FILE MEMBER, podobnie jakUtwórz komendę iSeries, która akceptuje nazwę obiektu jako parametr

MYCMD FILE(MYLIB/MYFILE MYMEMBER) 

lub nawet

MYCMD FILE(MYLIB/MYFILE) MEMBER(MYMEMBER) 

próbowałem:

  • Tworzenie oświadczenia parmezanem używając ust FILE Miernik z typem * CHAR
  • utworzyć specjalny rodzaj użyciu instrukcji Elem

Ale nie mogę znaleźć sposobu, aby utworzyć parametr, który przyjmuje wartość, która jest kwalifikowana nazwa obiektu, jak parametr fromfile używane z CPYTOIMPF.

UPDATE

odpowiedzi Jamesa za działa dobrze, ale jakoś dostać dwa dodatkowe znaki w moim zmiennej CL:

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))  

Odpowiedz

6

Należy użyć numeru 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 
+0

Dzięki! Działa jak urok, z wyjątkiem tego, że z jakiegoś dziwnego powodu potrzebuję% SST od poz. 3 zamiast 1, pierwsze dwa znaki to śmieci. Zaktualizowałem swój post, aby pokazać moje definicje. Jakieś pomysły ? –

+2

To dlatego, że słowo kluczowe FILE jest zdefiniowane jako lista. Wskazuje FNAME, która ma 2 ELEM. Postępuj zgodnie z odpowiedzią Jamesa i użyj QUAL bez ELEM. –

+0

Dzięki, zrobię to –