on ‎2023 Feb 03 7:17 AM
Hello Team,
Directly through t-code FB05 All the open items have been selected by default
But when we run through SHDB No item amounts are selected and total amount also not there
Could you please suggest how we can proceed to select all the items of amount and process in BDC
Request clarification before answering.
You can use this code to solve your problem. This is bvasically for FB05 tcode 'Transfer Posting and Cleaning' (4th one radiobutton).
NOTE : while uploading the data from excel file, we have to make one refrence field on excel. in my case i create one refrence field that is so_no. That so SO_NO should be unik for each Account No (RF05A-NEWKO).
There is no use of this SO_NO on screen. but using this refrence field we can upload the excel data. so please don't forget to maintain your excel file with additional col i.e. SO_NO.
if your account no is same for multiple DEBIT and CREDIT. so, against of all this account no SO_NO should be same on excel file. below you can find how to maintain excel file FOR EXAMPLE,
SO_NO BLDAT BUDAT BLART BUKRS ......... NEWBS(D/C) NEWKO(A/C NO) AMOUNT
1 20.12.2024 20.12.2024 SA XYZ 40 123456 100.00
1 20.12.2024 20.12.2024 SA XYZ 40 123456 100.00
1 20.12.2024 20.12.2024 SA XYZ 50 123456 200.00
2 20.12.2024 20.12.2024 SA XYZ 40 567890 500.00
2 20.12.2024 20.12.2024 SA XYZ 40 567890 200.00
2 20.12.2024 20.12.2024 SA XYZ 50 567890 700.00
"Below code you can use for your reference.
report ZFB055
no standard page heading line-size 255.
**include bdcrecx1.
**
**start-of-selection.
**perform open_group.
TYPES : BEGIN OF ty_upload,
SO_NO TYPE SYST_TABIX,
BLDAT TYPE BKPF-BLDAT, " DOC DATE
BUDAT TYPE BKPF-BUDAT, " POS DATE
BLART TYPE BKPF-BLART, " DOC TYPE " SA
BUKRS TYPE BKPF-BUKRS, " COMP CODE
* MONAT TYPE BKPF-MONAT, " PERIOD " 9
WAERS TYPE BKPF-WAERS, " CURRENCY
XBLNR TYPE BKPF-XBLNR, " REFERENCE
BKTXT TYPE BKPF-BKTXT, " DOC HED TEXT
NEWBS TYPE RF05A-NEWBS, " PST KEY
NEWKO TYPE RF05A-NEWKO, " ACCOUNT
WRBTR TYPE BSEG-WRBTR, " AMOUNT
MWSKZ TYPE BSEG-MWSKZ, " TAX CODE
BUPLA TYPE BSEG-BUPLA, " Business Place
** SGTXT TYPE BSEG-SGTXT,
GSBER TYPE COBL-GSBER, " BUSS AREA
KOSTL TYPE COBL-KOSTL, " COST CENTER
AUFNR TYPE COBL-AUFNR, " INT ORD NO
PRCTR TYPE COBL-PRCTR, " PROFIT CENTER
* segment TYPE cobl-SEGMENT, " segment
ZUONR TYPE BSEG-ZUONR, " Assignment Number
** SEGMENT TYPE COBL-SEGMENT,
END OF ty_upload.
DATA : IT_UPLOAD TYPE STANDARD TABLE OF TY_UPLOAD,
WA_UPLOAD TYPE TY_UPLOAD,
it_upload1 TYPE STANDARD TABLE OF ty_upload,
wa_upload1 TYPE ty_upload,
IT_UPLOAD2 TYPE STANDARD TABLE OF TY_UPLOAD,
WA_UPLOAD2 TYPE TY_UPLOAD.
DATA: IT_TEMP TYPE STANDARD TABLE OF TY_UPLOAD,
WA_TEMP TYPE TY_UPLOAD.
DATA: IT_RAW TYPE TRUXS_T_TEXT_DATA.
DATA: CTU_PARAMS TYPE CTU_PARAMS.
DATA: IT_BDCDATA TYPE TABLE OF BDCDATA,
WA_BDCDATA TYPE BDCDATA,
IT_MSG TYPE TABLE OF BDCMSGCOLL,
WA_MSG TYPE BDCMSGCOLL.
DATA : DATE(10) TYPE C,
DATE1(10) TYPE C.
* w_var(10) type c.
DATA:lv_count TYPE c,
lv_text(255) TYPE c,
lv_text1(255) TYPE c,
lv_text2(255) TYPE c,
lv_text3(255) TYPE c,
lv_text4(255) TYPE c,
lv_text5(255) TYPE c,
lv_text6(255) TYPE c,
lv_text7(255) TYPE c,
l_message TYPE string,
* lv_menge(13) TYPE c.
lv_menge TYPE bdc_fval.
*DATA:it_raw TYPE truxs_t_text_data.
Data: lv_flag type c,
Lv_index(4) type c value '0000'.
*&---------------------------------------------------------------------*
*& SELECTION-SCREEN
*&---------------------------------------------------------------------*
PARAMETERS: p_file TYPE rlgrap-filename ,
MODE_B RADIOBUTTON GROUP G1 DEFAULT 'X',
MODE_F RADIOBUTTON GROUP G1.
*&---------------------------------------------------------------------*
*& AT SELECTION-SCREEN
*&---------------------------------------------------------------------*
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file .
CALL FUNCTION 'F4_FILENAME'
EXPORTING
program_name = syst-cprog
dynpro_number = syst-dynnr
field_name = 'P_FILE'
IMPORTING
file_name = p_file.
**INITIALIZATION.
** lv_count = '00'.
START-OF-SELECTION.
CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'
EXPORTING
i_field_seperator = '#'
i_line_header = 'X'
i_tab_raw_data = it_raw
i_filename = p_file
TABLES
i_tab_converted_data = it_upload
EXCEPTIONS
CONVERSION_FAILED = 1
OTHERS = 2
.
IF sy-subrc <> 0.
ENDIF.
SORT IT_UPLOAD by so_no.
*SORT IT_UPLOAD by NEWBS.
IT_UPLOAD1 = IT_UPLOAD.
DELETE ADJACENT DUPLICATES FROM IT_UPLOAD COMPARING SO_NO.
LOOP AT IT_UPLOAD INTO WA_UPLOAD. " from sy-TABIX.
CONCATENATE WA_UPLOAD-BLDAT+6(2) WA_UPLOAD-BLDAT+4(2) WA_UPLOAD-BLDAT+0(4) INTO DATE SEPARATED BY '.'.
CONCATENATE WA_UPLOAD-BUDAT+6(2) WA_UPLOAD-BUDAT+4(2) WA_UPLOAD-BUDAT+0(4) INTO DATE1 SEPARATED BY '.'.
perform bdc_dynpro using 'SAPMF05A' '0122'.
perform bdc_field using 'BDC_CURSOR'
'RF05A-NEWKO'. "NEWKO XPOS1
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'BKPF-BLDAT' DATE. "WA_UPLOAD-BLDAT.
* '30.11.2024'.
perform bdc_field using 'BKPF-BLART' WA_UPLOAD-BLART.
* 'SA'.
perform bdc_field using 'BKPF-BUKRS' WA_UPLOAD-BUKRS.
* 'cpil'.
perform bdc_field using 'BKPF-BUDAT' DATE1. "WA_UPLOAD-BUDAT.
* '30.11.2024'.
**perform bdc_field using 'BKPF-MONAT' WA_UPLOAD-MONAT.
* '9'.
perform bdc_field using 'BKPF-WAERS' WA_UPLOAD-WAERS.
* 'inr'.
perform bdc_field using 'BKPF-XBLNR' WA_UPLOAD-XBLNR.
* 'Test'.
perform bdc_field using 'BKPF-BKTXT' WA_UPLOAD-BKTXT.
* 'Test'.
perform bdc_field using 'FS006-DOCID'
'*'.
perform bdc_field using 'RF05A-NEWBS' WA_UPLOAD-NEWBS.
* '40'.
perform bdc_field using 'RF05A-NEWKO' WA_UPLOAD-NEWKO.
* '40400650'.
REFRESH IT_UPLOAD2.
LOOP AT IT_UPLOAD1 INTO WA_UPLOAD1 WHERE SO_NO = WA_UPLOAD-SO_NO.
APPEND WA_UPLOAD1 TO IT_UPLOAD2.
CLEAR : WA_UPLOAD1.
ENDLOOP.
CLEAR : SY-TABIX.
LOOP AT IT_UPLOAD2 INTO WA_UPLOAD2.
LV_COUNT = SY-TABIX.
perform bdc_dynpro using 'SAPMF05A' '0300'.
perform bdc_field using 'BDC_CURSOR' "WA_UPLOAD-NEWKO.
'RF05A-NEWKO'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'BSEG-WRBTR' WA_UPLOAD2-WRBTR.
* '1000'.
perform bdc_field using 'BSEG-MWSKZ' WA_UPLOAD2-MWSKZ.
* 'V0'.
perform bdc_field using 'BSEG-BUPLA' WA_UPLOAD2-BUPLA.
* 'HO01'.
perform bdc_field using 'BSEG-ZUONR' WA_UPLOAD2-ZUONR.
** '123456'.
**perform bdc_field using 'BSEG-SGTXT'
** 'Test'.
LV_COUNT = LV_COUNT + 1.
READ TABLE IT_UPLOAD2 ASSIGNING FIELD-SYMBOL(<FS_TEMP>) INDEX LV_COUNT.
IF SY-SUBRC = 0 AND <FS_TEMP>-SO_NO EQ WA_UPLOAD2-SO_NO.
perform bdc_field using 'RF05A-NEWBS' <FS_TEMP>-NEWBS.
* '50'.
perform bdc_field using 'RF05A-NEWKO' <FS_TEMP>-NEWKO.
* '40400650'.
perform bdc_dynpro using 'SAPLKACB' '0002'.
perform bdc_field using 'BDC_CURSOR' "WA_UPLOAD-PRCTR.
'COBL-PRCTR'.
perform bdc_field using 'BDC_OKCODE'
'=ENTE'.
perform bdc_field using 'COBL-GSBER' WA_UPLOAD2-GSBER.
* 'ho01'.
perform bdc_field using 'COBL-KOSTL' WA_UPLOAD2-KOSTL.
* '50078867'.
perform bdc_field using 'COBL-AUFNR' WA_UPLOAD2-AUFNR.
* '000002113431'.
perform bdc_field using 'COBL-PRCTR' WA_UPLOAD2-PRCTR.
* '5001cp05'.
ELSE.
perform bdc_dynpro using 'SAPLKACB' '0002'.
perform bdc_field using 'BDC_CURSOR' "WA_UPLOAD-PRCTR.
'COBL-PRCTR'.
perform bdc_field using 'BDC_OKCODE'
'=ENTE'.
perform bdc_field using 'COBL-GSBER' WA_UPLOAD2-GSBER.
* 'ho01'.
perform bdc_field using 'COBL-KOSTL' WA_UPLOAD2-KOSTL.
* '50010501'.
perform bdc_field using 'COBL-AUFNR' WA_UPLOAD2-AUFNR.
* '000002113431'.
perform bdc_field using 'COBL-PRCTR' WA_UPLOAD2-PRCTR.
* '5001cp05'.
perform bdc_dynpro using 'SAPMF05A' '0300'.
perform bdc_field using 'BDC_CURSOR' "WA_UPLOAD-WRBTR.
'BSEG-WRBTR'.
perform bdc_field using 'BDC_OKCODE'
'=BU'.
perform bdc_field using 'BSEG-WRBTR' WA_UPLOAD2-WRBTR.
* '1,000.00'.
perform bdc_field using 'BSEG-MWSKZ' WA_UPLOAD2-MWSKZ.
* 'V0'.
perform bdc_field using 'BSEG-BUPLA' WA_UPLOAD2-BUPLA.
** 'HO01'.
perform bdc_field using 'BSEG-ZUONR' WA_UPLOAD2-ZUONR.
** '123456'.
**perform bdc_field using 'BSEG-SGTXT'
** 'Test'.
perform bdc_field using 'DKACB-FMORE'
'X'.
perform bdc_dynpro using 'SAPLKACB' '0002'.
perform bdc_field using 'BDC_CURSOR' "WA_UPLOAD-GSBER.
'COBL-GSBER'.
perform bdc_field using 'BDC_OKCODE'
'=ENTE'.
perform bdc_field using 'COBL-GSBER' WA_UPLOAD2-GSBER.
* 'HO01'.
perform bdc_field using 'COBL-KOSTL' WA_UPLOAD2-KOSTL.
* '50010501'.
perform bdc_field using 'COBL-AUFNR' WA_UPLOAD2-AUFNR.
* '2113431'.
perform bdc_field using 'COBL-PRCTR' WA_UPLOAD2-PRCTR.
* '5001CP05'.
*perform bdc_field using 'COBL-SEGMENT' "WA_UPLOAD-SEGMENT.
* 'IRON.
EXIT.
ENDIF.
CLEAR : WA_UPLOAD2.
ENDLOOP.
IF MODE_B = 'X'.
CALL TRANSACTION 'FB05' USING IT_BDCDATA MODE 'N' UPDATE 'A' MESSAGES INTO IT_MSG.
ENDIF.
IF MODE_F = 'X'.
CALL TRANSACTION 'FB05' USING IT_BDCDATA MODE 'A' UPDATE 'A' MESSAGES INTO IT_MSG.
ENDIF.
REFRESH IT_BDCDATA.
CLEAR : WA_UPLOAD.
ENDLOOP.
LOOP AT it_msg INTO wa_msg .
CALL FUNCTION 'FORMAT_MESSAGE'
EXPORTING
id = wa_msg-msgid
lang = sy-langu
no = wa_msg-msgnr
v1 = wa_msg-msgv1
v2 = wa_msg-msgv2
v3 = wa_msg-msgv3
v4 = wa_msg-msgv4
IMPORTING
msg = l_message
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:/ l_message .
ENDLOOP .
*----------------------------------------------------------------------*
* Start new screen *
*----------------------------------------------------------------------*
FORM bdc_dynpro USING program dynpro.
CLEAR wa_bdcdata.
wa_bdcdata-program = program.
wa_bdcdata-dynpro = dynpro.
wa_bdcdata-dynbegin = 'X'.
APPEND wa_bdcdata TO it_bdcdata.
ENDFORM. "
*----------------------------------------------------------------------*
* Insert field *
*----------------------------------------------------------------------*
FORM bdc_field USING fnam fval.
* IF FVAL <> NODATA.
CLEAR wa_bdcdata.
wa_bdcdata-fnam = fnam.
wa_bdcdata-fval = fval.
SHIFT wa_bdcdata-fval LEFT DELETING LEADING SPACE.
APPEND wa_bdcdata TO it_bdcdata.
* ENDIF.
ENDFORM.
Best Regard,
Rishabh.
dont't forget to give me rewards 😀
Thank You.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
| User | Count |
|---|---|
| 28 | |
| 13 | |
| 11 | |
| 4 | |
| 3 | |
| 3 | |
| 3 | |
| 2 | |
| 2 | |
| 2 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.