2012-07-03 18 views
5

Tôi đang cố tạo một lệnh mới trên iSeries, trong đó một tham số phải là tên tệp bằng cú pháp LIBRARY/FILE MEMBER chuẩn, giống nhưTạo lệnh iSeries chấp nhận tên đối tượng làm tham số

MYCMD FILE(MYLIB/MYFILE MYMEMBER) 

hoặc thậm chí

MYCMD FILE(MYLIB/MYFILE) MEMBER(MYMEMBER) 

tôi cố gắng để:

  • Tạo một tuyên bố parm sử dụng para FILE mét với một loại * CHAR
  • Tạo một loại đặc biệt sử dụng báo cáo ELEM

Nhưng tôi không thể tìm thấy làm thế nào để tạo ra một tham số mà chấp nhận một giá trị mà là một cái tên đối tượng đủ điều kiện, như tham số FROMFILE sử dụng với CPYTOIMPF.

CẬP NHẬT

câu trả lời JamesA của hoạt động tốt, nhưng bằng cách nào đó tôi nhận được hai nhân vật phụ trong biến tôi 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))  

Trả lời

6

Bạn cần sử dụng 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

Cảm ơn! Làm việc như một sự quyến rũ, ngoại trừ một số lý do lạ tôi cần phải% SST từ pos. 3 thay vì 1, hai ký tự đầu tiên là rác. Tôi đã cập nhật bài đăng của mình để hiển thị định nghĩa của tôi. Bất kỳ ý tưởng? –

+2

Đó là vì từ khóa FILE được định nghĩa là một danh sách. Nó trỏ tới FNAME, có 2 ELEM. Làm theo câu trả lời của James và sử dụng QUAL mà không có ELEM. –

+0

Cảm ơn, tôi sẽ làm điều đó –

Các vấn đề liên quan