Anmelden

View Full Version : Call Externes Programm zerstört Feldinhalt in RPG



Michael Rude
09-11-11, 13:26
Hallo zusammen,

folgendes Phänomän:

Das Datenbankfeld R_LINAME ist vor dieser Routine komplett gefüllt. Wenn das Programm aus dem CALL zurückkommt sind die ersten 14 Stellen des Feldes leer, der Rest ist gleich geblieben.

Das Feld wird im Programm selbst nicht verwendet.

0141.95 C R_X2ERRC IFNE *BLANKS
0141.96 C MOVEL R_X2ERRC MSGID
0141.97 C EXSR FEHLER
0141.98 C MOVEL MSGFLD R_X2ERRM
0141.99 C ENDIF
0142.00 C*
0142.01 C UPDATE X2BEKN1

0157.00 C FEHLER BEGSR
0158.00 C*
0159.00 C call 'CLFEHLERX'
0160.00 C parm MSGID 7
0161.00 C parm MSGFLD 50
0162.00 C parm MSGDTA 78
0163.00 C*
0164.00 C ENDSR


Programm CLFHLERX:

PGM PARM(&MSGID &MSGFLD &MSGDTA)
DCL VAR(&MSGID) TYPE(*CHAR) LEN(7)
DCL VAR(&MSGFLD) TYPE(*CHAR) LEN(78)
DCL VAR(&MSGDTA) TYPE(*CHAR) LEN(78)
RTVMSG MSGID(&MSGID) MSGF(X2USER) MSGDTA(&MSGDTA) +
MSG(&MSGFLD)
MONMSG MSGID(CPF0000) EXEC(DO)
CHGVAR VAR(&MSGFLD) VALUE('FEHLER-NACHRICHT:' +
*BCAT &MSGID *BCAT 'NICHT VORHANDEN. EDV +
INFORMIEREN.')
ENDDO
ENDPGM

K_Tippi
09-11-11, 13:45
Hallo,
Hast du evtl. einen Move (eval) mit dem Datensatznahmen im Programm, oder überlagern sich Feldgruppen?

Ist die X2BEKN eine PF oder eine Joein über BEKN und noch eine Datei?

Habt ihr das selbst gebastelt oder unsere Freunde in Filderstadt :-)

Klaus

Michael Rude
09-11-11, 13:54
Hallo Klaus,

es gibt keine MOVEAs und auch keine Feldgruppen in diesem Bereich.

Die X2BEKN ist eine PF Kopie der BEKN, allerdings mit anderem Formatnamen und Prefix (R_) .

Und ja, das Programm ist selbst gebastelt, Filderstadt wollte zuviel Euros dafür ;-)

Gruß Michael

malzusrex
09-11-11, 14:04
Nur mal so ins Blaue
MSGFLD ist im RPG mit 50 definiert und im CL mit 78

Michael Rude
09-11-11, 14:10
Nur mal so ins Blaue
MSGFLD ist im RPG mit 50 definiert und im CL mit 78

Tatsache...und das wahr auch schon der Fehler bzw. die Lösung.

DANKE!