04-12-2012 6:43 AM
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 .
04-12-2012 7:06 AM
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
04-12-2012 7:11 AM
04-12-2012 7:29 AM
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
04-12-2012 7:38 AM
its not screen issue i made default screen display if you have sample code for scroll down functionality .....
04-12-2012 7:50 AM
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
04-12-2012 8:21 AM
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'.
04-12-2012 8:25 AM
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
04-12-2012 8:33 AM
L_N = L_N + 1. i was doing that i think it missed in pasting any way still its not working
04-12-2012 8:40 AM
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.
04-12-2012 9:37 AM
after commenting those line after 7 records ,, again its replacing new records on first filled 7 records but not going page down
04-12-2012 9:53 AM
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.
04-12-2012 9:59 AM
04-12-2012 10:17 AM
Hi Mahesh,
If possible can you please mail me complete code, for my mail ID check my business card.
Regards,
SuryaPraveen
04-12-2012 10:21 AM
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
04-12-2012 11:10 AM
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
04-12-2012 11:17 AM
no its not working.. its over writing the new records on old uploaded 7 records with out moving the scroller down
04-12-2012 11:24 AM
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
04-12-2012 11:42 AM
04-12-2012 11:55 AM
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
04-12-2012 12:48 PM
04-12-2012 1:37 PM
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
04-12-2012 1:41 PM
04-12-2012 2:17 PM
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
04-12-2012 4:16 PM