Anmelden

View Full Version : Ganz einfach ???



Seiten : [1] 2

DEVJO
09-02-05, 10:52
Hallöchen an alle,

ich habe hier ein Problem, welches ich mir beim Besten Willen nicht erklären kann und mich dazu langsam in den Wahnsinn treibt. Ich habe ein Programm, welches aus einer DTAQ einen Datensatz ausliest. In diesem Datensatz sind die ersten 3 Stellen eine "Fehler ID", mit der ich einen ganz normalen CHAIN auf eine Datei mach, wie ich es schon tausendmal gemacht habe und wie weitere Tausend Programme es in unserer Anwendung auch machen auf diese Datei, nirgendwo gibt es ein Problem. Nur bei diesem einen Programm bekomme ich folgende Fehlermeldung:

Nachrichten-ID . . . . : RNQ0222 Bewertung . . . . . . : 99
Nachrichtenart . . . . : Anfrage
Sendedatum . . . . . . : 09.02.05 Sendezeit . . . . . . : 11:42:32

Nachricht . . . : Zeiger- oder Parameterfehler (C G D F).
Ursache . . . . : In RPG-Prozedur SET51 in Programm TEST_TCP/SET51 ist bei
Anweisung 231 aufgrund eines nicht korrekt gesetzten Zeigers ein Fehler
aufgetreten. Mögliche Fehlerursachen sind:
-- Ein Basiszeiger wurde nicht gesetzt.
-- Ein Prozedurzeiger wurde nicht gesetzt.
-- Der Zeiger wurde gesetzt, das Objekt, auf das er Bezug nimmt, wurde
jedoch zerstört.
-- Ein Parameter wurde nicht an das Programm übergeben, das die Prozedur
enthält.
-- Ein Parameter wurde nicht vom Aufrufer innerhalb des Programms an die
Prozedur übergeben.
-- Eine relative Zeigerposition überschritt die Größe des Bereichs, auf
den der Zeiger zeigte.
Fehlerbeseitigung: Das Jobprotokoll auf weitere Informationen zur
Fehlerursache prüfen und den für die Programmpflege verantwortlichen
Benutzer benachrichtigen.
Auswahlmöglichkeiten . . . . . . . . . . . . . . . . . . . . . . . . . :
D -- Einen RPG-formatierten Speicherauszug erstellen.
S -- Einen Systemspeicherauszug erstellen.
G -- Die Verarbeitung bei *GETIN fortsetzen.
C -- Abbruch.
F -- Einen vollständig formatierten Speicherauszug erstellen.


Ich bin ratlos, kann mir jemand einen Tip geben, woran das liegen kann. Ich mein ein CHAIN ist so ziemlich die simpelste Aktion die es gibt, wieso funktioniert das nicht??
Danke schon mal!

BenderD
09-02-05, 10:59
Hallo,

frei nach Roberto Blanco: ein bisschen Code muss sein...
wenn es denn wirklich der chain ist, dann sieht das so aus, als ob da ein Parameter als Feld verwendet wird?

mfg

Dieter Bender


Hallöchen an alle,

ich habe hier ein Problem, welches ich mir beim Besten Willen nicht erklären kann und mich dazu langsam in den Wahnsinn treibt. Ich habe ein Programm, welches aus einer DTAQ einen Datensatz ausliest. In diesem Datensatz sind die ersten 3 Stellen eine "Fehler ID", mit der ich einen ganz normalen CHAIN auf eine Datei mach, wie ich es schon tausendmal gemacht habe und wie weitere Tausend Programme es in unserer Anwendung auch machen auf diese Datei, nirgendwo gibt es ein Problem. Nur bei diesem einen Programm bekomme ich folgende Fehlermeldung:

Nachrichten-ID . . . . : RNQ0222 Bewertung . . . . . . : 99
Nachrichtenart . . . . : Anfrage
Sendedatum . . . . . . : 09.02.05 Sendezeit . . . . . . : 11:42:32

Nachricht . . . : Zeiger- oder Parameterfehler (C G D F).
Ursache . . . . : In RPG-Prozedur SET51 in Programm TEST_TCP/SET51 ist bei
Anweisung 231 aufgrund eines nicht korrekt gesetzten Zeigers ein Fehler
aufgetreten. Mögliche Fehlerursachen sind:
-- Ein Basiszeiger wurde nicht gesetzt.
-- Ein Prozedurzeiger wurde nicht gesetzt.
-- Der Zeiger wurde gesetzt, das Objekt, auf das er Bezug nimmt, wurde
jedoch zerstört.
-- Ein Parameter wurde nicht an das Programm übergeben, das die Prozedur
enthält.
-- Ein Parameter wurde nicht vom Aufrufer innerhalb des Programms an die
Prozedur übergeben.
-- Eine relative Zeigerposition überschritt die Größe des Bereichs, auf
den der Zeiger zeigte.
Fehlerbeseitigung: Das Jobprotokoll auf weitere Informationen zur
Fehlerursache prüfen und den für die Programmpflege verantwortlichen
Benutzer benachrichtigen.
Auswahlmöglichkeiten . . . . . . . . . . . . . . . . . . . . . . . . . :
D -- Einen RPG-formatierten Speicherauszug erstellen.
S -- Einen Systemspeicherauszug erstellen.
G -- Die Verarbeitung bei *GETIN fortsetzen.
C -- Abbruch.
F -- Einen vollständig formatierten Speicherauszug erstellen.


