View Full Version : Erstellen einer STMF mittels CL-Programm
Hi zusammen,
ich muß mittels eines noch zu schreibenden CL-Programms eine STMF im IFS erstellen, die einen bestimmten Inhalt haben muß (wird als Steuerdatei für ein Send-SMS-Tool verwendet). Da ich auf der Anwendungsseite der AS/400 kaum Ahnung habe, folgende Fragen:
1. Geht das überhaupt direkt mit CL, oder brauche ich da ein RPG-Programm o.Ä.?
2. Wenn mit CL möglich, wer kann mir bitteschön sagen wie's geht (welche Befehle verwenden, Muster-Pgm etc.)?
Bin für jede Anregung dankbar!
Gruß,
Systemer
probiers mal damit:
CPYTOSTMF
FROMMBR('qsys.lib/libname.lib/filename.file/membername.mbr')
TOSTMF('/dirname/. . ./filename')
STMFOPT(*REPLACE)
STMFCODPAG(*PCASCII)
8ung: die DB darf nicht DDS-beschrieben sein
RobertMack
17-02-03, 17:38
und nach dem Kopieren noch hinterherschicken:
CHGAUT
OBJ('/dirname/. . ./filename')
USER(*PUBLIC)
DTAAUT(*RWX)
OBJAUT(*ALL)
Wie aus den obigen Antworten zu ersehen, muss für CPYTOSTMF bereits eine PF-Datei vorliegen, d.h., dass du mit CL diese PF-Datei NICHT erstellen kannst, da CL keine Daten in eine PF-Datei ausgeben kann.
Du brauchst also doch ein RPG-Programm, dass die Daten zuerst in eine PF-Datei ausgibt, die du dann mittels CPYTOSTMF ins IFS kopierst.
Das Erstellen geht auch einfach mit QSH.
z.Bsp.:
...
QSH CMD('cd /savelogfiles3494;touch _unlocked;chmod 777 _unlocked;exit')
...
Vorraussetzung ist (selbstverständlich) installiertes QShell. Evtl. bekommst du auch über diesen QShell-Weg (vielleicht mit echo und Ausgabeumleitung o.ä.) etwas in die Datei hinein - hab ich noch nicht probiert bzw. gebraucht ...
[Dieser Beitrag wurde von SE am 18. Februar 2003 editiert.]
Danke allen, die mit ihren Tips geholfen haben.
Das CL-Programm ist soweit fertig (wie von mwa400 beschrieben klappert's ganz gut...), habe momentan nur noch Probleme mit CCSID-Differenzen zwischen Quell- und Zieldatei, welche der AS/400 noch Schmerzen bereiten. Hoffe, das kriegen ich morgen in den Griff.
Mfg
Systemer
Sven Schneider
18-02-03, 19:33
Zum Thema Codepage:
1. bei Verwendung von CPYTOSTMF
STMFCODPAG(*PCASCII) --> erzeugt WIN ANSI 1252 Codepage
STMFCODPAG(*STDASCII) --> erzeugt DOS 850 Codepage
2. bei Verwendung von QSH
Hier ist es der Parameter -C beim Shellbefehl touch.
Also z.B. :
QSH CMD('touch -C1252 unlocked;chmod 777 unlocked;exit')
oder
QSH CMD('touch -C850 unlocked;chmod 777 unlocked;exit')
Sven
[Dieser Beitrag wurde von Sven Schneider am 18. Februar 2003 editiert.]
Hallo Sven,
die Anwendung läuft jetzt, allerdings mußte ich die Zieldatei auf Codepage 819 setzen, mit *PCASCII hat die Zielmaschine das nicht angenommen. Ich hatte allerdings auch vergessen zu erwähnen, daß der Zielrechner ein NT-Server ist. Dennoch danke für die Info.