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

F-02 BDC

Former Member
0 Likes
4,006

Hi Expert,

  Very Good Morning to All .

     i'm working on BDC Program for F-02  ( G/L Account Posting ) ,but its not able to run only when posting key is '25' apart from '25' posting key it works very fine .is there any one help me to solve this issue following is my current code ..

REPORT zcfi_sal_f02
        NO STANDARD PAGE HEADING LINE-SIZE 255.

TYPE-POOLS: truxs.

DATA: BEGIN OF itab OCCURS 0,
         srno(10),
         bldat(12),
         blart(2),
         bukrs(4),
         budat(12),
         monat(4),
         waers(5),
         xblnr(30),
         bktxt(30),
         newbs(2),
         newko(12),
         wrbtr(18),
         kostl(12),
         prctr(10),
         zuonr(10),
         sgtxt(30),
       END OF itab,

       itab1 LIKE TABLE OF itab WITH HEADER LINE,

       cnt   TYPE i.

*Data decleration for Error Message
DATA: t_msg TYPE TABLE OF bdcmsgcoll,   " Collecting Error messages
       w_msg TYPE bdcmsgcoll,
       w_msg1(51).

*Structure for error message
TYPES : BEGIN OF ty_s_error,
           msg_err(300) TYPE c,
         END OF ty_s_error.

DATA: it_output TYPE TABLE OF ty_s_error,
       wa_output LIKE LINE OF it_output,
       wa_error TYPE string.

DATA : scrn_no LIKE bdcdata-dynpro.
DATA : scrn_no1 LIKE bdcdata-dynpro.
DATA : bdcdata LIKE bdcdata OCCURS 0 WITH HEADER LINE.
DATA: fieldnmknam TYPE bdcdata-fnam.
DATA : BEGIN OF itab_lfbw OCCURS 0,
witht TYPE lfbw-witht,
wt_withcd TYPE lfbw-wt_withcd,
wt_subjct TYPE lfbw-wt_subjct,
END OF itab_lfbw.
DATA : i TYPE i.
DATA : ven_ind.
DATA : no_lines TYPE sy-tabix.
DATA : gsber(4),xref1(20),xref2(20),xref3(20).
DATA : bukrs(4).
*DATA : filename TYPE string.
************************************************************************
*Selection Screen
************************************************************************
***parameters : f_file like rlgrap-filename,
***             ctu_mode like ctu_params-dismode default 'A'.

PARAMETERS : f_file LIKE rlgrap-filename,
***             e_file   TYPE rlgrap-filename OBLIGATORY,       " Error File Path
              ctu_mode LIKE ctu_params-dismode DEFAULT 'A'.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR f_file.
   CALL FUNCTION 'F4_FILENAME'
* EXPORTING
* PROGRAM_NAME = 'ZMM02_BDC'
* DYNPRO_NUMBER = SYST-DYNNR
** FIELD_NAME = ' '
   IMPORTING
   file_name = f_file.
 

************************************************************************
*START OF SELECTION
************************************************************************
START-OF-SELECTION.
   PERFORM upload_data.
   PERFORM bdc_execution.

END-OF-SELECTION.

********************************************************************
* Uploading data file to internal table. *
********************************************************************
FORM upload_data.
   DATA : raw_data TYPE truxs_t_text_data.
   CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'
   EXPORTING
* I_FIELD_SEPERATOR =
  i_line_header = 'X'
   i_tab_raw_data = raw_data
   i_filename = f_file
   TABLES
   i_tab_converted_data = itab[]
  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.

   itab1[] = itab[].
   DELETE ADJACENT DUPLICATES FROM itab COMPARING srno.

ENDFORM. "upload_data

