PDA

View Full Version : CPYFRMIMPF



Ralf_02
17-01-07, 07:56
Hallo *ALL,

folgendes Szenario:

Eine Textdatei ohne Dateinamenerweiterung wird in einen Ordner im IFS gespeichert.
Ich möchte die Datei per CPYFRMIMPF in eine Teildatei welche nur ein alphanumerisches Feld enthält einlesen.
Die Felder welche ich brauche möchte ich später per RPG-Programm auslesen.
Hier das Dateiformat:
DATA|086423|150|1|1|0388771090 |774642| |SCHRANK O AU|10.01.2007|1|0|0|0|0|0| | 239.00|01510838804033|83880403| |6|0|0|010|00|01.01.0001|xxxxx xxxxxxxx|xxxxxxxxxxx 2|97074|xxxxxxx|06|xxxx|xxxxx|22172|HES/DLW|xxxxxxx GMBH U.CO.KG|xxxxxxxxxxx|D-767|xxxxxxxxxxxxxxx|120| 0|0||9| |0931/782636|00|0000| |0|0|0| 0.00| 0.00|00|00000000000|000|D|00000000000000|Für eventuelle Rücksendungen am Artikel belassen. Bitte nicht überkleben.|2|0|DLW|LOEHNE | | | | | |xxxxxxx7|4|xxx|xxxxxxx|20088|KEINE |KEINE |KEINE |xxxx|0|(GmbH&Co KG)|OTTO||01.01.0001|1| | | | |01.01.0001|0|1|0|10.01.2007|0|0| | | | |0|0|0|0|01.01.0001| |0|0|0

Hier mein Befehl mit Fehlermeldung zu der ich bisher nichts finden konnte:
QSYS/CPYFRMIMPF FROMSTMF('/otto_test/wsi') TOFILE(SWVOEGSRC/EX_OTTO) RCDDLM(*LFCR)
Eigentumsrecht für Objekt QCPIMTEMPS in QTEMP Art *USRSPC geändert.
Eigentumsrecht für Objekt QACPTEMP01 in QTEMP Art *USRSPC geändert.
Eigentumsrecht für Objekt QCFT119323 in QTEMP Art *USRSPC geändert.
Eigentumsrecht für Objekt Q0F14 in QTEMP Art *FILE geändert.
Kopiervorgang aufgrund von Ursachencode 98 nicht durchgeführt.

Ich hoffe ich habe eine mögliche Lösung nicht im Forum übersehen.

Im Voraus Vielen Dank !!!

Ralf

Fuerchau
17-01-07, 08:24
CPYFRMIMPF ist hier der falsche Ansatz da grundsätzlich Feldbegrenzer angegeben werden.
CPYFRMSTMF ist der korrekte Befehl. Du musst nur eine PF mit CCSID 65535 "CRTPF FILE(MYSTMF) RCDLEN(256)" anlegen.

TARASIK
17-01-07, 08:25
Hallo Ralf,
da habe ich dies dazu gefunden:
DESCRIPTION OF PROBLEM FIXED FOR APAR SE19561 :
-----------------------------------------------
The parsing of a FROMFILE on a CPYFRMIMPF command to find a
valid record delimiter can result in MCH0601 messages when the
record delimiter is not found within an expected range of
FROMFILE data. This typically happens when a record delimiter
is encountered within a pair of string delimiters or after a
dangling string delimiter.

CORRECTION FOR APAR SE19561 :
-----------------------------
Message CPF2845 with undocumented reason code 98 is now issued
and the CPYFRMIMPF processing is stopped when a valid record
delimiter is not found within an expected range of FROMFILE
data.

CIRCUMVENTION FOR APAR SE19561 :
--------------------------------
None.

Ralf_02
17-01-07, 09:09
Hallo Fuerchau,

vielen Dank für die schnelle Antwort.
So wie es aussieht habe ich noch ein Pfadproblem, siehe folgende Fehlermeldung:

QSYS/CPYFRMSTMF FROMSTMF('/otto_test/wsi') TOMBR('/qsys.lib/swvoegsrc/ex_
otto2') MBROPT(*ADD)
Fehler beim Versuch, Objektnamen aufzulösen.
Datenstromdatei nicht kopiert.

Da ich noch neu auf diesem Gebiet bin, bitte ich mir solche Fragen noch nachzusehen.

Gruß

Ralf

Fuerchau
17-01-07, 09:31
Libs: XXX.LIB
Files: XXX.FILE
Member: XXX.MBR

Also:

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

Ralf_02
17-01-07, 10:40
Hallo Fuerchau,
es hat perfekt geklappt.

Nochmals vielen Dank für die schnelle und kompetente Hilfe !!!

Gruß

Ralf

Marc Cautreels
19-01-07, 09:28
Hello
I think I have the same problem:
my CPYFRMIMPF (using a stramfile ends in error with error code 98. Unfortunately my knowledge of the German language is too limited to understand the solution. Is it possible to give some explanation in English?
Thanks in advance.
Kind regards
Marc Cautreels (Belgium)

My command
===> CPYFRMIMPF FROMSTMF('/Marc/Party.txt') TOFILE(PGMR_MCA/PARTY) RCDDLM(*CRLF
) FLDDLM(*TAB) DECPNT(*COMMA) FROMRCD(*FIRST 056) IDCOL(*FROMFLD)

Fuerchau
19-01-07, 10:00
First, you must have fielddelimiters in the source !
As RCDDLM you can use *ALL, because if the combination *CRLF is not found, this error occurs. Perhaps you have only *CR or *LF or *LFCR as RCDDLM.

The solution above is, that the destination file contains only 1 field so you can't use CPYFRMIMPF and must use CPYFRMSTMF.