PDA

View Full Version : Problem mit Shared File



RaMai
13-05-10, 14:06
Nachdem ich ein Programm von RPG zu RPGIV konvertiert habe bekomme ich CPF4123 (Open Options ignored) und daraus folgend CPF5149 beim Chain auf ein in beiden PGM's benutzten File.
Kann mir jemand sagen wie ich das loesen kann?

Danke im vorraus!
MfG
Ralf

Fuerchau
14-05-10, 08:35
Das dürfte mit der einfachen Umstellung auf ILERPG nichts zu tun haben, ggf. hast du die Quellen auch modifiziert.

Bei Shared-Open ist folgendes zu beachten:
Die Art des 1. Opens entscheidet für alle nachfolgenden Open.
Bei Programmende wird ja ggf. auch ein Close mit *INLR=*ON initiiert, so dass der letzte Close den ODP schließt.

M.a.W: Die Reihenfolge der Calls entscheidet!

Wenn also das 1. Programm mit Input öffnet, wird der Update-Open des Folgeprogrammes abgelehnt.

Nun war es bei OPM so, dass der Compiler die Erstellung ablehnte, wenn die F-Declaration nicht zu den verwendeten Befehlen passte.

Ich habe daher häufig die Datei mit Update/Append definiert und in einer $$FILE-SUBSR alle nötigen IO-Befehl aufgeführt, damit der Compiler zufrieden war.

Dem ILE-Compiler ist das nun egal. Ich kann eine Datei für Update/Append definieren ohne entsprechende Befehle zu verwenden.

Ggf. hast du ja die Reihenfolge deiner Calls geändert ?

Ansonsten kannst du in einem Vor-CLP per OPNDBF die benötigten Dateien bereits öffnen und zum Schluss per CLOF wieder schließen.

Zusätzlich kann es auch noch sein, dass das umgestellte Programm nun in einer anderen ACTGRP bzw. nun in einer gemeisamen ACTGRP mit anderen ILE's läuft. Oben gesagtes gilt je ACTGRP.

RaMai
14-05-10, 15:51
Danke fuer die Antwort.
Mein erster Gedanke war auch die Activation Group....als die spielerei damit nichts geholfen hat und google auch keine besseren Ideen hatte hab ich den Thread aufgemacht und die Experten gefragt ;)
Im Endeffekt war das Problem das ein vorgelagertes CL das einen OPNDBF OPTION(*ALL) ausfuehrt im Testsystem nicht aufgerufen wurde.
In den beiden Programmen war die Datei einmal als Output und im anderen als Update definiert was zu den genannten Fehlern fuehrte.

Danke fuer die Hilfe!

Regards
Ralf