*&---------------------------------------------------------------------*
*&      Form  bdc_execution
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM bdc_execution.

   LOOP AT itab.
     cnt = 1.

     PERFORM bdc_dynpro      USING 'SAPMF05A' '0100'.
     PERFORM bdc_field       USING 'BDC_CURSOR'
                                   'RF05A-NEWKO'.
     PERFORM bdc_field       USING 'BDC_OKCODE'
                                   '/00'.
     PERFORM bdc_field       USING 'BKPF-BLDAT'
                                   itab-bldat.                     "'02.03.2013'.
     PERFORM bdc_field       USING 'BKPF-BLART'
                                   itab-blart.                     "'SA'.
     PERFORM bdc_field       USING 'BKPF-BUKRS'
                                   itab-bukrs.               "'1000'.
     PERFORM bdc_field       USING 'BKPF-BUDAT'
                                   itab-budat.                     "'02.03.2013'.
     PERFORM bdc_field       USING 'BKPF-MONAT'
                                   itab-monat.               "'3'.
     PERFORM bdc_field       USING 'BKPF-WAERS'
                                   itab-waers.                     "'INR'.
     PERFORM bdc_field       USING 'BKPF-XBLNR'
                                   itab-xblnr.                     "'Salary_Test2'.
     PERFORM bdc_field       USING 'BKPF-BKTXT'
                                   itab-bktxt.                     "'Salary upload'.
     PERFORM bdc_field       USING 'FS006-DOCID'
                                   '*'.
     PERFORM bdc_field       USING 'RF05A-NEWBS'
                                   itab-newbs.               "'50'.
     PERFORM bdc_field       USING 'RF05A-NEWKO'
                                   itab-newko.                     "'15030019'.

     CASE itab-newbs.

       WHEN '50'.

         PERFORM bdc_dynpro      USING 'SAPMF05A' '0300'.
         PERFORM bdc_field       USING 'BDC_CURSOR'
                                       'BSEG-SGTXT'.
         PERFORM bdc_field       USING 'BDC_OKCODE'
                                       '/00'.
         PERFORM bdc_field       USING 'BSEG-WRBTR'
                                       itab-wrbtr.           "'100'.
         PERFORM bdc_field       USING 'BSEG-ZUONR'
                                       itab-zuonr.           "'1110'.
         PERFORM bdc_field       USING 'BSEG-SGTXT'
                                       itab-sgtxt.                     "'pf for the month jan-12'.
         PERFORM bdc_field       USING 'DKACB-FMORE'
                                       'X'.
         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-KOSTL'
                                       itab-kostl.                    ""'11000000'.
         PERFORM bdc_field       USING 'COBL-PRCTR'
                                       itab-prctr.           "'1110'.
         PERFORM bdc_dynpro      USING 'SAPMF05A' '0300'.
         PERFORM bdc_field       USING 'BDC_CURSOR'
                                       'BSEG-WRBTR'.
         PERFORM bdc_field       USING 'BDC_OKCODE'
                                       '=AB'.
         PERFORM bdc_dynpro      USING 'SAPLKACB' '0002'.
         PERFORM bdc_field       USING 'BDC_CURSOR'
                                       'COBL-PRCTR'.
         PERFORM bdc_field       USING 'BDC_OKCODE'
                                       '=ENTE'.

       WHEN '40'.

         PERFORM bdc_dynpro      USING 'SAPMF05A' '0300'.
         PERFORM bdc_field       USING 'BDC_CURSOR'
                                       'BSEG-SGTXT'.
         PERFORM bdc_field       USING 'BDC_OKCODE'
                                       '/00'.
         PERFORM bdc_field       USING 'BSEG-WRBTR'
                                       itab-wrbtr.           ""'100'.
         PERFORM bdc_field       USING 'BSEG-ZUONR'
                                       itab-zuonr.          ""'21 March'.
         PERFORM bdc_field       USING 'BSEG-SGTXT'
                                       itab-sgtxt.                    ""'21 March 2013'.
         PERFORM bdc_field       USING 'DKACB-FMORE'
                                       'X'.
         PERFORM bdc_dynpro      USING 'SAPLKACB' '0002'.
         PERFORM bdc_field       USING 'BDC_CURSOR'
                                       'COBL-KOSTL'.
         PERFORM bdc_field       USING 'BDC_OKCODE'
                                       '=ENTE'.
         PERFORM bdc_field       USING 'COBL-KOSTL'
                                       itab-kostl.                    ""'11000000'.
         PERFORM bdc_field       USING 'COBL-PRCTR'
                                       itab-prctr.           ""'1000'.
         PERFORM bdc_dynpro      USING 'SAPMF05A' '0300'.
         PERFORM bdc_field       USING 'BDC_CURSOR'
                                       'BSEG-WRBTR'.
         PERFORM bdc_field       USING 'BDC_OKCODE'
                                       '=AB'.
          PERFORM bdc_dynpro      USING 'SAPLKACB' '0002'.
         PERFORM bdc_field       USING 'BDC_CURSOR'
                                       'COBL-KOSTL'.
         PERFORM bdc_field       USING 'BDC_OKCODE'
                                       '=ENTE'.
       WHEN '25'.

          PERFORM bdc_dynpro      USING 'SAPMF05A' '0302'.
          PERFORM bdc_field       USING 'BDC_CURSOR'
                                        'RF05A-NEWKO'.
          PERFORM bdc_field       USING 'BDC_OKCODE'
                                       '/00'.
          PERFORM bdc_field       USING 'BSEG-WRBTR'
                                         itab-wrbtr.           ""'100'.
          PERFORM bdc_field       USING 'BSEG-ZUONR'
                                         itab-zuonr.          ""'21 March'.
          PERFORM bdc_field       USING 'BSEG-SGTXT'
                                         itab-sgtxt.                    ""'21 March 2013'.
          PERFORM bdc_field       USING 'RF05A-NEWBS'
                                         itab-NEWBS.
          PERFORM bdc_field       USING 'RF05A-NEWKO'
                                         itab-NEWKO.
          PERFORM bdc_field       USING 'DKACB-FMORE'
                                        'X'.
          PERFORM bdc_dynpro      USING 'SAPMF05A' '0002'.
          PERFORM bdc_field       USING 'BDC_CURSOR'
                                        '=ENTE'.
          PERFORM bdc_field       USING 'COBL-PRCTR'
                                       itab-prctr.           ""'1000'.


          PERFORM bdc_dynpro      USING 'SAPMF05A' '0302'.
         PERFORM bdc_field       USING 'BDC_CURSOR'
                                       'BSEG-WRBTR'.
         PERFORM bdc_field       USING 'BDC_OKCODE'
                                       '=AB'.
         PERFORM bdc_dynpro      USING 'SAPLKACB' '0002'.
         PERFORM bdc_field       USING 'BDC_CURSOR'
                                       'COBL-PRCTR'.
         PERFORM bdc_field       USING 'BDC_OKCODE'
                                       '=ENTE'.
 
 
     ENDCASE.

     LOOP AT itab1 WHERE srno = itab-srno.

       CASE cnt.

         WHEN '1'.
           CLEAR cnt.

         WHEN OTHERS.

           CASE itab1-newbs.
             WHEN '50'.

               PERFORM bdc_dynpro      USING 'SAPMF05A' '0700'.
               PERFORM bdc_field       USING 'BDC_CURSOR'
                                             'RF05A-NEWKO'.
               PERFORM bdc_field       USING 'BDC_OKCODE'
                                             '/00'.
               PERFORM bdc_field       USING 'BKPF-XBLNR'
                                             itab1-xblnr.                 "'SALARY_TEST2'.
               PERFORM bdc_field       USING 'BKPF-BKTXT'
                                             itab1-bktxt.                 "'Salary upload'.
               PERFORM bdc_field       USING 'RF05A-NEWBS'
                                             itab1-newbs.    "'50'.
               PERFORM bdc_field       USING 'RF05A-NEWKO'
                                             itab1-newko.                 "'15030021'.
               PERFORM bdc_dynpro      USING 'SAPMF05A' '0300'.
               PERFORM bdc_field       USING 'BDC_CURSOR'
                                             'BSEG-SGTXT'.
               PERFORM bdc_field       USING 'BDC_OKCODE'
                                             '/00'.
               PERFORM bdc_field       USING 'BSEG-WRBTR'
                                             itab1-wrbtr.    "'100'.
               PERFORM bdc_field       USING 'BSEG-ZUONR'
                                             itab1-zuonr.    "'1110'.
               PERFORM bdc_field       USING 'BSEG-SGTXT'
                                             itab1-sgtxt.                  "'pf for the month jan-12'.
               PERFORM bdc_field       USING 'DKACB-FMORE'
                                             'X'.
               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-KOSTL'
                                             itab1-kostl.                    ""'11000000'.
               PERFORM bdc_field       USING 'COBL-PRCTR'
                                             itab1-prctr.    "'1110'.
               PERFORM bdc_dynpro      USING 'SAPMF05A' '0300'.
               PERFORM bdc_field       USING 'BDC_CURSOR'
                                             'BSEG-WRBTR'.
               PERFORM bdc_field       USING 'BDC_OKCODE'
                                             '=AB'.
               PERFORM bdc_dynpro      USING 'SAPLKACB' '0002'.
               PERFORM bdc_field       USING 'BDC_CURSOR'
                                             'COBL-PRCTR'.
               PERFORM bdc_field       USING 'BDC_OKCODE'
                                             '=ENTE'.

             WHEN '40'.

               PERFORM bdc_dynpro      USING 'SAPMF05A' '0700'.
               PERFORM bdc_field       USING 'BDC_CURSOR'
                                             'RF05A-NEWKO'.
               PERFORM bdc_field       USING 'BDC_OKCODE'
                                             '/00'.
               PERFORM bdc_field       USING 'BKPF-XBLNR'
                                             itab1-xblnr.                    ""'REF TEXT'.
               PERFORM bdc_field       USING 'BKPF-BKTXT'
                                             itab1-bktxt.                    ""'DOC HEAD TEXT'.
               PERFORM bdc_field       USING 'RF05A-NEWBS'
                                             itab1-newbs.    ""'40'.
               PERFORM bdc_field       USING 'RF05A-NEWKO'
                                             itab1-newko.                    ""'42010010'.
               PERFORM bdc_dynpro      USING 'SAPMF05A' '0300'.
               PERFORM bdc_field       USING 'BDC_CURSOR'
                                             'BSEG-SGTXT'.
               PERFORM bdc_field       USING 'BDC_OKCODE'
                                             '/00'.
               PERFORM bdc_field       USING 'BSEG-WRBTR'
                                             itab1-wrbtr.    ""'123'.
               PERFORM bdc_field       USING 'BSEG-ZUONR'
                                             itab1-zuonr.    ""'1000'.
               PERFORM bdc_field       USING 'BSEG-SGTXT'
                                             itab1-sgtxt.                    ""'SALARY TEXT'.
               PERFORM bdc_field       USING 'DKACB-FMORE'
                                             'X'.
               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-KOSTL'
                                             itab1-kostl.                    ""'11000260'.
               PERFORM bdc_field       USING 'COBL-PRCTR'
                                             itab1-prctr.    ""'1000'.
               PERFORM bdc_dynpro      USING 'SAPMF05A' '0300'.
               PERFORM bdc_field       USING 'BDC_CURSOR'
                                             'BSEG-WRBTR'.
               PERFORM bdc_field       USING 'BDC_OKCODE'
                                             '=AB'.
               PERFORM bdc_dynpro      USING 'SAPLKACB' '0002'.
               PERFORM bdc_field       USING 'BDC_CURSOR'
                                             'COBL-KOSTL'.
               PERFORM bdc_field       USING 'BDC_OKCODE'
                                             '=ENTE'.

             WHEN '34'.

               PERFORM bdc_dynpro      USING 'SAPMF05A' '0700'.
               PERFORM bdc_field       USING 'BDC_CURSOR'
                                             'RF05A-NEWKO'.
               PERFORM bdc_field       USING 'BDC_OKCODE'
                                             '/00'.
               PERFORM bdc_field       USING 'BKPF-XBLNR'
                                             itab1-xblnr.                 "'SALARY_TEST2'.
               PERFORM bdc_field       USING 'BKPF-BKTXT'
                                             itab1-bktxt.                 "'DOC HEAD TEXT'.
               PERFORM bdc_field       USING 'RF05A-NEWBS'
                                             itab1-newbs.    "'34'.
               PERFORM bdc_field       USING 'RF05A-NEWKO'
                                             itab1-newko.    "'EMP1266'.
               PERFORM bdc_dynpro      USING 'SAPMF05A' '0302'.
               PERFORM bdc_field       USING 'BDC_CURSOR'
                                             'BSEG-SGTXT'.
               PERFORM bdc_field       USING 'BDC_OKCODE'
                                             '/00'.
               PERFORM bdc_field       USING 'BSEG-WRBTR'
                                             itab1-wrbtr.    "'50'.
               PERFORM bdc_field       USING 'BSEG-ZUONR'
                                             itab1-zuonr.    "'1110'.
               PERFORM bdc_field       USING 'BSEG-SGTXT'
                                             itab1-sgtxt.                  "'aaa'.
               PERFORM bdc_dynpro      USING 'SAPMF05A' '0302'.
               PERFORM bdc_field       USING 'BDC_CURSOR'
                                             'BSEG-WRBTR'.
               PERFORM bdc_field       USING 'BDC_OKCODE'
                                             '=AB'.

             WHEN '35'.

               PERFORM bdc_dynpro      USING 'SAPMF05A' '0700'.
               PERFORM bdc_field       USING 'BDC_CURSOR'
                                             'RF05A-NEWKO'.
               PERFORM bdc_field       USING 'BDC_OKCODE'
                                             '/00'.
               PERFORM bdc_field       USING 'BKPF-XBLNR'
                                             itab1-xblnr.                 "'SALARY_TEST2'.
               PERFORM bdc_field       USING 'BKPF-BKTXT'
                                             itab1-bktxt.                 "'Salary upload'.
               PERFORM bdc_field       USING 'RF05A-NEWBS'
                                             itab1-newbs.    "'35'.
               PERFORM bdc_field       USING 'RF05A-NEWKO'
                                             itab1-newko.    "'EMP1266'.
               PERFORM bdc_dynpro      USING 'SAPMF05A' '0302'.
               PERFORM bdc_field       USING 'BDC_CURSOR'
                                             'BSEG-SGTXT'.
               PERFORM bdc_field       USING 'BDC_OKCODE'
                                             '/00'.
               PERFORM bdc_field       USING 'BSEG-WRBTR'
                                             itab1-wrbtr.    "'1000'.
               PERFORM bdc_field       USING 'BSEG-ZUONR'
                                             itab1-zuonr.    "'1110'.
               PERFORM bdc_field       USING 'BSEG-SGTXT'
                                             itab1-sgtxt.                  "'Advance recovered2'.
               PERFORM bdc_dynpro      USING 'SAPMF05A' '0302'.
               PERFORM bdc_field       USING 'BDC_CURSOR'
                                             'BSEG-WRBTR'.
               PERFORM bdc_field       USING 'BDC_OKCODE'
                                             '=AB'.
             WHEN '25'.

               PERFORM bdc_dynpro      USING 'SAPMF05A' '0700'.
               PERFORM bdc_field       USING 'BDC_CURSOR'
                                             'RF05A-NEWKO'.
               PERFORM bdc_field       USING 'BDC_OKCODE'
                                             '/00'.
               PERFORM bdc_field       USING 'BKPF-XBLNR'
                                             itab1-xblnr.                 "'SALARY_TEST2'.
               PERFORM bdc_field       USING 'BKPF-BKTXT'
                                             itab1-bktxt.                 "'Salary upload'.
               PERFORM bdc_field       USING 'RF05A-NEWBS'
                                             itab1-newbs.    "'25'.
               PERFORM bdc_field       USING 'RF05A-NEWKO'
                                             itab1-newko.    "'EMP1266'.
               PERFORM bdc_dynpro      USING 'SAPMF05A' '0302'.
               PERFORM bdc_field       USING 'BDC_CURSOR'
                                             'BSEG-SGTXT'.
               PERFORM bdc_field       USING 'BDC_OKCODE'
                                             '/00'.
               PERFORM bdc_field       USING 'BSEG-WRBTR'
                                             itab1-wrbtr.    "'1000'.
               PERFORM bdc_field       USING 'BSEG-ZUONR'
                                             itab1-zuonr.    "'1110'.
               PERFORM bdc_field       USING 'BSEG-SGTXT'
                                             itab1-sgtxt.                  "'Advance recovered11'.
               PERFORM bdc_dynpro      USING 'SAPMF05A' '0302'.
               PERFORM bdc_field       USING 'BDC_CURSOR'
                                             'BSEG-WRBTR'.
               PERFORM bdc_field       USING 'BDC_OKCODE'
                                             '=AB'
             WHEN '24'.

               PERFORM bdc_dynpro      USING 'SAPMF05A' '0700'.
               PERFORM bdc_field       USING 'BDC_CURSOR'
                                             'RF05A-NEWKO'.
               PERFORM bdc_field       USING 'BDC_OKCODE'
                                             '/00'.
               PERFORM bdc_field       USING 'BKPF-XBLNR'
                                             itab1-xblnr.                 "'SALARY_TEST2'.
               PERFORM bdc_field       USING 'BKPF-BKTXT'
                                             itab1-bktxt.                 "'Salary upload'.
               PERFORM bdc_field       USING 'RF05A-NEWBS'
                                             itab1-newbs.    "'24'.
               PERFORM bdc_field       USING 'RF05A-NEWKO'
                                             itab1-newko.    "'600003'.
               PERFORM bdc_dynpro      USING 'SAPMF05A' '0302'.
               PERFORM bdc_field       USING 'BDC_CURSOR'
                                             'BSEG-SGTXT'.
               PERFORM bdc_field       USING 'BDC_OKCODE'
                                             '/00'.
               PERFORM bdc_field       USING 'BSEG-WRBTR'
                                             itab1-wrbtr.    "'60'.
               PERFORM bdc_field       USING 'BSEG-ZUONR'
                                             itab1-zuonr.    "'1110'.
               PERFORM bdc_field       USING 'BSEG-SGTXT'
                                             itab1-sgtxt.                  "' WEST_CGF_Direct /salary exp/jan-12'.
               PERFORM bdc_dynpro      USING 'SAPMF05A' '0302'.
               PERFORM bdc_field       USING 'BDC_CURSOR'
                                             'BSEG-WRBTR'.
               PERFORM bdc_field       USING 'BDC_OKCODE'
                                             '=AB'.

           ENDCASE.

       ENDCASE.

     ENDLOOP.
     PERFORM bdc_dynpro      USING 'SAPMF05A' '0700'.
     PERFORM bdc_field       USING 'BDC_CURSOR'
                                   'RF05A-NEWBS'.
     PERFORM bdc_field       USING 'BDC_OKCODE'
                                   '=BU'.

     CALL TRANSACTION 'F-02' USING bdcdata
     MODE ctu_mode
     UPDATE 'S'
     MESSAGES INTO t_msg.

