Application Development 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: 

Coding block is appear in BDC for f-02

durgesh_pandey3
Explorer
0 Kudos

Hi Experts,

I have developed a BDC using call transaction for F-02 tcode.Coding block is appear in the programming while at the time of recording it is not coming.

Kindly provide me solution.

FORM GET_EXCEL_DATA .

   CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
     EXPORTING
       FILENAME    = P_PATH
       I_BEGIN_COL = 1
       I_BEGIN_ROW = P_SROW
       I_END_COL   = 39
       I_END_ROW   = P_EROW
     TABLES
       INTERN      = IT_EXCEL.
   IF SY-SUBRC NE 0.
     MESSAGE 'Error occur in reading the Excel file' TYPE 'I'.
     STOP.
   ENDIF.

   LOOP AT IT_EXCEL INTO W_EXCEL.
     INDEX = W_EXCEL-COL.
     ASSIGN COMPONENT INDEX  OF STRUCTURE  WA_FINAL TO <FS>.
     <FS> = W_EXCEL-VALUE.
     AT END OF ROW.
       APPEND WA_FINAL TO IT_FINAL.
       CLEAR WA_FINAL.
     ENDAT.
   ENDLOOP.

*  it_item[] = it_final[].
ENDFORM.                    " GET_EXCEL_DATA
*start-of-selection.


*&---------------------------------------------------------------------*
*&      Form  CALL_BAPI
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM CALL_BAPI .

   INDEX = 0.
   LOOP AT IT_FINAL INTO WA_FINAL.
     INDEX = INDEX + 1.
     REFRESH :BDCDATA,MESSTAB.

*include bdcrecx1.
*
*start-of-selection.
*
*perform open_group.
     IF WA_FINAL-NEWBS EQ '29' OR  WA_FINAL-NEWBS EQ '29I' OR
     WA_FINAL-NEWBS EQ '29B'.

*
       perform bdc_dynpro      using 'SAPMF05A' '0100'.
       perform bdc_field       using 'BDC_CURSOR'
                                     'RF05A-NEWUM'.
       perform bdc_field       using 'BDC_OKCODE'
                                     '/00'.
       perform bdc_field       using 'BKPF-BLDAT'
                                     wa_final-bldat.
       perform bdc_field       using 'BKPF-BLART'
                                     wa_final-blart.
       perform bdc_field       using 'BKPF-BUKRS'
                                     wa_final-bukrs.
       perform bdc_field       using 'BKPF-BUDAT'
                                     wa_final-budat.
       perform bdc_field       using 'BKPF-WAERS'
                                     wa_final-waers.
       perform bdc_field       using 'RF05A-NEWBS'
                                     wa_final-newbs.
       perform bdc_field       using 'RF05A-NEWKO'
                                     wa_final-newko.
       perform bdc_field       using 'RF05A-NEWUM'
                                    wa_final-newum.
       perform bdc_dynpro      using 'SAPMF05A' '0304'.
       perform bdc_field       using 'BDC_CURSOR'
                                     'RF05A-NEWKO'.
       perform bdc_field       using 'BDC_OKCODE'
                                     '/00'.
       perform bdc_field       using 'BSEG-WRBTR'
                                     wa_final-wrbtr.
       perform bdc_field       using 'BSEG-DMBTR'
                                     wa_final-dmbtr.
       perform bdc_field       using 'BSEG-BUPLA'
                                     wa_final-bupla.
       perform bdc_field       using 'BSEG-SECCO'
                                     wa_final-secco.
       perform bdc_field       using 'BSEG-GSBER'
                                     wa_final-gsber.
       perform bdc_field       using 'BSEG-ZFBDT'
                                     wa_final-zfbdt.
       perform bdc_field       using 'BSEG-PRCTR'
                                     wa_final-prctr.
       perform bdc_field       using 'BSEG-FIPOS'
                                     'ESTER-COMMITMENT'.
       perform bdc_field       using 'BSEG-ZUONR'
                                     wa_final-zuonr.
       perform bdc_field       using 'BSEG-SGTXT'
                                     wa_final-sgtxt.
       perform bdc_field       using 'RF05A-NEWBS'
                                     wa_final-newbs1.
       perform bdc_field       using 'RF05A-NEWKO'
                                     wa_final-newko1.
       perform bdc_dynpro      using 'SAPMF05A' '0300'.
       perform bdc_field       using 'BDC_CURSOR'
                                     'RF05A-NEWKO'.
       perform bdc_field       using 'BDC_OKCODE'
                                     '=COBL_MORE'.
       perform bdc_field       using 'BSEG-WRBTR'
                                     wa_final-wrbtr1.
       perform bdc_field       using 'BSEG-DMBTR'
                                     wa_final-dmbtr1.
       perform bdc_field       using 'BSEG-BUPLA'
                                     wa_final-bupla1.
       perform bdc_field       using 'BSEG-ZUONR'
                                     wa_final-zuonr1.
       perform bdc_field       using 'BSEG-SGTXT'
                                     wa_final-sgtxt1.
       perform bdc_field       using 'RF05A-NEWBS'
                                     wa_final-newbs2.
       perform bdc_field       using 'RF05A-NEWKO'
                                     wa_final-newko2.
       perform bdc_field       using 'COBL-GSBER'
                                     wa_final-gsber1.
       perform bdc_field       using 'COBL-KOSTL'
                                     wa_final-kostl.
       perform bdc_dynpro      using 'SAPLKACB' '0002'.
       perform bdc_field       using 'BDC_CURSOR'
                                     'COBL-PRCTR'.
       perform bdc_field       using 'BDC_OKCODE'
                                     '=ENTE'.
       perform bdc_field       using 'COBL-GSBER'
                                     wa_final-gsber2.
       perform bdc_field       using 'COBL-KOSTL'
                                     wa_final-kostl1.
       perform bdc_field       using 'COBL-PRCTR'
                                     wa_final-prctr1.
       perform bdc_dynpro      using 'SAPMF05A' '0300'.
       perform bdc_field       using 'BDC_CURSOR'
                                     'BSEG-SGTXT'.
       perform bdc_field       using 'BDC_OKCODE'
                                     '=AB'.
       perform bdc_field       using 'BSEG-WRBTR'
                                     wa_final-wrbtr2.
       perform bdc_field       using 'BSEG-DMBTR'
                                     wa_final-dmbtr2.
       perform bdc_field       using 'BSEG-BUPLA'
                                     wa_final-bupla2.
       perform bdc_field       using 'BSEG-VALUT'
                                    wa_final-valut.
       perform bdc_field       using 'BSEG-ZUONR'
                                     wa_final-zuonr2.
       perform bdc_field       using 'BSEG-SGTXT'
                                     wa_final-sgtxt3.
       perform bdc_field       using 'COBL-GSBER'
                                     wa_final-gsber3.
       perform bdc_dynpro      using 'SAPMF05A' '0700'.

       perform bdc_field       using 'BDC_CURSOR'
                                     'RF05A-NEWBS'.
       perform bdc_field       using 'BDC_OKCODE'
                                     '=BU'.
