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: 

BDC scroll down issue

Former Member
0 Kudos

hi,

I am uploading data using BDC Table Control  up to 7 records its uploading after that my scroll down '=P+' is not working.  can any one tell me code for scroll down functionality in BDC table control .

24 REPLIES 24

former_member186055
Active Participant
0 Kudos

Hi Mahesh,

You can record the function for the page down also(whenever you are recording, use the Page Down key in key board), use that function code. and also what is the t.code you are using to upload the data using BDC.

Regards,

SuryaPraveen

0 Kudos

tcode FV50L iam using .

0 Kudos

Mahesh,

Please double check the code for page down, If every thing fine, Can you please do it in fore ground, i.e., mode A display all screens.

Because, based on the screen resolution and window size table control size may vary.

Regards,

SuryaPraveen

0 Kudos

its not screen issue i made default screen display if you have sample code for scroll down functionality .....

0 Kudos

Mahesh,

*Loop table control internal table

      lv_no = lv_no + 1. " table control line number

*maintain table control data login...
.
.

      IF lv_no EQ 8.
        lv_no = 1.
        PERFORM bdc_dynpro      USING <prog_name> <screen_num>.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      cus_pos.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '=P+'.
      ENDIF.

*endloop

Regards,

SuryaPraveen

0 Kudos

still its not working i pasted my code...

LOOP AT T_HEADER INTO W_HEADER.

REFRESH T_BDCDATA.

erform bdc_dynpro      using 'SAPMF05A' '1001'.

perform bdc_field       using 'BDC_OKCODE'

                               '/ECCDE'.

perform bdc_field       using 'ACGL_HEAD-BLDAT'

                               W_HEADER-BLDAT. "'03/22/2012'.

perform bdc_dynpro      using 'SAPLACHD' '1000'.

perform bdc_field       using 'BDC_CURSOR'

                               'BKPF-BUKRS'.

perform bdc_field       using 'BDC_OKCODE'

                               '=ENTR'.

perform bdc_field       using 'BKPF-BUKRS'

                               W_HEADER-BUKRS. "'3000'.

*perform bdc_transaction using 'FV50L'.

perform bdc_dynpro      using 'SAPMF05A' '1001'.

perform bdc_field       using 'BDC_OKCODE'

                                 '/00'.

perform bdc_field       using 'ACGL_HEAD-BLDAT'

                               W_HEADER-BLDAT. "'03/22/2012'.

perform bdc_field       using 'ACGL_HEAD-WAERS'

                               W_HEADER-WAERS."'CNY'.

perform bdc_field       using 'ACGL_HEAD-BUDAT'

                               W_HEADER-BUDAT."'03/28/2012'.

perform bdc_field       using 'ACGL_HEAD-LDGRP'

                               W_HEADER-LDGRP."''.

perform bdc_field       using 'ACGL_HEAD-XBLNR'

                               W_HEADER-XBLNR."'Salary of Feb'.

perform bdc_field       using 'ACGL_HEAD-BKTXT'

                               W_HEADER-BKTXT."'Salary for Feb12'.

perform bdc_field       using 'ACGL_HEAD-BLART'

                               W_HEADER-BLART."'ZZ'.

L_N = 1.

LOOP AT T_ITEM INTO W_ITEM WHERE BLDAT = W_HEADER-BLDAT.

CLEAR L_FIELD.

CONCATENATE  'ACGL_ITEM-HKONT(0' L_N ')' INTO L_FIELD.

perform bdc_field       using L_FIELD"'ACGL_ITEM-HKONT(01)'

                               W_ITEM-HKONT." '50100010'.

CLEAR L_FIELD.

CONCATENATE  'ACGL_ITEM-SHKZG(0' L_N ')' INTO L_FIELD.

perform bdc_field       using L_FIELD "'ACGL_ITEM-SHKZG(01)'

                               W_ITEM-SHKZG."'S'.

CLEAR L_FIELD.

CONCATENATE  'ACGL_ITEM-WRBTR(0' L_N ')' INTO L_FIELD.

perform bdc_field       using L_FIELD "'ACGL_ITEM-WRBTR(01)'

                               W_ITEM-WRBTR."'              200'.

CLEAR L_FIELD.

CONCATENATE  'ACGL_ITEM-SGTXT(0' L_N ')' INTO L_FIELD.

