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

Bdc message

Former Member
0 Likes
401

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.

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
381

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

2 REPLIES 2
Read only

Former Member
0 Likes
382

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

Read only

Former Member
0 Likes
381

answered