06-10-2008 1:23 PM
Hi,
In the BDC generated program, how we can specify the file that is stored in the application server ?
Regards
Sabu
06-10-2008 1:39 PM
check this report................i am get the data from application server and running a bdc.................
tables: zdms_textno.
data: begin of it_upload1 occurs 0,
kunnr like vbak-kunnr,
pno like vbrk-bstnk_vf,
idate(10), " like vbrk-fkdat,
pernr like p0000-pernr,
end of it_upload1.
data: begin of it_upload2 occurs 0,
pno like vbrk-bstnk_vf,
matnr like vbrp-matnr,
kwmeng like rv45a-kwmeng,
end of it_upload2.
data: begin of it_up1 occurs 0,
string1(66),
end of it_up1.
data: begin of it_up2 occurs 0,
string2(70),
end of it_up2.
data: it_zdms_textno like zdms_textno occurs 0 with header line.
data: it_order like standard table of zdms_log with header line.
data: bdcdata like bdcdata occurs 0 with header line.
data: gt_bdcmsg like bdcmsgcoll occurs 0 with header line,
file1 type rlgrap-filename .
data: it_textno like zdms_textno occurs 0,
wa_textno like line of it_textno .
data : gv_filenum like zdms_textno-filenumber ,
gv_filenumc(10) type c .
*DATA : gv_path TYPE rlgrap-filename.
data : gv_path(100) type c.
data: gv_file1 type string.
data: gv_char1(15) ,
gv_char2(16),
gv_char3(15),
gv_qty(15),
n type i,
m(2),
gv_msg(50),
gv_kwmeng(15),
gv_kwmeng1(15),
gv_string1(66),
gv_string2(70),
numc1(10),
rec(70) ,
ln type i,
gv_pernr(8),
gv_pernr1(8),
p type i .
data : lw_string type string.
data : wa_order like line of it_order.
data : mess type string.
data : d_server type string value 'r3prod_EEP_05'.
start-of-selection.
ln = 2 .
while ln gt 1 .
Start of Added by Durai.V 30-May-2008******
clear it_upload1.
clear it_upload1[].
clear it_upload2.
clear it_upload2[].
End of Added by Durai.V 30-May-2008********
perform upload.
if sy-subrc ne 0 .
exit.
endif.
perform bdc_execute.
endwhile.
*****************
Form Upload
**************
form upload.
clear: gv_filenum ,
gv_filenumc,
gv_file1 ,
gv_path,
wa_textno .
select single filenumber path
from zdms_textno
into (gv_filenum,gv_path)
where filename eq 'INCOMING' .
move gv_filenum to gv_filenumc .
shift gv_filenumc left deleting leading '0'.
*concatenate 'F:\usr\sap\EED\DVEBMGS00\work\EFC_Indent_Hdr_'
concatenate gv_path 'EFC_Indent_Hdr_'
gv_filenumc
'.txt'
into gv_file1 .
Start of Added by Durai.V 30-May-2008******
clear it_up1.
clear it_up1[].
End of Added by Durai.V 30-May-2008********
call function 'DX_FILE_READ' destination d_server
exporting
filename = gv_file1
tables
data_tab = it_up1
exceptions
no_file_on_server = 1
no_data_on_server = 2
gui_upload_failed = 3
no_authority = 4
others = 5.
if sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
write : gv_file1 , 'File not found'.
exit.
endif.
Start of Added by Durai.V 30-May-2008******
write : / 'Application Server File Path for Header: ',gv_file1.
End of Added by Durai.V 30-May-2008********
*************************************Commented By Anbu****************************************************
OPEN DATASET gv_file1 FOR INPUT IN TEXT MODE ENCODING DEFAULT MESSAGE mess .
*
IF sy-subrc = 0.
DO.
READ DATASET gv_file1 INTO rec .
IF sy-subrc = 0.
MOVE rec TO it_up1-string1.
APPEND it_up1 .
ELSE.
EXIT.
ENDIF.
ENDDO .
ELSE .
WRITE : gv_file1 , mess, 'File not found'.
EXIT. "MESSAGE ID 'SDV' TYPE 'E' NUMBER '000' WITH 'Header File Not Available' .
ENDIF.
close dataset gv_file1 .
*************************************Ended By Anbu****************************************************
if sy-subrc = 0.
wa_textno-filename = 'INCOMING' .
wa_textno-filenumber = gv_filenum + 1 .
wa_textno-path = gv_path.
shift zdms_textno left deleting leading ' ' .
modify zdms_textno from wa_textno .
endif.
loop at it_up1.
gv_string1 = it_up1-string1.
if gv_string1 eq 'EOF' .
exit.
else.
split gv_string1 at '~' into: it_upload1-kunnr it_upload1-pno it_upload1-idate it_upload1-pernr .
clear : gv_pernr ,gv_pernr1, p .
p = 0 .
move it_upload1-pernr to gv_pernr1 .
do 8 times.
if ( gv_pernr1(1) eq '0' or gv_pernr1p(1) eq '1' or gv_pernr1p(1) eq '2' or gv_pernr1p(1) eq '3' or gv_pernr1p(1) eq '4'
or gv_pernr1p(1) eq '5' or gv_pernr1p(1) eq '6' or gv_pernr1p(1) eq '7' or gv_pernr1p(1) eq '8'
or gv_pernr1+p(1) eq '9' ).
concatenate gv_pernr1
gv_pernr1+p(1)
into gv_pernr1.
p = p + 1.
else.
exit.
endif.
enddo.
move gv_pernr to it_upload1-pernr .
append it_upload1.
clear gv_string1 .
endif.
endloop.
clear: gv_filenumc,
gv_file1 ,
wa_textno .
gv_filenum = gv_filenum + 1 .
move gv_filenum to gv_filenumc .
shift gv_filenumc left deleting leading '0'.
if gv_filenum < 10 .
concatenate '0' gv_filenumc into gv_filenumc .
endif.
*concatenate 'F:\usr\sap\EED\DVEBMGS00\work\EFC_Indent_Trn_'
concatenate gv_path 'EFC_Indent_Trn_'
gv_filenumc
'.txt'
into gv_file1 .
Start of Added by Durai.V 30-May-2008******
clear it_up2.
clear it_up2[].
End of Added by Durai.V 30-May-2008********
call function 'DX_FILE_READ' destination d_server
exporting
filename = gv_file1
SERVER =
pc =
tables
data_tab = it_up2
exceptions
no_file_on_server = 1
no_data_on_server = 2
gui_upload_failed = 3
NO_AUTHORITY = 4
others = 5
.
if sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
write : gv_file1 , 'File not found'.
exit.
endif.
Start of Added by Durai.V 30-May-2008******
write : / 'Application Server File Path for Item : ',gv_file1.
End of Added by Durai.V 30-May-2008********
*************************************Commented By Anbu****************************************************
OPEN DATASET gv_file1 FOR INPUT IN TEXT MODE ENCODING DEFAULT MESSAGE mess .
IF sy-subrc = 0 .
DO.
READ DATASET gv_file1 INTO rec .
IF sy-subrc = 0.
MOVE rec TO it_up2-string2.
APPEND it_up2 .
ELSE.
EXIT.
ENDIF.
ENDDO.
ELSE.
WRITE : gv_file1 , mess , 'File not found'.
EXIT. "MESSAGE ID 'SDV' TYPE 'E' NUMBER '000' WITH 'Transaction File Not Available' .
ENDIF.
close dataset gv_file1.
*************************************Ended By Anbu****************************************************
if sy-subrc = 0.
wa_textno-filename = 'INCOMING' .
wa_textno-filenumber = gv_filenum + 1 .
wa_textno-path = gv_path.
modify zdms_textno from wa_textno .
endif.
loop at it_up2.
gv_string2 = it_up2-string2.
if gv_string2 eq 'EOF' .
exit.
else.
split gv_string2 at '~' into: it_upload2-pno it_upload2-matnr gv_kwmeng1 .
shift gv_kwmeng1 right deleting trailing '#' .
shift gv_kwmeng1 left deleting leading '' .
clear : gv_kwmeng ,p .
p = 0 .
do 15 times.
if ( gv_kwmeng1+p(1) eq '0' or gv_kwmeng1+p(1) eq '1' or gv_kwmeng1+p(1) eq '2' or gv_kwmeng1+p(1) eq '3' or gv_kwmeng1+p(1) eq '4'
or gv_kwmeng1+p(1) eq '5' or gv_kwmeng1+p(1) eq '6' or gv_kwmeng1+p(1) eq '7' or gv_kwmeng1+p(1) eq '8'
or gv_kwmeng1+p(1) eq '9' ).
concatenate gv_kwmeng
gv_kwmeng1+p(1)
into gv_kwmeng.
p = p + 1.
else.
exit.
endif.
enddo.
move gv_kwmeng to it_upload2-kwmeng.
if gv_kwmeng1 CA
'#~`!@$%^&*()-_+={}[].<>/?;"\|ABCDEFGHIJKLMNOPQRSTUVWXYZ'.
*
if sy-fdpos => 0.
*
else.
*
move gv_kwmeng1 to it_upload2-kwmeng.
*
endif.
*
endif.
enddo.
move gv_kwmeng to it_upload2-kwmeng.
append it_upload2.
clear gv_kwmeng .
clear gv_string2.
endif.
endloop.
endform. " f001-gui_upload
&----
*& Form f002_bdc_execute
&----
text
----
--> p1 text
<-- p2 text
----
form bdc_execute .
loop at it_upload1.
clear: n, m.
refresh: bdcdata,
gt_bdcmsg.
wa_order-kunnr = it_upload1-kunnr .
perform bdc_dynpro using 'SAPMV45A' '0101' .
perform bdc_field using 'BDC_CURSOR' 'VBAK-SPART' .
perform bdc_field using 'BDC_OKCODE' '/00' .
perform bdc_field using 'VBAK-AUART' 'ZLOR' .
perform bdc_field using 'VBAK-VKORG' '1000' .
perform bdc_field using 'VBAK-VTWEG' '25' .
perform bdc_field using 'VBAK-SPART' '14' .
***
perform bdc_dynpro using 'SAPMV45A' '4001' .
perform bdc_field using 'BDC_CURSOR' 'KUAGV-KUNNR' .
perform bdc_field using 'BDC_OKCODE' '/00' .
perform bdc_field using 'KUAGV-KUNNR' it_upload1-kunnr .
perform bdc_field using 'VBKD-BSTKD' it_upload1-pno .
perform bdc_field using 'VBKD-BSTDK' it_upload1-idate .
perform bdc_field using 'RV45A-KETDAT' sy-datum .
perform bdc_field using 'RV45A-KPRGBZ' 'D' .
perform bdc_field using 'VBKD-PRSDT' sy-datum .
***
perform bdc_dynpro using 'SAPMV45A' '4001' .
loop at it_upload2 where pno = it_upload1-pno .
n = n + 1 .
if sy-batch = ' '.
if n > 5.
n = 5.
endif.
else.
if n > 2.
n = 2.
endif.
endif.
move n to m .
if n < 10.
concatenate '0' m into m.
endif.
concatenate 'RV45A-MABNR('
m
')'
into gv_char3 .
perform bdc_field using 'BDC_CURSOR' gv_char3 . "'RV45A-MABNR(01)' .
perform bdc_field using 'BDC_OKCODE' '/00' .
perform bdc_field using 'KUAGV-KUNNR' it_upload1-kunnr .
perform bdc_field using 'KUWEV-KUNNR' it_upload1-kunnr .
perform bdc_field using 'VBKD-BSTKD' it_upload1-pno .
perform bdc_field using 'VBKD-BSTDK' it_upload1-idate .
perform bdc_field using 'RV45A-KETDAT' sy-datum .
perform bdc_field using 'RV45A-KPRGBZ' 'D' .
perform bdc_field using 'VBKD-PRSDT' sy-datum .
concatenate 'RV45A-MABNR('
m
')'
into gv_char1 .
concatenate 'RV45A-KWMENG('
m
')'
into gv_char2 .
move it_upload2-kwmeng to gv_qty.
perform bdc_field using gv_char1 it_upload2-matnr .
perform bdc_field using gv_char2 gv_qty .
perform bdc_dynpro using 'SAPMV45A' '4001'.
perform bdc_field using 'BDC_OKCODE' '/00'.
Start of Added by Durai.V 30-May-2008******
write : / gv_char2, ':',gv_qty.
clear : gv_char1,gv_char2,gv_char3.
End of Added by Durai.V 30-May-2008********
endloop.
***
perform bdc_dynpro using 'SAPMV45A' '4001' .
perform bdc_field using 'BDC_CURSOR' 'VBAK-LIFSK' .
perform bdc_field using 'VBAK-LIFSK' 'Z3' .
perform bdc_field using 'BDC_OKCODE' '=SICH' .
***
perform bdc_dynpro using 'SAPLSPO2' '0101' .
perform bdc_field using 'BDC_OKCODE' '=OPT1' .
call transaction 'VA01' using bdcdata mode 'N'
messages into gt_bdcmsg.
if sy-subrc = 0.
loop at gt_bdcmsg.
call function 'FORMAT_MESSAGE'
exporting
id = gt_bdcmsg-msgid
lang = gt_bdcmsg-msgspra
no = gt_bdcmsg-msgnr
v1 = gt_bdcmsg-msgv1
v2 = gt_bdcmsg-msgv2
importing
msg = gv_msg
exceptions
others = 0.
if ( gt_bdcmsg-msgtyp = 'E' ).
wa_order-text = gv_msg .
wa_order-tran_date = sy-datum .
wa_order-flag = '' .
wa_order-runtime = sy-uzeit .
modify zdms_log from wa_order .
endif.
if ( gt_bdcmsg-msgtyp = 'S' ) .
wa_order-text = gv_msg .
wa_order-tran_date = sy-datum .
wa_order-flag = 'Y' .
wa_order-runtime = sy-uzeit .
modify zdms_log from wa_order .
endif.
endloop.
endif.
*********************
endloop.
endform. " f002_bdc_execute
----
Start new screen *
----
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.
bdcdata-fnam = fnam.
bdcdata-fval = fval.
append bdcdata.
endform. "BDC_FIELD
Reward IF..................
Regarda
Anbu
06-10-2008 1:39 PM
check this report................i am get the data from application server and running a bdc.................
tables: zdms_textno.
data: begin of it_upload1 occurs 0,
kunnr like vbak-kunnr,
pno like vbrk-bstnk_vf,
idate(10), " like vbrk-fkdat,
pernr like p0000-pernr,
end of it_upload1.
data: begin of it_upload2 occurs 0,
pno like vbrk-bstnk_vf,
matnr like vbrp-matnr,
kwmeng like rv45a-kwmeng,
end of it_upload2.
data: begin of it_up1 occurs 0,
string1(66),
end of it_up1.
data: begin of it_up2 occurs 0,
string2(70),
end of it_up2.
data: it_zdms_textno like zdms_textno occurs 0 with header line.
data: it_order like standard table of zdms_log with header line.
data: bdcdata like bdcdata occurs 0 with header line.
data: gt_bdcmsg like bdcmsgcoll occurs 0 with header line,
file1 type rlgrap-filename .
data: it_textno like zdms_textno occurs 0,
wa_textno like line of it_textno .
data : gv_filenum like zdms_textno-filenumber ,
gv_filenumc(10) type c .
*DATA : gv_path TYPE rlgrap-filename.
data : gv_path(100) type c.
data: gv_file1 type string.
data: gv_char1(15) ,
gv_char2(16),
gv_char3(15),
gv_qty(15),
n type i,
m(2),
gv_msg(50),
gv_kwmeng(15),
gv_kwmeng1(15),
gv_string1(66),
gv_string2(70),
numc1(10),
rec(70) ,
ln type i,
gv_pernr(8),
gv_pernr1(8),
p type i .
data : lw_string type string.
data : wa_order like line of it_order.
data : mess type string.
data : d_server type string value 'r3prod_EEP_05'.
start-of-selection.
ln = 2 .
while ln gt 1 .
Start of Added by Durai.V 30-May-2008******
clear it_upload1.
clear it_upload1[].
clear it_upload2.
clear it_upload2[].
End of Added by Durai.V 30-May-2008********
perform upload.
if sy-subrc ne 0 .
exit.
endif.
perform bdc_execute.
endwhile.
*****************
Form Upload
**************
form upload.
clear: gv_filenum ,
gv_filenumc,
gv_file1 ,
gv_path,
wa_textno .
select single filenumber path
from zdms_textno
into (gv_filenum,gv_path)
where filename eq 'INCOMING' .
move gv_filenum to gv_filenumc .
shift gv_filenumc left deleting leading '0'.
*concatenate 'F:\usr\sap\EED\DVEBMGS00\work\EFC_Indent_Hdr_'
concatenate gv_path 'EFC_Indent_Hdr_'
gv_filenumc
'.txt'
into gv_file1 .
Start of Added by Durai.V 30-May-2008******
clear it_up1.
clear it_up1[].
End of Added by Durai.V 30-May-2008********
call function 'DX_FILE_READ' destination d_server
exporting
filename = gv_file1
tables
data_tab = it_up1
exceptions
no_file_on_server = 1
no_data_on_server = 2
gui_upload_failed = 3
no_authority = 4
others = 5.
if sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
write : gv_file1 , 'File not found'.
exit.
endif.
Start of Added by Durai.V 30-May-2008******
write : / 'Application Server File Path for Header: ',gv_file1.
End of Added by Durai.V 30-May-2008********
*************************************Commented By Anbu****************************************************
OPEN DATASET gv_file1 FOR INPUT IN TEXT MODE ENCODING DEFAULT MESSAGE mess .
*
IF sy-subrc = 0.
DO.
READ DATASET gv_file1 INTO rec .
IF sy-subrc = 0.
MOVE rec TO it_up1-string1.
APPEND it_up1 .
ELSE.
EXIT.
ENDIF.
ENDDO .
ELSE .
WRITE : gv_file1 , mess, 'File not found'.
EXIT. "MESSAGE ID 'SDV' TYPE 'E' NUMBER '000' WITH 'Header File Not Available' .
ENDIF.
close dataset gv_file1 .
*************************************Ended By Anbu****************************************************
if sy-subrc = 0.
wa_textno-filename = 'INCOMING' .
wa_textno-filenumber = gv_filenum + 1 .
wa_textno-path = gv_path.
shift zdms_textno left deleting leading ' ' .
modify zdms_textno from wa_textno .
endif.
loop at it_up1.
gv_string1 = it_up1-string1.
if gv_string1 eq 'EOF' .
exit.
else.
split gv_string1 at '~' into: it_upload1-kunnr it_upload1-pno it_upload1-idate it_upload1-pernr .
clear : gv_pernr ,gv_pernr1, p .
p = 0 .
move it_upload1-pernr to gv_pernr1 .
do 8 times.
if ( gv_pernr1(1) eq '0' or gv_pernr1p(1) eq '1' or gv_pernr1p(1) eq '2' or gv_pernr1p(1) eq '3' or gv_pernr1p(1) eq '4'
or gv_pernr1p(1) eq '5' or gv_pernr1p(1) eq '6' or gv_pernr1p(1) eq '7' or gv_pernr1p(1) eq '8'
or gv_pernr1+p(1) eq '9' ).
concatenate gv_pernr1
gv_pernr1+p(1)
into gv_pernr1.
p = p + 1.
else.
exit.
endif.
enddo.
move gv_pernr to it_upload1-pernr .
append it_upload1.
clear gv_string1 .
endif.
endloop.
clear: gv_filenumc,
gv_file1 ,
wa_textno .
gv_filenum = gv_filenum + 1 .
move gv_filenum to gv_filenumc .
shift gv_filenumc left deleting leading '0'.
if gv_filenum < 10 .
concatenate '0' gv_filenumc into gv_filenumc .
endif.
*concatenate 'F:\usr\sap\EED\DVEBMGS00\work\EFC_Indent_Trn_'
concatenate gv_path 'EFC_Indent_Trn_'
gv_filenumc
'.txt'
into gv_file1 .
Start of Added by Durai.V 30-May-2008******
clear it_up2.
clear it_up2[].
End of Added by Durai.V 30-May-2008********
call function 'DX_FILE_READ' destination d_server
exporting
filename = gv_file1
SERVER =
pc =
tables
data_tab = it_up2
exceptions
no_file_on_server = 1
no_data_on_server = 2
gui_upload_failed = 3
NO_AUTHORITY = 4
others = 5
.
if sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
write : gv_file1 , 'File not found'.
exit.
endif.
Start of Added by Durai.V 30-May-2008******
write : / 'Application Server File Path for Item : ',gv_file1.
End of Added by Durai.V 30-May-2008********
*************************************Commented By Anbu****************************************************
OPEN DATASET gv_file1 FOR INPUT IN TEXT MODE ENCODING DEFAULT MESSAGE mess .
IF sy-subrc = 0 .
DO.
READ DATASET gv_file1 INTO rec .
IF sy-subrc = 0.
MOVE rec TO it_up2-string2.
APPEND it_up2 .
ELSE.
EXIT.
ENDIF.
ENDDO.
ELSE.
WRITE : gv_file1 , mess , 'File not found'.
EXIT. "MESSAGE ID 'SDV' TYPE 'E' NUMBER '000' WITH 'Transaction File Not Available' .
ENDIF.
close dataset gv_file1.
*************************************Ended By Anbu****************************************************
if sy-subrc = 0.
wa_textno-filename = 'INCOMING' .
wa_textno-filenumber = gv_filenum + 1 .
wa_textno-path = gv_path.
modify zdms_textno from wa_textno .
endif.
loop at it_up2.
gv_string2 = it_up2-string2.
if gv_string2 eq 'EOF' .
exit.
else.
split gv_string2 at '~' into: it_upload2-pno it_upload2-matnr gv_kwmeng1 .
shift gv_kwmeng1 right deleting trailing '#' .
shift gv_kwmeng1 left deleting leading '' .
clear : gv_kwmeng ,p .
p = 0 .
do 15 times.
if ( gv_kwmeng1+p(1) eq '0' or gv_kwmeng1+p(1) eq '1' or gv_kwmeng1+p(1) eq '2' or gv_kwmeng1+p(1) eq '3' or gv_kwmeng1+p(1) eq '4'
or gv_kwmeng1+p(1) eq '5' or gv_kwmeng1+p(1) eq '6' or gv_kwmeng1+p(1) eq '7' or gv_kwmeng1+p(1) eq '8'
or gv_kwmeng1+p(1) eq '9' ).
concatenate gv_kwmeng
gv_kwmeng1+p(1)
into gv_kwmeng.
p = p + 1.
else.
exit.
endif.
enddo.
move gv_kwmeng to it_upload2-kwmeng.
if gv_kwmeng1 CA
'#~`!@$%^&*()-_+={}[].<>/?;"\|ABCDEFGHIJKLMNOPQRSTUVWXYZ'.
*
if sy-fdpos => 0.
*
else.
*
move gv_kwmeng1 to it_upload2-kwmeng.
*
endif.
*
endif.
enddo.
move gv_kwmeng to it_upload2-kwmeng.
append it_upload2.
clear gv_kwmeng .
clear gv_string2.
endif.
endloop.
endform. " f001-gui_upload
&----
*& Form f002_bdc_execute
&----
text
----
--> p1 text
<-- p2 text
----
form bdc_execute .
loop at it_upload1.
clear: n, m.
refresh: bdcdata,
gt_bdcmsg.
wa_order-kunnr = it_upload1-kunnr .
perform bdc_dynpro using 'SAPMV45A' '0101' .
perform bdc_field using 'BDC_CURSOR' 'VBAK-SPART' .
perform bdc_field using 'BDC_OKCODE' '/00' .
perform bdc_field using 'VBAK-AUART' 'ZLOR' .
perform bdc_field using 'VBAK-VKORG' '1000' .
perform bdc_field using 'VBAK-VTWEG' '25' .
perform bdc_field using 'VBAK-SPART' '14' .
***
perform bdc_dynpro using 'SAPMV45A' '4001' .
perform bdc_field using 'BDC_CURSOR' 'KUAGV-KUNNR' .
perform bdc_field using 'BDC_OKCODE' '/00' .
perform bdc_field using 'KUAGV-KUNNR' it_upload1-kunnr .
perform bdc_field using 'VBKD-BSTKD' it_upload1-pno .
perform bdc_field using 'VBKD-BSTDK' it_upload1-idate .
perform bdc_field using 'RV45A-KETDAT' sy-datum .
perform bdc_field using 'RV45A-KPRGBZ' 'D' .
perform bdc_field using 'VBKD-PRSDT' sy-datum .
***
perform bdc_dynpro using 'SAPMV45A' '4001' .
loop at it_upload2 where pno = it_upload1-pno .
n = n + 1 .
if sy-batch = ' '.
if n > 5.
n = 5.
endif.
else.
if n > 2.
n = 2.
endif.
endif.
move n to m .
if n < 10.
concatenate '0' m into m.
endif.
concatenate 'RV45A-MABNR('
m
')'
into gv_char3 .
perform bdc_field using 'BDC_CURSOR' gv_char3 . "'RV45A-MABNR(01)' .
perform bdc_field using 'BDC_OKCODE' '/00' .
perform bdc_field using 'KUAGV-KUNNR' it_upload1-kunnr .
perform bdc_field using 'KUWEV-KUNNR' it_upload1-kunnr .
perform bdc_field using 'VBKD-BSTKD' it_upload1-pno .
perform bdc_field using 'VBKD-BSTDK' it_upload1-idate .
perform bdc_field using 'RV45A-KETDAT' sy-datum .
perform bdc_field using 'RV45A-KPRGBZ' 'D' .
perform bdc_field using 'VBKD-PRSDT' sy-datum .
concatenate 'RV45A-MABNR('
m
')'
into gv_char1 .
concatenate 'RV45A-KWMENG('
m
')'
into gv_char2 .
move it_upload2-kwmeng to gv_qty.
perform bdc_field using gv_char1 it_upload2-matnr .
perform bdc_field using gv_char2 gv_qty .
perform bdc_dynpro using 'SAPMV45A' '4001'.
perform bdc_field using 'BDC_OKCODE' '/00'.
Start of Added by Durai.V 30-May-2008******
write : / gv_char2, ':',gv_qty.
clear : gv_char1,gv_char2,gv_char3.
End of Added by Durai.V 30-May-2008********
endloop.
***
perform bdc_dynpro using 'SAPMV45A' '4001' .
perform bdc_field using 'BDC_CURSOR' 'VBAK-LIFSK' .
perform bdc_field using 'VBAK-LIFSK' 'Z3' .
perform bdc_field using 'BDC_OKCODE' '=SICH' .
***
perform bdc_dynpro using 'SAPLSPO2' '0101' .
perform bdc_field using 'BDC_OKCODE' '=OPT1' .
call transaction 'VA01' using bdcdata mode 'N'
messages into gt_bdcmsg.
if sy-subrc = 0.
loop at gt_bdcmsg.
call function 'FORMAT_MESSAGE'
exporting
id = gt_bdcmsg-msgid
lang = gt_bdcmsg-msgspra
no = gt_bdcmsg-msgnr
v1 = gt_bdcmsg-msgv1
v2 = gt_bdcmsg-msgv2
importing
msg = gv_msg
exceptions
others = 0.
if ( gt_bdcmsg-msgtyp = 'E' ).
wa_order-text = gv_msg .
wa_order-tran_date = sy-datum .
wa_order-flag = '' .
wa_order-runtime = sy-uzeit .
modify zdms_log from wa_order .
endif.
if ( gt_bdcmsg-msgtyp = 'S' ) .
wa_order-text = gv_msg .
wa_order-tran_date = sy-datum .
wa_order-flag = 'Y' .
wa_order-runtime = sy-uzeit .
modify zdms_log from wa_order .
endif.
endloop.
endif.
*********************
endloop.
endform. " f002_bdc_execute
----
Start new screen *
----
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.
bdcdata-fnam = fnam.
bdcdata-fval = fval.
append bdcdata.
endform. "BDC_FIELD
Reward IF..................
Regarda
Anbu
06-10-2008 2:56 PM
Ok..Now the question is - you want to read a file from application server..or write to a file into appl. server.
Case :
1) write into appl. server.
SELECTION-SCREEN BEGIN OF BLOCK DATA WITH FRAME TITLE TEXT-024.
PARAMETERS: P_CC(66) OBLIGATORY LOWER CASE
DEFAULT '\\Pr-pnetprd-03\TaskIn\CCenter_'.
SELECTION-SCREEN END OF BLOCK DATA.
OPEN DATASET p_cc FOR OUtPUT IN TEXT MODE ENCODING DEFAULT.
loop at i_cc_pnet.
concatenate i_cc_pnet-CostCode i_cc_pnet-ccname i_cc_pnet-status into
l_string separated by '|' .
transfer l_string to p_cc. " write into file defined by p_cc in application server
clear l_string .
endloop.
2) Read from appl. server.
Open dataset p_cc for input in text mode encoding default.
IF sy-subrc NE 0.
MESSAGE e010(zm) WITH '>>> UNABLE TO OPEN INPUT FILE <<<'.
ENDIF.
DO.
READ DATASET p_cc INTO intab.
IF sy-subrc NE 0.
EXIT.
ENDIF.
CASE intab-fieldN.
WHEN 'H'.
header_rec = intab.
APPEND header_rec.
when others.
append some_internal_table.
ENDDO.
Please award points if answer is useful.
07-11-2008 3:17 PM