perform bdc_field       using L_FIELD "'ACGL_ITEM-SGTXT(01)'

                               W_ITEM-SGTXT."'2月_基本工资'.

CLEAR L_FIELD.

CONCATENATE  'ACGL_ITEM-GSBER(0' L_N ')' INTO L_FIELD.

perform bdc_field       using L_FIELD "'ACGL_ITEM-GSBER(01)'

                               W_ITEM-GSBER."'3000'.

CLEAR L_FIELD.

CONCATENATE  'ACGL_ITEM-KOSTL(0' L_N ')' INTO L_FIELD.

perform bdc_field       using L_FIELD "'ACGL_ITEM-KOSTL(01)'

                               W_ITEM-KOSTL."'30001'.

perform bdc_dynpro      using 'SAPMF05A' '1001'.

perform bdc_field       using 'BDC_OKCODE'

                               '/00'.

CLEAR L_FIELD.

CONCATENATE  'ACGL_ITEM-PRCTR(0' L_N ')' INTO L_FIELD.

perform bdc_field       using L_FIELD "'ACGL_ITEM-PRCTR(02)'

IF L_N = 8.     " Change this to greater than and try

   L_N = 1.

   perform bdc_dynpro      using 'SAPMF05A' '1001'.

   perform bdc_field       using 'BDC_OKCODE'

                                 '/00'.

   PERFORM bdc_field USING 'BDC_OKCODE'

                                 '=P+'.

ENDIF.

ENDLOOP.

perform bdc_dynpro      using 'SAPMF05A' '1001'.

perform bdc_field       using 'BDC_OKCODE'

                               '=PBBP'.

CALL TRANSACTION 'FV50L' USING T_BDCDATA OPTIONS FROM opt

*                            MODE 'A'

                             MESSAGES INTO T_MSG.


                               W_ITEM-PRCTR."'p30005'.

0 Kudos

Mahesh,

You need to increment L_N in between LOOP... ENDLOOP.

In your case you must increment it before ENDLOOP only,

LOOP AT T_ITEM INTO W_ITEM WHERE BLDAT = W_HEADER-BLDAT.

.

.

L_N = L_N + 1.

ENDLOOP.

Regards,

SuryaPraveen

0 Kudos

L_N = L_N + 1. i was doing that i think it missed in pasting any way still its not working

0 Kudos

Mahesh,

IF L_N = 8.     " Change this to greater than and try

   L_N = 1.

   perform bdc_dynpro      using 'SAPMF05A' '1001'.

*   perform bdc_field       using 'BDC_OKCODE'           " Comment this line

*                                 '/00'.                                      " Comment this line also

   PERFORM bdc_field USING 'BDC_OKCODE'

                                 '=P+'.

ENDIF.

CALL TRANSACTION 'FV50L' USING T_BDCDATA OPTIONS FROM opt

                            MODE 'A'                                     " Uncomment this line and run this in fore ground you may get, where it is going to mistake.

Regards,

SuryaPraveen

                             MESSAGES INTO T_MSG.

0 Kudos

after commenting those line after 7 records ,, again its replacing new records on first filled 7 records but not going page down

0 Kudos

Mahesh,

I'm not getting, why it is not working...you can in different way by clicking on the insert row ( + Push button)

Regards,

SuryaPraveen.

0 Kudos

even i did that but still not working..

0 Kudos

Hi Mahesh,

If possible can you please mail me complete code, for my mail ID check my business card.

Regards,

SuryaPraveen

0 Kudos

report ZFI_PAYROLL_BATCH_UPLOAD

        no standard page heading line-size 255.

*&---------------------------------------------------------------------*

*& Structure Declaration

*&---------------------------------------------------------------------*

* Structure declaration for Header

TYPES: BEGIN OF TY_HEADER,

*        BUKRS type BKPF-BUKRS,        "Company Code

           BLDAT type  CHAR10,"ACGL_HEAD-BLDAT,   "Document Date 8

           WAERS type ACGL_HEAD-WAERS,   "Currency 5

           BUDAT type CHAR10,"ACGL_HEAD-BUDAT,   "Posting Date 8

           LDGRP type ACGL_HEAD-LDGRP,   "Ledger Grp 4

           XBLNR type ACGL_HEAD-XBLNR,    "Reference 16

           BKTXT type ACGL_HEAD-BKTXT,     " Doc.Header Text 25

           BLART type ACGL_HEAD-BLART,     "Document Type 2

           BUKRS type BKPF-BUKRS,        "Company Code4

       END OF TY_HEADER,

