[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Aug 2016
    Beiträge
    33

    Lesen einer log. File mit spezieler Sortierfolge

    Hallo,
    habe ein Programm mit log. File. welche dort eingelesen wird.
    Der Key beinhaltet auch die Lager-Nr. gezont 2, 0.
    Die Lager sind 01 - 99.
    Jetzt soll die Lesefolge geändert werden. Das Lager 05 soll als letztes Lager gelesen werden.
    Frage: Wie kann ich das über eine neue Log.-File lösen?
    Möchte an dem alten Programm nicht viel ändern.
    Gibt es hier eine einfache Lösung?
    Danke.

  2. #2
    Registriert seit
    Jan 2003
    Beiträge
    746
    Zitat Zitat von AKS1 Beitrag anzeigen
    Möchte an dem alten Programm nicht viel ändern.
    Wenn's pragmatisch sein darf:
    Leseschleife (Subroutine?) zweimal ausführen, Schalter aus = ohne 05, Schalter an = nur 05.

  3. #3
    Registriert seit
    Feb 2001
    Beiträge
    20.207
    Jein.
    Erstelle eine neue Tabelle mit "Lager-Nr.", "Sortierfeld".
    Dann kannst du mit dieser Joinen (per SQL oder LF) und nach Sortierfeld lesen.

    Wenn du in SQL bist, dann gehts auch einfach (aber nicht performant):

    select * from (
    select f1, f2, ...
    ,case lager
    when 05 then 99
    when 01 then 05
    when 02 then 01
    other 90
    end lagersort
    from lager
    ) x
    order by lagersort, lager
    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

  4. #4
    Registriert seit
    Aug 2016
    Beiträge
    33
    Danke.
    Werde in der phy. Datei ein neues Feld zur Sortierung anhängen. Dieses Feld wird bei Lager = 05 mit '99' gefüllt. Wenn nicht Lager 05 mit '01'. Somit bin ich für zukünftige Änderungen in der Lesefolge flexibel.
    Das Feld für die Sortierfolge wird dann vor den eingentlichen Lager in der log. Files bei den Keys definiert.

    K Firma
    K Artnr
    K Charge
    K Sortierung
    K Lager
    K Raum
    K Fach
    K Platz

  5. #5
    Registriert seit
    Jul 2002
    Beiträge
    218
    wenn es eine dds beschriebene Datei ist, kann man auch
    K KBBSJH DESCEND
    K KBBSJJ DESCEND
    K KBBSMM DESCEND
    verwenden (hier: Jahrhundert;Jahrzehnt;Monat - jüngster Eintrag zuerst)

  6. #6
    Registriert seit
    Aug 2016
    Beiträge
    33
    Zitat Zitat von jajonowak Beitrag anzeigen
    wenn es eine dds beschriebene Datei ist, kann man auch
    K KBBSJH DESCEND
    K KBBSJJ DESCEND
    K KBBSMM DESCEND
    verwenden (hier: Jahrhundert;Jahrzehnt;Monat - jüngster Eintrag zuerst)
    Wenn Lager 05 das Lager 01 wäre, könnte man absteigend lesen.
    Ist es aber nicht.
    Aus Prod.-Gründen dürfen Rohstoffe (ArtNr,Chargen) nur zuletzt aus dem Lager 05 entnommen werden.

  7. #7
    Registriert seit
    Mar 2002
    Beiträge
    5.286
    ... wenns nur um das lager 05 geht, hilft auch trick 17
    select abs(l.lager_nr - 5) sortfield , l.* from lager l
    order by sortfield desc

    mit ein wenig Gehirnschmalz lässt sich da eigentlich fast jede Sortierung rausentwickeln.

    D*B
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  8. #8
    Registriert seit
    Aug 2001
    Beiträge
    2.869
    Du brauchst weder die physische Datei zu ändern, noch musst Du dein Programm umstricken:
    Du musst lediglich einen neuen (SQL)Index generieren und die logische Datei in Deinem Programm durch den Index ersetzen und neu umwandeln.
    SQL Indices können mit native I/O genauso verarbeitet werden wie geschlüsselte logische Dateien.
    Bei Änderungen musst Du lediglich den Index ändern.

    Das Erstellungsstatement für den SQL-Index sollte in etwa so aussehen:
    Code:
    Create Index YourSchema.YourTable
         (Firma, ArtNr, Charge, Sortierung, 
          Case When Lager = 5 Then 1000
               Else Lager End as SortLager,
          Raum, Fach, Platz)
    Rcdfmt RCDFMTX Add All Columns;
    Im Übrigen kann SQL (seit 7.1) auch solche derived Indices verwenden, vorausgesetzt die Syntax in dem SELECT-Statement stimmt genau mit der Syntax im Index überein.

    Birgitta
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 4. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

Similar Threads

  1. SQL mit variabler Sortierfolge
    By roko in forum NEWSboard Programmierung
    Antworten: 5
    Letzter Beitrag: 25-02-19, 15:14
  2. Noch einmal: Update einer Tabelle mit Wert aus einer anderen
    By Hubert in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 17-10-18, 15:55
  3. Lesen IFS File mit korrekten Umlauten
    By hteufl in forum NEWSboard Programmierung
    Antworten: 12
    Letzter Beitrag: 20-04-15, 10:34
  4. MD5-Hash Code auf Datenbank-File oder IFS-File
    By CaddyMajor in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 07-04-15, 13:07
  5. Antworten: 1
    Letzter Beitrag: 17-10-02, 14:32

Berechtigungen

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