
Zitat von
dschroeder
Hallo,
ich glaube eher, dass man die Struktur nicht direkt im Prototyp definieren darf. Man muss sie unabhängig vom Prototyp deklarieren und dann im Prototyp mit likeds darauf verweisen.
Hier der Code:
D CHK03R_Templ DS 50 Template
D PaSL3 1 2 0
D PaCD3 3 5
D PaBZ3 6 30
D PaKB3 31 35
*
D CheckCode PR EXTPGM('CHKCD01R')
D CHK03R LIKEDS(CHK03R_Templ)
D RC 1A
/free
callp(e) CheckCode(CHK03R:RC);
eval *inlr = *on;
/end-free
Bei diesem Code ist die Struktur im Prototyp einfach ein einzelner Parameter, der mit LIKEDS auf eine Strukturdefinition verweist.
Möglicherweise kannst du die Struktur auch nicht mit CONST deklarieren. Das geht nur, wenn dein Programm CHKCD01R das auch als CONST empfängt.
Gruß,
Dieter
Hallo,
habe es mit Likeds versucht, aber ich kenne den Ausdruck Template nicht bzw. habe auch mit dem noch nicht gearbeitet.
gehört beim Callp(e) CheckCode(CHK03R:RtnCode); nicht das RtnCode entfernt?
Was habe ich da vermurkst?
Code:
D CHK03R_Templ DS 50 Template
D PASL3 1 2 0
D PACD3 3 5
D PABZ3 6 30
D PAKB3 31 35
D*
D CheckCode PR EXTPGM(' CHKCD01R')
d
d CHK03R DS likeds(CHK03R_Templ)
d RtnCode 1a
======> aa
*RNF3703 20 a 013300 Unterfeld- oder Parameterdefinition nicht in einer Gruppe
angegeben.
/FREE
PACD3 = 'TEST';
PASL3 = *ZEROS;
======> aa
*RNF0655 30 2 Der mit dem Schlüsselwort TEMPLATE definierte Eintrag kann in
Callp(e) CheckCode(CHK03R:RtnCode);
*RNF5407 20 2 Mehr Parameter im Prototypaufruf übergeben als zulässig.
IF RtnCode = '0';
// Error in ...
EndIf;
/END-FREE
Bookmarks