Application Development and Automation 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: 
Read only

bdcmsgccoll

Former Member
0 Likes
334

hi,

what is the use of internal table with structure bdcmsgcoll

3 REPLIES 3
Read only

Former Member
0 Likes
317

BDCMSGCOLL structure is used to identify error records,

which are not getting updated.

-First create DATA: BDCMSG like BDCMSGCOLL occurs 0 with Header Line.

-CALL transaction 'Tcode' using BDCDATA mode 'A/E/N' update 'A/S' messages into BDCMSG.

-Next call Format_Message function module for each entry in BDCMSGCOLL for formatting messages.

Read only

Former Member
0 Likes
317

The process flow of CALL TRANSACTION

A program that uses CALL TRANSACTION USING to process legacy data should execute thefollowing steps:

Prepare a BDCDATA structure for the transaction that you wish to run.

Prepare a internal table to store error messages Tab_Mess like structure of BDCMSGCOLL.

With a CALL TRANSACTION USING statement, call the transaction and prepare the BDCDATA structure. For example:

CALL TRANSACTION ‘MM01' USING BDCDATA MODE 'A' UPDATE 'S'. MESSAGES INTO TAB_MESS.

IF SY-SUBRC 0.

<Error_handling>.

ENDIF.

To store error messages ( CALL TRANSACTION )

data: begin of Tab_Mess occurs 0.

include structure bdcmsgcoll.

data : end of Tab_Mess,

CALL TRANSACTION ‘FK02’ USING BDC_TAB MODE ‘N’ UPDATE ‘S’

MESSAGES INTO TAB_MESS.

IF SY-SUBRC NE 0.

WRITE: / Tab_MESS-TCODE, Tab_MESS-DYNUMB, Tab_MESS-MSGTYP ,

Tab_MESS-MSGID.

ENDIF.

Read only

Former Member
0 Likes
317

We can handle the Errors in Call transaction method through BDCMSGCOLL Strcture and one Important function module is Format_message.

For Example :


DATA : BDCMSGCOLL TYPE TABLE OF BDCMSGCOLL WITH HEADER LINE,
BDCDATA TYPE TABLE OF BDCDATA WITH HEADER LINE.
 
CALL TRANSACTION 'MM01' USING BDCDATA MODE N UPDATE S MESSAGES INTO BDCMSGCOLL.
 
IF SY-SUBRC 0.
PERFORM ERR.
CLEAR I_MSG.
REFRESH I_MSG.
ENDIF.
&---------------------------------------------------------------------
*& Form ERR
&---------------------------------------------------------------------
 
text 
----------------------------------------------------------------------
 
--> p1 text 
<-- p2 text 
----------------------------------------------------------------------
form ERR .
DATA V_MSG(255) TYPE C.
READ TABLE I_MSG WITH KEY MSGTYP = 'E'.
IF SY-SUBRC = 0.
CALL FUNCTION 'FORMAT_MESSAGE'
EXPORTING
ID = I_MSG-MSGID
LANG = 'E'
NO = I_MSG-MSGNR
V1 = I_MSG-MSGV1
V2 = I_MSG-MSGV2
V3 = I_MSG-MSGV3
V4 = I_MSG-MSGV4
IMPORTING
MSG = V_MSG
 
EXCEPTIONS 
NOT_FOUND = 1 
OTHERS = 2 
.
IF sy-subrc 0.
 
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO 
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. 
ENDIF.
 
WRITE V_MSG. " Error Message Displayed Here.
CLEAR V_MSG.
ENDIF.
endform. " ERR