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: 

How to handle errors in Call transaction

Former Member
0 Kudos

How to handle errors in call transaction method with description?

5 REPLIES 5

Former Member
0 Kudos

bdcmsgcall

Former Member
0 Kudos

can handle errors using BDCMSGCOLL.

among call transaction and session call transaction is faster

Use a table of the BDCMSGCOLL structure in call transaction statement

call transaction '<TCODE>' using it_bdcdata messages into it_BDCMSGCOLL....

loop at it_BDCMSGCOLL.

call function 'FORMAT_MESSAGE'

1. Go to bdcrecx1 include.

go to form BDC_TRANSACTION .

check LOOP AT MESSTAB.

This is the way to handle errors.

2. Call Transaction is faster.

See the BDc sample code how the errors are handled using the FORMAT_MESSAGE function module

REPORT ZMMBDC1_1 NO STANDARD PAGE HEADING MESSAGE-ID ZT.

  • internal table for selecting data from flat file

DATA : BEGIN OF IT_DATA OCCURS 0,

MBRSH, " Industry sector

MTART(4), " Material type

KZSEL, " Checkbox

MAKTX(40), " Material description

MEINS(3), " Base unit of measure

MATKL(9), " Material group

BISMT(18), " Old material number

END OF IT_DATA.

  • internal table for bdcdata

DATA : IT_BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE.

  • internal table to handle messages

DATA : IT_MESSAGES LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.

************************************************************************

  • Variables & Flag declaration

************************************************************************

  • variables declaration

DATA : V_MESG(50).

  • flag declaration

DATA : FG_BDC,

FG_FLAG1 TYPE I.

************************************************************************

  • selection screen

************************************************************************

SELECTION-SCREEN BEGIN OF BLOCK BLK1 WITH FRAME TITLE TEXT-001.

************************************************************************

  • parameter

************************************************************************

PARAMETERS : P_FILE LIKE RLGRAP-FILENAME OBLIGATORY.

SELECTION-SCREEN END OF BLOCK BLK1.

************************************************************************

  • initialization

************************************************************************

INITIALIZATION.

  • peform to initialize parameter

PERFORM INIT_PARM.

************************************************************************

  • start of selection

************************************************************************

start-of-selection.

  • perform to upload it_data

PERFORM UP_LOAD_IT_DATA.

  • perform transfer data

PERFORM TRANSFER_DATA.

  • end of selection

END-OF-SELECTION.

&----


*& Form INIT_PARM

&----


  • Initializing parameter

----


FORM INIT_PARM.

P_FILE = 'C:\'.

ENDFORM. " INIT_PARM

&----


*& Form UP_LOAD_IT_DATA

&----


  • Transfering data from file to internal table

----


FORM UP_LOAD_IT_DATA.

CALL FUNCTION 'WS_UPLOAD'

EXPORTING

FILENAME = P_FILE

FILETYPE = 'ASC'

TABLES

DATA_TAB = IT_DATA

EXCEPTIONS

CONVERSION_ERROR = 1

FILE_OPEN_ERROR = 2

FILE_READ_ERROR = 3

INVALID_TABLE_WIDTH = 4

INVALID_TYPE = 5

NO_BATCH = 6

UNKNOWN_ERROR = 7

GUI_REFUSE_FILETRANSFER = 8

OTHERS = 9.

IF SY-SUBRC = 2 .

FG_FLAG1 = 1.

MESSAGE I001.

ENDIF.

ENDFORM. " UP_LOAD_IT_DATA

&----


*& Form TRANSFER_DATA

&----


  • Processing the data

----


FORM TRANSFER_DATA.

FG_BDC = 'N'.

LOOP AT IT_DATA.

  • perform to fill it_bdcdata.

PERFORM FILL_IT_BDCDATA.

CALL TRANSACTION 'MM01' USING IT_BDCDATA MODE 'N' UPDATE 'S'

MESSAGES INTO IT_MESSAGES.

IF SY-SUBRC <> 0.

FG_FLAG1 = 1.

  • if error occurs in transaction mode run bdc session for that data

PERFORM BDC_PROCESS.

ENDIF.

  • Handles error messages

PERFORM ERROR_MESSAGES.

CLEAR : IT_BDCDATA,IT_DATA,IT_MESSAGES.