Ich bin ratlos, kann mir jemand einen Tip geben, woran das liegen kann. Ich mein ein CHAIN ist so ziemlich die simpelste Aktion die es gibt, wieso funktioniert das nicht??
Danke schon mal!

DEVJO
09-02-05, 11:04
Datei
A UNIQUE
A R TOMG
A MGIDMG 3
A MGTXMG 80
A IN01MG 80
A IN02MG 80
A IN03MG 80
A IN04MG 80
A K MGIDMG

Programm
D MSG s 3
D MSGID s 3A
MSG CHAIN(N) TOMG
IF %found
MOVE MSGID MELD51
MOVE '51' SARTAK
ENDIF



Ich habe es schon mit beiden Feldern oben probiert.

kuempi von stein
09-02-05, 11:06
Hallöchen an alle,



Nachricht . . . : Zeiger- oder Parameterfehler (C G D F).
Ursache . . . . : In RPG-Prozedur SET51 in Programm TEST_TCP/SET51 ist bei
Anweisung 231 aufgrund eines nicht korrekt gesetzten Zeigers ein Fehler
aufgetreten. Mögliche Fehlerursachen sind:
-- Ein Basiszeiger wurde nicht gesetzt.
-- Ein Prozedurzeiger wurde nicht gesetzt.
-- Der Zeiger wurde gesetzt, das Objekt, auf das er Bezug nimmt, wurde
jedoch zerstört.
-- Ein Parameter wurde nicht an das Programm übergeben, das die Prozedur
enthält.
-- Ein Parameter wurde nicht vom Aufrufer innerhalb des Programms an die
Prozedur übergeben.
-- Eine relative Zeigerposition überschritt die Größe des Bereichs, auf
den der Zeiger zeigte.
Fehlerbeseitigung: Das Jobprotokoll auf weitere Informationen zur
Fehlerursache prüfen und den für die Programmpflege verantwortlichen
Benutzer benachrichtigen.
Auswahlmöglichkeiten . . . . . . . . . . . . . . . . . . . . . . . . . :
D -- Einen RPG-formatierten Speicherauszug erstellen.
S -- Einen Systemspeicherauszug erstellen.
G -- Die Verarbeitung bei *GETIN fortsetzen.
C -- Abbruch.
F -- Einen vollständig formatierten Speicherauszug erstellen.

hey den fehler hatten wir schon mal hier im forum...
http://www.rlpforen.de/showthread.php?t=5544&highlight=RNQ0222

k.

DEVJO
09-02-05, 11:10
Richtig... bloß, dieser Fehler ist mit meinen überhaupt nicht vergleichbar, da ich lediglich einen CHAIN mache, es nur ein KFLD in der Datei und ich keine Parameter brauche, bziehungsweise benutze.

BenderD
09-02-05, 11:27
Hallo,

ich würde nochmal in der Umwandlungsliste nachsehen wo MSG tatsächlich deklariert ist und vor dem chain mal einen Display oder eine andere Diagnostikausgabe einbauen, oder mit dem Debugger verifizieren, ob das Programm wirklich an dieser Stelle abdüst. Nicht dass man sich einen Wolf an der falschen Stelle sucht.

mfg

Dieter Bender


Datei
A UNIQUE
A R TOMG
A MGIDMG 3
A MGTXMG 80
A IN01MG 80
A IN02MG 80
A IN03MG 80
A IN04MG 80
A K MGIDMG

Programm
D MSG s 3
D MSGID s 3A
MSG CHAIN(N) TOMG
IF %found
MOVE MSGID MELD51
MOVE '51' SARTAK
ENDIF



Ich habe es schon mit beiden Feldern oben probiert.

DEVJO
09-02-05, 11:57
Ich hab schon gedumpt und gedebugged wie ein wilder, das PGM düst tatsächlich da ab.

B.Hauser
09-02-05, 12:05
Aktueller PTF-Stand?

Wir hatten bei einem unserer Kunden auch das Problem, dass der Schlüssel einwandfrei versorgt war, der Datensatz in Ordnung war, und das Programm trotzdem beim CHAIN einen Abflug gemacht hat mit Fehlermeldung MCH3601.
(Zeiger nicht gesetzt)

Nachdem alle PTFs installiert waren, lief's!
Ich weiss allerdings nicht um welches PTF es sich gehandelt hat.

Birgitta

DEVJO
09-02-05, 12:16
Hab vorgestern erst das SI10553 installiert, weil wir am WE Release Wechsel machen wollen auf V5R3.

Fuerchau
09-02-05, 12:42
Manchmal sinds nur Kleinigkeiten, vielleicht hat der Kompiler ne Macke, wenn Built-Ins nicht korrekt geschrieben sind.
Probiers mal mit

"%found()"