PDA

View Full Version : Messe-Datentransferproblem



David_R
06-02-04, 15:55
Hallo,

vor kurzem waren wir auf einer Messe und haben unsere Produkte ausgestellt. Die hier erstellten Aufträge werden ersteinmal in einer Datenbank auf unserem Novell-Server gespeichert. Nach der Messe wollten wir die Daten (Neukunden, Aufträge etc.) auf die AS/400 übertragen, damit wir sie weiter bearbeiten und pflegen können. Bei der Übertragung transferiert er 3 Dateien. Eine enthält die Neukunden, eine die Auftragsköpfe und eine die ganzen Positionen der Aufträge. Die Neukunden konnte man einwandfrei auf der AS/400 bearbeiten, jedoch die Aufträge nicht. Wenn man den Menüpunkt wählt, bei dem er die Aufträge generieren soll, bekommt man folgenden Fehler:

Job 425395/CF/DSP19 im Subsystem QINTER in QSYS am 06.02.04 um 15:24:22 gestartet

Datums-, Zeit- oder Zeitmarkenwert ist ungültig (C G D F)

Bei der Ursache der Meldung steht folgendes:

RPG-Prozedur MS001R in Programm Y2KLIB/MS001R hat bei Anweisung 767 auf eine Datums-, Zeit- oder Zeitmarkenvariable Bezug genommen, die einen ungültigen Wert enthielt.

Leider kann ich nichts mit dieser Meldung anfangen. In der Datenbank auf dem Novell-Server hab ich bei den Auftragsköpfen die Datum-Spalte überprüft, jedoch keinerlei Unregelmäßigkeiten festgestellt. Vielleicht hat jemand von Ihnen schon Erfahrung mit solch einer Meldung.

Würde mich über eine baldige Antwort sehr freuen.

Gruß David Reinbold

Fuerchau
06-02-04, 16:01
Nun hängt es von der verwendeten Methode der Übertragung ab !

Wie kommt das Datum im RPG an ?
Standard ist das ISO-Format: "JJJJ-MM-TT"
Bestimmung in der H-Zeile: HDATFMT(*ISO)

Ggf. müssen die Daten in dieses Format umgesetzt werden.

David_R
06-02-04, 16:21
Danke für die schnelle Reaktion.

In der Datenbank auf dem Novell-Server steht das Datum in folgendem Format drin: 31.01.04

Wie es letztendlich in der AS/400 ankommt weiß ich nicht. Aber ist es denn auch möglich, dass das Datum irgendwie einen falschen Wert hat ? Sprich es steht 31.02.04 in einer Zeile ?

Nach deiner Antwort gibt es also zwei Möglichkeiten, an denen es scheitern könnte.
1. Das Datum wird in einem falschen Format übergeben oder
2. Das Datum hat einen ungültigen Wert

Welches Format müsste das Datum haben, damit die AS/400 nicht meckert ?

Fuerchau
06-02-04, 16:47
Wie gesagt, das liegt am RPG-Programm wie dieses das Datum erwartet.

Woher ist denn die Datenquelle ?

Vielleicht ist ein Datum NULL und in der AS/400 ist ALWNULL(*NO) definiert ?

David_R
06-02-04, 17:16
Könnte sein, aber eher unwarscheinlich, denn in der Datenbank hat bei keinem Datum den Wert 0 .

Beim Transfer schreibt er 3 Tabelle, also Auftragskopf, Auftragspositionen und die Neukunden, in 3 Dateien auf die AS/400. Mit einem Befehl übernimmt er dann die Neukunden in seine Datenbank und mit einem weiteren Befehl sollte er die Aufträge für diese Kunden generieren, was er leider nicht macht.

B.Hauser
06-02-04, 18:27
Hallo Reinhold,

es ist müsig sich jetzt hier einen zusammen zuraten.
Beantworte die Fehlermeldung mit D=Dump.

Es wird eine Liste erzeugt, in der auch alle Felder mit Inhalt zum Abbruchzeitpunkt dargestellt sind.

Der Abbruch erfolgte bei Statement 767.
Schau in den Quellcode, welche Felder in dieser Zeile angesprochen werden.

Vergleiche die Feldinhalte der Felder im Dump.

Das hilft am ehesten weiter.

Übrigens Datums-Format 31.01.04 ist Format *DMY.
Wenn im Programm z.B. *ISO (2004-01-31 ist Unterlassungswert) angegeben wäre, gäbe es ein Problem.
RPG kann jedes beliegige Datums-Format bearbeiten, nur, man muss hinterlegen mit welchem Format gearbeitet wird.

Birgitta

David_R
06-02-04, 18:59
OK, dann werd ich das gleich morgen früh machen. Vielen Dank nochmal an alle, die mir geholfen haben ;)

Wenn ich den Fehler behoben habe, poste ich hier mein Ergebnis.

Gruß David Reinbold