REFRESH : IT_BDCDATA,IT_MESSAGES.

ENDLOOP.

IF FG_FLAG1 = 0.

MESSAGE I003.

ENDIF.

IF FG_BDC = 'O'.

  • close bdc if it is open

PERFORM CLOSE_BDC.

ENDIF.

ENDFORM. " TRANSFER_DATA

&----


*& Form FILL_IT_BDCDATA

&----


  • Filling Bdcdata structure with it_data

  • Some fields have been commented for future updations

----


FORM FILL_IT_BDCDATA.

PERFORM BDC_DYNPRO USING : 'SAPLMGMM' '0060'.

PERFORM BDC_FIELD USING : 'BDC_OKCODE' '/00',

: 'BDC_CURSOR' 'RMMG1_REF-MATNR',

: 'RMMG1-MBRSH' IT_DATA-MBRSH,

: 'RMMG1-MTART' IT_DATA-MTART.

PERFORM BDC_DYNPRO USING : 'SAPLMGMM' '0070'.

PERFORM BDC_FIELD USING : 'BDC_OKCODE' '=RESA'.

PERFORM BDC_DYNPRO USING : 'SAPLMGMM' '0070'.

PERFORM BDC_FIELD USING : 'BDC_OKCODE' '=ENTR',

: 'MSICHTAUSW-KZSEL(01)' IT_DATA-KZSEL.

PERFORM BDC_DYNPRO USING : 'SAPLMGMM' '4000'.

PERFORM BDC_FIELD USING : 'BDC_OKCODE' '=BU',

: 'BDC_SUBSCR' 'SAPLMGMM' & ' 2000TABFRA1',

: 'BDC_SUBSCR' 'SAPLMGD1' & ' 1002SUB1',

: 'BDC_CURSOR' 'MAKT-MAKTX',

: 'MAKT-MAKTX' IT_DATA-MAKTX,

: 'BDC_SUBSCR' 'SAPLMGD1' & ' 2001SUB2',

: 'MARA-MEINS' IT_DATA-MEINS,

: 'MARA-MATKL' IT_DATA-MATKL,

: 'MARA-BISMT' IT_DATA-BISMT,

: 'BDC_OKCODE' '=BU'.

*perform bdc_field using 'MARA-EXTWG' ''.

*perform bdc_field using 'MARA-LABOR' ''.

*perform bdc_field using 'MARA-KOSCH' ''.

*perform bdc_field using 'MARA-MSTAE' ''.

*perform bdc_field using 'MARA-MSTDE' ''.

*perform bdc_field using 'BDC_SUBSCR' 'SAPLMGD1' & ' 2561SUB3'.

*perform bdc_field using 'MARA-BEGRU' ''.

*perform bdc_field using 'BDC_SUBSCR' 'SAPLMGD1' & ' 2007SUB4'.

*perform bdc_field using 'MARA-NTGEW' ''.

*perform bdc_field using 'MARA-BRGEW' ''.

*perform bdc_field using 'MARA-GEWEI' ''.

*perform bdc_field using 'MARA-VOLUM' ''.

*perform bdc_field using 'MARA-VOLEH' ''.

*PERFORM BDC_FIELD USING 'MARA-GROES' ''.

*perform bdc_field using 'MARA-EAN11' ''.

*perform bdc_field using 'MARA-NUMTP' ''.

*PERFORM BDC_FIELD USING 'BDC_SUBSCR' 'SAPLMGD1' & ' 2005SUB5'.

*perform bdc_field using 'BDC_SUBSCR' 'SAPLMGD1' & ' 2011SUB6'.

*perform bdc_field using 'MARA-MAGRV' ''.

ENDFORM. " FILL_IT_BDCDATA

&----


*& Form BDC_DYNPRO

&----


  • Filling the it_bdcdata table with program name & screen number

----


FORM BDC_DYNPRO USING PROGRAM LIKE BDCDATA-PROGRAM

DYNPRO LIKE BDCDATA-DYNPRO.

IT_BDCDATA-PROGRAM = PROGRAM.

IT_BDCDATA-DYNPRO = DYNPRO.

IT_BDCDATA-DYNBEGIN = 'X'.

APPEND IT_BDCDATA.