******************

     REFRESH: bdcdata, t_msg.
     CLEAR: bdcdata, t_msg, w_msg.
     CLEAR: itab, itab1.

   ENDLOOP.

ENDFORM .                    "bdc_execution

*&---------------------------------------------------------------------*
*&      Form  bdc_dynpro
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->PROGRAM    text
*      -->DYNPRO     text
*----------------------------------------------------------------------*
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.
   IF fval <> space.
     bdcdata-fnam = fnam.
     bdcdata-fval = fval.
     APPEND bdcdata.
   ENDIF.
ENDFORM. "BDC_FIELD

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
3,047

Hi,

which posting keys you are using?? based on posting keys screen no's get change.

Regards,

Raman

Hi Expert,

  Very Good Morning to All .

     i'm working on BDC Program for F-02  ( G/L Account Posting ) ,but its not able to run only when posting key is '25' apart from '25' posting key it works very fine .is there any one help me to solve this issue following is my current code ..

REPORT zcfi_sal_f02
        NO STANDARD PAGE HEADING LINE-SIZE 255.

TYPE-POOLS: truxs.

DATA: BEGIN OF itab OCCURS 0,
         srno(10),
         bldat(12),
         blart(2),
         bukrs(4),
         budat(12),
         monat(4),
         waers(5),
         xblnr(30),
         bktxt(30),
         newbs(2),
         newko(12),
         wrbtr(18),
         kostl(12),
         prctr(10),
         zuonr(10),
         sgtxt(30),
       END OF itab,

       itab1 LIKE TABLE OF itab WITH HEADER LINE,

       cnt   TYPE i.