* Structure Declaration for Item

      BEGIN OF TY_ITEM,

          BLDAT type CHAR10,"ACGL_HEAD-BLDAT,

          HKONT type ACGL_ITEM-HKONT, "G/L account 10

          SHKZG type ACGL_ITEM-SHKZG,  "D/C 1

          WRBTR type CHAR20,"ACGL_ITEM-WRBTR,  "Amount in document currency 13

          SGTXT type ACGL_ITEM-SGTXT,  "Text 50

          GSBER type ACGL_ITEM-GSBER,  "Business area 4

          KOSTL type ACGL_ITEM-KOSTL,  "Cost center 10

          PRCTR type ACGL_ITEM-PRCTR, "Profit center 10

        END OF TY_ITEM,

* Structure Delcatation for source

     BEGIN OF TY_UPLOAD,

        F1 TYPE CHAR10,"4,

        F2 TYPE CHAR10,

        F3 TYPE CHAR10,"5,

        F4 TYPE CHAR13,

        F5 TYPE CHAR50,

        F6 TYPE CHAR25,"16

        F7 TYPE CHAR10,"25,

        F8 TYPE CHAR10,

     END OF TY_UPLOAD.

*&---------------------------------------------------------------------*

*& Source internal table Declaration

*&---------------------------------------------------------------------*

*    Internal table declaration for header

DATA:T_HEADER TYPE STANDARD TABLE OF TY_HEADER,

*    Internal table declaration for item

      T_ITEM TYPE STANDARD TABLE OF TY_ITEM,

*    Internal table declaration for source

      T_UPLOAD TYPE STANDARD TABLE OF TY_UPLOAD,

      t_error type standard table of ty_upload,

*    Internal table declaration for target

      T_BDCDATA TYPE STANDARD TABLE OF BDCDATA,

*    Internal table declartion for message

      T_MSG TYPE STANDARD TABLE OF BDCMSGCOLL,

*&---------------------------------------------------------------------*

*& Work area Declaration

*&---------------------------------------------------------------------*

*  Work area declaration for header

    W_HEADER TYPE TY_HEADER,

*  Work area declaration for item

    W_ITEM TYPE TY_ITEM,

*  Work area declaration for source

    W_UPLOAD TYPE TY_UPLOAD,

    W_UPLOAD1 TYPE TY_UPLOAD,

*  Work area declaration for target

    W_BDCDATA TYPE BDCDATA,

*  Work area declaration for message

    W_MSG TYPE BDCMSGCOLL.

  field-symbols : <fs>.

   DATA : l_intern type standard table of alsmex_tabline.

   data : l_index type i.

   data: wa_intern LIKE alsmex_tabline .

   DATA: l_date type sy-datum,

           l_year(4) type c,

           l_month(2) type c ,

           l_day(2) type c.

   DATA opt TYPE ctu_params.

    opt-dismode = 'A'.

    opt-defsize = 'X'.

     opt-updmode = 'A'.

     opt-nobinpt = 'X'.

    opt-RACOMMIT = 'X' .

     opt-NOBIEND = 'X' .

*&---------------------------------------------------------------------*

*& Selection screen Declaration

*&---------------------------------------------------------------------*

SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME.

*PARAMETERS:P_FLNAME TYPE FILENAME.

  PARAMETERS:P_FLNAME LIKE rlgrap-filename.

SELECTION-SCREEN END OF BLOCK B1.

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

*At-selection-screen event

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

*To provide Input help for file name

AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FLNAME.

CALL FUNCTION 'F4_FILENAME'

EXPORTING

program_name = SYST-CPROG

dynpro_number = SYST-DYNNR

IMPORTING

file_name = P_FLNAME.

*&---------------------------------------------------------------------*

*& Initialization Event Declaration

*&---------------------------------------------------------------------*

INITIALIZATION.

* Clear work areas

   CLEAR:W_HEADER,

         W_ITEM,

         W_UPLOAD,

         W_BDCDATA,

         W_MSG.