CLEAR IT_BDCDATA.

ENDFORM. " BDC_DYNPRO

&----


*& Form BDC_FIELD

&----


  • Filling it_bdcdata with field name and field value

----


FORM BDC_FIELD USING FNAM LIKE BDCDATA-FNAM

FVAL.

IT_BDCDATA-FNAM = FNAM.

IT_BDCDATA-FVAL = FVAL.

APPEND IT_BDCDATA.

CLEAR IT_BDCDATA.

ENDFORM. " BDC_FIELD

&----


*& Form ERROR_MESSAGES

&----


  • Displaying error messages

----


FORM ERROR_MESSAGES.

CALL FUNCTION 'FORMAT_MESSAGE'

EXPORTING

ID = SY-MSGID

LANG = '-D'

IMPORTING

MSG = V_MESG

EXCEPTIONS

NOT_FOUND = 1

OTHERS = 2.

LOOP AT IT_MESSAGES WHERE MSGTYP = 'E'.

WRITE : / 'Message :'(I06) ,V_MESG.

CLEAR IT_MESSAGES.

ENDLOOP.

ENDFORM. " ERROR_MESSAGES

&----


*& Form BDC_PROCESS

&----


  • Open bdc session if call transaction fails

----


FORM BDC_PROCESS.

IF FG_BDC = 'N'.

  • open bdc session

PERFORM OPEN_BDC.

FG_BDC = 'O'.

ENDIF.

IF FG_BDC = 'O'.

  • insert data into bdc session

PERFORM INSERT_BDC.

ENDIF.

ENDFORM. " BDC_PROCESS

&----


*& Form OPEN_BDC

&----


  • Calling function module to open bdc session

----


FORM OPEN_BDC.

CALL FUNCTION 'BDC_OPEN_GROUP'

EXPORTING

CLIENT = SY-MANDT

GROUP = 'SMM1'

KEEP = 'X'

USER = SY-UNAME

EXCEPTIONS

CLIENT_INVALID = 1

DESTINATION_INVALID = 2

GROUP_INVALID = 3

GROUP_IS_LOCKED = 4

HOLDDATE_INVALID = 5

INTERNAL_ERROR = 6

QUEUE_ERROR = 7

RUNNING = 8

SYSTEM_LOCK_ERROR = 9

USER_INVALID = 10

OTHERS = 11.

ENDFORM. " OPEN_BDC

&----


*& Form INSERT_BDC

&----


  • Insert it_bdcdata into bdc by calling function module bdc_insert

----


FORM INSERT_BDC.

CALL FUNCTION 'BDC_INSERT'

EXPORTING

TCODE = 'MM01'

TABLES

DYNPROTAB = IT_BDCDATA

EXCEPTIONS

INTERNAL_ERROR = 1

NOT_OPEN = 2

QUEUE_ERROR = 3

TCODE_INVALID = 4

PRINTING_INVALID = 5

POSTING_INVALID = 6

OTHERS = 7.

ENDFORM. " INSERT_BDC

&----


*& Form CLOSE_BDC

&----


  • Closing bdc session

----


FORM CLOSE_BDC.

CALL FUNCTION 'BDC_CLOSE_GROUP'

EXCEPTIONS

NOT_OPEN = 1

QUEUE_ERROR = 2

OTHERS = 3.

ENDFORM. " CLOSE_BDC

reward points if useful

former_member386202
Active Contributor
0 Kudos

Hi,

Refer this code

************************************************************************

  • Author : Tamilarasan K. *

  • Creation Date : 01.12.2006 *

  • Specification By : Func Speci - Jithesh S. *

  • Tech Speci - *

  • Description : BDC for MM - Scheduling Agreement Creation *

  • ME31L *

  • Transport Request : DEVK900091 *

************************************************************************

  • Modification History (To be filled after every change)

----


  • Changed by Changed on Transport# Reason

----


*1. *

*2. *

*3. *

************************************************************************

REPORT zmpco_bdc_me31l.

DATA: BEGIN OF record,

lifnr(10), " Vendor

evart(5), " Agg. Type

vedat(10), " Agg. Date

ekorg(5), " Pur. Organization

ekgrp(5), " Pur. Group

werks(4), " Plant

lgort(4), " Storage Location

kdate(10), " Validity Date

ematn(20), " Material

ktmng(10), " Quantity

END OF record.

DATA record1 LIKE record.

DATA it_record LIKE TABLE OF record.

DATA it_record1 LIKE TABLE OF record WITH HEADER LINE.

DATA : BEGIN OF wa_error,

lifnr(10), " Vendor

evart(5), " Agg. Type

vedat(10), " Agg. Date

ekorg(5), " Pur. Organization

ekgrp(5), " Pur. Group

werks(4), " Plant

lgort(4), " Storage Location

kdate(10), " Validity Date

ematn(20), " Material

ktmng(10), " Quantity

error(25), " error record

END OF wa_error.

DATA it_error LIKE TABLE OF wa_error WITH HEADER LINE.

        • BDCDATA and Message collection table declartion.

DATA: bdcdata LIKE bdcdata OCCURS 0 WITH HEADER LINE.

DATA: messtab LIKE bdcmsgcoll OCCURS 0 WITH HEADER LINE.

        • for calulation purpose

DATA: v_ematn TYPE string,

v_ktmng TYPE string,

v_cnt(2) TYPE n,

v_error(4) TYPE n,

v_total(4) TYPE n,

v_saved(4) TYPE n,

l_line TYPE i,

flag TYPE i.

**give the default path for the flatfile.

PARAMETERS filepath TYPE string DEFAULT 'C:\PCS\BDC-ME31L.TXT'.

START-OF-SELECTION.

    • uploading the file from presantation server

CALL FUNCTION 'GUI_UPLOAD'

EXPORTING

filename = filepath

filetype = 'ASC'

has_field_separator = '#'

  • HEADER_LENGTH = 0

  • READ_BY_LINE = 'X'

  • DAT_MODE = ' '

  • CODEPAGE = ' '

  • IGNORE_CERR = ABAP_TRUE

  • REPLACEMENT = '#'

  • CHECK_BOM = ' '

  • VIRUS_SCAN_PROFILE =

  • IMPORTING

  • FILELENGTH =

  • HEADER =

TABLES

data_tab = it_record

  • EXCEPTIONS

  • FILE_OPEN_ERROR = 1

  • FILE_READ_ERROR = 2

  • NO_BATCH = 3

  • GUI_REFUSE_FILETRANSFER = 4

  • INVALID_TYPE = 5

  • NO_AUTHORITY = 6

  • UNKNOWN_ERROR = 7

  • BAD_DATA_FORMAT = 8

  • HEADER_NOT_ALLOWED = 9

  • SEPARATOR_NOT_ALLOWED = 10

  • HEADER_TOO_LONG = 11

  • UNKNOWN_DP_ERROR = 12

  • ACCESS_DENIED = 13

  • DP_OUT_OF_MEMORY = 14

  • DISK_FULL = 15

  • DP_TIMEOUT = 16

  • OTHERS = 17

.

IF sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

it_record1[] = it_record[].

**filling the heading for the error record.

it_error-lifnr = 'LIFNR'.

it_error-evart = 'EVART'.

it_error-vedat = 'VEDAT'.

it_error-ekorg = 'EKORG'.

it_error-ekgrp = 'EKGRP'.

it_error-werks = 'WERKS'.

it_error-lgort = 'LGORT'.

it_error-kdate = 'KDATE'.

it_error-ematn = 'EMATN'.

it_error-ktmng = 'KTMENG'.

it_error-error = 'ERROR IN FIELD'.

APPEND it_error.

**passing the data to bdcdata

LOOP AT it_record INTO record.

REFRESH bdcdata.

PERFORM bdc_dynpro USING 'SAPMM06E' '0200'.

PERFORM bdc_field USING 'BDC_CURSOR'

'RM06E-LGORT'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

PERFORM bdc_field USING 'EKKO-LIFNR'

record-lifnr.

PERFORM bdc_field USING 'RM06E-EVART'

record-evart.

PERFORM bdc_field USING 'RM06E-VEDAT'

record-vedat.

PERFORM bdc_field USING 'EKKO-EKORG'

record-ekorg.

PERFORM bdc_field USING 'EKKO-EKGRP'

record-ekgrp.

PERFORM bdc_field USING 'RM06E-WERKS'

record-werks.

PERFORM bdc_field USING 'RM06E-LGORT'

record-lgort.

PERFORM bdc_dynpro USING 'SAPMM06E' '0201'.

PERFORM bdc_field USING 'BDC_CURSOR'

'EKKO-KDATE'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

PERFORM bdc_field USING 'EKKO-KDATE'

record-kdate.

***For item to display.

v_cnt = 0.

LOOP AT it_record INTO record1

WHERE lifnr = record-lifnr.

ADD 1 TO v_cnt.

CONCATENATE 'EKPO-EMATN(' v_cnt ')' INTO v_ematn.

CONCATENATE 'EKPO-KTMNG(' v_cnt ')' INTO v_ktmng.

PERFORM bdc_dynpro USING 'SAPMM06E' '0220'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

PERFORM bdc_field USING v_ematn

record1-ematn.

PERFORM bdc_field USING v_ktmng

record1-ktmng.

ADD 1 TO v_total.

DELETE TABLE it_record FROM record1.

CLEAR record1.

ENDLOOP.

PERFORM bdc_dynpro USING 'SAPMM06E' '0220'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=BU'.

PERFORM bdc_transaction USING 'ME31L'.

ENDLOOP.

**routine for bdcdata with tcode

FORM bdc_transaction USING tcode.

CLEAR messtab[].

CALL TRANSACTION tcode USING bdcdata

MODE 'N'

UPDATE 'A'

MESSAGES INTO messtab.

  • capturing the error record

LOOP AT messtab WHERE msgtyp = 'E'.

ADD 1 TO v_error.

READ TABLE it_record1 WITH KEY ematn = messtab-msgv1 .

IF sy-subrc = 0.

MOVE-CORRESPONDING it_record1 TO it_error.

it_error-error = 'MATERIAL NO Error'.

APPEND it_error.

ENDIF.

READ TABLE it_record1 WITH KEY evart = messtab-msgv1 .

IF sy-subrc = 0.

MOVE-CORRESPONDING it_record1 TO it_error.

it_error-error = 'DOC. TYPE Error'.

APPEND it_error.

ENDIF.

READ TABLE it_record1 WITH KEY lifnr = messtab-msgv1 .

IF sy-subrc = 0.

MOVE-CORRESPONDING it_record1 TO it_error.

it_error-error = 'VENDOR NO Error'.

APPEND it_error.

ENDIF.

READ TABLE it_record1 WITH KEY vedat = messtab-msgv1 .

IF sy-subrc = 0.

MOVE-CORRESPONDING it_record1 TO it_error.

it_error-error = 'DOC. DATE'.

APPEND it_error.

ENDIF.

READ TABLE it_record1 WITH KEY ekorg = messtab-msgv1 .

IF sy-subrc = 0.

MOVE-CORRESPONDING it_record1 TO it_error.

it_error-error = 'PUR.ORGANIZATION Error'.

APPEND it_error.

ENDIF.

READ TABLE it_record1 WITH KEY lgort = messtab-msgv2 .

IF sy-subrc = 0.

MOVE-CORRESPONDING it_record1 TO it_error.

it_error-error = 'STORAGE LOCATION Error'.

APPEND it_error.

ELSE.

flag = 1.

ENDIF.

IF flag = 1 .

READ TABLE it_record1 WITH KEY werks = messtab-msgv1.

IF sy-subrc = 0.

MOVE-CORRESPONDING it_record1 TO it_error.

it_error-error = 'PLANT Error'.

APPEND it_error.

ENDIF.

ENDIF.

READ TABLE it_record1 WITH KEY ekgrp = messtab-msgv1 .

IF sy-subrc = 0.

MOVE-CORRESPONDING it_record1 TO it_error.

it_error-error = 'PUR. GROUP Error'.

APPEND it_error.

ENDIF.

READ TABLE it_record1 WITH KEY ktmng = messtab-msgv1 .

IF sy-subrc = 0.

MOVE-CORRESPONDING it_record1 TO it_error.

it_error-error = 'QUANTITY Error'.

APPEND it_error.

ENDIF.

CLEAR it_error.

ENDLOOP.

  • capturing the saved record

LOOP AT messtab WHERE msgtyp = 'S'.