*Data decleration for Error Message
DATA: t_msg TYPE TABLE OF bdcmsgcoll,   " Collecting Error messages
       w_msg TYPE bdcmsgcoll,
       w_msg1(51).

*Structure for error message
TYPES : BEGIN OF ty_s_error,
           msg_err(300) TYPE c,
         END OF ty_s_error.

DATA: it_output TYPE TABLE OF ty_s_error,
       wa_output LIKE LINE OF it_output,
       wa_error TYPE string.

DATA : scrn_no LIKE bdcdata-dynpro.
DATA : scrn_no1 LIKE bdcdata-dynpro.
DATA : bdcdata LIKE bdcdata OCCURS 0 WITH HEADER LINE.
DATA: fieldnmknam TYPE bdcdata-fnam.
DATA : BEGIN OF itab_lfbw OCCURS 0,
witht TYPE lfbw-witht,
wt_withcd TYPE lfbw-wt_withcd,
wt_subjct TYPE lfbw-wt_subjct,
END OF itab_lfbw.
DATA : i TYPE i.
DATA : ven_ind.
DATA : no_lines TYPE sy-tabix.
DATA : gsber(4),xref1(20),xref2(20),xref3(20).
DATA : bukrs(4).
*DATA : filename TYPE string.
************************************************************************
*Selection Screen
************************************************************************
***parameters : f_file like rlgrap-filename,
***             ctu_mode like ctu_params-dismode default 'A'.

