[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Oct 2005
    Beiträge
    16

    Problem mit Datenstrukturen - RNF3315

    Hallo Zusammen,

    ich habe ein Problem bei der Definition von Datenstrukturen.

    PHP-Code:
    FDATEI     IF   E           K DISK    PREFIX(FILE)                
                                                                      
    D ACT_DATEI1    E DS                  EXTNAME(DATEIPREFIX(FILE
    D SAVE_DATEI1   E DS                  EXTNAME(DATEIPREFIX(SAVE_)
                                                                      
    D DS_MONATE       DS                                              
    D  FILEJAN                                                        
    D  FILEFEB                                                        
    D  FILEMAR                                                        
    D  FILEAPR                                                        
    D  FILEMAY                                                        
    D  FILEJUN                                                        
    D  FILEJUL                                                        
    D  FILEAUG                                                        
    D  FILESEP                                                        
    D  FILEOCT                                                        
    D  FILENOV                                                        
    D  FILEDEC                                                        
    D AR_MONATE                     12  2 DIM
    (12OVERLAY(DS_MONATE
    Bei der Umwandlung bekomme ich für alle Unterfelder der DS_MONATE einen Fehler RNF3315 - Der Eintrag für den Namen wurde bereits in einer Definitionsbestimmung definiert; standardmäßig werden Leerzeichen angenommen.
    Muss ich hier meine Feldgruppe manuell füllen oder gibt es eine Möglichkeit den RNF3315 zu umgehen?

    Vielen Dank im Voraus!

    Holger

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.701
    Die Felder FileJan bis FileDec sind in ihrer Länge ja nicht definiert!

    Overlay geht meines Wissens nicht auf DS.

    Die Definition sollte andersherum laufen:
    D DS_Monate DS
    D AlleMonate 144
    D FileJan 12 overlay(AlleMonate:1)
    D FileFeb 12 overlay(AlleMonate:*next)
    D :
    D FileDec ...
    D ArMonate 12 dim(12) overlay(AlleMonate)
    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

  3. #3
    Registriert seit
    Oct 2005
    Beiträge
    16
    Hallo Fuerchau,

    die Felder in der Datei sind Jan-Dec und mit 12,2 definiert. Wenn ich ohne die externe Datenstruktur (EXTNAME) arbeite funktioniert alles einwandfrei. Das Problem scheint mir zu sein, dass die Felder nun in zwei verschiedenen Datenstrukturen verwendet werden.

    Gruß Holger

  4. #4
    Registriert seit
    Aug 2003
    Beiträge
    1.508
    Nachdem in der DS ACT_DATEI1 das Prefix nur "FILE" ist, werden diese Felder mit DS_MONATE zusammenstoßen.
    Ich schätze du willst im Prefix "FILE_" verwenden?

    PHP-Code:
    FDATEI     IF   E           K DISK    PREFIX(FILE)                
                                                                      
    D ACT_DATEI1    E DS                  EXTNAME(DATEIPREFIX(FILE_
    D SAVE_DATEI1   E DS                  EXTNAME(DATEIPREFIX(SAVE_)
                                                                      
    D DS_MONATE       DS                                              
    D  FILEJAN                                                        
    D  FILEFEB                                                        
    D  FILEMAR                                                        
    D  FILEAPR                                                        
    D  FILEMAY                                                        
    D  FILEJUN                                                        
    D  FILEJUL                                                        
    D  FILEAUG                                                        
    D  FILESEP                                                        
    D  FILEOCT                                                        
    D  FILENOV                                                        
    D  FILEDEC                                                        
    D AR_MONATE                     12  2 DIM
    (12OVERLAY(DS_MONATE
    lg Andreas

  5. #5
    Registriert seit
    Feb 2001
    Beiträge
    20.701
    Das ist das übliche Problem, dass ein Feld nur einmal in einer DS vorhanden sein darf.
    Möchtest du ein Feld in verschiedenen Strukturen ist "qualified" zu verwenden.
    Ich denke aber nicht, dass dies dein Problem löst, da du dir ja wohl die Move's sparen willst.

    Du kannst natürliche die externe DS um weitere Felder einfach ergänzen.
    Schau dir das Listing an, von welcher Position bis zu welcher die Felder FILExxx gehen und hänge ein

    D AR_Monate P von bis 2 dim(12)

    an.
    Dadurch überlagerst du die entsprechenden Felder mit dem Array.
    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

  6. #6
    Registriert seit
    Nov 2003
    Beiträge
    2.403
    Zitat Zitat von homue Beitrag anzeigen
    Wenn ich ohne die externe Datenstruktur (EXTNAME) arbeite funktioniert alles einwandfrei.
    Na dann laß sie doch weg.

  7. #7
    Registriert seit
    Oct 2005
    Beiträge
    16
    Hallo Zusammen,

    vielen Dank schonmal für die Antworten.
    Der angegebene Sourcecode ist, wie sicher schon aufgefallen ist, nur ein Beispiel.
    Es handelt sich bei den realen Dateien um alte Dateien bei denen Kopf- und Postionsdaten in einem Datensatz stehen. Die Datei aufzuteilen ist mir wegen des Aufwands (Datei wird in vielen Programmen benutzt) nicht möglich.
    Leider stehen in den Dateien die benötigten Felder nicht hintereinander.
    Daher kann ich keine Feldgruppe direkt über die Externe DS legen.
    Die externe DS findet Verwendung im Programm und kann nicht einfach weggelassen werden.
    Kennt keiner eine elegante Möglichkeit ein Array direkt aus den Dateifeldern (nach dem READ des Datensatzes) zu befüllen wenn ich die Felder in einer externen DS verwende?

    Gruß Holger

  8. #8
    Registriert seit
    Jan 2003
    Beiträge
    759
    ...evtl. DS mit OCCURS() statt Felder mit DIM() - einfach vor jedem Read Zähler+1

  9. #9
    Registriert seit
    Feb 2001
    Beiträge
    20.701
    Außer Einzelmoves (halt Tipparbeit und ggf. 2 Subroutinen für hin und zurück) gibt es da leider direkt nichts elegantes.

    Eine Möglichkeit (releaseabhängig) sind "qualified" Strukturen.
    In diesem Fall kann man "eval-corr" verwenden um Felder gleichen Namens zu übertragen.
    Allerdings müssen dann beide Strukturen qualified sein und i.M. weiß ich nicht, wie man in den F-Bestimmungen die qualified-Struktur zum Befüllen angibt.

    Desweiteren erfolgen dann alle Zugriffe immer per "Strukturname.Feldname", was wohl zu einigen Codeänderungen führt.
    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

Similar Threads

  1. Problem mit Datenstrukturen und Feldgruppen
    By homue in forum NEWSboard Programmierung
    Antworten: 1
    Letzter Beitrag: 06-10-08, 19:53
  2. Problem mit Java-Methoden Aufruf aus ILE RPG?
    By Stoeberl in forum NEWSboard Programmierung
    Antworten: 8
    Letzter Beitrag: 10-01-07, 10:58
  3. Problem mit Steuerzeichen in Datenbank?
    By Stoeberl in forum NEWSboard Programmierung
    Antworten: 11
    Letzter Beitrag: 26-10-06, 10:07
  4. Authorization Problem nach ändern der Primary Group
    By ChrisX in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 11-10-06, 15:31
  5. Merkwürdiges Problem in VRPG
    By Flappes in forum IBM i Hauptforum
    Antworten: 0
    Letzter Beitrag: 06-10-06, 08:39

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •