PDA

View Full Version : Fehler CEE0502 bei der Ausführung des API CEEDOD



HeymannJ
09-11-12, 10:32
Hallo zusammen,

hat jemand Erfahrung mit dem API CEEDOD mit dem man Eingangsparameter einer Prozedur auswerten kann. Ich bekomme immer den Fehler CEE0502 (Fehlender Operationsdeskriptor)


P CALLPROG B EXPORT

D CALLPROG PI OPDESC
D $p1 10


D CEEDOD PR
D 10I 0 CONST
D 10I 0
D 10I 0
D 10I 0
D 10I 0
D 10I 0
D 12A OPTIONS(*OMIT)

* Parameters passed to CEEDOD
D ParmNum S 10I 0
D DescType S 10I 0
D DataType S 10I 0
D DescInfo1 S 10I 0
D DescInfo2 S 10I 0
D InLen S 10I 0
D HexLen S 10I 0
D FeedBack S 12A

/Free

ceedod(1 : DescType : DataType :
DescInfo1 : DescInfo2 : Inlen :
*OMIT);

Fuerchau
09-11-12, 10:50
Wenn die Pozedur von extern ohne OPDESC augerufen wird, kann auch keiner da sein.

HeymannJ
09-11-12, 11:03
Hallo Baldur,

vielen Dank für die schnelle Antwort.

Hat funktioniert.

Kann ich dieses API auch auf per Pointer übergebene Parameter verwenden?

Gruß
Jürgen

Fuerchau
09-11-12, 11:39
Ein Pointer verweist ja nur auf die Daten und ist eben selber nur als Pointer definiert.
Was dann dahinterliegt weiß alleine die Anwendung.

Mit OPDESC zu arbeiten ist allerdings im ILE-Umfeld die schlechteste Art der Programmierung.

Prozeduraufrufe sollten immer definierte Parametertypen haben und nie generisch arbeiten.
Die Gefahr des falschen Aufrufs ist damit sehr hoch und die Anwendung wird eher unhandlich.

Im Sinne von Objektorientierung wird das auch von keiner anderen Sprache so unterstützt.
Java und .NET z.B. werfen dann Exceptions (analog CPF-Meldungen) aus wenn eine Schnittstelle nicht korrekt bedient wird.