[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Jan 2008
    Beiträge
    58

    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ß

  2. #2
    Registriert seit
    Jan 2012
    Beiträge
    1.120
    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

  3. #3
    Registriert seit
    Jan 2008
    Beiträge
    58
    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.

  4. #4
    Registriert seit
    Jan 2007
    Beiträge
    905
    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

  5. #5
    Registriert seit
    Jan 2008
    Beiträge
    58
    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.

  6. #6
    Registriert seit
    Dec 2014
    Beiträge
    310
    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)

  7. #7
    Registriert seit
    Nov 2003
    Beiträge
    2.307
    In diesem Fall mußt du über den Namen der logischen Datei lesen (und nicht über den Namen eines Formats).

    Zitat Zitat von hel400 Beitrag anzeigen
    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)

  8. #8
    Registriert seit
    Dec 2014
    Beiträge
    310
    Genau so ist es auch, habe nichts anderes behauptet :-)

  9. #9
    Registriert seit
    Jan 2008
    Beiträge
    58
    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...

  10. #10
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    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.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  11. #11
    Registriert seit
    Jan 2008
    Beiträge
    58
    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

  1. CL-Problem
    By iginla in forum IBM i Hauptforum
    Antworten: 8
    Letzter Beitrag: 31-03-03, 09:59
  2. QRY - Problem
    By Günter Majewski in forum IBM i Hauptforum
    Antworten: 0
    Letzter Beitrag: 07-01-03, 15:10
  3. SQL - Problem
    By Tommy in forum IBM i Hauptforum
    Antworten: 7
    Letzter Beitrag: 16-12-02, 16:43
  4. RPG Problem
    By Mädele in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 22-11-02, 17:06
  5. SQL Problem
    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
  •