Hi Rajendra,
i have seen your recording , and have done necessary changes, just do one thing more here
In place of field1, field2 and field3, put your primary data field through you wants to see error or success
messages, please do it .It will fulfill your requirements.
report ZFB01_POST_DOCUMENT |
no standard page heading line-size 255.
TYPE-POOLS : TRUXS. |
TYPES: BEGIN OF ty_input, |
(Here just change your all input fields) |
here are the sample how you have to write your fields, whose values is to be filled through BDC.
Please do it,
bldat(10) TYPE c, "Document Date in Document
blart(02) TYPE c, "Document Type
bukrs(04) TYPE c, "Company Code
budat(10) TYPE c, "Posting Date in the Document
monat(2) TYPE c, "Period
waers(5) TYPE c, "Currency key
xblnr(16) TYPE c, "REFERENCE NUM
newbs(02) TYPE c, "Posting Key for the Next Line Item
newko(17) TYPE c, "Account or Matchcode for the Next Line Item
wrbtr(18) TYPE c, "Amount
gsber(04) TYPE c, "Business Area
END OF ty_input. |
DATA : BEGIN OF options. |
INCLUDE STRUCTURE ctu_params.
DATA : BEGIN OF options. |
INCLUDE STRUCTURE ctu_params.
DATA : END OF options. | |
DATA: i_messtab LIKE bdcmsgcoll OCCURS 0 WITH HEADER LINE, |
l_message LIKE bapiret2-message.
DATA: p_mode TYPE c. | |
DATA BEGIN OF it_error OCCURS 1. | |
DATA : text(100) TYPE c. | |
DATA END OF it_error. | |
DATA BEGIN OF it_success OCCURS 1. | |
DATA: text(100) TYPE c. | |
DATA END OF it_success. | |
DATA: it_raw TYPE truxs_t_text_data. |
SELECTION-SCREEN : BEGIN OF BLOCK b1 WITH FRAME TITLE text-001. | |
SELECTION-SCREEN SKIP 1. | |
*parameters: Customer radiobutton group G1, | |
* Vendor radiobutton group G1. | |
PARAMETERS : p_path LIKE rlgrap-filename OBLIGATORY. | |
SELECTION-SCREEN : END OF BLOCK b1. | |
SELECTION-SCREEN : BEGIN OF BLOCK b2 WITH FRAME TITLE text-002. | |
SELECTION-SCREEN SKIP 1. | |
PARAMETERS : mode_a RADIOBUTTON GROUP r1, |
mode_n RADIOBUTTON GROUP r1.
SELECTION-SCREEN : END OF BLOCK b2. | ||
*--------------------------------------------------------------------* | ||
* AT SELECTION SCREEN | ||
*--------------------------------------------------------------------* | ||
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path. | ||
CALL FUNCTION 'F4_FILENAME' | ||
EXPORTING |
field_name = 'P_FILE '
IMPORTING |
file_name = p_path.
START-OF-SELECTION. | |
CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP' | |
EXPORTING |
i_line_header = 'X'
i_tab_raw_data = it_raw " WORK TABLE
i_filename = p_path
TABLES |
i_tab_converted_data = it_input[] "ACTUAL DATA
EXCEPTIONS |
conversion_failed = 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.
LOOP AT it_input.
IF sy-tabix EQ 1 . "for first row
CONTINUE.
ENDIF.
ENDLOOP.
*--------------------------------------------------------------------*\
* start of selection
*--------------------------------------------------------------------*
START-OF-SELECTION.
PERFORM upload_data.
* Report for success
PERFORM success_text.
* Report for Error
PERFORM error_text.
END-OF-SELECTION.
*
* PERFORM bdc_transaction USING 'FB01'.
*
* PERFORM close_group.
*&---------------------------------------------------------------------*
*& Form UPLOAD_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
form UPLOAD_DATA .
* PERFORM open_group.
IF mode_a EQ 'X'.
p_mode = 'A'.
ELSEIF mode_n EQ 'X'.
p_mode = 'N'.
ENDIF.
options-defsize = 'X'.
options-updmode = ''.
options-dismode = p_mode.
LOOP AT it_input INTO wa_input. |
PERFORM zz1bdc_dynpro USING 'SAPMSVMA' '0200'.
PERFORM zz1bdc_field USING 'BDC_CURSOR'
'VCLDIR-VCLNAME'.
PERFORM zz1bdc_field USING 'BDC_OKCODE'
'=UPD'.
PERFORM zz1bdc_field USING 'VCLDIR-VCLNAME'
'VC_T012'."VCLNAME_001.
PERFORM zz1bdc_dynpro USING 'SAPLSVIX' '0100'.
PERFORM zz1bdc_field USING 'BDC_CURSOR'
'D0100_FIELD_TAB-LOWER_LIMIT(01)'.
PERFORM zz1bdc_field USING 'D0100_FIELD_TAB-LOWER_LIMIT(01)' '0001'.
PERFORM zz1bdc_field USING 'BDC_OKCODE'
'=OKAY'.
PERFORM zz1bdc_dynpro USING 'SAPLFHBANKC' '0100'.
PERFORM zz1bdc_field USING 'BDC_CURSOR'
'V_T012-BUKRS'.
PERFORM zz1bdc_field USING 'V_T012-BUKRS'
'AP01'.
PERFORM zz1bdc_field USING 'BDC_OKCODE'
'=NEWL'.
PERFORM zz1bdc_dynpro USING 'SAPLFHBANKC' '0101'.
PERFORM zz1bdc_field USING 'BDC_CURSOR'
'V_T012-BANKL'.
PERFORM zz1bdc_field USING 'BDC_OKCODE'
'=SAVE'.
PERFORM zz1bdc_field USING 'V_T012-HBKID'
wa1-f3." HBKID_002.
PERFORM zz1bdc_field USING 'V_T012-BANKS'
wa1-f4. " BANKS_003.
PERFORM zz1bdc_field USING 'V_T012-BANKL'
wa1-f5." BANKL_004.
PERFORM zz1bdc_dynpro USING 'SAPLBANK' '0100'.
PERFORM zz1bdc_field USING 'BDC_CURSOR'
'BNKA-BNKLZ'.
PERFORM zz1bdc_field USING 'BDC_OKCODE'
'=ENTR'.
PERFORM zz1bdc_field USING 'BNKA-BANKA'
wa1-f6." BANKA_005.
PERFORM zz1bdc_field USING 'BNKA-PROVZ'
wa1-f7."
PERFORM zz1bdc_field USING 'BNKA-STRAS'
wa1-f8."
PERFORM zz1bdc_field USING 'BNKA-ORT01'
wa1-f9."
PERFORM zz1bdc_field USING 'BNKA-BRNCH'
wa1-f10."
PERFORM zz1bdc_field USING 'BNKA-SWIFT'
wa1-f11."
PERFORM zz1bdc_field USING 'BNKA-BGRUP'
wa1-f12."
PERFORM zz1bdc_field USING 'BNKA-XPGRO'
wa1-f13."
PERFORM zz1bdc_field USING 'BNKA-BNKLZ'
wa1-f14."
PERFORM zz1bdc_dynpro USING 'SAPLSTRD' '0300'.
PERFORM zz1bdc_field USING 'BDC_CURSOR'
'KO008-TRKORR'.
PERFORM zz1bdc_field USING 'KO008-TRKORR'
'IDSK901135'.
PERFORM zz1bdc_field USING 'BDC_OKCODE'
'=LOCK'.
PERFORM zz1bdc_dynpro USING 'SAPLFHBANKC' '0101'.
PERFORM zz1bdc_field USING 'BDC_CURSOR'
'V_T012-BANKL'.
PERFORM zz1bdc_field USING 'BDC_OKCODE'
'=UEBE'.
PERFORM zz1bdc_dynpro USING 'SAPLFHBANKC' '0100'.
PERFORM zz1bdc_field USING 'BDC_CURSOR'
'V_T012-BUKRS'.
PERFORM zz1bdc_field USING 'BDC_OKCODE'
'=BACK'.
PERFORM zz1bdc_dynpro USING 'SAPMSVMA' '0200'.
PERFORM zz1bdc_field USING 'BDC_OKCODE'
'/EBACK'.
PERFORM zz1bdc_field USING 'BDC_CURSOR'
'VCLDIR-VCLNAME'.
wa_ctuparams-racommit = 'X'.
wa_ctuparams-dismode = 'A'.
wa_ctuparams-updmode = 'S'.
CALL TRANSACTION 'FB01' USING bdcdata |
OPTIONS FROM options
MESSAGES INTO i_messtab.
IF SY-SUBRC NE 0. | |
CALL FUNCTION 'BAPI_MESSAGE_GETDETAIL' |
EXPORTING
id = sy-msgid
number = sy-msgno
language = sy-langu
textformat = 'ASC'
message_v1 = sy-msgv1
message_v2 = sy-msgv2
message_v3 = sy-msgv3
message_v4 = sy-msgv4
IMPORTING
message = l_message.
.
CONCATENATE l_message '-' wa_input-field1 wa_input-field2 wa_input-field3 INTO it_error-text
SEPARATED BY ' '.
APPEND it_error.
ELSE. |
CONCATENATE 'DATA UPLOADED SUCCESSFULLY :' wa_input-field1 wa_input-field2 wa_input-field3
INTO it_success-text SEPARATED BY ' '.
APPEND it_success.
ENDIF.
REFRESH bdcdata.
CLEAR: wa_input,l_message.
ENDLOOP. |
***ENDLOOP.
endform. |
" UPLOAD_DATA
FORM success_text . |
LOOP AT it_success. | |
AT FIRST. |
WRITE :/10 'Following records successfully uploaded'.
ULINE.
ENDAT. | |
WRITE :/10 it_success-text. | |
ENDLOOP. |
ENDFORM. |
FORM error_text . |
LOOP AT it_error. | ||
AT FIRST. |
WRITE :/10 'Following records are not uploaded'.
ULINE.
ENDAT.
WRITE :/10 it_error-text.
ENDLOOP. | |
ENDFORM. |