[NEWSboard IBMi Forum]
Seite 1 von 2 1 2 Letzte

Hybrid View

  1. #1
    Registriert seit
    Dec 2009
    Beiträge
    43

    Einstieg in RPG Programmierung ?!?

    Hallo Leute,

    ich versuche mich gerade in RPG reinzudenken -> bisher relativ erfolglos.

    Habe bisher nur C++, Delphi und PHP unter Windows programmiert.

    Ich habe mir also mit einer query eine Daten-Datei erstellt.

    Die Feldnamen(Spaltennamen) in der Datei lauten BDAUN7 und BDARTN.

    Jetz will ich mir einfach ein simples RPG schreiben, welches mir im ersten Satz den Spaltenwert von BDARTN in *BLANK umwandelt.
    Habe dazu das Tutorial von TexAS400 durchgearbeitet.

    Die Datei TESTOUT ist die Ergebnisdatei der Query.


    Mein Code:

    ------------------------------------------
    FTESTOUT UF F DISK
    C READ TESTOUT 90
    C MOVE *BLANK BDARTN
    C UPDATETESTOUT
    C MOVE *ON *INLR
    C RETRN
    ------------------------------------------

    Ich versteh das nicht, beim Übersetzen kommt immer ein Fehler 30.

    MfG watchdogg

  2. #2
    Registriert seit
    Aug 2001
    Beiträge
    2.928
    Bei Native I/O muss der Update immer über den Format und nicht den Datei-Namen erfolgen. Sind Datei und Format-Name identisch, muss der Format-Name über das Schlüssel-Wort RENAME in den F-Bestimmungen umgesetzt werden.

    Und wenn Du gerade mit RPG anfängst, dann bitte nicht mit der antiquierten Form (RPGIII), in der zwar immer noch codiert werden kann, die aber seit 15 Jahren nicht mehr weiterentwickelt wurde!
    RPGIV hat viel mehr Möglichkeiten, z.B. Free-Format und Built-In-Funktionen.

    Hier Dein Source-Code in RPGIV
    PHP-Code:
    FTestOut    UF             F      Disk    Rename(TestOutTestOutF)
     /
    Free
        Read TestOutF
    ;
        If 
    Not %EOF()
           
    BDARTN = *Blanks;
           
    Update TestOutF;
        EndIf;
        *
    INLR = *On;
        Return;
     /
    End-Free
    Birgitta
    Birgitta Hauser

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

  3. #3
    Registriert seit
    Nov 2003
    Beiträge
    2.403
    Beim Wandeln wird eine Spooldatei erstellt. Sie dir diese einmal an. Da steht drin, was für Fehler beim Wandeln aufgetreten sind.

  4. #4
    Registriert seit
    Aug 2003
    Beiträge
    1.508
    wenn der record-name der tabelle der gleiche ist, wie die tabelle selbst, wirst du bei einem update probleme haben.
    du musst in den definitionen noch ein rename durchführen und das update den umgenannten record absetzen.

    Code:
    FTESTOUT  UF   F           K DISK    
    F                                     rename(TESTOUT:TESTOUTR)
    C                   update    TESTOUTR
    wenn du das mit SQL machst ersparrst du dir das. ist geschmacksache.

    lg andreas

  5. #5
    Registriert seit
    Dec 2009
    Beiträge
    43
    Huch ging das scnell.
    Erstmal vielen dank an euch alle.

    @B.Hauser

    ich probier deinen Code gleich mal aus. Kann man den FreeStyle auf jeder Maschine ohne Probleme verwenden?



    @Pikachu

    die Spooldatei hab ich mir schon angesehen, da stehen ja die Fehler drin. Kann man dort auch die Zeile erkennen, wo der Fehler im Code auftritt?

    MfG watchdogg

  6. #6
    Registriert seit
    Apr 2005
    Beiträge
    385
    free geht nur wenn due ILE RPG nutzt, beim guten alten RPGIII geht das leider nicht!

    da musst du eine Fortsetzungszeile zu der F-Karte machen z.B.

    F TESTOUT KRENAME TESTR

  7. #7
    Registriert seit
    Aug 2003
    Beiträge
    1.508
    am ende des spools erhälst du eine zusammenfassung:

    Code:
    N a c h r i c h t e n z u s a m m e n f a s s u n g
     Msg-ID  Sv Nummer Nachrichtentext                 
    *RNF7575 00      1 Die Datenstruktur enthält Felder m
                       Datenart. Diese Felder werden igno
    *RNF7030 30      1 Der Name oder die Bezugszahl/der A
                       definiert.                        
    *RNF7503 30      1 Ausdruck enthält einen Operanden,
    RNF7030 = fehler-id
    30 = schwierigkeitsgrad
    1 = wie oft der fehler aufgetreten ist

    beispiel:
    im spool mit RNF7030 suchen
    dann kommst du zu den zusätzlichen informationen:
    Code:
     Msg-ID  Sv Nummer Folge   Nachrichtentext                 
    *RNF7030 30     77 001600  Der Name oder die Bezugszahl/der
                               definiert.                      
    *RNF7575 00     13 001300  Datenstruktur TESTDS hat Felder
    und in diesem fall wäre 77 die satznummer im spool, in dem der fehler auftritt.
    Code:
    75 C                   PARM                    S
    76 C     SQL_00003     IFEQ      '1'            
    77 C                   EVAL      SP1 = SQL_00005
    78 C                   END

  8. #8
    Registriert seit
    Dec 2009
    Beiträge
    43
    habe es jetzt so geschrieben mit RPGLE:

    FTestOut UF E K Disk Rename
    (TestOut: TestOutF)
    /
    Free
    Read TestOutF
    ;
    If
    Not %EOF()
    BDARTN = *Blanks;
    Update TestOutF;
    EndIf;
    *
    INLR = *On;
    Return;
    /
    End-Free;

    klappt aber nicht.

    Fehlermeldung: Datenbeschreibungen für Datei TESTOUT nicht gefunden.

    Ich glaub, das mit RPG und mir wird nie funktionieren.

    MfG watchdogg

  9. #9
    Registriert seit
    Nov 2003
    Beiträge
    2.403
    Kann diese Datei über die Bibliotheksliste gefunden werden? Mach mal WRKF TESTOUT. Wird sie da angezeigt?

  10. #10
    Registriert seit
    Aug 2003
    Beiträge
    1.508
    klingt so als ob deine tabelle nicht in deiner bibliotheksliste zu finden ist. dann findet der kompiler auch nix.

  11. #11
    Registriert seit
    Jul 2005
    Beiträge
    1.053
    Zitat Zitat von watchdogg Beitrag anzeigen
    habe es jetzt so geschrieben mit RPGLE:

    FTestOut UF E K Disk Rename
    (TestOut: TestOutF)
    /
    Free
    Read TestOutF
    ;
    If
    Not %EOF()
    BDARTN = *Blanks;
    Update TestOutF;
    EndIf;
    *
    INLR = *On;
    Return;
    /
    End-Free;

    klappt aber nicht.

    Fehlermeldung: Datenbeschreibungen für Datei TESTOUT nicht gefunden.

    Ich glaub, das mit RPG und mir wird nie funktionieren.

    MfG watchdogg
    Schauhe dir mal Rechenzentrum Kreuznach - die AS/400-Profis an
    Da hat Holger eine gute einführung mit einigen Beispielen

    Gruß AS400.lehrling

  12. #12
    Registriert seit
    Jul 2001
    Beiträge
    2.713
    Zitat Zitat von AS400.lehrling Beitrag anzeigen
    Da hat Holger eine gute einführung mit einigen Beispielen
    Ja, aber leicht überarbeitungswürdig, wenn ich mal Zeit finde. Vielleicht sollte ich mich mit Biggi zusammentun - obwohl die ja auch nicht immer Zeit hat ;-)

    Schönes neues 2010 Euch allen!

    -h

Similar Threads

  1. suche (3-Tage) Schulung für Einstieg RPG IV
    By rebe in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 07-03-08, 10:18
  2. Bibliotheksliste in RPG IV abfragen
    By timeless in forum IBM i Hauptforum
    Antworten: 5
    Letzter Beitrag: 11-01-07, 12:04
  3. Problem mit Java-Methoden Aufruf aus ILE RPG?
    By Stoeberl in forum NEWSboard Programmierung
    Antworten: 8
    Letzter Beitrag: 10-01-07, 10:58
  4. RPG goes Web
    By jth in forum NEWSboard Programmierung
    Antworten: 1
    Letzter Beitrag: 21-12-06, 11:13
  5. Rpg to java
    By Badener in forum NEWSboard Java
    Antworten: 5
    Letzter Beitrag: 13-07-06, 17:09

Berechtigungen

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