-
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
-
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(TestOut: TestOutF)
/Free
Read TestOutF;
If Not %EOF()
BDARTN = *Blanks;
Update TestOutF;
EndIf;
*INLR = *On;
Return;
/End-Free;
Birgitta
-
Beim Wandeln wird eine Spooldatei erstellt. Sie dir diese einmal an. Da steht drin, was für Fehler beim Wandeln aufgetreten sind.
-
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
-
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
-
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
-
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
-
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
-
Kann diese Datei über die Bibliotheksliste gefunden werden? Mach mal WRKF TESTOUT. Wird sie da angezeigt?
-
klingt so als ob deine tabelle nicht in deiner bibliotheksliste zu finden ist. dann findet der kompiler auch nix.
-
-
 Zitat von AS400.lehrling
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
-
By rebe in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 07-03-08, 10:18
-
By timeless in forum IBM i Hauptforum
Antworten: 5
Letzter Beitrag: 11-01-07, 12:04
-
By Stoeberl in forum NEWSboard Programmierung
Antworten: 8
Letzter Beitrag: 10-01-07, 10:58
-
By jth in forum NEWSboard Programmierung
Antworten: 1
Letzter Beitrag: 21-12-06, 11:13
-
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
-
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