B.Hauser
22-01-15, 06:34
Ich denke die Dokumentatin ist eindeutig:
1. Nur echte Main-Procedures (alle Statements vor dem ersten P-Statement) unterliegen dem RPG-Zyklus.
Der RPG-Zyklus wird immer integriert, auch dann wenn Dateien nicht mit IP oder UP definiert und verarbeitet werden.
Variablen, die in den globalen D-Bestimmungen definiert werden, gehören zu der Main-Procedure und können somit mit und durch den RPG-Zyklus gesteuert werden.
Wird eine Main-Procedure mit LR beendet, werden alle Variablen, die in der Main-Procedure definiert wurden beim nächsten Aufruf initialisiert. (So war es schon immer und das wurde nicht geändert)
2. Wird eine Main-Procedure mit RETURN (ohne LR) beendet, werden in der Main-Procedure definierten Variablen beim nächsten Aufruf nicht initialisiert, sofern der Aufruf in der gleichen Aktivierungsgruppe erfolgt.
Die in der Main-Procedure definierten Variablen werden immer beim ersten Aufruf innerhalb einer Aktivierungsgruppe initialisiert.
Da die Main-Procedure dem Zyklus unterliegt kann der Zyklus auch die Initalisierung der Variablen steuern.
(Das wurde seit Einführung von ILE so gehandelt!)
3. Procedures unabhängig davon, ob nur intern definiert oder exportiert oder als lineare Main-Procedures hinterlegt, unterliegen nicht dem Zyklus und folglich kann auch der Zyklus die Initialisierung der Variablen (weder der "normalen" lokalen, noch der statischen lokalen) nicht steuern.
Die Initialisierung der statischen Variablen hängt von der Aktivierungsgruppe ab, d.h. nur beim ersten Aufrfu innerhalb einer Aktivierungsgruppe werden die Variablen initialisiert. Alles andere muss manuell (im Programm-Code) gehandelt werden.
Birgitta
1. Nur echte Main-Procedures (alle Statements vor dem ersten P-Statement) unterliegen dem RPG-Zyklus.
Der RPG-Zyklus wird immer integriert, auch dann wenn Dateien nicht mit IP oder UP definiert und verarbeitet werden.
Variablen, die in den globalen D-Bestimmungen definiert werden, gehören zu der Main-Procedure und können somit mit und durch den RPG-Zyklus gesteuert werden.
Wird eine Main-Procedure mit LR beendet, werden alle Variablen, die in der Main-Procedure definiert wurden beim nächsten Aufruf initialisiert. (So war es schon immer und das wurde nicht geändert)
2. Wird eine Main-Procedure mit RETURN (ohne LR) beendet, werden in der Main-Procedure definierten Variablen beim nächsten Aufruf nicht initialisiert, sofern der Aufruf in der gleichen Aktivierungsgruppe erfolgt.
Die in der Main-Procedure definierten Variablen werden immer beim ersten Aufruf innerhalb einer Aktivierungsgruppe initialisiert.
Da die Main-Procedure dem Zyklus unterliegt kann der Zyklus auch die Initalisierung der Variablen steuern.
(Das wurde seit Einführung von ILE so gehandelt!)
3. Procedures unabhängig davon, ob nur intern definiert oder exportiert oder als lineare Main-Procedures hinterlegt, unterliegen nicht dem Zyklus und folglich kann auch der Zyklus die Initialisierung der Variablen (weder der "normalen" lokalen, noch der statischen lokalen) nicht steuern.
Die Initialisierung der statischen Variablen hängt von der Aktivierungsgruppe ab, d.h. nur beim ersten Aufrfu innerhalb einer Aktivierungsgruppe werden die Variablen initialisiert. Alles andere muss manuell (im Programm-Code) gehandelt werden.
Birgitta