View Full Version : 2 PF über 1 LF mischen. PFs haben gleichen Satzformatnamen
Hatte bereits ein Themas aufgemacht mit Join File, was aber nicht stimmt.
Also folgendes:
Ich habe 2 Physische Dateien. Eine beinhaltet aktuelle Daten die zweite ist eine Archivdatei und beinhaltet ältere Daten. Jetzt brauche ich die Daten aus beiden Dateien. Also habe ich eine logische gemacht die beide Dateien beinhaltet
0007.00 A R IBTRNF TEXT('ORDER HEADER FILE L31')
0008.00 A PFILE(IBTRNP)
0009.00 A*<< KEY FIELD DEFINITION >>
0009.01 A K IBIHID
0013.00 A*
0014.00 A R IBTRNF TEXT('ORDER HEADER ARCHIVE FILE ')
0015.00 A PFILE(IBARCP)
0015.01 A*<< KEY FIELD DEFINITION >>
0015.02 A K IBIHID
Aber hier liegt genau der Hund begraben. Beide Dateien haben den selben Satzformatnamen. Gibt es ein Schlüsselwort um den Satzformatnamen umzubenennen oder irgendeine andere Möglichkeit ?
Du kannst beide physischen Dateien im Parameter PFILE() angeben, siehe hier in der Beschreibung zum DDS-Parameter PFILE (http://publib.boulder.ibm.com/iseries/v5r1/ic2929/info/rzakb/rzakbmst61.htm#HDRLPFILE). Allerdings wird es schwierig, diese Datei in ein RPG-Programm einzubinden, da sie doppelte Formatnamen enthält. Falls sie jeden Satzformatnamen nicht mehr als zweimal enthält, kannst du versuchen, den jeweils ersten vorkommenden mit RENAME(extern:intern) (http://publib.boulder.ibm.com/iseries/v5r1/ic2924/books/c0925083305.htm#HDRFRENAME) umzubenennen.
Er wandelt mir die logische Datei schon gar nicht um wegen den gleichen Satzformatnamen. Deshalb auch meine Frage nach einem Schlüsselwort das es vielleicht gibt um den einen Satzformatnamen bereits in der logischen Datei umzubenennen
Das geht natürlich, indem du als R-Satz einen neuen Namen angibst.
Allerdings musst du dann alle benötigten Felder anschliessend einzeln aufführen.
Gib' den Formatnamen nur ein einziges Mal an und dahinter dann PFILE(Datei1 Datei2). ;)
Das ist aber ein Join und keine LF mit 2 Formaten (Union-Select).
Bei einem SELECT * FROM LF wird bei so einer LF jedes Feld aber nur ein einziges Mal angezeigt, und als Ergebnis erscheint der Inhalt aus beiden physischen Dateien.
Also ich habs jetzt so gemacht dass ich 1 Satzformatname und dahinter bei PFILE zwei Dateien angegeben habe.
Wie kann ich jetzt im Programm erkennen aus welcher Datei der Satz kommt ?
Außerdem wandelt er mir das Programm erst gar nicht um wegen gleicher Satzformatnamen in einer Datei
Danke für die Hilfe
Die Satzformatnamen kannst du in RPG umbenennen, damit sie von der Datei unterschieden werden.
Beim Lesen mit Datenamen, steht der Formatname in der anzugebenden INFDS.
kuempi von stein
18-07-08, 12:58
Hallo,
habe das mal versucht hinzubekommen.
Es geht rudimentär aber mehr nicht.
Dein Problem ist wohl der gleiche Recordformatname innerhalb des RPG.
Um es vorweg zu nehmen, ich denke SO geht das nicht.
Ich kann diese neue LF weder sauber Positionieren noch weiss ich an der Stelle ob der Dateninhalt aus Datei 1 oder Datei 2 kommt.
Da bringt auch die INFDS nix, weil die ja die Daten der logischen File liefert.
Warum machst Du nicht für jede PF (welche ja vermutlich in unterschiedlichen LIBS stehen) eine eigene LF und verarbeitest dann im Programm beide LF nach Deinen Vorstellungen?
Erzähl mal mehr vom Hintergrund...
k.