View Full Version : Variablen in COBOL-Programm werden ungewollt initialisiert.
Ein COBOL-Programm wird von einem RPG-Programm mehrmals aufgerufen. Beim 1. Aufruf werden Dateien geöffnet, verschiedene Variablen mit Werten befüllt und dann das Programm mit GOBACK verlassen. Beim 2. Aufruf erwartet das COBOL-Programm, dass die Dateien noch immer geöffnet und die Variablen befüllt sind, aber die Dateien sind geschlossen und alle Variablen initialisiert. Früher muss das aber offensichtlich so funktioniert haben, denn die Programme sind schon jahrelang im Einsatz. Woran kann es liegen, dass sich das Verhalten verändert hat?
prüf doch mal, in welcher Aktivierungsgruppe die Programme laufen. Wenn es nicht die gleiche ist, dann kann das schon die Ursache sein, bei Verlassen einer Aktivierungsgruppe werden nämlich alle offenen Dateien geschlossen, etc.
Beispiel RPG (ILE)
Programm . . . . . . . : xxxpgm
Attribut der Aktivierungsgruppe . . . . . . . : *DFTACTGRP
die Aktivierungsgruppe muss bei beiden Programmen die selbe sein.
Karl-Heinz
Handelt es sich um ILE Programme, dann kannst du dir die Aktivierungsgruppe mit DSPPGM anzeigen.
Mögliche Werte sind z.B. QILE, *CALLER, *NEW.
Gruß
Matthias
Vielen Dank für die Hinweise, das hat mir sehr weitergeholfen!
Wenn sowohl das aufrufende als auch das aufgerufene Programme mit dem Parameter ACTGRP(*CALLER) compiliert werden, dann funktioniert es wieder wie gewohnt und gewollt.
MfG
Roland
Wenn sowohl das aufrufende als auch das aufgerufene Programme mit dem Parameter ACTGRP(*CALLER) compiliert werden, dann funktioniert es wieder wie gewohnt und gewollt.
Genau, weil dann die Aktivierungsgruppe vom vorherigen Programm übernommen wird.