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
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