Anmelden

View Full Version : 2 PF über 1 LF mischen. PFs haben gleichen Satzformatnamen



Seiten : [1] 2

harkne
30-05-08, 09:18
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 ?

Pikachu
30-05-08, 09:47
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.

harkne
30-05-08, 10:10
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

Fuerchau
30-05-08, 17:14
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.

Pikachu
31-05-08, 15:09
Gib' den Formatnamen nur ein einziges Mal an und dahinter dann PFILE(Datei1 Datei2). ;)

Fuerchau
31-05-08, 18:26
Das ist aber ein Join und keine LF mit 2 Formaten (Union-Select).

Pikachu
31-05-08, 21:05
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.

harkne
18-07-08, 11:44
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

Fuerchau
18-07-08, 12:10
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.