PARAMETERS : f_file LIKE rlgrap-filename,
***             e_file   TYPE rlgrap-filename OBLIGATORY,       " Error File Path
              ctu_mode LIKE ctu_params-dismode DEFAULT 'A'.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR f_file.
   CALL FUNCTION 'F4_FILENAME'
* EXPORTING
* PROGRAM_NAME = 'ZMM02_BDC'
* DYNPRO_NUMBER = SYST-DYNNR
** FIELD_NAME = ' '
   IMPORTING
   file_name = f_file.
 

************************************************************************
*START OF SELECTION
************************************************************************
START-OF-SELECTION.
   PERFORM upload_data.
   PERFORM bdc_execution.

END-OF-SELECTION.

********************************************************************
* Uploading data file to internal table. *
********************************************************************
FORM upload_data.
   DATA : raw_data TYPE truxs_t_text_data.
   CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'
   EXPORTING
* I_FIELD_SEPERATOR =
  i_line_header = 'X'
   i_tab_raw_data = raw_data
   i_filename = f_file
   TABLES
   i_tab_converted_data = itab[]
  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.

   itab1[] = itab[].
   DELETE ADJACENT DUPLICATES FROM itab COMPARING srno.

ENDFORM. "upload_data

*&---------------------------------------------------------------------*
*&      Form  bdc_execution
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM bdc_execution.

   LOOP AT itab.
     cnt = 1.

     PERFORM bdc_dynpro      USING 'SAPMF05A' '0100'.
     PERFORM bdc_field       USING 'BDC_CURSOR'
                                   'RF05A-NEWKO'.
     PERFORM bdc_field       USING 'BDC_OKCODE'
                                   '/00'.
     PERFORM bdc_field       USING 'BKPF-BLDAT'
                                   itab-bldat.                     "'02.03.2013'.
     PERFORM bdc_field       USING 'BKPF-BLART'
                                   itab-blart.                     "'SA'.
     PERFORM bdc_field       USING 'BKPF-BUKRS'
                                   itab-bukrs.               "'1000'.
     PERFORM bdc_field       USING 'BKPF-BUDAT'
                                   itab-budat.                     "'02.03.2013'.
     PERFORM bdc_field       USING 'BKPF-MONAT'
                                   itab-monat.               "'3'.
     PERFORM bdc_field       USING 'BKPF-WAERS'
                                   itab-waers.                     "'INR'.
     PERFORM bdc_field       USING 'BKPF-XBLNR'
                                   itab-xblnr.                     "'Salary_Test2'.
     PERFORM bdc_field       USING 'BKPF-BKTXT'
                                   itab-bktxt.                     "'Salary upload'.
     PERFORM bdc_field       USING 'FS006-DOCID'
                                   '*'.
     PERFORM bdc_field       USING 'RF05A-NEWBS'
                                   itab-newbs.               "'50'.
     PERFORM bdc_field       USING 'RF05A-NEWKO'
                                   itab-newko.                     "'15030019'.

     CASE itab-newbs.

       WHEN '50'.

         PERFORM bdc_dynpro      USING 'SAPMF05A' '0300'.
         PERFORM bdc_field       USING 'BDC_CURSOR'
                                       'BSEG-SGTXT'.
         PERFORM bdc_field       USING 'BDC_OKCODE'
                                       '/00'.
         PERFORM bdc_field       USING 'BSEG-WRBTR'
                                       itab-wrbtr.           "'100'.
         PERFORM bdc_field       USING 'BSEG-ZUONR'
                                       itab-zuonr.           "'1110'.
         PERFORM bdc_field       USING 'BSEG-SGTXT'
                                       itab-sgtxt.                     "'pf for the month jan-12'.
         PERFORM bdc_field       USING 'DKACB-FMORE'
                                       'X'.
         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-KOSTL'
                                       itab-kostl.                    ""'11000000'.
         PERFORM bdc_field       USING 'COBL-PRCTR'
                                       itab-prctr.           "'1110'.
         PERFORM bdc_dynpro      USING 'SAPMF05A' '0300'.
         PERFORM bdc_field       USING 'BDC_CURSOR'
                                       'BSEG-WRBTR'.
         PERFORM bdc_field       USING 'BDC_OKCODE'
                                       '=AB'.
         PERFORM bdc_dynpro      USING 'SAPLKACB' '0002'.
         PERFORM bdc_field       USING 'BDC_CURSOR'
                                       'COBL-PRCTR'.
         PERFORM bdc_field       USING 'BDC_OKCODE'
                                       '=ENTE'.

       WHEN '40'.

         PERFORM bdc_dynpro      USING 'SAPMF05A' '0300'.
         PERFORM bdc_field       USING 'BDC_CURSOR'
                                       'BSEG-SGTXT'.
         PERFORM bdc_field       USING 'BDC_OKCODE'
                                       '/00'.
         PERFORM bdc_field       USING 'BSEG-WRBTR'
                                       itab-wrbtr.           ""'100'.
         PERFORM bdc_field       USING 'BSEG-ZUONR'
                                       itab-zuonr.          ""'21 March'.
         PERFORM bdc_field       USING 'BSEG-SGTXT'
                                       itab-sgtxt.                    ""'21 March 2013'.
         PERFORM bdc_field       USING 'DKACB-FMORE'
                                       'X'.
         PERFORM bdc_dynpro      USING 'SAPLKACB' '0002'.
         PERFORM bdc_field       USING 'BDC_CURSOR'
                                       'COBL-KOSTL'.
         PERFORM bdc_field       USING 'BDC_OKCODE'
                                       '=ENTE'.
         PERFORM bdc_field       USING 'COBL-KOSTL'
                                       itab-kostl.                    ""'11000000'.
         PERFORM bdc_field       USING 'COBL-PRCTR'
                                       itab-prctr.           ""'1000'.
         PERFORM bdc_dynpro      USING 'SAPMF05A' '0300'.
         PERFORM bdc_field       USING 'BDC_CURSOR'
                                       'BSEG-WRBTR'.
         PERFORM bdc_field       USING 'BDC_OKCODE'
                                       '=AB'.
          PERFORM bdc_dynpro      USING 'SAPLKACB' '0002'.
         PERFORM bdc_field       USING 'BDC_CURSOR'
                                       'COBL-KOSTL'.
         PERFORM bdc_field       USING 'BDC_OKCODE'
                                       '=ENTE'.
       WHEN '25'.

          PERFORM bdc_dynpro      USING 'SAPMF05A' '0302'.
          PERFORM bdc_field       USING 'BDC_CURSOR'
                                        'RF05A-NEWKO'.
          PERFORM bdc_field       USING 'BDC_OKCODE'
                                       '/00'.
          PERFORM bdc_field       USING 'BSEG-WRBTR'
                                         itab-wrbtr.           ""'100'.
          PERFORM bdc_field       USING 'BSEG-ZUONR'
                                         itab-zuonr.          ""'21 March'.
          PERFORM bdc_field       USING 'BSEG-SGTXT'
                                         itab-sgtxt.                    ""'21 March 2013'.
          PERFORM bdc_field       USING 'RF05A-NEWBS'
                                         itab-NEWBS.
          PERFORM bdc_field       USING 'RF05A-NEWKO'
                                         itab-NEWKO.
          PERFORM bdc_field       USING 'DKACB-FMORE'
                                        'X'.
          PERFORM bdc_dynpro      USING 'SAPMF05A' '0002'.
          PERFORM bdc_field       USING 'BDC_CURSOR'
                                        '=ENTE'.
          PERFORM bdc_field       USING 'COBL-PRCTR'
                                       itab-prctr.           ""'1000'.


          PERFORM bdc_dynpro      USING 'SAPMF05A' '0302'.
         PERFORM bdc_field       USING 'BDC_CURSOR'
                                       'BSEG-WRBTR'.
         PERFORM bdc_field       USING 'BDC_OKCODE'
                                       '=AB'.
         PERFORM bdc_dynpro      USING 'SAPLKACB' '0002'.
         PERFORM bdc_field       USING 'BDC_CURSOR'
                                       'COBL-PRCTR'.
         PERFORM bdc_field       USING 'BDC_OKCODE'
                                       '=ENTE'.
 
 
     ENDCASE.

     LOOP AT itab1 WHERE srno = itab-srno.

       CASE cnt.

         WHEN '1'.
           CLEAR cnt.

         WHEN OTHERS.

           CASE itab1-newbs.
             WHEN '50'.

               PERFORM bdc_dynpro      USING 'SAPMF05A' '0700'.
               PERFORM bdc_field       USING 'BDC_CURSOR'
                                             'RF05A-NEWKO'.
               PERFORM bdc_field       USING 'BDC_OKCODE'
                                             '/00'.
               PERFORM bdc_field       USING 'BKPF-XBLNR'
                                             itab1-xblnr.                 "'SALARY_TEST2'.
               PERFORM bdc_field       USING 'BKPF-BKTXT'
                                             itab1-bktxt.                 "'Salary upload'.
               PERFORM bdc_field       USING 'RF05A-NEWBS'
                                             itab1-newbs.    "'50'.
               PERFORM bdc_field       USING 'RF05A-NEWKO'
                                             itab1-newko.                 "'15030021'.
               PERFORM bdc_dynpro      USING 'SAPMF05A' '0300'.
               PERFORM bdc_field       USING 'BDC_CURSOR'
                                             'BSEG-SGTXT'.
               PERFORM bdc_field       USING 'BDC_OKCODE'
                                             '/00'.
               PERFORM bdc_field       USING 'BSEG-WRBTR'
                                             itab1-wrbtr.    "'100'.
               PERFORM bdc_field       USING 'BSEG-ZUONR'
                                             itab1-zuonr.    "'1110'.
               PERFORM bdc_field       USING 'BSEG-SGTXT'
                                             itab1-sgtxt.                  "'pf for the month jan-12'.
               PERFORM bdc_field       USING 'DKACB-FMORE'
                                             'X'.
               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-KOSTL'
                                             itab1-kostl.                    ""'11000000'.
               PERFORM bdc_field       USING 'COBL-PRCTR'
                                             itab1-prctr.    "'1110'.
               PERFORM bdc_dynpro      USING 'SAPMF05A' '0300'.
               PERFORM bdc_field       USING 'BDC_CURSOR'
                                             'BSEG-WRBTR'.
               PERFORM bdc_field       USING 'BDC_OKCODE'
                                             '=AB'.
               PERFORM bdc_dynpro      USING 'SAPLKACB' '0002'.
               PERFORM bdc_field       USING 'BDC_CURSOR'
                                             'COBL-PRCTR'.
               PERFORM bdc_field       USING 'BDC_OKCODE'
                                             '=ENTE'.

             WHEN '40'.

               PERFORM bdc_dynpro      USING 'SAPMF05A' '0700'.
               PERFORM bdc_field       USING 'BDC_CURSOR'
                                             'RF05A-NEWKO'.
               PERFORM bdc_field       USING 'BDC_OKCODE'
                                             '/00'.
               PERFORM bdc_field       USING 'BKPF-XBLNR'
                                             itab1-xblnr.                    ""'REF TEXT'.
               PERFORM bdc_field       USING 'BKPF-BKTXT'
                                             itab1-bktxt.                    ""'DOC HEAD TEXT'.
               PERFORM bdc_field       USING 'RF05A-NEWBS'
                                             itab1-newbs.    ""'40'.
               PERFORM bdc_field       USING 'RF05A-NEWKO'
                                             itab1-newko.                    ""'42010010'.
               PERFORM bdc_dynpro      USING 'SAPMF05A' '0300'.
               PERFORM bdc_field       USING 'BDC_CURSOR'
                                             'BSEG-SGTXT'.
               PERFORM bdc_field       USING 'BDC_OKCODE'
                                             '/00'.
               PERFORM bdc_field       USING 'BSEG-WRBTR'
                                             itab1-wrbtr.    ""'123'.
               PERFORM bdc_field       USING 'BSEG-ZUONR'
                                             itab1-zuonr.    ""'1000'.
               PERFORM bdc_field       USING 'BSEG-SGTXT'
                                             itab1-sgtxt.                    ""'SALARY TEXT'.
               PERFORM bdc_field       USING 'DKACB-FMORE'
                                             'X'.
               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-KOSTL'
                                             itab1-kostl.                    ""'11000260'.
               PERFORM bdc_field       USING 'COBL-PRCTR'
                                             itab1-prctr.    ""'1000'.
               PERFORM bdc_dynpro      USING 'SAPMF05A' '0300'.
               PERFORM bdc_field       USING 'BDC_CURSOR'
                                             'BSEG-WRBTR'.
               PERFORM bdc_field       USING 'BDC_OKCODE'
                                             '=AB'.
               PERFORM bdc_dynpro      USING 'SAPLKACB' '0002'.
               PERFORM bdc_field       USING 'BDC_CURSOR'
                                             'COBL-KOSTL'.
               PERFORM bdc_field       USING 'BDC_OKCODE'
                                             '=ENTE'.

             WHEN '34'.

               PERFORM bdc_dynpro      USING 'SAPMF05A' '0700'.
               PERFORM bdc_field       USING 'BDC_CURSOR'
                                             'RF05A-NEWKO'.
               PERFORM bdc_field       USING 'BDC_OKCODE'
                                             '/00'.
               PERFORM bdc_field       USING 'BKPF-XBLNR'
                                             itab1-xblnr.                 "'SALARY_TEST2'.
               PERFORM bdc_field       USING 'BKPF-BKTXT'
                                             itab1-bktxt.                 "'DOC HEAD TEXT'.
               PERFORM bdc_field       USING 'RF05A-NEWBS'
                                             itab1-newbs.    "'34'.
               PERFORM bdc_field       USING 'RF05A-NEWKO'
                                             itab1-newko.    "'EMP1266'.
               PERFORM bdc_dynpro      USING 'SAPMF05A' '0302'.
               PERFORM bdc_field       USING 'BDC_CURSOR'
                                             'BSEG-SGTXT'.
               PERFORM bdc_field       USING 'BDC_OKCODE'
                                             '/00'.
               PERFORM bdc_field       USING 'BSEG-WRBTR'
                                             itab1-wrbtr.    "'50'.
               PERFORM bdc_field       USING 'BSEG-ZUONR'
                                             itab1-zuonr.    "'1110'.
               PERFORM bdc_field       USING 'BSEG-SGTXT'
                                             itab1-sgtxt.                  "'aaa'.
               PERFORM bdc_dynpro      USING 'SAPMF05A' '0302'.
               PERFORM bdc_field       USING 'BDC_CURSOR'
                                             'BSEG-WRBTR'.
               PERFORM bdc_field       USING 'BDC_OKCODE'
                                             '=AB'.

             WHEN '35'.

               PERFORM bdc_dynpro      USING 'SAPMF05A' '0700'.
               PERFORM bdc_field       USING 'BDC_CURSOR'
                                             'RF05A-NEWKO'.
               PERFORM bdc_field       USING 'BDC_OKCODE'
                                             '/00'.
               PERFORM bdc_field       USING 'BKPF-XBLNR'
                                             itab1-xblnr.                 "'SALARY_TEST2'.
               PERFORM bdc_field       USING 'BKPF-BKTXT'
                                             itab1-bktxt.                 "'Salary upload'.
               PERFORM bdc_field       USING 'RF05A-NEWBS'
                                             itab1-newbs.    "'35'.
               PERFORM bdc_field       USING 'RF05A-NEWKO'
                                             itab1-newko.    "'EMP1266'.
               PERFORM bdc_dynpro      USING 'SAPMF05A' '0302'.
               PERFORM bdc_field       USING 'BDC_CURSOR'
                                             'BSEG-SGTXT'.
               PERFORM bdc_field       USING 'BDC_OKCODE'
                                             '/00'.
               PERFORM bdc_field       USING 'BSEG-WRBTR'
                                             itab1-wrbtr.    "'1000'.
               PERFORM bdc_field       USING 'BSEG-ZUONR'
                                             itab1-zuonr.    "'1110'.
               PERFORM bdc_field       USING 'BSEG-SGTXT'
                                             itab1-sgtxt.                  "'Advance recovered2'.
               PERFORM bdc_dynpro      USING 'SAPMF05A' '0302'.
               PERFORM bdc_field       USING 'BDC_CURSOR'
                                             'BSEG-WRBTR'.
               PERFORM bdc_field       USING 'BDC_OKCODE'
                                             '=AB'.
             WHEN '25'.

               PERFORM bdc_dynpro      USING 'SAPMF05A' '0700'.
               PERFORM bdc_field       USING 'BDC_CURSOR'
                                             'RF05A-NEWKO'.
               PERFORM bdc_field       USING 'BDC_OKCODE'
                                             '/00'.
               PERFORM bdc_field       USING 'BKPF-XBLNR'
                                             itab1-xblnr.                 "'SALARY_TEST2'.
               PERFORM bdc_field       USING 'BKPF-BKTXT'
                                             itab1-bktxt.                 "'Salary upload'.
               PERFORM bdc_field       USING 'RF05A-NEWBS'
                                             itab1-newbs.    "'25'.
               PERFORM bdc_field       USING 'RF05A-NEWKO'
                                             itab1-newko.    "'EMP1266'.
               PERFORM bdc_dynpro      USING 'SAPMF05A' '0302'.
               PERFORM bdc_field       USING 'BDC_CURSOR'
                                             'BSEG-SGTXT'.
               PERFORM bdc_field       USING 'BDC_OKCODE'
                                             '/00'.
               PERFORM bdc_field       USING 'BSEG-WRBTR'
                                             itab1-wrbtr.    "'1000'.
               PERFORM bdc_field       USING 'BSEG-ZUONR'
                                             itab1-zuonr.    "'1110'.
               PERFORM bdc_field       USING 'BSEG-SGTXT'
                                             itab1-sgtxt.                  "'Advance recovered11'.
               PERFORM bdc_dynpro      USING 'SAPMF05A' '0302'.
               PERFORM bdc_field       USING 'BDC_CURSOR'
                                             'BSEG-WRBTR'.
               PERFORM bdc_field       USING 'BDC_OKCODE'
                                             '=AB'
             WHEN '24'.

               PERFORM bdc_dynpro      USING 'SAPMF05A' '0700'.
               PERFORM bdc_field       USING 'BDC_CURSOR'
                                             'RF05A-NEWKO'.
               PERFORM bdc_field       USING 'BDC_OKCODE'
                                             '/00'.
               PERFORM bdc_field       USING 'BKPF-XBLNR'
                                             itab1-xblnr.                 "'SALARY_TEST2'.
               PERFORM bdc_field       USING 'BKPF-BKTXT'
                                             itab1-bktxt.                 "'Salary upload'.
               PERFORM bdc_field       USING 'RF05A-NEWBS'
                                             itab1-newbs.    "'24'.
               PERFORM bdc_field       USING 'RF05A-NEWKO'
                                             itab1-newko.    "'600003'.
               PERFORM bdc_dynpro      USING 'SAPMF05A' '0302'.
               PERFORM bdc_field       USING 'BDC_CURSOR'
                                             'BSEG-SGTXT'.
               PERFORM bdc_field       USING 'BDC_OKCODE'
                                             '/00'.
               PERFORM bdc_field       USING 'BSEG-WRBTR'
                                             itab1-wrbtr.    "'60'.
               PERFORM bdc_field       USING 'BSEG-ZUONR'
                                             itab1-zuonr.    "'1110'.
               PERFORM bdc_field       USING 'BSEG-SGTXT'
                                             itab1-sgtxt.                  "' WEST_CGF_Direct /salary exp/jan-12'.
               PERFORM bdc_dynpro      USING 'SAPMF05A' '0302'.
               PERFORM bdc_field       USING 'BDC_CURSOR'
                                             'BSEG-WRBTR'.
               PERFORM bdc_field       USING 'BDC_OKCODE'
                                             '=AB'.

           ENDCASE.

       ENDCASE.

     ENDLOOP.
     PERFORM bdc_dynpro      USING 'SAPMF05A' '0700'.
     PERFORM bdc_field       USING 'BDC_CURSOR'
                                   'RF05A-NEWBS'.
     PERFORM bdc_field       USING 'BDC_OKCODE'
                                   '=BU'.

     CALL TRANSACTION 'F-02' USING bdcdata
     MODE ctu_mode
     UPDATE 'S'
     MESSAGES INTO t_msg.

