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 - Read File

Former Member
0 Kudos

Hi,

In the BDC generated program, how we can specify the file that is stored in the application server ?

Regards

Sabu

1 ACCEPTED SOLUTION

Former Member
0 Kudos

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

3 REPLIES 3

Former Member
0 Kudos

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

former_member125661
Contributor
0 Kudos

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.

Former Member
0 Kudos

OK