ADD 1 TO v_saved.

ENDLOOP.

*Disply a message that tells about the summary of the transaction.

DESCRIBE TABLE it_record1 LINES l_line.

IF l_line EQ v_total.

WRITE:/ 'The Total No of Processed Record : ', v_total.

SKIP.

WRITE:/ 'The Total No of Saved Record : ', v_saved.

SKIP.

WRITE:/ 'The Total No of Errored Record : ', v_error.

SKIP.

WRITE:/ 'Error Record Path : ' , 'C:\PCS\ERROR-ME31L.TXT' .

  • the error record is captured in a seperate file.

CALL FUNCTION 'GUI_DOWNLOAD'

EXPORTING

  • BIN_FILESIZE =

filename = 'C:\PCS\ERROR-ME31L.TXT'

filetype = 'ASC'

  • APPEND = ' '

write_field_separator = '#'

  • HEADER = '00'

  • TRUNC_TRAILING_BLANKS = ' '

  • WRITE_LF = 'X'

  • COL_SELECT = ' '

  • COL_SELECT_MASK = ' '

  • DAT_MODE = ' '

  • CONFIRM_OVERWRITE = ' '

  • NO_AUTH_CHECK = ' '

  • CODEPAGE = ' '

  • IGNORE_CERR = ABAP_TRUE

  • REPLACEMENT = '#'

  • WRITE_BOM = ' '

  • TRUNC_TRAILING_BLANKS_EOL = 'X'

  • WK1_N_FORMAT = ' '

  • WK1_N_SIZE = ' '

  • WK1_T_FORMAT = ' '

  • WK1_T_SIZE = ' '

  • IMPORTING

  • FILELENGTH =

TABLES

data_tab = it_error

  • FIELDNAMES =

  • EXCEPTIONS

  • FILE_WRITE_ERROR = 1

  • NO_BATCH = 2

  • GUI_REFUSE_FILETRANSFER = 3

  • INVALID_TYPE = 4

  • NO_AUTHORITY = 5

  • UNKNOWN_ERROR = 6

  • HEADER_NOT_ALLOWED = 7

  • SEPARATOR_NOT_ALLOWED = 8

  • FILESIZE_NOT_ALLOWED = 9

  • HEADER_TOO_LONG = 10

  • DP_ERROR_CREATE = 11

  • DP_ERROR_SEND = 12

  • DP_ERROR_WRITE = 13

  • UNKNOWN_DP_ERROR = 14

  • ACCESS_DENIED = 15

  • DP_OUT_OF_MEMORY = 16

  • DISK_FULL = 17

  • DP_TIMEOUT = 18

  • FILE_NOT_FOUND = 19

  • DATAPROVIDER_EXCEPTION = 20

  • CONTROL_FLUSH_ERROR = 21

  • OTHERS = 22

.

IF sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

ENDIF.

ENDFORM. "bdc_transaction

----


  • Start new screen *

----


FORM bdc_dynpro USING program dynpro.

CLEAR bdcdata.

bdcdata-program = program.

bdcdata-dynpro = dynpro.

bdcdata-dynbegin = 'X'.

APPEND bdcdata.

ENDFORM. "BDC_DYNPRO

----


  • Insert field for field name and field value *

----


FORM bdc_field USING fnam fval.

CLEAR bdcdata.

bdcdata-fnam = fnam.

bdcdata-fval = fval.

APPEND bdcdata.

ENDFORM. "BDC_FIELD

*****************************************************************

Reward Points

Regards,

Prashant

Former Member
0 Kudos

Hi,

To get the messages into the internal table we use

'call transaction t-code messages into itab'

where itab is like BDCMSGCOLL .

reward points if its useful.

dev_parbutteea
Active Contributor
0 Kudos

HI ,

here is an example :

call transaction 'VL01N'

using li_bdcdata

mode 'N'

update 'S' " 'A'->Asynchronous update 'S'->Synchronous update

messages into li_vl01n_return. "structure BDCMSGCOLL

if sy-subrc = 0.

read table li_vl01n_return

into lwa_vl01n_return

with key msgtyp = 'E'.

if sy-subrc = 0.

  • PROCESS ERRORS!

endif.

endif.

Regards,

Sooness.