******************

     REFRESH: bdcdata, t_msg.
     CLEAR: bdcdata, t_msg, w_msg.
     CLEAR: itab, itab1.

   ENDLOOP.

ENDFORM .                    "bdc_execution

*&---------------------------------------------------------------------*
*&      Form  bdc_dynpro
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->PROGRAM    text
*      -->DYNPRO     text
*----------------------------------------------------------------------*
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.
   IF fval <> space.
     bdcdata-fnam = fnam.
     bdcdata-fval = fval.
     APPEND bdcdata.
   ENDIF.
ENDFORM. "BDC_FIELD

15 REPLIES 15
Read only

Former Member
0 Likes
3,048

Hi,

which posting keys you are using?? based on posting keys screen no's get change.

Regards,

Raman

Read only

0 Likes
3,047

Hello Raman sir,

ya correct ,as per posting key screen sequences and screen number change .

my above program is working correct for posting key '40' and '50' but when posting key '25' encounter then program is not working .

Thank You .

Read only

0 Likes
3,047

Hi,

i suggest instead of going BDC use BAPI because if your system get upgrade all bdc will go on toss.

give.... to me i hope you can understand.

Regards,

Raman

Read only

nabheetscn
SAP Champion
SAP Champion
0 Likes
3,047

Hi Shrikant

