-
![Zitat](images/misc/quote_icon.png) Zitat von RobertMack
Ja, kannst Du.
P.S. Wenn die Datei (CRTSRCPF) mit ACCPTH(*KEYED) erstellt wurde, kannst Du auch CHAINen ...
Ok danke. ![Smilie](images/smilies/smile.gif)
Gruß Martin
-
Bei den von mir geschrieben Programmen, habe ich mich nie um SRCSEQ gekümmert, sondern habe immer nur in die Datei geschrieben. Da ich aber dies nur mit "normalem" RPG und nicht mit ILERPG gemacht habe, sollte hier die Frage nach dem Formatnamen beantwortet werden. Denn im RPG muss in der Dateibeschreibung ein RENAME durchgeführt werden, weil Dateiname = Formatname ist.
FQPNLSRC O E DISK
F QPNLSRC KRENAMESRCOUT
Gruß
DVE
-
Hallo ich bins wieder,
ich hätte noch eine Frage bzgl. cl und rpg.
Zz sieht mein CL Prgramm so aus:
PHP-Code:
PGM CPYSRCF FROMFILE(DOMMZO/TESTDDS) + TOFILE(DOMMZO/TESTDDS2) FROMMBR(TESTDDS) OVRDBF FILE(DDSTEST2) TOFILE(DOMMZO/DDSTEST2) + MBR(DDSTEST2) OVRSCOPE(*JOB) CALL PGM(DDSWRITE) /** DLTOVR FILE(TESTDDS2) LVL(*JOB) **/ ENDE: RETURN ENDPGM
Erst von einem Muster eine Kopie machen. Diese zu überschrieben bereit machen und dann das RPG Programm aufrufen.
DLTOVR brauche ich doch eigentlich nicht da es Änderungen am jeweiligen File ja rückgängig macht.
Und mein RPG Programm sieht so aus.
PHP-Code:
H DftActGrp(*NO) ActGrp(*CALLER) H alwnull(*USRCTL) FTESTDDS2 uf A e k disk DSRCSEQ S 6 2 DSRCDAT S 6 0 DSRCDTA S 80A C eval srcseq = 0001 C eval srcdat = 060911 C eval srcdta = 'dies ist ein test' C write testdds2 C return
Ich wollte einfach nur testen ob ich einen Satz schreiben kann. Dabei bekomme ich diese Meldungen.
PHP-Code:
*RNF7066 00 4 000400 Satzformat TEST für Eingabe oder Ausgabe nicht verwendet. *RNF5063 30 18 001300 Operand in Faktor 2 darf für diese Operation keine extern beschriebene Datei sein.
Wo liegt der Fehler? Habe ich mich mit den Dateien / Membern vertan? Muss ich das File(/Member) anders definieren?
[EDIT]
PS: Klappt das mit dem Write so einfach oder muss ich die 3 SRCXXX noch irgendwie setzen?
Danke!
[/EDIT]
-
Also:
CPYSRCPF kann ersetzt werden durch ADDPFM !
Der OVRDBF leitet die Ausgabe deiner Datei um, der DLTOVR entfernt nur die Umleitung.
Es ist sicherer, die Umleitung wieder zu entfernen, wenn sie nicht mehr benötigt wird, da sie sonst während der Laufzeit des Jobs (*DFTACTGRP) aktiv bleibt.
Beim WRITE gib das Satzformat und nicht den Dateinamen an.
Mit dem EVAL weist du den SRC-Feldern doch Werte zu.
-
Hi,
laß die D-Zeilen weg und ändere die F-Zeile:
"O " statt "UF" (Alternative: dummy read hinter retrn)
+ (TESTDDS2:TESTOUT) zum Umbenennen des Satzformats
...auf die schnelle, ohne Garantie ;-)
oooh, Kollege Fuerchau war schneller...
-
Argh stimmt warum geb ich da die Datei an....
Danke an euch beide!
-
Hallo,
es gibt mehrere Möglichkeiten. Man kann z.B. die Source-Datei auch intern beschreiben. Etwa so:
PHP-Code:
FTestDDS2 O F 92 DISK
*-----------------------------------------------------
D DSSRC DS
D SrcSeq 6S 2
D SrcDat 6S 0
D SrcDta 80A
*-----------------------------------------------------
/Free
SrcSeq = 1;
SrcDat = 060911;
SrcDta = 'Dies ist ein Test';
Write TestDDS2 DSSRC;
/End-Free
Birgitta
-
Hallo,
kann ich die Datei auch variabel definieren? Zb.: Ich übergebe dem CL Programm eine char-Variable die einen (zukünftigen) Dateinamen enthält. Diese Datei wird dann vom CL Programm erzeugt. Das CL Programm ruft dann das RPG Programm auf welches mithilfe des Strings die Datei definiert und dann darauf zugreift.
Gruß
Martin
-
Auch dem CLP kannst du Parameter übergeben:
PGM PARM(&VAR)
DCL &VAR *CHAR 10
-
![Zitat](images/misc/quote_icon.png) Zitat von Fuerchau
Auch dem CLP kannst du Parameter übergeben:
PGM PARM(&VAR)
DCL &VAR *CHAR 10
Oh ich habe mich wahrscheinlich nicht deutlich ausgedrückt. Meine Frage war ob und wie ich in RPG eine Datei(F-Bestimmung) Variabel definieren kann. Also das Programm bekommt eine char-Variable die den Dateinamen der Datei enthält, auf die zugegriffen werden soll.
Ist das möglich und falls ja wie?
Danke.
Martin
-
Hello,
irgendwie werde ich das Gefühl nicht los, dass das alles viel einfacher wäre, wenn Du mal Dein konkretes Problem beschreiben würdest....
Zu Deiner letzten Frage:
Die Struktur einer DDS ist ja im Prinzip immer die gleiche.
Also 6 Stellen SourceSequenz, 6 Stellen Datum und 80 Stellen Daten.
Man kann nun ohne Probleme verschiedene Wege angehen, sowas mehr oder weniger variabel zu händeln.
Da wurden hier schon diverse gute Lösungsansätze gebracht.
Wenn Du im RPG eine DDS ansprechen willst, von der Du zur Wandlungszeit nicht den korrekten Namen hast, reicht ein einfaches OVRDBF vorher um den variablen Namen damit auf die im RPG fixierten Anweisungen zu verdrehen.
Das kannst Du entweder vorher per CLP machen oder auch innerhalb des RPG wenn Du die Datei Usercontrolled bearbeitest.
Musst Dir nur das aussuchen, was am einfachsten für Dich ist.
Lass uns doch mal an der konkreten Problematik teilhaben...
k.
-
![Zitat](images/misc/quote_icon.png) Zitat von kuempi von stein
Hello,
irgendwie werde ich das Gefühl nicht los, dass das alles viel einfacher wäre, wenn Du mal Dein konkretes Problem beschreiben würdest....
Zu Deiner letzten Frage:
Die Struktur einer DDS ist ja im Prinzip immer die gleiche.
Also 6 Stellen SourceSequenz, 6 Stellen Datum und 80 Stellen Daten.
Man kann nun ohne Probleme verschiedene Wege angehen, sowas mehr oder weniger variabel zu händeln.
Da wurden hier schon diverse gute Lösungsansätze gebracht.
Wenn Du im RPG eine DDS ansprechen willst, von der Du zur Wandlungszeit nicht den korrekten Namen hast, reicht ein einfaches OVRDBF vorher um den variablen Namen damit auf die im RPG fixierten Anweisungen zu verdrehen.
Das kannst Du entweder vorher per CLP machen oder auch innerhalb des RPG wenn Du die Datei Usercontrolled bearbeitest.
Musst Dir nur das aussuchen, was am einfachsten für Dich ist.
Lass uns doch mal an der konkreten Problematik teilhaben...
k.
Hm also:
Mein Problem ist das ich von einem Programm aus Mithilfe 2er Datenbankdateien eine DDS Datei erzeugen können soll. Ich habe also den Namen der zu erstellenden Datei und die Definitionen(SRCDTA) und muss daraus eine DDS Datei erzeugen.
Bisher hat es sich so rausgestellt das es das beste und einfachste wäre dies über CL und RPG zu machen.
Zzt habe ich noch 2 Probleme.
1. Wie kann ich in RPG die Datei so definieren das ich auf sie zugreifen kann? Weil ich den Namen der Datei auf die ich zugreifen soll übergeben bekomme. ZB.: Ich mache ein
PHP-Code:
ADDPFM FILE(LIB/DDSTEST2) MBR(DDSTEST3)
Auf dieses neue Member will ich zugreifen und in es meine Werte schreiben. Das Problem dabei ist wie gesagt das ich den Namen ja erst übergeben bekomme dh. eine normal Definition ist unmöglich(?).
2. Ich kann meiner Datei:
PHP-Code:
Ausw. Objekt Art Attribut TESTDDS2 *FILE PF-DTA
nicht mit ADDPFM ein neues Member hinzufügen da diese Datei nur ein Member haben darf und ich nicht weiß wie ich das ändern soll.
Ich bin wie gesagt noch ein Neuling auf der i5 bzw beim Programmieren auf der i5.
Vielen Dank für eure Hilfe im Vorraus.
Gruß
Martin
Similar Threads
-
By homue in forum NEWSboard Programmierung
Antworten: 5
Letzter Beitrag: 18-07-07, 16:47
-
By Stoeberl in forum NEWSboard Programmierung
Antworten: 8
Letzter Beitrag: 10-01-07, 10:58
-
By Squall in forum NEWSboard Programmierung
Antworten: 9
Letzter Beitrag: 10-10-06, 08:53
-
By Squall in forum IBM i Hauptforum
Antworten: 31
Letzter Beitrag: 28-09-06, 17:53
-
By Angela in forum IBM i Hauptforum
Antworten: 4
Letzter Beitrag: 22-08-06, 10:11
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