* Refresh the tables

   REFRESH:T_HEADER,

           T_ITEM,

           T_UPLOAD,

           T_BDCDATA,

           T_MSG.

*&---------------------------------------------------------------------*

*& Start of selection Declaration

*&---------------------------------------------------------------------*

START-OF-SELECTION.

* Upload the data

   PERFORM SUB_UPLOAD_DATA.

* Pop bdcdata

   PERFORM SUB_POP_BDCDATA.

*&---------------------------------------------------------------------*

*&      Form  SUB_UPLOAD_DATA

*&---------------------------------------------------------------------*

*       text

*----------------------------------------------------------------------*

FORM SUB_UPLOAD_DATA .

   data : L_FLNAME TYPE rlgrap-filename.

   L_FLNAME = P_FLNAME.

   CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'

   EXPORTING

     FILENAME                      = L_FLNAME

     I_BEGIN_COL                   =  1         "startcol

     I_BEGIN_ROW                   =  1         "startrow

     I_END_COL                     =  5000      "endcol

     I_END_ROW                     =  1000000  "endrow

   TABLES

     INTERN                        = l_intern

* EXCEPTIONS

*   INCONSISTENT_PARAMETERS       = 1

*   UPLOAD_OLE                    = 2

*   OTHERS                        = 3

           .

IF SY-SUBRC <> 0.

* message 'File should be in Excel' type 'E'.

* leave list-processing.

* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

LOOP AT l_intern into WA_intern.

MOVE WA_INTERN-COL TO L_INDEX.

ASSIGN COMPONENT L_INDEX OF STRUCTURE W_UPLOAD TO <FS>.

MOVE WA_INTERN-VALUE TO <FS>.

AT END OF ROW.

APPEND W_UPLOAD TO T_UPLOAD.

CLEAR W_UPLOAD.

ENDAT.

ENDLOOP.

   LOOP AT T_UPLOAD INTO W_UPLOAD1.

***W_UPLOAD = W_UPLOAD1.

***    move W_UPLOAD-F1+0(2) to l_date.

***   move W_UPLOAD-F1+3(2) to l_month.

***   move W_UPLOAD-F1+6(4) to l_year.

***   concatenate l_month'/'l_date'/' l_year  into  W_UPLOAD-F1.

***

***   move W_UPLOAD-F3+0(2) to l_date.

***   move W_UPLOAD-F3+3(2) to l_month.

***   move W_UPLOAD-F3+6(4) to l_year.

***   concatenate l_month'/'l_date'/' l_year  into  W_UPLOAD-F3.

     W_UPLOAD = W_UPLOAD1.

     find '.' in W_UPLOAD-F1.

     find '.' in W_UPLOAD-F3.

     if sy-subrc = 0.

       replace '.'  with '/' into W_UPLOAD-F1.

       replace '.'  with '/' into W_UPLOAD-F3.

*    CONDENSE W_UPLOAD-F1 NO-GAPS.

*    CONDENSE W_UPLOAD-F3 NO-GAPS.

     if sy-subrc = 0.

       replace '.'  with '/' into W_UPLOAD-F1.

       replace '.'  with '/' into W_UPLOAD-F3.

*    CONDENSE W_UPLOAD-F1 NO-GAPS.

*    CONDENSE W_UPLOAD-F3 NO-GAPS.

     endif.

     endif.

*    Moving header data

     AT NEW F1.

*      W_HEADER-BUKRS = W_UPLOAD-F1.

       W_HEADER-BLDAT = W_UPLOAD-F1.

       W_HEADER-WAERS = W_UPLOAD-F2.

       W_HEADER-BUDAT = W_UPLOAD-F3.

       W_HEADER-LDGRP = W_UPLOAD-F4.

       W_HEADER-XBLNR = W_UPLOAD-F5.

       W_HEADER-BKTXT = W_UPLOAD-F6.

       W_HEADER-BLART = W_UPLOAD-F7.

       W_HEADER-BUKRS = W_UPLOAD-F8.

*      W_HEADER-FDGRV = W_UPLOAD-F9.

*      W_HEADER-WAERS = W_UPLOAD-F10.

       APPEND W_HEADER TO T_HEADER.

       CLEAR W_HEADER.

       CONTINUE.

     ENDAT.

* Moving the item data

