PDA

View Full Version : CPF0818



FNeurieser
21-03-13, 12:45
Hallo allerseits,

heute melde ich mich mit einem Problem das ich überhaupt nicht verstehe und begreife.
Folgende Situation:

In einer bestehenden Warenwirtschaft wurde ein Programm impelentiert, das die Lagerbestände einer Firma (Bibiliothek) anzeigt. Mithilfe einer F-Taste kann der Benutzer zusätzlich die Lagerbestände einer zweiten Firma (Bibliothek) einblenden. Es werden dann beide Bestände angezeigt. Beende ich das Programm und versuche einen anderen Menüpunkt der Warenwirtschaft aufzurufen, erhalte ich folgende Fehlermeldung.



CPF0818
Nachricht . . . : Wert kann nicht in die vom Empfänger implizierte Art
umgesetzt werden.
Ursache . . . . : Der umzusetzende Wert und das Empfängerfeld weisen
unterschiedliche Datenarten auf.
Fehlerbeseitigung: Den umzuwandelnden Feldinhalt oder die Empfängerfeldart
ändern und anschließend den Befehl CHGVAR wiederholen. Weitere Informationen
zur Datenumsetzung in CL-Programmen und zu geeigneten Formaten für
verschiedene Konstantenarten befinden sich im CL-Handbuch.


Dies tritt wie gesagt nur dann auf, wenn die Lagerbestände beider Firmen angezeigt werden. Zeige ich nur die Lagerbestände der aktuellen Firma an, funktioniert alles wie gewohnt.

Hat irgendjemand eine Idee was der Auslöser sein könnte?

Vielleicht noch kurz zum besseren Verständnis. Im Hauptprogramm wird bei Verwendung der F Taste geprüft welche Bibliothek zurzeit in Verwendung ist. Daraufhin wird die Gegenbibliothek ermittelt und die benötigten Daten in neue Dateien kopiert (L01 bis L04). Ist dies geschehen, wird ein ILERPG Programm aufgerufen das die beiden Bestände anzeigt. Wird dieser Programm beendet befindet sich man wieder im Hauptprogramm.

Die Menüpunkte der Warenwirtschaft lassen sich ohne Probleme aufrufen, wenn man die F-Taste nicht betätigt. Ansonsten kommt eben die erwähnte Fehlernachricht.

ExAzubi
21-03-13, 14:43
Irgendwie scheint sich das CL Programm zu verschlucken! Ist es möglich ein DUMP zu ziehen?

FNeurieser
22-03-13, 06:44
Leider wird dabei kein Dump produziert. Ich nehme aber an dass es etwas mit LR zu tun hat. Ich habe jetzt im aufgerufenen Programm das Move *On *InLR durch Return ersetzt und auf einmal wird diese Meldung nicht mehr produziert. Anscheinend muss ich mich mal genauer mit dem RPG Zyklus auseinandersetzen :rolleyes:

camouflage
22-03-13, 14:27
Wenn Du nur Return verwendest, werden deine Dateien nicht geschlossen. Weiter bleibt das Programm im Speicher mit dem Status als Entry-Point wo du es verlassen hast. Bei Wiederaufruf wird dann z.B. auch kein INZSR durchgeführt.

Das Setzen des Indikators LR bewirkt, im Gegensatz zu Return, nicht ein sofortiges Verlassen des Programms.