First of all going forward pleasea dd your code as attachment. Secondly why dont you use BAPI for the same rather than coding a BDC

Nabheet

Read only

0 Likes
3,047

Hi Nabheet ..

  Thanks for suggestion of BAPI .But i want BDC only for this particular requirement so please help me in BDC .

Thank You . 

Read only

0 Likes
3,047

Shrikant

I would still suggest you do it via BAPI only. Read the documentation of BAPI_ACC_GL_POSTING_POST. Please search on scn  you will find so many threads and code.

Nabheet

Read only

former_member187748
Active Contributor
0 Likes
3,047

Hi Shrikant,

yes i will also suggest to go with BAPI rather than using BDC , because through bapi you can achieve it easily by using some function module instead of writing such a handy bdc code.

Read only

0 Likes
3,047

This message was moderated.

Read only

0 Likes
3,047

Hi Shrikant,

i am not able to access my system right now, but you search on SCN there are many post available for the same.

Read only

PankajJain777
Explorer
0 Likes
3,047

Hi Shrikant,

Even If you want to use BDC then put "IF" "ELSE"condition as

if Posting key ne '25'.

*Put recording for posting key ne 25

elseif posting key eq '25'

*put recording for posting key eq 25

endif

In this way you can bifurcate the execution of code based on posting key.

