Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

error handling for tcode MMAM in Call transaction method

Former Member
0 Kudos

Hi All,

Can any one please update me , how to capture the errors for transaction MMAM in BDC Call transaction method.

Thanks in Advance.

Thanks,

Ramu.

1 REPLY 1

Former Member
0 Kudos

error record store on bdcmsgcall.

BDC program using Call Trasaction

REPORT ZSYSTEM LINE-SIZE 255.

TABLES: T100.

  • Batch-input data

DATA: BEGIN OF G_BDCDATA OCCURS 100.

INCLUDE STRUCTURE BDCDATA.

DATA: END OF G_BDCDATA.

DATA: G_MESSAGE(200).

PERFORM FILL_BDCDATA.

CALL TRANSACTION 'FI01' USING G_BDCDATA MODE 'N'.

  • of course it is nicer with a message itab, but this example

  • should also demostrate the use of system variables.

SELECT SINGLE * FROM T100 WHERE

SPRSL = 'E'

AND ARBGB = SY-MSGID

AND MSGNR = SY-MSGNO.

G_MESSAGE = T100-TEXT.

PERFORM REPLACE_PARAMETERS USING SY-MSGV1

SY-MSGV2

SY-MSGV3

SY-MSGV4

CHANGING G_MESSAGE.

WRITE: / 'System variables:'.

SKIP.

WRITE: / ' Sy-msgty:', SY-MSGTY.

WRITE: / ' Sy-msgid:', SY-MSGID.

WRITE: / ' Sy-msgno:', SY-MSGNO.

WRITE: / ' Sy-msgv1:', SY-MSGV1.

WRITE: / ' Sy-msgv2:', SY-MSGV2.

WRITE: / ' Sy-msgv3:', SY-MSGV3.

WRITE: / ' Sy-msgv4:', SY-MSGV4.

SKIP.

WRITE: / 'The transaction was called with a wrong country code.'.

WRITE: / 'The error message should be either that or that you have'.

WRITE: / ' no authorisation to execute the transaction'.

SKIP.

WRITE: / 'Message:'.

SKIP.

WRITE: / SY-MSGTY, G_MESSAGE.

----


  • Build up the BDC-table *

----


FORM FILL_BDCDATA.

REFRESH G_BDCDATA.

PERFORM BDC_DYNPRO USING 'SAPMF02B' '0100'.

PERFORM BDC_FIELD USING 'BNKA-BANKS' 'ZZZ'.

PERFORM BDC_FIELD USING 'BDC_OKCODE' 'QQQQQ'.

ENDFORM.

----


  • FORM BDC_DYNPRO *

----


  • Batchinput: Start new Dynpro *

----


FORM BDC_DYNPRO USING P_PROGRAM P_DYNPRO.

CLEAR G_BDCDATA.

G_BDCDATA-PROGRAM = P_PROGRAM.

G_BDCDATA-DYNPRO = P_DYNPRO.

G_BDCDATA-DYNBEGIN = 'X'.

APPEND G_BDCDATA.

ENDFORM. " BDC_DYNPRO

----


  • FORM BDC_FIELD *

----


  • Batchinput: Feld hinzufugen *

----


FORM BDC_FIELD USING P_FNAM P_FVAL.

CLEAR G_BDCDATA.

G_BDCDATA-FNAM = P_FNAM.

G_BDCDATA-FVAL = P_FVAL.

APPEND G_BDCDATA.

ENDFORM. " BDC_FIELD

----


  • FORM REPLACE_PARAMETERS *

----


  • ........ *

----


  • --> P_PAR_1 *

  • --> P_PAR_2 *

  • --> P_PAR_3 *

  • --> P_PAR_4 *

  • --> P_MESSAGE *

----


FORM REPLACE_PARAMETERS USING P_PAR_1

P_PAR_2

P_PAR_3

P_PAR_4

CHANGING P_MESSAGE.

  • erst mal pruefen, ob numerierte Parameter verwendet wurden

DO.

REPLACE '&1' WITH P_PAR_1 INTO P_MESSAGE.

IF SY-SUBRC <> 0.

EXIT.

ENDIF.

ENDDO.

DO.

REPLACE '&2' WITH P_PAR_2 INTO P_MESSAGE.

IF SY-SUBRC <> 0.

EXIT.

ENDIF.

ENDDO.

DO.

REPLACE '&3' WITH P_PAR_3 INTO P_MESSAGE.

IF SY-SUBRC <> 0.

EXIT.

ENDIF.

ENDDO.

DO.

REPLACE '&4' WITH P_PAR_4 INTO P_MESSAGE.

IF SY-SUBRC <> 0.

EXIT.

ENDIF.

ENDDO.

  • falls keine numerierten Parameter vorh., ersetzen wie gehabt

REPLACE '&' WITH P_PAR_1 INTO P_MESSAGE.

CONDENSE P_MESSAGE.

IF SY-SUBRC EQ 0.

REPLACE '&' WITH P_PAR_2 INTO P_MESSAGE.

CONDENSE P_MESSAGE.

IF SY-SUBRC EQ 0.

REPLACE '&' WITH P_PAR_3 INTO P_MESSAGE.

CONDENSE P_MESSAGE.

IF SY-SUBRC EQ 0.

REPLACE '&' WITH P_PAR_4 INTO P_MESSAGE.

CONDENSE P_MESSAGE.

ENDIF.

ENDIF.

ENDIF.

ENDFORM. "replace_parameters

Message was edited by:

Karthikeyan Pandurangan