2006 Jul 07 7:53 AM
Facing problem in uploading asset numbers.
Requirement: - Uploading data to transaction code ABAVN.
1. After running the transaction click on multiple assets.
2. Then we enter first four fields i.e. Document date, posting date, asset value date and text.
3. After that we make entry in the list of assets field say around 200 asset numbers so that it generates only one document number.
Problem: - As I was working with BDC the problem I faced is in recording. After entering six asset numbers I have to press enter to activate the scroll bar, as I click scroll down it records full screen fields for every single scroll.
Thanks and regards,
Vishal Divekar.
2006 Jul 07 8:14 AM
hi Ravi,
Thanks for ur valuable response, but the link is not helping me much, if u check the transaction u'll see that intially six rows are visible for entering list of assets, to enter more i have to click on insert, but for coding purpose i am not able to get field name.
Thankx,
Vishal.
2006 Jul 07 9:28 AM
Hi Vishal ,
After Every Six lines do the Page down ( +P ), So repert the same Code what u do for the first 6 lines.
Regards
Prabhu
2006 Jul 07 9:59 AM
Hi,
I have never done page down coding, so i am not able to understand ur point.
i m sending u the code what i have done. in this i am getting an error EL1 does not exist, but it is visible while recording.
REPORT ztestprog_abavn
NO STANDARD PAGE HEADING LINE-SIZE 255.
*include bdcrecx1.
DATA : BEGIN OF it_anla OCCURS 0,
bldat TYPE bldat,
budat TYPE budat,
bzdat TYPE bzdat,
SGTXT TYPE SGTXT,
anln1 TYPE anln1,
END OF it_anla.
DATA i_bdcdata TYPE bdcdata OCCURS 1 WITH HEADER LINE.
data : flag(3) type n,
i(1) type n.
CALL FUNCTION 'UPLOAD'
EXPORTING
filename = 'c:\test.txt'
filetype = 'DAT'
HAS_FIELD_SEPARATOR = ' '
HEADER_LENGTH = 0
READ_BY_LINE = 'X'
DAT_MODE = ' '
CODEPAGE = ' '
IGNORE_CERR = ABAP_TRUE
REPLACEMENT = '#'
CHECK_BOM = ' '
VIRUS_SCAN_PROFILE =
NO_AUTH_CHECK = ' '
IMPORTING
FILELENGTH =
HEADER =
TABLES
data_tab = it_anla
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
.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
DATA: w_year(4), w_month(2), w_day(2).
loop at it_anla.
w_year = it_anla-bldat+0(4).
w_month = it_anla-bldat+4(2).
w_day = it_anla-bldat+6(2).
CONCATENATE w_month '/' w_day '/' w_year INTO it_anla-bldat.
CONDENSE it_anla-bldat.
modify it_anla.
endloop.
describe table it_anla lines flag.
START-OF-SELECTION.
i = 0.
LOOP AT it_anla.
refresh i_bdcdata.
*perform open_group.
perform bdc_dynpro using 'SAPLAMDP' '0100'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/EMULT'.
PERFORM bdc_dynpro USING 'SAPLAMDP' '0110'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=TC_133_INSERT_LINE'.
PERFORM bdc_field USING 'RAIFP1-BLDAT'
it_anla-bldat.
PERFORM bdc_field USING 'RAIFP1-BUDAT'
it_anla-budat.
PERFORM bdc_field USING 'RAIFP1-BZDAT'
it_anla-bzdat.
PERFORM bdc_field USING 'RAIFP2-SGTXT'
it_anla-sgtxt.
i = i + 1.
PERFORM bdc_field USING 'BDC_CURSOR'
'EL1(i)'.
PERFORM bdc_field USING 'EL1(i)'
it_anla-anln1.
PERFORM bdc_field USING 'EL1(02)'
'10000002'.
PERFORM bdc_field USING 'EL1(03)'
'10000003'.
PERFORM bdc_field USING 'EL1(04)'
'10000004'.
PERFORM bdc_field USING 'EL1(05)'
'10000005'.
PERFORM bdc_field USING 'EL1(06)'
'10000006'.
if i gt '6'.
PERFORM bdc_dynpro USING 'SAPLAMDP' '0110'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=TC_133_INSERT_LINE'.
PERFORM bdc_field USING 'RAIFP1-BLDAT'
'05/01/2006'.
PERFORM bdc_field USING 'RAIFP1-BUDAT'
'06/26/2006'.
PERFORM bdc_field USING 'RAIFP1-BZDAT'
'06/21/2006'.
PERFORM bdc_field USING 'BDC_CURSOR'
'EL1(06)'.
PERFORM bdc_field USING 'EL1(06)'
it_anla-anln1.
PERFORM bdc_dynpro USING 'SAPLAMDP' '0110'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/ERTRN'.
PERFORM bdc_dynpro USING 'SAPLSPO1' '0200'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=YES'.
endif.
CALL TRANSACTION 'ABAVN' USING i_bdcdata mode 'A'.
ENDLOOP.
----
Start new screen *
----
FORM bdc_dynpro USING program dynpro.
CLEAR i_bdcdata.
i_bdcdata-program = program.
i_bdcdata-dynpro = dynpro.
i_bdcdata-dynbegin = 'X'.
APPEND i_bdcdata.
ENDFORM. "bdc_dynpro
----
Insert field *
----
FORM bdc_field USING fnam fval.
IF fval <> space.
CLEAR i_bdcdata.
i_bdcdata-fnam = fnam.
i_bdcdata-fval = fval.
APPEND i_bdcdata.
ENDIF.
ENDFORM. "bdc_field
*perform close_group.
2006 Jul 10 6:36 AM
2006 Jul 10 6:43 AM
use the pagedown button in the Application tool bar(Ok code is P+), enter 1 record then pass this Ok code then enter the second record then pass the Ok code so on, so every time you pass 1 value and press the page down button
2006 Jul 10 7:53 AM
Hi Kishan,
I tried as what u said but there is no page down button on application tool bar but still i tried putting the P+ code it didnt work, i can do page down using keyboard page down key, but i couldnt find any BDC okcode field value in the recording for it.
It will be a great help if u could send me a sample code of using page down key.....
thanks in advance....
Vishal.
2006 Jul 10 7:33 AM
Hi,
can u please send me the BDC_OKCODE field value for page down button....
Thanks,
Vishal
2006 Jul 10 8:09 AM
Hi Vishal,
chk this links might help you
http://www.sapfans.com/sapfans/repos/comelite.htm
http://arthur_ong.tripod.com/xab023.htm
pagedown button in the Application tool bar(Ok code is P+)
(or)
Here is the code for BDCtable control .
It will fix the rows irrespective of the resolution.
The code in Bold is for fixing the rows.
DATA: BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE.
messages of call transaction
DATA: MESSTAB LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.
error session opened (' ' or 'X')
data: w_options like ctu_params,
w_bukrs type bukrs,
w_cont type kokrs value 'CO01',
w_vlcur(18),
row type i,
wa_msg(255),
count type i,
int_excel type ALSMEX_TABLINE occurs 0 with header line,
w_bdc02(10),
w_bdc04(10),
w_bdc06(10),
w_bdc08(10),
w_bdc10(10),
w_bdc07(10),
w_bdc11(10),
w_bdc12(10),
w_msl(18),
w_max(2) type n,
w_count(2) type n value 1,
w_layout type RKE_CFORM,
w_date like sy-datum.
data: begin of it_tab occurs 0,
prctr type prctr,"Profit Center
racct type racct,"Account no
vlcur type VLCUR_PCA,"Company Code Currency
fkber type fkber_pca,"Functional area
werks type werks_d,"Plant
matnr type GLPCA-MATNR,"Material
sgtxt type GLPCA-SGTXT,"Text
anln1 type GLPCA-ANLN1,"Asset No
anln2 type GLPCA-ANLN2,"Asset Sub number
msl type RPCAC80-msl,"Quantity
runit type RPCAC80-runit,"UOM
end of it_tab.
selection-screen begin of screen 100.
parameters: filename type RLGRAP-FILENAME obligatory ,
P_LAYOUT TYPE RKE_CFORM,
BUKRS TYPE BUKRS,
P_DATE TYPE BUDAT.
select-options: rows for row no-extension.
selection-screen end of screen 100.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR filename.
*Getting File Name
CALL FUNCTION 'F4_FILENAME'
EXPORTING
PROGRAM_NAME = SYST-CPROG
DYNPRO_NUMBER = SYST-DYNNR
IMPORTING
FILE_NAME = filename.
initialization.
w_options-defsize = 'X'.
W_OPTIONS-DISMODE = 'N'.
W_OPTIONS-RACOMMIT = 'X'.
start-of-selection.
call screen 100.
*Converting Excel Sheet to internal Table
CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
EXPORTING
FILENAME = filename
I_BEGIN_COL = 1
I_BEGIN_ROW = rows-low
I_END_COL = 11
I_END_ROW = rows-high
TABLES
INTERN = int_excel
EXCEPTIONS
INCONSISTENT_PARAMETERS = 1
UPLOAD_OLE = 2
OTHERS = 3
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
*Converting Excel internal table to
loop at int_excel.
case int_excel-col.
when 1."Profit Center
it_tab-prctr = int_excel-value.
when 2."Account no
it_tab-racct = int_excel-value.
when 3."Company Code Currency
it_tab-vlcur = int_excel-value.
when 4."Quanitity
it_tab-msl = int_excel-value.
when 5."Functional area
it_tab-fkber = int_excel-value.
when 6."Plant
it_tab-werks = int_excel-value.
when 7. "Material
it_tab-matnr = int_excel-value.
when 8."Asset
it_tab-anln1 = int_excel-value.
when 9."Asset Subnumber
it_tab-anln2 = int_excel-value.
when 10."Text
it_tab-sgtxt = int_excel-value.
when 11."UOM
it_tab-runit = int_excel-value.
endcase.
at end of row.
append it_tab.
clear it_tab.
endat.
endloop.
set parameter id 'CAC' field w_cont.
set parameter id 'BUK' field bukrs.
write p_date to w_date.
perform bdc_dynpro using 'SAPLPCPP' '1000'.
perform bdc_field using 'BDC_CURSOR'
'RKB1S-FORM'.
perform bdc_field using 'BDC_OKCODE'
'=SPLN'.
perform bdc_field using 'RKB1S-FORM'
P_LAYOUT."'PCA01'.
perform bdc_field using 'RPCAP-DOCTY'
'A0'.
perform bdc_field using 'RPCAA-BUDAT'
w_date.
perform bdc_dynpro using 'SAPLKPP0' '1000'.
perform bdc_field using 'BDC_OKCODE'
'=CZUR'.
perform bdc_dynpro using 'SAPLPCPP' '1000'.
perform bdc_field using 'BDC_OKCODE'
'=SPLN'.
perform bdc_field using 'RPCAA-BUDAT'
w_date.
perform bdc_dynpro using 'SAPLKPP0' '1000'.
perform bdc_field using 'BDC_OKCODE'
'=CSUB'.
if p_layout = 'PCA03'.
perform bdc_dynpro using 'SAPLKPP2' '0106'.
perform bdc_field using 'BDC_OKCODE'
'=SACD'.
else.
perform bdc_dynpro using 'SAPLKPP2' '0103'.
perform bdc_field using 'BDC_OKCODE'
'=SACD'.
endif.
loop at it_tab.
write it_tab-vlcur to w_vlcur.
write it_tab-msl to w_msl.
concatenate 'BDC02(' w_count ')' into w_bdc02.
concatenate 'BDC04(' w_count ')' into w_bdc04.
concatenate 'BDC06(' w_count ')' into w_bdc06.
concatenate 'BDC07(' w_count ')' into w_bdc07.
concatenate 'BDC08(' w_count ')' into w_bdc08.
concatenate 'BDC10(' w_count ')' into w_bdc10.
concatenate 'BDC11(' w_count ')' into w_bdc11.
concatenate 'BDC12(' w_count ')' into w_bdc12.
if p_layout = 'PCA03'.
perform bdc_dynpro using 'SAPLKPP2' '0106'.
else.
perform bdc_dynpro using 'SAPLKPP2' '0103'.
endif.
perform bdc_field using 'BDC_CURSOR'
w_bdc06.
perform bdc_field using 'BDC_OKCODE'
'/00'.
if p_layout = 'PCA01'.
perform bdc_field using w_bdc02
it_tab-prctr."'1010101001'.
perform bdc_field using w_bdc04
it_tab-racct."'890003'.
perform bdc_field using w_bdc06
it_tab-runit.
perform bdc_field using w_bdc07
w_vlcur."'345'.
perform bdc_field using w_bdc08
w_msl.
elseif p_layout = 'PCA02' or p_layout = 'PCA03'.
perform bdc_field using w_bdc02
it_tab-prctr."'1010101001'.
perform bdc_field using w_bdc04
it_tab-fkber."Functional area
perform bdc_field using w_bdc06
it_tab-werks."Plant
perform bdc_field using w_bdc08
it_tab-racct.
perform bdc_field using w_bdc10
it_tab-runit.
perform bdc_field using w_bdc11
w_vlcur."'345'.
perform bdc_field using w_bdc12
w_msl.
endif.
if p_layout = 'PCA03'.
perform bdc_dynpro using 'SAPLKPP2' '0106'.
else.
perform bdc_dynpro using 'SAPLKPP2' '0103'.
endif.
perform bdc_field using 'BDC_CURSOR'
w_bdc02.
perform bdc_field using 'BDC_OKCODE'
'=SACD'.
perform bdc_dynpro using 'SAPLPCAD' '0001'.
perform bdc_field using 'BDC_OKCODE'
'=SADL'.
perform bdc_field using 'GLPCA-SGTXT'
it_tab-sgtxt.
perform bdc_dynpro using 'SAPLPCAD' '0001'.
perform bdc_field using 'BDC_OKCODE'
'=SADI'.
perform bdc_field using 'GLPCA-SGTXT'
it_tab-sgtxt.
perform bdc_field using 'BDC_CURSOR'
'GLPCA-REP_MATNR'.
if p_layout = 'PCA01'.
perform bdc_field using 'GLPCA-WERKS'
it_tab-werks.
endif.
perform bdc_field using 'GLPCA-MATNR'
it_tab-matnr.
perform bdc_dynpro using 'SAPLPCAD' '0001'.
perform bdc_field using 'BDC_OKCODE'
'=SWTR'.
*perform bdc_field using 'GLPCA-SGTXT'
'test'.
perform bdc_field using 'BDC_CURSOR'
'GLPCA-ANLN2'.
perform bdc_field using 'GLPCA-ANLN1'
it_tab-anln1.
perform bdc_field using 'GLPCA-ANLN2'
it_tab-anln2.
if p_layout = 'PCA03'.
w_max = 14.
else.
w_max = 15.
endif.
if w_count = w_max.
if p_layout = 'PCA03'.
perform bdc_dynpro using 'SAPLKPP2' '0106'.
else.
perform bdc_dynpro using 'SAPLKPP2' '0103'.
endif.
perform bdc_field using 'BDC_OKCODE'
'=CP+'.
if p_layout = 'PCA03'.
perform bdc_dynpro using 'SAPLKPP2' '0106'.
else.
perform bdc_dynpro using 'SAPLKPP2' '0103'.
endif.
perform bdc_field using 'BDC_OKCODE'
'=SACD'.
w_count = 0.
endif.
w_count = w_count + 1.
endloop.
if p_layout = 'PCA03'.
perform bdc_dynpro using 'SAPLKPP2' '0106'.
else.
perform bdc_dynpro using 'SAPLKPP2' '0103'.
endif.
perform bdc_field using 'BDC_OKCODE'
'=CBUC'.
perform bdc_dynpro using 'SAPLSPO1' '0300'.
perform bdc_field using 'BDC_OKCODE'
'=YES'.
perform bdc_dynpro using 'SAPLKPP0' '1000'.
perform bdc_field using 'BDC_OKCODE'
'=CZUR'.
perform bdc_dynpro using 'SAPLPCPP' '1000'.
perform bdc_field using 'BDC_OKCODE'
'/ESZUR'.
CALL TRANSACTION '9KE0' USING BDCDATA
OPTIONS FROM W_OPTIONS
MESSAGES INTO MESSTAB.
SORT messtab.
delete adjacent duplicates from messtab.
loop at messtab.
CALL FUNCTION 'FORMAT_MESSAGE'
EXPORTING
ID = messtab-msgid
LANG = 'E'
NO = messtab-msgnr
V1 = messtab-msgv1
V2 = messtab-msgv2
V3 = messtab-msgv3
V4 = messtab-msgv4
IMPORTING
MSG = wa_msg
EXCEPTIONS
NOT_FOUND = 1
OTHERS = 2
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
write :wa_msg.
clear: wa_msg.
endloop.
refresh:messtab,bdcdata.
----
Start new screen *
----
FORM BDC_DYNPRO USING PROGRAM DYNPRO.
CLEAR BDCDATA.
BDCDATA-PROGRAM = PROGRAM.
BDCDATA-DYNPRO = DYNPRO.
BDCDATA-DYNBEGIN = 'X'.
APPEND BDCDATA.
ENDFORM.
----
Insert field *
----
FORM BDC_FIELD USING FNAM FVAL.
CLEAR BDCDATA.
BDCDATA-FNAM = FNAM.
BDCDATA-FVAL = FVAL.
APPEND BDCDATA.
ENDFORM.
Please reward points if you find this as a right solution
Regards,
Harini
2006 Jul 10 8:13 AM
1st check in which screen u have table control...
after that..
u just write this way....
ex----
perform bdc_dynpro using 'SAPLPCPP' '1000'.
perform bdc_field using 'BDC_CURSOR'
'RKB1S-FORM'.
perform bdc_field using 'BDC_OKCODE'
'(+p)'.----> or +p
2006 Jul 10 12:35 PM
Hi,
My problem is almost solved, i have written code for 10 records, i have used insert button code, after entering six records i have to click insert, but for entering seventh record i have to write six line code,
now my problem is that i have to upload 200 records, for this, do i have to define 200 fields in internal table?? such as anln1 TYPE anln1, anln2 type anln1, ......anln200 type anln1 and also the six line code such as....
***INSERT RECORD
PERFORM bdc_field USING 'BDC_OKCODE' '/00'.
PERFORM bdc_dynpro USING 'SAPLAMDP' '0110'.
PERFORM bdc_field USING 'BDC_CURSOR' 'EL1(06)'.
PERFORM bdc_field USING 'BDC_OKCODE' '=TC_133_INSERT_LINE'.
PERFORM bdc_dynpro USING 'SAPLAMDP' '0110'.
PERFORM bdc_field USING 'EL1(06)' it_anla-anln9.
for each and every record.....???
if i do that my code will go upto 2500 lines which might affect the performance.... is there any alternative for it.... such as looping... or counter to define field in internal table..... reduce my coding part....
i m pasting my code below......
waiting for ur suggestions.....
REPORT ztestprog_abavn NO STANDARD PAGE HEADING LINE-SIZE 255.
*include bdcrecx1.
DATA : BEGIN OF it_anla OCCURS 0,
bldat(10)," TYPE bldat,
budat(10)," TYPE budat,
bzdat(10)," TYPE bzdat,
SGTXT TYPE SGTXT,
include structure abcd,
anln(10) type n,
anln1 TYPE anln1,
anln2 type anln1,
anln3 type anln1,
anln4 type anln1,
anln5 type anln1,
anln6 type anln1,
anln7 type anln1,
anln8 type anln1,
anln9 type anln1,
anln10 type anln1,
END OF it_anla.
DATA i_bdcdata TYPE bdcdata OCCURS 1 WITH HEADER LINE.
data : flag(3) type n,
i(1) type n.
CALL FUNCTION 'UPLOAD'
EXPORTING
filename = 'c:\test.txt'
filetype = 'DAT'
HAS_FIELD_SEPARATOR = ' '
HEADER_LENGTH = 0
READ_BY_LINE = 'X'
DAT_MODE = ' '
CODEPAGE = ' '
IGNORE_CERR = ABAP_TRUE
REPLACEMENT = '#'
CHECK_BOM = ' '
VIRUS_SCAN_PROFILE =
NO_AUTH_CHECK = ' '
IMPORTING
FILELENGTH =
HEADER =
TABLES
data_tab = it_anla
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
.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
*describe table it_anla lines flag.
START-OF-SELECTION.
i = 1.
LOOP AT it_anla.
refresh i_bdcdata.
*perform open_group.
perform bdc_dynpro using 'SAPLAMDP' '0100'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/EMULT'.
PERFORM bdc_dynpro USING 'SAPLAMDP' '0110'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=TC_133_INSERT_LINE'.
PERFORM bdc_field USING 'RAIFP1-BLDAT'
it_anla-bldat.
PERFORM bdc_field USING 'RAIFP1-BUDAT'
it_anla-budat.
PERFORM bdc_field USING 'RAIFP1-BZDAT'
it_anla-bzdat.
PERFORM bdc_field USING 'RAIFP2-SGTXT'
it_anla-sgtxt.
i = i + 1.
PERFORM bdc_field USING 'BDC_CURSOR'
'EL1(06)'.
PERFORM bdc_field USING 'EL1(01)'
it_anla-anln1.
PERFORM bdc_field USING 'EL1(02)'
it_anla-anln2.
PERFORM bdc_field USING 'EL1(03)'
it_anla-anln3.
PERFORM bdc_field USING 'EL1(04)'
it_anla-anln4.
PERFORM bdc_field USING 'EL1(05)'
it_anla-anln5.
PERFORM bdc_field USING 'EL1(06)'
it_anla-anln6.
***INSERT RECORD
PERFORM bdc_field USING 'BDC_OKCODE' '/00'.
PERFORM bdc_dynpro USING 'SAPLAMDP' '0110'.
PERFORM bdc_field USING 'BDC_CURSOR' 'EL1(06)'.
PERFORM bdc_field USING 'BDC_OKCODE' '=TC_133_INSERT_LINE'.
PERFORM bdc_dynpro USING 'SAPLAMDP' '0110'.
PERFORM bdc_field USING 'EL1(06)' it_anla-anln7.
***INSERT RECORD
PERFORM bdc_field USING 'BDC_OKCODE' '/00'.
PERFORM bdc_dynpro USING 'SAPLAMDP' '0110'.
PERFORM bdc_field USING 'BDC_CURSOR' 'EL1(06)'.
PERFORM bdc_field USING 'BDC_OKCODE' '=TC_133_INSERT_LINE'.
PERFORM bdc_dynpro USING 'SAPLAMDP' '0110'.
PERFORM bdc_field USING 'EL1(06)' it_anla-anln8.
***INSERT RECORD
PERFORM bdc_field USING 'BDC_OKCODE' '/00'.
PERFORM bdc_dynpro USING 'SAPLAMDP' '0110'.
PERFORM bdc_field USING 'BDC_CURSOR' 'EL1(06)'.
PERFORM bdc_field USING 'BDC_OKCODE' '=TC_133_INSERT_LINE'.
PERFORM bdc_dynpro USING 'SAPLAMDP' '0110'.
PERFORM bdc_field USING 'EL1(06)' it_anla-anln9.
***INSERT RECORD
PERFORM bdc_field USING 'BDC_OKCODE' '/00'.
PERFORM bdc_dynpro USING 'SAPLAMDP' '0110'.
PERFORM bdc_field USING 'BDC_CURSOR' 'EL1(06)'.
PERFORM bdc_field USING 'BDC_OKCODE' '=TC_133_INSERT_LINE'.
PERFORM bdc_dynpro USING 'SAPLAMDP' '0110'.
PERFORM bdc_field USING 'EL1(06)' it_anla-anln10.
PERFORM bdc_field USING 'BDC_OKCODE' '/00'.
***SORTING THE ASSETS
PERFORM bdc_dynpro USING 'SAPLAMDP' '0110'.
PERFORM bdc_field USING 'BDC_OKCODE' '=TC_133_SORT_UP'.
PERFORM bdc_dynpro USING 'SAPLSTC1' '0500'.
PERFORM bdc_field USING 'BDC_CURSOR' 'FIELDTEXT(01)'.
PERFORM bdc_field USING 'BDC_OKCODE' '=MVLEFT'.
PERFORM bdc_field USING 'MARKER(01)' 'X'.
PERFORM bdc_dynpro USING 'SAPLSTC1' '0500'.
PERFORM bdc_field USING 'BDC_CURSOR' 'SORT_UP(01)'.
PERFORM bdc_field USING 'BDC_OKCODE' '=SORT'.
CALL TRANSACTION 'ABAVN' USING i_bdcdata mode 'A'.
ENDLOOP.
----
Start new screen *
----
FORM bdc_dynpro USING program dynpro.
CLEAR i_bdcdata.
i_bdcdata-program = program.
i_bdcdata-dynpro = dynpro.
i_bdcdata-dynbegin = 'X'.
APPEND i_bdcdata.
ENDFORM. "bdc_dynpro
----
Insert field *
----
FORM bdc_field USING fnam fval.
IF fval <> space.
CLEAR i_bdcdata.
i_bdcdata-fnam = fnam.
i_bdcdata-fval = fval.
APPEND i_bdcdata.
ENDIF.
ENDFORM. "bdc_field
*perform close_group.