Quantcast
Channel: SCN: Message List
Viewing all articles
Browse latest Browse all 8533

Add Multiple records to G/L account group.

$
0
0

Dear ABAP Experts,

i have requirement that is using  BDC recording file  the Functional People wants to add records to the G/L Account group. The FI consultant gave the recording file, based on the recording file i developed a BDC program. This BDC program will work for single record. After creating single record system will ask for transport request .

 

 

 

REPORT  ZDP_ACC_GRP.

 

TYPES: BEGIN OF TY_TAB,

        KTOPL TYPE KTOPL,

        KTOKS TYPE KTOKS,

        TXT30 TYPE TXT30,

        VONNR TYPE VONNR,

        BISNR TYPE BISNR,

       TRKORR TYPE TRKORR,

 

   END OF TY_TAB.

 

data: lt_tab type table of ty_tab,

       wa_tab type ty_tab.

 

 

data: begin of record,

* data element: KTOPL

         KTOPL_01_001(004),

* data element: KTOKS

         KTOKS_01_002(004),

* data element: TXT30_077T

         TXT30_01_003(030),

* data element: VONNR_077S

         VONNR_01_004(010),

* data element: BISNR_077S

         BISNR_01_005(010),

* data element: TRKORR

         TRKORR_006(020),

       end of record.

 

 

*       Batchinputdata of single transaction

DATA:   BDCDATA type table of BDCDATA  WITH HEADER LINE.

*       messages of call transaction

DATA:   MESSTAB type table of BDCMSGCOLL  WITH HEADER LINE.

*       error session opened (' ' or 'X')

DATA:   E_GROUP_OPENED.

*       message texts

TABLES: T100.

 

 

data:lv_file type string.

parameters: p_fname type IBIPPARMS-PATH.

 

at selection-screen on value-request for p_fname.

CALL FUNCTION 'F4_FILENAME'

  EXPORTING

    PROGRAM_NAME        = SYST-CPROG

    DYNPRO_NUMBER       = SYST-DYNNR

    FIELD_NAME          = 'P_FNAME'

  IMPORTING

    FILE_NAME           = p_fname .

 

 

start-of-selection.

 

 

lv_file = p_fname.

 

CALL FUNCTION 'GUI_UPLOAD'

   EXPORTING

     FILENAME                      = LV_FILE

*   FILETYPE                      = 'ASC'

    HAS_FIELD_SEPARATOR           = 'X'

 

   TABLES

     DATA_TAB                      = LT_TAB

  EXCEPTIONS

    FILE_OPEN_ERROR               = 1

    FILE_READ_ERROR               = 2

    NO_BATCH                      = 3

    GUI_REFUSE_FILETRANSFER       = 4

    INVALID_TYPE                  = 5

    NO_AUTHORITY                  = 6

    UNKNOWN_ERROR                 = 7

    BAD_DATA_FORMAT               = 8

    HEADER_NOT_ALLOWED            = 9

    SEPARATOR_NOT_ALLOWED         = 10

    HEADER_TOO_LONG               = 11

    UNKNOWN_DP_ERROR              = 12

    ACCESS_DENIED                 = 13

    DP_OUT_OF_MEMORY              = 14

    DISK_FULL                     = 15

    DP_TIMEOUT                    = 16

    OTHERS                        = 17  .

 

LOop at  lt_tab into wa_tab.

perform bdc_dynpro      using 'SAPL0F09' '0020'.

perform bdc_field       using 'BDC_CURSOR'

                               'V_T077S-TXT30(01)'.

perform bdc_field       using 'BDC_OKCODE'

                               '=NEWL'.

perform bdc_dynpro      using 'SAPL0F09' '0020'.

perform bdc_field       using 'BDC_CURSOR'

                               'V_T077S-BISNR(01)'.

perform bdc_field       using 'BDC_OKCODE'

                               '=SAVE'.

perform bdc_field       using 'V_T077S-KTOPL(01)'

                               WA_TAB-KTOPL."record-KTOPL_01_001.

perform bdc_field       using 'V_T077S-KTOKS(01)'

                               WA_TAB-KTOKS."record-KTOKS_01_002.