* move W_UPLOAD-F1+0(2) to l_date.

*   move W_UPLOAD-F1+3(2) to l_month.

*   move W_UPLOAD-F1+6(4) to l_year.

*   concatenate l_month'/'l_date'/' l_year  into  W_UPLOAD-F1.

    find '.' in W_UPLOAD-F1.

     if sy-subrc = 0.

       replace '.'  with '/' into W_UPLOAD-F1.

     CONDENSE W_UPLOAD-F1 NO-GAPS.

     if sy-subrc = 0.

       replace '.'  with '/' into W_UPLOAD-F1.

     CONDENSE W_UPLOAD-F1 NO-GAPS.

     endif.

     endif.

*       W_ITEM-BUKRS = W_UPLOAD-F1.

        W_ITEM-BLDAT = W_UPLOAD-F1.

        W_ITEM-HKONT = W_UPLOAD-F2. "G/L account

        W_ITEM-SHKZG = W_UPLOAD-F3.  "D/C

        W_ITEM-WRBTR = W_UPLOAD-F4.  "Amount in document currency

        W_ITEM-SGTXT = W_UPLOAD-F5.  "Text

        W_ITEM-GSBER = W_UPLOAD-F6.  "Business area

        W_ITEM-KOSTL = W_UPLOAD-F7.  "Cost center

        W_ITEM-PRCTR = W_UPLOAD-F8.

     APPEND W_ITEM TO T_ITEM.

     CLEAR: W_ITEM, l_month, l_date, l_year.

   ENDLOOP.

ENDFORM.                    " SUB_UPLOAD_DATA

*&---------------------------------------------------------------------*

*&      Form  SUB_POP_BDCDATA

*&---------------------------------------------------------------------*

*       text

*----------------------------------------------------------------------*

FORM SUB_POP_BDCDATA .

   DATA:L_FIELD TYPE CHAR20," CHAR132."20,

        L_N TYPE CHAR2.

*  data:  v_flines TYPE i,

*        v_tabix   TYPE sytabix,

*        l_tabix   TYPE sytabix.

*   data :tc_lines type char4.

   DATA : L_MSG TYPE STRING.

**  data: LV_BLDAT TYPE SY-DATUM.

*DESCRIBE TABLE T_HEADER LINES v_flines.

   LOOP AT T_HEADER INTO W_HEADER.

**     LV_BLDAT = W_HEADER-BLDAT.

**     CLEAR W_HEADER-BLDAT.

**     WRITE LV_BLDAT TO W_HEADER-BLDAT.

     REFRESH T_BDCDATA.

perform bdc_dynpro      using 'SAPMF05A' '1001'.

perform bdc_field       using 'BDC_OKCODE'

                               '/ECCDE'.

perform bdc_field       using 'ACGL_HEAD-BLDAT'

                               W_HEADER-BLDAT. "'03/22/2012'.

perform bdc_dynpro      using 'SAPLACHD' '1000'.

perform bdc_field       using 'BDC_CURSOR'

                               'BKPF-BUKRS'.

perform bdc_field       using 'BDC_OKCODE'

                               '=ENTR'.

perform bdc_field       using 'BKPF-BUKRS'

                               W_HEADER-BUKRS. "'3000'.

*perform bdc_transaction using 'FV50L'.

perform bdc_dynpro      using 'SAPMF05A' '1001'.

perform bdc_field       using 'BDC_OKCODE'

                                 '/00'.

perform bdc_field       using 'ACGL_HEAD-BLDAT'

                               W_HEADER-BLDAT. "'03/22/2012'.

perform bdc_field       using 'ACGL_HEAD-WAERS'

                               W_HEADER-WAERS."'CNY'.

perform bdc_field       using 'ACGL_HEAD-BUDAT'

                               W_HEADER-BUDAT."'03/28/2012'.

perform bdc_field       using 'ACGL_HEAD-LDGRP'

                               W_HEADER-LDGRP."''.

perform bdc_field       using 'ACGL_HEAD-XBLNR'

                               W_HEADER-XBLNR."'Salary of Feb'.

perform bdc_field       using 'ACGL_HEAD-BKTXT'

                               W_HEADER-BKTXT."'Salary for Feb12'.

perform bdc_field       using 'ACGL_HEAD-BLART'

                               W_HEADER-BLART."'ZZ'.

