2012-07-03 7 views
5

के रूप में स्वीकार करता है, मैं iSeries पर एक नया कमांड बनाने की कोशिश कर रहा हूं, जहां पैरामीटर में से एक मानक पुस्तकालय/फ़ाइल सदस्य सिंटैक्स का उपयोग कर फ़ाइल नाम होना चाहिए,iSeries कमांड बनाएँ जो किसी ऑब्जेक्ट नाम को पैरामीटर

जैसे कुछ

  • एक parm बयान फ़ाइल पैरा का उपयोग कर बनाएँ:
    MYCMD FILE(MYLIB/MYFILE MYMEMBER) 
    

    या यहाँ तक कि

    MYCMD FILE(MYLIB/MYFILE) MEMBER(MYMEMBER) 
    

    मैं करने की कोशिश की एक * CHAR प्रकार

  • साथ मीटर ELEM बयान

का उपयोग कर एक विशेष प्रकार बनाएं लेकिन मैं के साथ प्रयोग किया FROMFILE पैरामीटर की तरह एक पैरामीटर है कि एक योग्य वस्तु का नाम है कि एक मूल्य स्वीकार करता बनाने का तरीका, नहीं मिल सकता है CPYTOIMPF।

अद्यतन

JamesA के जवाब ठीक काम करता है, लेकिन किसी भी तरह मैं अपने सीएल के चर में दो अतिरिक्त वर्ण मिलती है:

सीएमडी

  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)   

सीएल

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

उत्तर

6

आप एक Qualifier Definition उपयोग करने के लिए की जरूरत है।

सीएमडी

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

सीएल

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

धन्यवाद! एक आकर्षण की तरह काम करता है, सिवाय इसके कि कुछ अजीब कारणों से मुझे पॉज़ से% SST की आवश्यकता है। 3 के बजाय 3, पहले दो अक्षर कचरा हैं। मैंने अपनी परिभाषाओं को दिखाने के लिए अपनी पोस्ट अपडेट की। कोई विचार ? –

+2

ऐसा इसलिए है क्योंकि फ़ाइल कीवर्ड एक सूची के रूप में परिभाषित किया गया है। यह एफएनएन को इंगित करता है, जिसमें 2 घंटे हैं। जेम्स के जवाब का पालन करें और QUAL के बिना QUAL का उपयोग करें। –

+0

धन्यवाद, मुझे लगता है कि –

संबंधित मुद्दे