Anmelden

View Full Version : CPYFRMIMPF (Fehler mit Ursachencode 5)



fpxx
16-09-16, 08:53
Liebes Forum,
wieder einmal CPYFRMIMPF.

Von außen bekomme ich eine Import-Datei mit folgendem Aufbau:

Betrag-1,Betrag-2,Betrag-3,Betrag-4,Betrag-5,Kundennumer,Name,Vorname,Titel,Geschlecht,Straß e,Nummer,PLZ,Ort,Tel. ,Mobil,Mail
"157,89","136,69","7,7","8,4","5,1",K122163,Mustermann,Mario,,m,Musterstraße,"4.Stock, RE T15",1234,Ort,,436761234567,vorname.zuname@provider.at

Dh. die Beträge sind unter (eigenartigerweise) Anführungszeichen.
In der Zieldatei (PF) sind die ersten 5 Felder numerisch (mit 2 Dezimalstellen) definiert.

Beim CPYFRMIMPF verwende ich die Parameter DTAFMT(*DLM) FLDDLM(,) DECPNT(*COMMA)

Das führt dann zur Meldung CPF2845, Ursachencode 5
5 = Die Begrenzer für DTAFMT(*DLM) sind nicht gültig.

Mache ich da einen Fehler oder kann man eine Import-Datei in dieser Form nicht übernehmen (weil die Betragsfelder unter Anführungszeichen stehen)?

Vielen Dank für Eure Bemühungen

Fuerchau
16-09-16, 09:04
Es gibt da noch den String-Delimiter der zusätzlich anzugeben ist.

fpxx
16-09-16, 09:14
Bei STRDLM habe ich den Inhalt(' " ')

Fuerchau
16-09-16, 11:05
Ich glaube auch, dass der Import damit nicht zurechtkommt und die Zahlenspalten nicht umsetzen kann.
Hier hilft wohl nur ein Zeichenfeld-Import und die anschließende Verarbeitung mit eigenen Cast (SQL-CAST oder %DEC() in ILERPG).
Ein FLDDLM Komma und ein Dezimal-Komma beißen sich da eben und Dezimalwerte sind nicht erkennbar.
Der Stringdelimiter heißt so, weil er nur Zeichenfelder begrenzt und nicht Zahlenfelder.

fpxx
20-09-16, 07:36
Danke, ich warte noch auf eine Antwort des Daten-Anlieferers, ob als Spalten-Trennzeichen Semikolon möglich ist; dann habe ich sowieso kein Problem.
Ansonst werd ich wohl zum Zeichenfeld-Import greifen müssen.