Read only

0 Likes
3,047

Hello Pankaj

yes you are very Right,

  im also trying by this way but exact where is going wrong in my code im still getting idea .if possible chek my above code ..

                .

Thank You,

Read only

0 Likes
3,047

Hi,

instead of using bdc use bapi's it does not create any problem.

Regards,

Raman

Read only

0 Likes
3,047

Dear shrikanth...

find the attached document for bapi .. Check for the following subroutines in the code ..

PERFORM bapi_header_fill.

       PERFORM bapi_item_fill.

       PERFORM bapi_item_fill_ecs.

       PERFORM bapi_item_fill_shscess.

       PERFORM call_bapi.

       PERFORM commit_bapi.

Read only

0 Likes
3,047

Dear Shravan,

   very Help fulL Your Reply,

can you see my above code and suggest mi modification as per my code .it will more comfortable.

Thank You,

Read only

RaymondGiuseppi
Active Contributor
0 Likes
3,047

If you really don't want to use a BAPI (whatever your actual reasons) you could let Sap do it for you and do not worry about the screen numbers and sequence.


Look at scn for following FM :

  • POSTING_INTERFACE_START
  • POSTING_INTERFACE_DOCUMENT
  • POSTING_INTERFACE_END


Also note that F-02 is FB01 in  disguise (with SA / 40 default values on first screen)


Regards,

Raymond