PDA

View Full Version : Parameterliste im ILE



muadeep
04-07-06, 13:04
Hallo,

hab da mal wieder ein kleines (für mich großes) Problem


* *entry = Parameterliste
D ExPerEm PR ExtPgm('EXPEREM')
D lfdNr 5 0
D Parm1 50a options(*nopass) const
D Parm2 50a options(*nopass) const
D Parm3 50a options(*nopass) const
D Parm4 50a options(*nopass) const
D Parm5 50a options(*nopass) const
D Parm6 50a options(*nopass) const
D Parm7 50a options(*nopass) const
D Parm8 50a options(*nopass) const

D ExPerEm PI
D lfdNr 5 0
D Parm1 50a options(*nopass) const
D Parm2 50a options(*nopass) const
D Parm3 50a options(*nopass) const
D Parm4 50a options(*nopass) const
D Parm5 50a options(*nopass) const
D Parm6 50a options(*nopass) const
D Parm7 50a options(*nopass) const
D Parm8 50a options(*nopass) const

wenn ich jetzt das Programm EXPEREM wie folgt aufrufe:

CALL PGM(EXPEREM) PARM(X'00110F' 'mAAAAAAAA@BBB-CCCCCCCCCC.de' 'xAAAAAAAA@
BBB-CCCCCCCCCC.de')

dann wird der erste Parameter "Parm1" nach exakt 33 Stellen
mit dem Wert des zweiten Paramter gefüllt !!!

was ist daran falsch, etc.

Fuerchau
04-07-06, 13:08
Siehe hierzu folgenden Beitrag:
http://www.rlpforen.de/showthread.php?t=9824&highlight=CALL+parameter

muadeep
04-07-06, 14:36
oh, dankeschön

gibt's irgendeine Möglichkeit das ich die Parameter trotzdem "variable" (also mal 20ig stellig, mal 30ig. stellig, etc.) übergeben kann?

Fuerchau
04-07-06, 14:57
Nur in dem du ein CMD entwickelst, mit
PARM KWD(FELDX) TYPE(*CHAR) LEN(50) VARY(*YES)
Dann kannst du den Parameter als VARYING (oder varlen) definieren, da dem Feld ein 2-Byte-Längeninformation vorangestellt wird.
Rufst du das Programm aus CLP oder anderen Programmen auf, kannst du dies genauso handhaben, den Prototyp also entsprechend definieren.