L_N = 1.

LOOP AT T_ITEM INTO W_ITEM WHERE BLDAT = W_HEADER-BLDAT.

CLEAR L_FIELD.

CONCATENATE  'ACGL_ITEM-HKONT(0' L_N ')' INTO L_FIELD.

perform bdc_field       using L_FIELD"'ACGL_ITEM-HKONT(01)'

                               W_ITEM-HKONT." '50100010'.

CLEAR L_FIELD.

CONCATENATE  'ACGL_ITEM-SHKZG(0' L_N ')' INTO L_FIELD.

perform bdc_field       using L_FIELD "'ACGL_ITEM-SHKZG(01)'

                               W_ITEM-SHKZG."'S'.

CLEAR L_FIELD.

CONCATENATE  'ACGL_ITEM-WRBTR(0' L_N ')' INTO L_FIELD.

perform bdc_field       using L_FIELD "'ACGL_ITEM-WRBTR(01)'

                               W_ITEM-WRBTR."'              200'.

CLEAR L_FIELD.

CONCATENATE  'ACGL_ITEM-SGTXT(0' L_N ')' INTO L_FIELD.

perform bdc_field       using L_FIELD "'ACGL_ITEM-SGTXT(01)'

                               W_ITEM-SGTXT."'2月_基本工资'.

CLEAR L_FIELD.

CONCATENATE  'ACGL_ITEM-GSBER(0' L_N ')' INTO L_FIELD.

perform bdc_field       using L_FIELD "'ACGL_ITEM-GSBER(01)'

                               W_ITEM-GSBER."'3000'.

CLEAR L_FIELD.

CONCATENATE  'ACGL_ITEM-KOSTL(0' L_N ')' INTO L_FIELD.

perform bdc_field       using L_FIELD "'ACGL_ITEM-KOSTL(01)'

                               W_ITEM-KOSTL."'30001'.

perform bdc_dynpro      using 'SAPMF05A' '1001'.

perform bdc_field       using 'BDC_OKCODE'

                               '/00'.

CLEAR L_FIELD.

CONCATENATE  'ACGL_ITEM-PRCTR(0' L_N ')' INTO L_FIELD.

perform bdc_field       using L_FIELD "'ACGL_ITEM-PRCTR(02)'

                               W_ITEM-PRCTR."'p30005'.

*perform bdc_dynpro      using 'SAPMF05A' '1001'.

*perform bdc_field       using 'BDC_OKCODE'

*                              '/00'.

*perform bdc_field       using 'BDC_CURSOR'

*                              'ACGL_ITEM-PRCTR(02)'.

*perform bdc_field       using 'ACGL_ITEM-HKONT(02)'

*                              '22120001'.

*perform bdc_field       using 'ACGL_ITEM-SHKZG(02)'

*                              'H'.

*perform bdc_field       using 'ACGL_ITEM-WRBTR(02)'

*                              '              200'.

*perform bdc_field       using 'ACGL_ITEM-SGTXT(02)'

*                              '2月_基本工资'.

*perform bdc_field       using 'ACGL_ITEM-GSBER(02)'

*                              '3000'.

*****************CLEAR L_FIELD.

*****************CONCATENATE  'ACGL_ITEM-PRCTR(0' L_N ')' INTO L_FIELD.

*****************perform bdc_field       using L_FIELD "'ACGL_ITEM-PRCTR(02)'

*****************                              W_ITEM-PRCTR."'p30005'.

***PERFORM BDC_FIELD using 'BDC_OKCODE'  " added newly

***                              '=P+'.  " added newly

* PERFORM bdc_field USING 'BDC_OKCODE'

*                             '=P+'.

  L_N = L_N + 1.

* PERFORM bdc_field USING 'BDC_OKCODE'

*****                            '=P+'.

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

*Loop at it_fill.

*L_N = L_N + 1.

IF L_N = 8.     " Change this to greater than and try

   L_N = 1.

   perform bdc_dynpro      using 'SAPMF05A' '1001'.

*  perform bdc_field       using 'BDC_OKCODE'

*                                '/00'.

   PERFORM bdc_field USING 'BDC_OKCODE'

                                 '=P+'.

*CLEAR L_N.

*L_N = L_N + 1.

ENDIF.

*endloop.

* if L_N  > 7.

