Anmelden

View Full Version : CL / CMD - Parameterlisten



ebschubert
28-01-09, 12:27
Hallo @ all :)

ich habe da mal folgende Frage:

Kann man ein CMD definieren, das ua. als Paramter eine Liste hat, die wiederum als Elemente verschiedene Listen mit mehreren Elementen enthält?

Wie hoch ist da die Schachtelungstiefe?

Konkret:


PARM KWD(FELDER) TYPE(*CHAR) LEN(5) RSTD(*YES) +
DFT(*NAM1) VALUES(*NAM1 *NAM2 *NAM3 *STR +
*PLZ *ORT) MAX(6) EXPR(*YES) +
PROMPT('Adressfelder aus .... ')

PARM KWD(MAPPING) TYPE(MAPELEM) MIN(1) MAX(10) +
PROMPT('Mapping ...')
MAPELEM: ELEM TYPE(*UINT4) MIN(1) EXPR(*YES) +
PROMPT('Startposition')
ELEM TYPE(*UINT4) MIN(1) EXPR(*YES) PROMPT('Länge')
Dieses möchte ich wiederum in einer Liste mit ... sagen wir MAX(10) ... haben.

Geht das überhaupt? Wenn ja - wie?

Danke vorab :)

bwachs
28-01-09, 12:37
Hallo,

vielleicht hilft dies weiter :

System iProgramming CL overview and concepts Version 6 Release 1,
Kapitel : Defining lists within lists, Seite 286 ff.

Gruß

Bernd

kuempi von stein
28-01-09, 13:30
Hatten wir sowas nicht gerade vor kurzenm?

Chapter 9. Defining Commands (http://publib.boulder.ibm.com/iseries/v5r2/ic2924/books/c415721513.htm#HDRDFLST)

kuempi

ebschubert
28-01-09, 14:16
Schaut euch doch bitte mal die Listen an!
Es sind 2(!) Listen und die 2. hat bereits eigene Elemente!

Die Änderung auf :


PARM KWD(MAPDEF) TYPE(MAPLIST) MIN(1) MAX(10)
MAPLIST: ELEM TYPE(*CHAR) LEN(5) RSTD(*YES) DFT(*NAM1) +
VALUES(*NAM1 *NAM2 *NAM3 *STR *PLZ *ORT) +
MAX(6) EXPR(*YES) CHOICE(*NONE) +
PROMPT('Adressfelder aus ...')
ELEM TYPE(MAPELEM) MIN(1) MAX(10) +
PROMPT('Mapping der ...')
MAPELEM: ELEM TYPE(*UINT4) MIN(1) EXPR(*YES) +
PROMPT('Startposition')
ELEM TYPE(*UINT4) MIN(1) EXPR(*YES) PROMPT('Länge')
bringt beim kompilieren folgende Fehlermeldungen:


P D 0 2 6 3 2 9 0 0 2 0 E r f o r d e r l i c h e r P a r a m e t e r n i c h t n a c h w a h l w e i s e m P a r a m e t e r
P a r a m e t e r a n g e n o m m e n .
P D 0 2 5 9 4 0 0 0 1 0 E r f o r d e r l i c h e L i s t e o d e r q u a l i f i z i e r t e r N a m e a l l e r w a h l w e
Q u a l i f i k a t i o n s m e r k m a l e n i c h t e r l a u b t .
P D 0 2 5 8 3 0 M e h r a l s d r e i V e r s c h a c h t e l u n g s t i e f e n f } r S c h l } s s e l w o r t M A
P D 0 2 8 5 4 4 0 0 1 0 E r f o r d e r l i c h e s E L E M n a c h w a h l w e i s e m E L E M n i c h t e r l a u b t . W
a n g e n o m m e n .
P D 0 2 6 3 3 9 0 0 2 0 E r f o r d e r l i c h e r P a r a m e t e r n i c h t n a c h w a h l w e i s e m P a r a m e t e r
P a r a m e t e r a n g e n o m m e n .

ebschubert
28-01-09, 17:12
Zusatz:

Die entscheidende Fehlermeldung ist:


* CPD0258 30 Mehr als drei Verschachtelungstiefen für Schlüsselwort MAPDEF angegeben.

Fuerchau
28-01-09, 17:31
Das ist ja dann wohl eindeutig.