‎2008 Mar 06 6:05 AM
Hi all,
Can anyone send me a program where they have used the ' BDCMSGCOLL ' structure and format_message FM. I need only complete program, please don't send sample codings or just a part of coding.
Points are assured.
Thanks and regards,
subbu.
‎2008 Mar 06 6:10 AM
hi,
TYPES : BEGIN OF st_vendor,
ktokk TYPE rf02k-ktokk, "account group
anred TYPE lfa1-anred, "title
name1 TYPE lfa1-name1, "vendor name
sortl TYPE lfa1-sortl, "search term
pstlz TYPE lfa1-pstlz, "postal code
land1 TYPE lfa1-land1, "country
banks TYPE lfbk-banks,
bankl TYPE lfbk-bankl, "bank key
bankn TYPE lfbk-bankn, "account number
END OF st_vendor.
TYPES : BEGIN OF st_success,
lifnr TYPE lfa1-lifnr, "vendor number
name TYPE lfa1-name1, "vendor name
END OF st_success.
TYPES: BEGIN OF st_error,
lno TYPE i, "line number
msg TYPE string, "message
END OF st_error.
----
INTERNAL TABLE DECLARATIONS
----
DATA : it_vendor TYPE STANDARD TABLE OF st_vendor,
wa_vendor TYPE st_vendor,
it_success TYPE STANDARD TABLE OF st_success,
wa_success TYPE st_success,
it_error TYPE STANDARD TABLE OF st_error,
wa_error TYPE st_error,
it_bdcdata TYPE STANDARD TABLE OF bdcdata,
wa_bdcdata TYPE bdcdata,
it_message TYPE STANDARD TABLE OF bdcmsgcoll,
wa_message TYPE bdcmsgcoll.
----
DATA DECLARATION
----
DATA : v_file TYPE string,
v_tcode(4) VALUE 'XK01',
v_index TYPE sy-tabix,
v_totalrec TYPE i,
v_errrec TYPE i,
v_succrec TYPE i,
v_flag TYPE c.
----
SELECTION SCREEN
----
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-005.
PARAMETERS: p_file TYPE rlgrap-filename.
SELECTION-SCREEN END OF BLOCK b1.
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-006.
PARAMETERS p_mode TYPE ctu_params-dismode DEFAULT 'N' .
"A: show all dynpros
"E: show dynpro on error only
"N: do not display dynpro
PARAMETERS p_update TYPE ctu_params-updmode DEFAULT 'S'.
"S: synchronously
"A: asynchronously
SELECTION-SCREEN END OF BLOCK b2.
SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE text-007.
PARAMETERS : p_group(12) DEFAULT '50875'.
SELECTION-SCREEN END OF BLOCK b3.
----
AT SELECTION SCREEN ON VALUE REQUEST
----
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
CALL FUNCTION 'F4_FILENAME'
EXPORTING
program_name = syst-cprog
dynpro_number = syst-dynnr
IMPORTING
file_name = p_file.
----
START-OF-SELECTION
----
START-OF-SELECTION.
v_file = p_file.
PERFORM guiupload.
*****loadind data into it_bdcdata
LOOP AT it_vendor INTO wa_vendor.
v_index = sy-tabix.
PERFORM load_bdcdata.
----
CALL TRANSACTION
----
CALL TRANSACTION v_tcode USING it_bdcdata
MODE p_mode
UPDATE p_update
MESSAGES INTO it_message.
******reading success
IF sy-subrc = 0.
PERFORM success.
ELSE.
error
PERFORM error.
error session
IF v_flag = space.
CALL FUNCTION 'BDC_OPEN_GROUP'
EXPORTING
client = sy-mandt
group = p_group
holddate = sy-datum
keep = 'X'
user = sy-uname.
v_flag = 'X'.
ENDIF.
***inserting into session
CALL FUNCTION 'BDC_INSERT'
EXPORTING
tcode = 'XK01'
TABLES
dynprotab = it_bdcdata.
ENDIF.
CLEAR: it_bdcdata, it_message.
REFRESH: it_bdcdata, it_message.
ENDLOOP.
******closing session
IF v_flag EQ 'X'.
CALL FUNCTION 'BDC_CLOSE_GROUP'.
ENDIF.
----
SUMMARY DISPLAY
----
DESCRIBE TABLE it_vendor LINES v_totalrec.
DESCRIBE TABLE it_error LINES v_errrec.
v_succrec = v_totalrec - v_errrec .
WRITE : /2 text-000 , 25 v_totalrec,
/2 text-001, 25 v_errrec,
/2 text-002, 25 v_succrec.
SKIP 2.
WRITE : /1 text-001 COLOR 6.
SKIP 2.
WRITE:/ text-008 ,
25 text-009 .
LOOP AT it_error INTO wa_error.
WRITE:/ wa_error-lno,
17 wa_error-msg.
ENDLOOP.
SKIP 2.
WRITE : /1 text-002 COLOR 5.
ULINE AT : /2(46).
WRITE :/2 sy-vline ,
(10) text-003 ,
15 sy-vline ,
17 text-004 ,
47 sy-vline.
ULINE AT : /2(46).
LOOP AT it_success INTO wa_success.
WRITE:/2 sy-vline ,
wa_success-lifnr,
15 sy-vline ,
17 wa_success-name ,
47 sy-vline.
ENDLOOP.
ULINE AT : /2(46).
&----
*& Form append_bdcdata
&----
FORM append_bdcdata USING p_flag p_fname p_fval.
CLEAR wa_bdcdata.
IF p_flag = 'X'.
wa_bdcdata-program = p_fname.
wa_bdcdata-dynpro = p_fval.
wa_bdcdata-dynbegin = 'X'.
APPEND wa_bdcdata TO it_bdcdata.
ELSEIF NOT p_fval IS INITIAL.
wa_bdcdata-fnam = p_fname.
wa_bdcdata-fval = p_fval.
APPEND wa_bdcdata TO it_bdcdata.
ENDIF.
ENDFORM. "append_bdcdata
&----
*& Form load_bdcdata
&----
FORM load_bdcdata .
PERFORM append_bdcdata USING : 'X' 'SAPMF02K' '0100',
' ' 'BDC_OKCODE' '/00',
' ' 'RF02K-KTOKK' wa_vendor-ktokk,
'X' 'SAPMF02K' '0110',
' ' 'BDC_OKCODE' '/00',
' ' 'LFA1-ANRED' wa_vendor-anred,
' ' 'LFA1-NAME1' wa_vendor-name1,
' ' 'LFA1-SORTL' wa_vendor-sortl,
' ' 'LFA1-PSTLZ' wa_vendor-pstlz,
' ' 'LFA1-LAND1' wa_vendor-land1,
'X' 'SAPMF02K' '0120',
' ' 'BDC_OKCODE' '/00',
'X' 'SAPMF02K' '0130',
' ' 'BDC_OKCODE' '=ENTR',
' ' 'LFBK-BANKS(01)' wa_vendor-banks,
' ' 'LFBK-BANKL(01)' wa_vendor-bankl,
' ' 'LFBK-BANKN(01)' wa_vendor-bankn,
'X' 'SAPMF02K' '0130',
' ' 'BDC_OKCODE' '=ENTR',
'X' 'SAPLSPO1' '0300',
' ' 'BDC_OKCODE' '=YES'.
ENDFORM. "load_bdcdata
" load_bdcdata
&----
*& Form GUIUPLOAD----gui upload
&----
FORM guiupload .
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = v_file
filetype = 'ASC'
has_field_separator = 'X'
TABLES
data_tab = it_vendor
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.
ENDFORM. " GUIUPLOAD
&----
*& Form SUCCESS
&----
FORM success .
READ TABLE it_message INTO wa_message WITH KEY msgtyp = 'S'.
IF sy-subrc = 0.
wa_success-lifnr = wa_message-msgv1.
wa_success-name = wa_vendor-name1.
APPEND wa_success TO it_success.
v_succrec = v_succrec + 1.
ENDIF.
ENDFORM. " SUCCESS
&----
*& Form ERROR
&----
FORM error .
READ TABLE it_message INTO wa_message WITH KEY msgtyp = 'E'.
IF sy-subrc = 0.
CALL FUNCTION 'FORMAT_MESSAGE'
EXPORTING
id = sy-msgid
no = wa_message-msgnr
v1 = wa_message-msgv1
v2 = wa_message-msgv2
v3 = wa_message-msgv3
v4 = wa_message-msgv4
IMPORTING
msg = wa_error-msg.
wa_error-lno = v_index.
APPEND wa_error TO it_error.
CLEAR wa_error.
v_errrec = v_errrec + 1.
ENDIF.
ENDFORM. " ERROR
‎2008 Mar 06 6:10 AM
hi,
TYPES : BEGIN OF st_vendor,
ktokk TYPE rf02k-ktokk, "account group
anred TYPE lfa1-anred, "title
name1 TYPE lfa1-name1, "vendor name
sortl TYPE lfa1-sortl, "search term
pstlz TYPE lfa1-pstlz, "postal code
land1 TYPE lfa1-land1, "country
banks TYPE lfbk-banks,
bankl TYPE lfbk-bankl, "bank key
bankn TYPE lfbk-bankn, "account number
END OF st_vendor.
TYPES : BEGIN OF st_success,
lifnr TYPE lfa1-lifnr, "vendor number
name TYPE lfa1-name1, "vendor name
END OF st_success.
TYPES: BEGIN OF st_error,
lno TYPE i, "line number
msg TYPE string, "message
END OF st_error.
----
INTERNAL TABLE DECLARATIONS
----
DATA : it_vendor TYPE STANDARD TABLE OF st_vendor,
wa_vendor TYPE st_vendor,
it_success TYPE STANDARD TABLE OF st_success,
wa_success TYPE st_success,
it_error TYPE STANDARD TABLE OF st_error,
wa_error TYPE st_error,
it_bdcdata TYPE STANDARD TABLE OF bdcdata,
wa_bdcdata TYPE bdcdata,
it_message TYPE STANDARD TABLE OF bdcmsgcoll,
wa_message TYPE bdcmsgcoll.
----
DATA DECLARATION
----
DATA : v_file TYPE string,
v_tcode(4) VALUE 'XK01',
v_index TYPE sy-tabix,
v_totalrec TYPE i,
v_errrec TYPE i,
v_succrec TYPE i,
v_flag TYPE c.
----
SELECTION SCREEN
----
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-005.
PARAMETERS: p_file TYPE rlgrap-filename.
SELECTION-SCREEN END OF BLOCK b1.
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-006.
PARAMETERS p_mode TYPE ctu_params-dismode DEFAULT 'N' .
"A: show all dynpros
"E: show dynpro on error only
"N: do not display dynpro
PARAMETERS p_update TYPE ctu_params-updmode DEFAULT 'S'.
"S: synchronously
"A: asynchronously
SELECTION-SCREEN END OF BLOCK b2.
SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE text-007.
PARAMETERS : p_group(12) DEFAULT '50875'.
SELECTION-SCREEN END OF BLOCK b3.
----
AT SELECTION SCREEN ON VALUE REQUEST
----
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
CALL FUNCTION 'F4_FILENAME'
EXPORTING
program_name = syst-cprog
dynpro_number = syst-dynnr
IMPORTING
file_name = p_file.
----
START-OF-SELECTION
----
START-OF-SELECTION.
v_file = p_file.
PERFORM guiupload.
*****loadind data into it_bdcdata
LOOP AT it_vendor INTO wa_vendor.
v_index = sy-tabix.
PERFORM load_bdcdata.
----
CALL TRANSACTION
----
CALL TRANSACTION v_tcode USING it_bdcdata
MODE p_mode
UPDATE p_update
MESSAGES INTO it_message.
******reading success
IF sy-subrc = 0.
PERFORM success.
ELSE.
error
PERFORM error.
error session
IF v_flag = space.
CALL FUNCTION 'BDC_OPEN_GROUP'
EXPORTING
client = sy-mandt
group = p_group
holddate = sy-datum
keep = 'X'
user = sy-uname.
v_flag = 'X'.
ENDIF.
***inserting into session
CALL FUNCTION 'BDC_INSERT'
EXPORTING
tcode = 'XK01'
TABLES
dynprotab = it_bdcdata.
ENDIF.
CLEAR: it_bdcdata, it_message.
REFRESH: it_bdcdata, it_message.
ENDLOOP.
******closing session
IF v_flag EQ 'X'.
CALL FUNCTION 'BDC_CLOSE_GROUP'.
ENDIF.
----
SUMMARY DISPLAY
----
DESCRIBE TABLE it_vendor LINES v_totalrec.
DESCRIBE TABLE it_error LINES v_errrec.
v_succrec = v_totalrec - v_errrec .
WRITE : /2 text-000 , 25 v_totalrec,
/2 text-001, 25 v_errrec,
/2 text-002, 25 v_succrec.
SKIP 2.
WRITE : /1 text-001 COLOR 6.
SKIP 2.
WRITE:/ text-008 ,
25 text-009 .
LOOP AT it_error INTO wa_error.
WRITE:/ wa_error-lno,
17 wa_error-msg.
ENDLOOP.
SKIP 2.
WRITE : /1 text-002 COLOR 5.
ULINE AT : /2(46).
WRITE :/2 sy-vline ,
(10) text-003 ,
15 sy-vline ,
17 text-004 ,
47 sy-vline.
ULINE AT : /2(46).
LOOP AT it_success INTO wa_success.
WRITE:/2 sy-vline ,
wa_success-lifnr,
15 sy-vline ,
17 wa_success-name ,
47 sy-vline.
ENDLOOP.
ULINE AT : /2(46).
&----
*& Form append_bdcdata
&----
FORM append_bdcdata USING p_flag p_fname p_fval.
CLEAR wa_bdcdata.
IF p_flag = 'X'.
wa_bdcdata-program = p_fname.
wa_bdcdata-dynpro = p_fval.
wa_bdcdata-dynbegin = 'X'.
APPEND wa_bdcdata TO it_bdcdata.
ELSEIF NOT p_fval IS INITIAL.
wa_bdcdata-fnam = p_fname.
wa_bdcdata-fval = p_fval.
APPEND wa_bdcdata TO it_bdcdata.
ENDIF.
ENDFORM. "append_bdcdata
&----
*& Form load_bdcdata
&----
FORM load_bdcdata .
PERFORM append_bdcdata USING : 'X' 'SAPMF02K' '0100',
' ' 'BDC_OKCODE' '/00',
' ' 'RF02K-KTOKK' wa_vendor-ktokk,
'X' 'SAPMF02K' '0110',
' ' 'BDC_OKCODE' '/00',
' ' 'LFA1-ANRED' wa_vendor-anred,
' ' 'LFA1-NAME1' wa_vendor-name1,
' ' 'LFA1-SORTL' wa_vendor-sortl,
' ' 'LFA1-PSTLZ' wa_vendor-pstlz,
' ' 'LFA1-LAND1' wa_vendor-land1,
'X' 'SAPMF02K' '0120',
' ' 'BDC_OKCODE' '/00',
'X' 'SAPMF02K' '0130',
' ' 'BDC_OKCODE' '=ENTR',
' ' 'LFBK-BANKS(01)' wa_vendor-banks,
' ' 'LFBK-BANKL(01)' wa_vendor-bankl,
' ' 'LFBK-BANKN(01)' wa_vendor-bankn,
'X' 'SAPMF02K' '0130',
' ' 'BDC_OKCODE' '=ENTR',
'X' 'SAPLSPO1' '0300',
' ' 'BDC_OKCODE' '=YES'.
ENDFORM. "load_bdcdata
" load_bdcdata
&----
*& Form GUIUPLOAD----gui upload
&----
FORM guiupload .
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = v_file
filetype = 'ASC'
has_field_separator = 'X'
TABLES
data_tab = it_vendor
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.
ENDFORM. " GUIUPLOAD
&----
*& Form SUCCESS
&----
FORM success .
READ TABLE it_message INTO wa_message WITH KEY msgtyp = 'S'.
IF sy-subrc = 0.
wa_success-lifnr = wa_message-msgv1.
wa_success-name = wa_vendor-name1.
APPEND wa_success TO it_success.
v_succrec = v_succrec + 1.
ENDIF.
ENDFORM. " SUCCESS
&----
*& Form ERROR
&----
FORM error .
READ TABLE it_message INTO wa_message WITH KEY msgtyp = 'E'.
IF sy-subrc = 0.
CALL FUNCTION 'FORMAT_MESSAGE'
EXPORTING
id = sy-msgid
no = wa_message-msgnr
v1 = wa_message-msgv1
v2 = wa_message-msgv2
v3 = wa_message-msgv3
v4 = wa_message-msgv4
IMPORTING
msg = wa_error-msg.
wa_error-lno = v_index.
APPEND wa_error TO it_error.
CLEAR wa_error.
v_errrec = v_errrec + 1.
ENDIF.
ENDFORM. " ERROR
‎2008 Mar 06 6:21 AM