*   perform bdc_dynpro      using 'SAPMF05A' '1001'.

*   perform bdc_field       using 'BDC_OKCODE'

*                                     '=PP+N'.

*

*   L_N  = 8.

***   exit.

***   L_N = 1.

***   perform bdc_field       using 'BDC_OKCODE'

***                              '=P+'.

**

***   exit.

* endif.

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

ENDLOOP.

perform bdc_dynpro      using 'SAPMF05A' '1001'.

perform bdc_field       using 'BDC_OKCODE'

                               '=PBBP'.

*perform bdc_transaction using 'FV50L'.

REFRESH T_MSG.

  CALL TRANSACTION 'FV50L' USING T_BDCDATA OPTIONS FROM opt

*                            MODE 'A'

                             MESSAGES INTO T_MSG.

  IF SY-SUBRC <> 0.

APPEND W_UPLOAD TO T_ERROR.

ENDIF.

LOOP AT T_MSG INTO W_MSG.

CALL FUNCTION 'FORMAT_MESSAGE'

  EXPORTING

    ID              = W_MSG-MSGID

    LANG            = SY-LANGU

    NO              = W_MSG-MSGNR

    V1              = W_MSG-MSGV1

    V2              = W_MSG-MSGV2

    V3              = W_MSG-MSGV3

    V4              = W_MSG-MSGV4

  IMPORTING

    MSG             = L_MSG

  EXCEPTIONS

    NOT_FOUND       = 1

    OTHERS          = 2

           .

IF SY-SUBRC = 0.

WRITE : /2  W_UPLOAD-F1, 18 W_MSG-MSGTYP,  30 L_MSG.

ENDIF.

ENDLOOP.

   ENDLOOP.

ENDFORM.                    " SUB_POP_BDCDATA

*----------------------------------------------------------------------*

*        Start new screen                                              *

*----------------------------------------------------------------------*

FORM BDC_DYNPRO USING PROGRAM DYNPRO.

   CLEAR W_BDCDATA.

   W_BDCDATA-PROGRAM  = PROGRAM.

   W_BDCDATA-DYNPRO   = DYNPRO.

   W_BDCDATA-DYNBEGIN = 'X'.

   APPEND W_BDCDATA TO T_BDCDATA.

ENDFORM.                    "BDC_DYNPRO

*----------------------------------------------------------------------*

*        Insert field                                                  *

*----------------------------------------------------------------------*

FORM BDC_FIELD USING FNAM FVAL.

   CLEAR W_BDCDATA.

   W_BDCDATA-FNAM = FNAM.

   W_BDCDATA-FVAL = FVAL.

   APPEND W_BDCDATA TO T_BDCDATA.

ENDFORM.                    "BDC_FIELD

0 Kudos

Mahesh,

I'm not sure, but, please try it to change below changes,

  DATA:

     l_field TYPE char20,

     l_n TYPE char1.

***

        IF l_n = 8.     " Change this to greater than and try
        l_n = 1.
        PERFORM bdc_dynpro      USING 'SAPMF05A' '1001'.
        PERFORM bdc_field USING 'BDC_OKCODE'
                                      '0006'"'=P+'.
      ENDIF.

Regards,

SuryaPraveen

0 Kudos

no its not working.. its over writing the new records on old uploaded 7 records with out moving the scroller down

0 Kudos

Mahesh,

        IF l_n = 8.    

        l_n = 1.
        PERFORM bdc_dynpro      USING 'SAPMF05A' '1001'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '/00'.
        PERFORM bdc_dynpro      USING 'SAPMF05A' '1001'.
        PERFORM bdc_field USING 'BDC_OKCODE'
                                '=P+'.
      ENDIF.

Regards,

SuryaPraveen

0 Kudos

not working..

0 Kudos

Mahesh,

      CONCATENATE  'ACGL_ITEM-KOSTL(0' l_n ')' INTO l_field.
      PERFORM bdc_field       USING l_field "'ACGL_ITEM-KOSTL(01)'
                w_item-kostl.                               "'30001'.
      PERFORM bdc_dynpro      USING 'SAPMF05A' '1001'.
*      PERFORM bdc_field       USING 'BDC_OKCODE'         '/00'.                 "   May be problem is here, you can check, by canging this line of code, befor loop, and before endloop of table control...   

      CLEAR l_field.
      CONCATENATE  'ACGL_ITEM-PRCTR(0' l_n ')' INTO l_field.

