View Full Version : OVRDBF auf eine bereits überschriebene Datei
Starocotes
26-02-14, 10:44
Hi
ich habe einige RPG Programme (nicht von mir geschrieben) die auf bestimmte Dateien nutzen. In diesen Programmen wird über eine Abfrage eventuell ein OVRDBF gemacht. Es kann also sein das die Programme entweder DateiX oder DateiY benutzen. Das funktioniert auch prima.
Jetzt müsste ich aber unter bestimmten Voraussetzungen das umbiegen auf DateiZ.
Alle Programme in diesem Ablauf wo das relevant ist zu ändern wäre recht mühselig, zumal das Feld das aktuell für die Abfrage genutzt wird aus dem LDA kommt und auch für andere Dinge herangezogen wird.
Wenn ich aber jetzt VOR dem ganzen sowohl DateiX als auch DateiY mit DateiZ überschreibe macht der OVRDBF IN den Programmen das ja eventuell wieder zunichte.
Jemand ne grandiose Idee was man da machen kann?
NIX!
Mit OVRDBF ... SECURE(*YES) könntest du ggf. was erreichen, kommt auf einen Versuch an.
Wenn die Programme des allerdings auch nutzen, musst du halt doch die Programme ändern.
Wenn du die Datei mit share(*yes) überschreibst und öffnest,
dürften die ovr's im PGM ins leere laufen
Robi
Starocotes
26-02-14, 11:42
Danke erstmal.
Ich hab jetzt beides probiert aber in jedem Fall ersetzt er die Überschreibung.
Bei dem Secure(*YES) bezieht er sich glaub ich nur auf die Paramter. Wenn ich aber auf eine neue Datei überrschreibe ersetzt der das komplett.
Also doch in die Tiefen einsteigen.
Eine bereits offene Datei kann nicht neu überschrieben werden.
Ist das ggf. ein ACTGRP Thema?
OVR auf *JOB ebene,
SHARE(*yes)
und die Datei öffnen ! (zur Not mit einem RPG-PGM 3-Zeiler)
Robi
Share bezieht sich wie gesagt nur auf bereits offene Dateien.
Mache ich einen OVRDBF will ich ja eine andere Datei und nicht auf eine bereits geöffnete Datei zugreifen.
Share(*YES) ist sowieso gefährlich, da ich mich damit nicht mehr auf Dateizeiger verlassen kann.
Ich mache schon mal Änderungen in "alten" ERP's und mache da schon mal OVRDBF SHARE(*NO) um einen eigenen Zeiger zu erhalten.
Starocotes
26-02-14, 11:53
Eine bereits offene Datei kann nicht neu überschrieben werden.
Ist das ggf. ein ACTGRP Thema?
OVR auf *JOB ebene,
SHARE(*yes)
und die Datei öffnen ! (zur Not mit einem RPG-PGM 3-Zeiler)
Robi
Ah, jetzt Ja.
Das werde ich mal testen, Danke.
Starocotes
26-02-14, 12:01
Okay, kann ich auch vergessen:
Bei mir sieht das in etwa vereinfacht folgendermaßen aus:
ProgrammA
If Schalter
OVRDBF FILE(DateiX) TOFILE(DateiY)
Endif
open DateiX
Machwas
close DateiX
call ProgrammB
ProgrammB
If Schalter
OVRDBF FILE(DateiX) TOFILE(DateiY)
Endif
open DateiX
Machwas
close DateiX
Selbst bei nem SHARE(*YES) und nem open vorher würde ja ProgrammB wieder den OVRDBF machen können.
Ich denke ich lege mir noch nen Datenbereich an den ich einlese und als neuen Schalter verwende nur für MEIN OVRDBF verwende.
Starocotes
26-02-14, 12:56
Sorry, muss euch nochmal als "Reflektor" missbrauchen.
Datenbereich ist nicht weil die Programme in Theorie paralell laufen können.
Datenbereich in QTEMP würde wieder voraussetzen, das ich zuerst prüfe ob der da ist weil ProgammA und ProgrammB auch woanders aufgerufen werden können.
Wo bekomme ich nen Jobbedingten Parameter her der "automatisch" da ist?
???????????
Der LDA ist Jobbedingt
Parallel interaktiv im selben job geht nicht
Parallel im Batch = 2 LDA
oder was meinst du?
Robi