Zitat Zitat von Fuerchau Beitrag anzeigen
Wie Dieter nun sagen würde, Fehler im Design.
Inwiefern?

Zitat Zitat von Fuerchau Beitrag anzeigen
Wenn du sicher sein willst, dass der folgende Aufruf eines OPM's immer mit *INZSR beginnt, verwende eben die "FREE"-Anweisung.
Das weiss ich ja. Aber dass das und wie das auf einer AS400 funktioniert ist ja nicht das Problem. Außerdem ist FREE nicht dasselbe wie RCLRSC, weil FREE (nach meiner Kenntnis) die Files nicht schließt.

Aber vielleicht sollte ich mal ein bisschen aus dem Nähkästchen plaudern, weil sonst das Problem schlecht nachvollziehbar ist.

Wie arbeiten an einer RPG und CL Konvertierung in C++. Der Kunde hat ca.30 Millionen Lines of Code in RPG, davon können wir aktuell knapp 90 Prozent umsetzen. Wichtig ist: Es geht hier (fast) ausschließlich um das OPM.

Nun ist es eine der wesentlichen Eigenschaften von RPG (bzw. der AS400), dass Programme nach dem verlassen ihren Status behalten, sofern man nicht LR setzt. Das ist natürlich ein kolossal wichtiges Feature, welches wir auch sehr präzise unterstützen.

Für eine korrekte CL-Umsetzung müssen wir nun natürlich genau verstehen, was RCLRSC tut. Es tut übrigens, weil das oben kurz erwähnt wurde, im Prinzip exakt das gleiche wie RCLACTGRP, nur das man eben im ILE die Activation Groups benennen kann, und im OPM immer die default Activation Group gilt. Somit ist ILE sehr viel flexibler, und weil das reine RCLRSC Konzept das nicht hergibt, hat man damals für die erweiterten ILE-Möglichkeiten eben RCLACTGRP geschaffen.

Aber soviel nur am Rande, es ja um das OPM.

Mit dieser Information ist es sicher einleuchtend, dass mir alternative Wege, die ich auf einer AS400 beschreiten könnte, nicht so viel nützen. Ich muss einfach nur verstehen, wie RCLRSC exakt funktioniert.