Regards,

SuryaPraveen

0 Kudos

no i did that as well still not working

Former Member
0 Kudos

Hello Mahesh,

don't forget to use "OPTIONS FROM wa_params", where wa_params-defsize  = 'X'.

This parameter sets a default size for your grid. So, you can count the exactly number of rows.

FV50L has 7 rows as default number. When you fill the 7th line, you have to press the keyboard button "ENTER". Each Enter at 7th line, increase one line.

Hope this helps you.

Rogerio

0 Kudos

done all of those but still not working..

0 Kudos

Mahesh, I did this code, and it's works.. Try to make a similar logic.. good luck

REPORT zteste.

TYPES:

   BEGIN OF ty_out,

     hkont LIKE bseg-hkont,

     shkzg LIKE bseg-shkzg,

     wrbtr LIKE bseg-wrbtr,

   END OF ty_out.

DATA:

   t_bdc     LIKE TABLE OF bdcdata,

   t_msg     TYPE TABLE OF bdcmsgcoll,

   t_out     TYPE TABLE OF ty_out WITH HEADER LINE,

   wa_bdc    TYPE bdcdata,

   wa_params TYPE ctu_params,

   v_line    TYPE numc2,

   v_aux     TYPE bdc_prog.

START-OF-SELECTION.

* JUST FOR TEST

   t_out-hkont = '1113100024'.

   t_out-shkzg = 'H'.

   t_out-wrbtr = '1'.

   APPEND t_out.

   APPEND t_out.

   APPEND t_out.

   APPEND t_out.

   APPEND t_out.

   APPEND t_out.

   APPEND t_out.

   APPEND t_out.

   APPEND t_out.

   LOOP AT t_out.

     ADD 1 TO v_line.

     AT FIRST.

       PERFORM insert_item USING 'X' 'SAPMF05A'          '1001'.

       PERFORM insert_item USING ' ' 'BDC_OKCODE'        '/00'.

       PERFORM insert_item USING ' ' 'ACGL_HEAD-BLDAT'   '12.04.2012'.

       PERFORM insert_item USING ' ' 'ACGL_HEAD-WAERS'   'BRL'.

     ENDAT.

     IF v_line GT 7.

       v_line = 7.

       PERFORM insert_item USING 'X' 'SAPMF05A'          '1001'.

       PERFORM insert_item USING ' ' 'BDC_OKCODE'        '/00'.

     ENDIF.

     CONCATENATE 'ACGL_ITEM-HKONT(' v_line ')' INTO v_aux.

     PERFORM insert_item USING ' ' v_aux              t_out-hkont.

     CONCATENATE 'ACGL_ITEM-SHKZG(' v_line ')' INTO v_aux.

     PERFORM insert_item USING ' ' v_aux              t_out-shkzg.

     CONCATENATE 'ACGL_ITEM-WRBTR(' v_line ')' INTO v_aux.

     PERFORM insert_item USING ' ' v_aux              t_out-wrbtr.

   ENDLOOP.

* CONTINUE YOUR BDC

   wa_params-dismode  = 'A'.

   wa_params-updmode  = 'S'.

   wa_params-defsize  = 'X'.

   CALL TRANSACTION 'FV50L'

   USING t_bdc

   OPTIONS FROM wa_params

   MESSAGES INTO t_msg.

*&---------------------------------------------------------------------*

*&      Form  INSERT_ITEM

*&---------------------------------------------------------------------*

FORM insert_item USING l_kind  TYPE c

                        l_name  TYPE bdc_prog

                        l_value TYPE any.

   CLEAR wa_bdc.

   CASE l_kind.

*   Screen Information

     WHEN 'X'.

       wa_bdc-dynbegin = 'X'.

       wa_bdc-program  = l_name.

       wa_bdc-dynpro   = l_value.

*   Field Information

     WHEN space.

       wa_bdc-dynbegin = space.

       wa_bdc-fnam     = l_name.

       wa_bdc-fval     = l_value.

   ENDCASE.

   APPEND wa_bdc TO t_bdc.

ENDFORM.                    "INSERT_ITEM

Former Member
0 Kudos

Cross post locked.

Rob