perform bdc_field       using 'V_T077S-TXT30(01)'

                               WA_TAB-TXT30."record-TXT30_01_003.

perform bdc_field       using 'V_T077S-VONNR(01)'

                               WA_TAB-VONNR."record-VONNR_01_004.

perform bdc_field       using 'V_T077S-BISNR(01)'

                               WA_TAB-BISNR."record-BISNR_01_005.

 

perform bdc_dynpro      using 'SAPLSTRD' '0300'.

perform bdc_field       using 'BDC_CURSOR'

                               'KO008-TRKORR'.

perform bdc_field       using 'BDC_OKCODE'

                               '=LOCK'.

perform bdc_field       using 'KO008-TRKORR'

                               WA_TAB-TRKORR."record-TRKORR_006.

perform bdc_dynpro      using 'SAPL0F09' '0020'.

perform bdc_field       using 'BDC_CURSOR'

                               'V_T077S-KTOPL(02)'.

perform bdc_field       using 'BDC_OKCODE'

                               '=BACK'.

perform bdc_dynpro      using 'SAPL0F09' '0020'.

perform bdc_field       using 'BDC_CURSOR'

                               'V_T077S-KTOPL(02)'.

perform bdc_field       using 'BDC_OKCODE'

                               '=BACK'.

perform bdc_transaction using 'OBD4'.

 

ENDLOOP.

 

 

 

FORM BDC_TRANSACTION USING TCODE.

   DATA: L_MSTRING(480).

   DATA: L_SUBRC LIKE SY-SUBRC.

* batch input session

 

* call transaction using

 

     REFRESH MESSTAB.

     CALL TRANSACTION 'OBD4' USING BDCDATA

                      MODE  'A'" CTUMODE

                      UPDATE 'S'"CUPDATE

                      MESSAGES INTO MESSTAB.

     L_SUBRC = SY-SUBRC.

 

       LOOP AT MESSTAB.

         SELECT SINGLE * FROM T100 WHERE SPRSL = MESSTAB-MSGSPRA

                                   AND   ARBGB = MESSTAB-MSGID

                                   AND   MSGNR = MESSTAB-MSGNR.

         IF SY-SUBRC = 0.

           L_MSTRING = T100-TEXT.

           IF L_MSTRING CS '&1'.

             REPLACE '&1' WITH MESSTAB-MSGV1 INTO L_MSTRING.

             REPLACE '&2' WITH MESSTAB-MSGV2 INTO L_MSTRING.

             REPLACE '&3' WITH MESSTAB-MSGV3 INTO L_MSTRING.

             REPLACE '&4' WITH MESSTAB-MSGV4 INTO L_MSTRING.

           ELSE.

             REPLACE '&' WITH MESSTAB-MSGV1 INTO L_MSTRING.

             REPLACE '&' WITH MESSTAB-MSGV2 INTO L_MSTRING.

             REPLACE '&' WITH MESSTAB-MSGV3 INTO L_MSTRING.

             REPLACE '&' WITH MESSTAB-MSGV4 INTO L_MSTRING.

           ENDIF.

           CONDENSE L_MSTRING.

           WRITE: / MESSTAB-MSGTYP, L_MSTRING(250).

         ELSE.

           WRITE: / MESSTAB.

         ENDIF.

       ENDLOOP.

 

   REFRESH BDCDATA.

ENDFORM.

 

FORM BDC_DYNPRO USING PROGRAM DYNPRO.

   CLEAR BDCDATA.

   BDCDATA-PROGRAM  = PROGRAM.

   BDCDATA-DYNPRO   = DYNPRO.

   BDCDATA-DYNBEGIN = 'X'.

   APPEND BDCDATA.

ENDFORM.

 

 

FORM BDC_FIELD USING FNAM FVAL.

     CLEAR BDCDATA.

     BDCDATA-FNAM = FNAM.

     BDCDATA-FVAL = FVAL.

     APPEND BDCDATA.

ENDFORM.

 

But the FI consultant wants to add multiple records to 'G/L account group'.After adding records before saving the system need to ask transport request at the last.

 

How can I write code ...??

Please help me.


Viewing all articles
Browse latest Browse all 8533

Trending Articles