Anmelden

View Full Version : Verwenden API CEETSTA



dziage
21-12-05, 15:17
Hallo Forum,

bin grad dabei ein paar neue Prozeduren zu zimmern. Nun stehe ich vor dem Problem, mit Hilfe von CEETSTA zu prüfen, welche Parameter übergeben wurden. Bei Verwendung einer Prozedur mit CEETSTA erhalte ich aber jetzt leider immer die Fehlermeldung "Auflösung zu Objekt CEETSTA nicht möglich. Art und Subart X'0201', Berechtigung X'0000'." (MCH3401).

Habe meine Prozedur mit CRTRPGMOD erstellt, diese anschließend in ein (neues) BNDDIR eingetragen und das benutzende Programm dann schließlich mit CRTBNDRPG erstellt. Dabei wurden sowohl beim CRTBNDRPG-CL-Kommando als auch in den h-Anweisungen in der Source die Angaben DFTACTGRP(*NO), ACTGRP(*NEW) und als BNDDIR QSYS/QILE als auch mein neu erstelltes verwendet.
Solang ich kein CEE-API verwende scheint das Ganze auch wie gewünscht zu funktionieren.

Hat denn bitte irgendjemand 'nen Tip für mich übrig, woran das liegen kann. Was mache ich falsch? Oder fehlt mir am Ende gar das API? Bin für jede Anregung offen.

Vielen Dank

Fuerchau
21-12-05, 15:35
Diese API's sind keine Programme sondern Funktionen:

If you use ILE RPG, you call an ILE CEE API using the following syntax.

C CALLB 'CEExxxx'
C PARM parm1
C PARM parm2
...
C PARM parmn
C PARM fc

Note: Operational descriptors are used for some of the ILE CEE APIs, for example, CEEDATE. Refer to the section on #pragma descriptors in the WebSphere Development Studio: C/C++ Language Reference book for information on how to properly pass arguments to these ILE CEE APIs from inside a C program.

B.Hauser
21-12-05, 16:27
Warum machst Du es überhaupt so kompliziert?
OMMITTED Parameter können direkt auf *NULL geprüft werden.


/Free
If %Addr(Parm1) = *NULL; //Mit *OMMIT übergeben
Else;
EndIf;
/End-Free


Birgitta

dziage
21-12-05, 16:33
Hallo B.Hauser, hallo Fuerchau,

bin echt begeistert wie schnell hier die Antwortzeiten sind. Wirklich spitze! Danke.

Wenn man das so einfach mit *NULL testen kann, ja dann werd ich das wohl so machen. War mir bisher einfach nur nicht bewusst, daß das so einfach funktioniert.

Nochmal herzlichsten Dank