cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

F-04/FB05- Need to write BDC in ECC

l104966747
Newcomer
0 Likes
385

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

Accepted Solutions (0)

Answers (1)

Answers (1)

RishabhRaj
Discoverer
0 Likes

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(10TYPE C,
              DATE1(10TYPE 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.
Datalv_flag type c,
      Lv_index(4type value '0000'.

*&---------------------------------------------------------------------*
*& SELECTION-SCREEN
*&---------------------------------------------------------------------*
PARAMETERSp_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(2WA_UPLOAD-BLDAT+4(2WA_UPLOAD-BLDAT+0(4INTO DATE SEPARATED BY '.'.
  CONCATENATE WA_UPLOAD-BUDAT+6(2WA_UPLOAD-BUDAT+4(2WA_UPLOAD-BUDAT+0(4INTO 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 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.