PDA

View Full Version : Datei (aus Spool) ins IFS hochladen, umnd Spool-Attribute ändern



loeweadolf
30-05-20, 23:04
Moin, ich habe sofort zwei Probleme:

01. Ich habe Spooldateien zu einer Datendatei erstellt mit CPYSPLF.
Das klappt.
Dann möchte ich diese erstellte Datendatei ins IFS hochladen.
Das habe ich versucht mit CPYTOIMPF.

Das Übertragen funktioniert, aber ich kann diese Daten im IFS nicht mehr lesen., Ich sehe nur Hieroglyphen. Was habe ich falsch gemacht ?

CPYSPLF FILE(&DAT) TOFILE(&LIBNA/&DATNA) +
JOB(&nro/&use/&job) SPLNBR(&lfd) +
MBROPT(*ADD) CTLCHAR(*PRTCTL)


/* DAT */ /* --> DATEI ins IFS übertragen */
CPYTOIMPF FROMFILE(&LIBA/&DATNAM) TOSTMF(&IFSNAM) +
MBROPT(*REPLACE) STMFCODPAG(*PCASCII) +
RCDDLM(*CRLF) DTAFMT(*FIXED)

Im IFS ist die Datei vorhanden mit dem richtigen Namen: AB10_200530_03.txt
aber leider nicht lesbar.

Zweites Problem: Ich möchte eine Spooldatei in eine andere OUTQ schieben und gleichzeitig den Status ändern und andere Attribute auch.

Das habe ich versucht mit CHGSPLFA
CHGSPLFA FILE(&DAT) JOB(&NRO/&USE/&JOB) SPLNBR(&LFD) +
FORMTYPE(*STD) OUTQ(*LIBL/P2FARCHIV) +
SAVE(*YES)

Das klappt auch wohl, aber ich weiss nicht wie ich den Status ändern kann.
Der Status vorher kann sein: RDY, HLD oder SAV, soll anschl. aber immer asuf RDY stehen. Ich weiss nicht, wo ich das angeben kann.

Vielleicht kann mir jemnd helfen bei einen beiden Problemen ??

Fuerchau
31-05-20, 11:08
Für CPYSPLF muss die PF ja CCSID 65535 haben.
Somit kann CPYTOIMPF die Quell-CCSID nicht interpretieren und damit auch nicht umwandeln.

Verwende eine Quell-CCSID (ich weiß den Schlüssel i.M. nicht, ggf. FROMCCSID) deines Jobs (e.g. 273/1141).
Als ZielCCSID empfehle ich 1252 (ANSI) da PCSASCII der 850 entspricht (CMD-Boxen, OEM-CP) und du damit Umlautprobleme bekommst.

Für 1-Feld Binär-PF's wäre der CPYTOSTMF auch besser.

Um den Status RDY zu erhalten gibts den Befehl RLSSPLF, umgekehrt für HLD eben HDLSPLF.
SAV gibts nur bei tatsächlichem Sendeerfolg.

loeweadolf
01-06-20, 23:34
Vielen Dank für die Antwort. Das hat mir sehr geholfen.
Ich habe die mit CPYSPLF erstellte Datei mit CPYF in eine selbst erstellte Datei mit nur einem Datenfeld kopiert, die dann nicht mehr CCSID 65535 hatte, sondern CCSID 273.
Diese konnte ich dann mit CPYTOIMPF ins IFS ohne Probleme kopieren.

RLSSPLF habe ich auch eingesetzt, zusätzlich zum CHGSPLFA. Das geht gut. Ich habe nur gemerkt, wenn die Spool-Datei bereits auf RDY stand, dann kam eine Fehlermeldung CPF3322. Die konnte ich dann aber mit MONMSG abfangen.

Ich finde es immer wieder gut, dass man bei speziellen Aufgaben in diesem Forum qualifizierte Antworten bekommt.

Nochmals vielen Dank.

Fuerchau
02-06-20, 08:55
Statt des CPYF in eine weitere PF empfehle ich halt CPYTOSTMF. Für 1-Feld-Dateien ist das Ergebnis ja das selbe, es sei denn du brauchst Spaltenüberschriften.

loeweadolf
02-06-20, 17:19
Ich hatte gestern mit CPYTOSTMF versucht. Irgendwie kam ich mit dem "FROMMBR" nicht klar.
Dann habe ich das mit der neuen Datei und CPYF versucht. Das hat dann funktioniert.
Jetzt werde ch das erst mal so lassen.i

Fuerchau
02-06-20, 17:27
Fürs nächste mal:

'/QSYS.LIB/MYLIB.LIB/MYFILE.FILE/MYFILE.MBR'

Bei Mehrmemberdateien (aber wer hat die schon noch außer Sourcen) kann eben jedes beliebige Member auf diese Weise verwendet werden.

loeweadolf
02-06-20, 17:40
ok danke, werde ich mir zur Seite legen. Dann kann ich es im Bedarfsfall verwenden.