endif.
     CALL TRANSACTION 'F-02' USING BDCDATA
                                                            MODE P_MODE
                                                            UPDATE 'A'
                                                            MESSAGES INTO
     MESSTAB.

     LOOP AT MESSTAB.
       IF MESSTAB-MSGTYP = 'E' OR MESSTAB-MSGTYP = 'S'.
         CALL FUNCTION 'FORMAT_MESSAGE'
           EXPORTING
             ID        = MESSTAB-MSGID
             LANG      = '-D'
             NO        = MESSTAB-MSGNR
             V1        = MESSTAB-MSGV1
             V2        = MESSTAB-MSGV2
             V3        = MESSTAB-MSGV3
             V4        = MESSTAB-MSGV4
           IMPORTING
             MSG       = MSG
           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:/9  MSG.
       ENDIF.
     ENDLOOP.
   ENDLOOP.


ENDFORM.                    " CALL_BAPI


*----------------------------------------------------------------------*
*        Start new screen                                              *
*----------------------------------------------------------------------*
FORM BDC_DYNPRO USING PROGRAM DYNPRO.
   CLEAR BDCDATA.
   BDCDATA-PROGRAM  = PROGRAM.
   BDCDATA-DYNPRO   = DYNPRO.
   BDCDATA-DYNBEGIN = 'X'.
   APPEND BDCDATA.
ENDFORM.                    "BDC_DYNPRO

*----------------------------------------------------------------------*
*        Insert field                                                  *
*----------------------------------------------------------------------*
FORM BDC_FIELD USING FNAM FVAL.

   CLEAR BDCDATA.
   BDCDATA-FNAM = FNAM.
   BDCDATA-FVAL = FVAL.
   APPEND BDCDATA.

ENDFORM.                    "BDC_FIELD

1 REPLY 1

raymond_giuseppi
Active Contributor
0 Kudos

Display or not of the coding block is related to the field status group of the account number (check with transaction FS00, tab Create/bank/interest -> double-click on FSG)

Hints: Also multiple fields don't always display, not only coding block, what will happend if BKPF-WAERS = T001-WAERS for DMBTR field)

Do either (from best to worse)

  1. Some analyzis with functionals (Some fields should be required in Excel sheet)
  2. Use BAPI or a tool like the POSTING_INTERFACE* FM.
  3. some coding with FM like FI_CHECK_ACCOUNT_ASSIGNMENT and/or COBL_EX_CODINGBLOCK_CHECK

Regards,

Raymond