PDA

View Full Version : Aktivierungsgruppen



philsturm
29-10-14, 12:06
Hallo zusammen,

ich habe ein Problem beim Erstellen einer Hauptprozedur. Es gibt ein Programm mit folgenden ControlOptions (H-Bestimmungen):



main(Main)

dftactgrp(*NO)
actgrp(*NEW)

alwnull(*USRCTL)
option(*SRCSTMT:*NODEBUGIO:*NOUNREF)


Die weiteren Serviceprogramme sollen dann teilweise die actgrp(*caller) bekommen.

Jetzt möchte ich das Hauptprogramm mit CRTSQLRPGI (Pendant zu CRTRPGMOD) als *Module kompilieren. Der Compiler wirft mir aber folgenden Fehler aus:

RNF1324 Die Schlüsselwörter DFTACTGRP, ACTGRP und USRPRF sind nicht zulässig.


Ich bin mir aber ziemlich sicher, dass ich das so mal gelernt habe. Kann mir da jemand auf die Sprünge helfen, was den Zusammenhang zwischen dem Kompilierungsbefehl und der ACTGRP angeht?

Danke!

Fuerchau
29-10-14, 12:12
Diese Schlüsselworte gelten nur für Programme.
Du willst aber ein Modul erstellen.
In welchem Programm du das Modul dann verwenden willst, entscheidest du mit dem CRTPGM/CRTSRVPGM da du ein Modul durchaus in unterschiedlichen Programmen direkt einbinden kannst.

philsturm
29-10-14, 12:20
OK, in welcher Aktivierungsgruppe laufen dann dann die Serviceprogramme die ich aus einem Programm aufrufe?

Fuerchau
29-10-14, 12:26
Schau dir die Befehle CRTPGM/CRTSRVPGM an.
Dort definierst du wie sonst in der H-Zeile die ACTGRP.
Beim
CRTPGM: *NEW/*CALLER/Name
CRTSRVPGM: *CALLER/Name

Siehe auch entsprechende DSPxxx-Befehle.

philsturm
31-10-14, 10:35
Danke, jetzt hab ich's... :)