-
RENAME Problem
Hallo *All,
ich habe zur Abwechslung eine RPG Frage :
wie soll man eine Datei im RPG deklarieren, die folgenden Aufbau hat :
A R LKOPPFF1 PFILE(LKOPEIN LKOPPF LKOPSEND)
A*
A K LKUNDE
A K LTEXT
Das sind drei verschiedene Dateien mit dem gleichen Schlüssel.
Bei der Umwandlung bekommt man Fehlermeldung :
*RNF2121 30 1 Satzformatname in extern beschriebener Datei bereits
definiert; das Satzformat wird ignored.
Ist OK, muss man umbenennen aber wie ?
Mit RENAME(LKOPPFF1:LKOPPFFA) wird nur das zweite Formatname umbenannt –
und weiter ?
Nächstes RENAME(LKOPPFF1:LKOPPFFB) im Programm produziert den Fehler :
Der Eintrag für den externen Satzformatnamen wurde bereits umbenannt.
Gibt es dazu eine Lösung ?
Danke im Voraus.
Gruß
-
Ich verstehe nicht, was du machen möchtest. Du kannst nicht einfach 3 verschiedene Dateien als eine Datei im RPG ansprechen. Du könntest mit DDS eine Join-File erstellen und die dann im RPG ansprechen. Ich würde allerdings empfehlen, den Datenzugriff mit embedded SQL (die 3 Dateien joinen) zu realisieren.
Dieter
-
Hallo Dschroeder ,
die drei Dateien haben den gleichen Aufbau, die gleichen Satz- und Feldnamen - das geht.
Geht nicht diese 3 Dateien als JFILE zuverknüpfen.
-
Versteh ich nicht ganz. Du hast die Dateien so definiert?
PHP-Code:
FFILE1F IF E K DISK F RENAME(FILE1G:REC1) FFILE2F IF E K DISK F RENAME(FILE1G:REC2) FFILE3F IF E K DISK F RENAME(FILE1G:REC3)
Das muss gehen. Ausserdem würde ich noch einen Prefix definieren oder in eine qualifizierte DS einlesen. (Nur wenn separate Reads gewünscht werden)
Anmerkung:
Der oben beschriebene Kontstrukt geht sehr wohl, da ein logisches File unter dem Keyword "PFILE" durchaus mehrere Files zulässt. PFILE(F1 F2 F3).
Ich hab in meiner ganzen Karriere noch nie sowas gebraucht. Man lernt halt nie aus.
kf
-
Hallo Camouflage,
vielleich habe ich mich nicht richtig ausgedrück - das ist mein Ziel:
in den 3 Dateien gibt es ein Satz mit eingegebenem Text (Schlüsselfeld). Auf den Satz möchte ich positionieren und in einer SFL die Sätze anzeigen.
Also müsste man die Datei so deklarieren :
FFILE1F IF E K DISK
F RENAME(FILE1G:REC1)
F RENAME(FILE1G:REC2)
was netürlich nicht funktioniert.
-
Hallo a.wojcik,
ich kenne solche "Multiformat-Files" nur so:
*
R REC01 PFILE(LKOPEIN)
Feld1
Feld2
K Feld1
*
R REC02 PFILE(LKOPPF)
Feld1
Feld2
K Feld1
*
... usw...
Also nicht alle PFs in einer REC-Zeile, sondern die gewünschten PFs nacheinander mit eigener(!) REC-Angabe, somit entfällt auch das Umbenennen im RPG.
Im Pgm erhältst Du dann (wie gewünscht) die Sätze aus allen 3 Dateien in der richtigen Key-Folge.
(Kleiner Nachteil bei der obigen Art: Du musst alle gewünschten Felder einzeln in der LF angeben)
-
In diesem Fall mußt du über den Namen der logischen Datei lesen (und nicht über den Namen eines Formats).
Zitat von hel400
Also nicht alle PFs in einer REC-Zeile, sondern die gewünschten PFs nacheinander mit eigener(!) REC-Angabe, somit entfällt auch das Umbenennen im RPG.
Im Pgm erhältst Du dann (wie gewünscht) die Sätze aus allen 3 Dateien in der richtigen Key-Folge.
(Kleiner Nachteil bei der obigen Art: Du musst alle gewünschten Felder einzeln in der LF angeben)
-
Genau so ist es auch, habe nichts anderes behauptet :-)
-
Hallo hel400,
Dein Vorschlag wäre gut, wenn die Satzformate in meinen 3 Dateien nicht den gleichen Namen hätten - dafür brauche ich nämlich das RENAME im RPG...
-
Du musst das schon ein deiner LF regeln.
Wenn die 3 Satzformate leider identisch sind, musst du in deiner LF die Satzformate neu benennen und den Nachteil in Kauf nehmen, alle Felder dann einzeln aufzuführen.
Einfach nur die Kopie des Satzformates funktioniert dann nicht.
Der RPG-Compiler kann nun mal je Datei sich nur für 1 Satzformat entscheiden.
Dass die DDS-LF dies unterstützt liegt nun mal an anderen HLL (z.B. COBOL), die damit keine Probleme haben.
Das Problem ist doch beim READ die Erkennung des richtigen Satzformates (INFDS) für die Zuweisung zu den richtigen Variablen. Schließlich wird in der INFDS das Format und nicht die Datei geliefert.
Die Umbenennung ist rein intern zur Laufzeit für die RPG-Sprache erforderlich damit EA-Befehle auf Satzformat das Richtige auslösen.
-
Hallo *All,
tja, was nicht geht, geht nicht.
Ich muss dann doch (und ist mir lieber) mit SQL versuchen.
Danke für Eure Bemühungen.
Similar Threads
-
By iginla in forum IBM i Hauptforum
Antworten: 8
Letzter Beitrag: 31-03-03, 09:59
-
By Günter Majewski in forum IBM i Hauptforum
Antworten: 0
Letzter Beitrag: 07-01-03, 15:10
-
By Tommy in forum IBM i Hauptforum
Antworten: 7
Letzter Beitrag: 16-12-02, 16:43
-
By Mädele in forum IBM i Hauptforum
Antworten: 2
Letzter Beitrag: 22-11-02, 17:06
-
By HoScHiE in forum IBM i Hauptforum
Antworten: 4
Letzter Beitrag: 03-06-02, 13:30
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks