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: 

Writing to application server - inserting seperator?

Former Member
0 Kudos

I am writing data from internal table to application server using datasets.

I want that the text file which gets created at server should have seperator as semicolon.How do i do it?How do i ensure that when i use transfer statement the fields are seperated by semicolon.

Following code i hv written...

SELECT * FROM t777a INTO TABLE gt_itab1.

OPEN DATASET dataset_one FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.

IF sy-subrc EQ 0.

LOOP AT gt_itab1 INTO gwa_itab1.

TRANSFER gwa_itab1 TO dataset_one.

ENDLOOP.

ENDIF.

how do i ensure that .txt file contains semicolon seperated values?

1 ACCEPTED SOLUTION

Former Member
0 Kudos

Hi Mohit,

You need to handle it in your code

data l_string type string.

LOOP AT gt_itab1 INTO gwa_itab1.

CONCATENATE field1 ',' field2 ',' ...INTO l_string.

TRANSFER l_stringTO dataset_one.

ENDLOOP.

ENDIF

regards,

Atish

8 REPLIES 8

Former Member
0 Kudos

Hi,

Pass the internal table to the function module SAP_CONVERT_TO_TEX_FORMAT and pass semi colon in the parameter i_field_seperator

Thanks

naren

Former Member
0 Kudos

Hi Mohit,

You need to handle it in your code

data l_string type string.

LOOP AT gt_itab1 INTO gwa_itab1.

CONCATENATE field1 ',' field2 ',' ...INTO l_string.

TRANSFER l_stringTO dataset_one.

ENDLOOP.

ENDIF

regards,

Atish

0 Kudos

Thx atish,that is fine but the prob wid this is if there are many fields ,suppose 30 then i will have to concatenate all the fields explicitly...it must be done dynamically wihout knowing how many fields are there...

Message was edited by:

mohit chopra

0 Kudos

Hi Mohit..

If u want to Concatenate the components Dynamically use the Field symbols concept.

Eg:

field-symbols: <fcomp> type any.

DATA : V_sTR TYPE STRING.

Loop at Itab INTO WA..

Do .

ASSIGN-COMPONENT SY-INDEX OF STRUCTURE WA TO <FCOMP>

CASTING TYPE C.

IF SY-SUBRC NE 0.

EXIT.

ELSE.

CONCATENATE V_STR <FCOMP> TO V_STR

SEPARATED BY CL_ABAP_CHAR_UTILITIES=>HORIZONTAL_TAB.

ENDIF.

Enddo.

TRANSFER V_STR TO P_FILE.

ENDLOOP.

REWARD IF HELPFUL.

0 Kudos

Thanks varma..it helped me

points rewarded

former_member386202
Active Contributor
0 Kudos

Hi,

You have to handle it in your code, add one field int your internal table type character and length 1 and pass semi colon to that field.

Regards,

Prashant

0 Kudos

thx prashant..how will adding a field of type char(1) having semicolon as value help?

0 Kudos

Hi,

Refer This code.

report zzfi_down_egate no standard page heading line-size 200.

.

----


  • Program : ZZFI_DOWN_EGATE *

  • Title : Download from e-agate SAP system *

  • Created By : *

  • Function Spec.: Billy *

  • Date : 29.Mar.2007 *

----


  • Description : The requirement is to export data file in specific *

  • format from e-gate SAP system for data migration to *

  • GG SAP system. *

----


  • Modifications : Anupam Chakrabarti-CSSL,05-Apr-2007------------------*

----


  • Reference | Description *

  • | *

  • | *

  • | *

----


----


  • Tables *

----


tables : glt0, "G/L account master record transaction figures

bsis,

skb1,

t001,

bsik, "Accounting: Secondary Index for Vendors

bsid. "Accounting: Secondary Index for Customers

----


  • Data *

----


*--Variables

data : i_index type sy-tabix, "Index

i_file(100) type c.

data : i_faedt like rfpos-faedt.

----


  • Type *

----


*--Structure for BSID

types : begin of ty_bsid,

recty(1) type c,

bschl type bschl,

bukrs type bukrs,

kunnr type kunnr,

wrbtr type wrbtr,

wmwst type wmwst,

prctr type prctr,

zfbdt type dzfbdt,

charg type charg_d,

belnr type belnr_d,

copa_comp(1) type c,

copa_cus(1) type c,

copa_prc(1) type c,

copa_sc(1) type c,

copa_fn(1) type c,

dmbtr type dmbtr,

shkzg type shkzg,

sgtxt type sgtxt,

zuonr type dzuonr,

end of ty_bsid,

*--Structure for BSIK

begin of ty_bsik,

recty(1) type c,

bschl type bschl,

bukrs type bukrs,

lifnr type lifnr,

wrbtr type wrbtr,

wmwst type wmwst,

mwskz type mwskz,

kostl type kostl,

prctr type prctr,

zlspr type dzlspr,

hbkid type hbkid,

zterm type dzterm,

cdate type dzfbdt,

charg type charg,

belnr type belnr_d,

zlsch type dzlsch,

dmbtr type dmbtr,

zfbdt type dzfbdt,

zbd1t type dzbd1t,

zbd2t type dzbd2t,

zbd3t type dzbd3t,

rebzg type rebzg,

shkzg type shkzg,

sgtxt type sgtxt,

zuonr type dzuonr,

end of ty_bsik,

*--Structure for BKPF

begin of ty_bkpf,

recty(1) type c,

bukrs type bukrs,

belnr type belnr_d,

bldat type bldat,

budat type budat,

monat type monat,

gjahr type gjahr,

blart type blart,

waers type waers,

kursf type kursf,

xblnr type xblnr,

bktxt type bktxt,

end of ty_bkpf,

*--Structure for GLT0

begin of ty_glt0,

recty(1) type c,

newbs type bschl,

bukrs type bukrs,

drcrk type shkzg,

racct type racct,

ryear type gjahr,

wrbtr type wrbtr,

dmbtr type dmbtr,

mwskz type mwskz,

prctr type prctr,

kostl type kostl,

zuonr(18) type c,

sgtxt(50) type c,

zlsch type dzlsch,

zterm type dzterm,

end of ty_glt0.

data: begin of it_bsid_s occurs 0.

include structure bsid.

data end of it_bsid_s.

data: begin of it_bsik_s occurs 0.

include structure bsik.

data end of it_bsik_s.

data: begin of it_balance occurs 0.

include structure bapi1028_4.

data end of it_balance.

data: begin of it_glhdr occurs 0.

include structure skb1.

data end of it_glhdr.

----


  • Work Area *

----


data : wa_bsid type ty_bsid,

wa_bsik type ty_bsik,

wa_hdid type ty_bsid,

wa_hdik type ty_bsik,

wa_hdgl type ty_glt0,

wa_bkid type ty_bkpf,

wa_bkik type ty_bkpf,

wa_bkgl type ty_bkpf,

wa_glt0 type ty_glt0.

data: begin of wa_bkpf,

rec_type(1),

com1,

xblnr(15),

com2,

bukrs like bkpf-bukrs,

com3,

blart like bkpf-blart,

com4,

bldat like bkpf-bldat,

com5,

budat like bkpf-budat,

com6,

monat like bkpf-monat,

com7,

bktxt like bkpf-bktxt,

com8,

waers like bkpf-waers,

end of wa_bkpf.

data: begin of wa_bsid_s,

rec_type(1),

com1,

bschl like bsid-bschl,

com2,

kunnr like bsid-kunnr,

com3,

wrbtr like bsid-wrbtr,

com4,

wmwst like bsid-wmwst,

com5,

prctr like bsid-prctr,

com6,

zfbdt like bsid-zfbdt,

com7,

batch,

com8,

belnr(15),

com9,

copa_comp,

com10,

copa_cus,

com11,

copa_prc,

com12,

copa_sc,

com13,

copa_fn,

com14,

dmbtr like bsid-dmbtr,

sgtxt like bsid-sgtxt,

com15,

zuonr like bsid-zuonr, "By Kavita

end of wa_bsid_s.

data: begin of wa_bsik_s,

rec_type(1),

com1,

bschl like bsik-bschl,

com2,

lifnr like bsik-lifnr,

com3,

wrbtr like bsik-wrbtr,

com4,

wmwst like bsik-wmwst,

com5,

mwskz like bsik-mwskz,

com6,

kostl like bsik-kostl,

com7,

prctr like bsik-prctr,

com8,

zlspr like bsik-zlspr,

com9,

hbkid like bsik-hbkid,

com10,

zterm like bsik-zterm,

com11,

calc_date like sy-datum,

com12,

batch,

com13,

tran_no(15),

com14,

zlsch like bsik-zlsch,

com15,

dmbtr like bsik-dmbtr,

sgtxt like bsik-sgtxt,

com16,

zuonr like bsik-zuonr, "By Kavita

end of wa_bsik_s.

data: begin of wa_glhdr,

rec_type(1),

com1,

bukrs like bkpf-bukrs,

com2,

bldat like bkpf-bldat,

com3,

budat like bkpf-budat,

com4,

monat like bkpf-monat,

com5,

blart like bkpf-blart,

com6,

waers like bkpf-waers,

com7,

kursf,

com8,

xblnr like bkpf-xblnr,

com9,

bktxt like bkpf-bktxt,

end of wa_glhdr.

data: begin of wa_glt0_s,

rec_type(1),

com1,

bschl like bsik-bschl,

com2,

hkont like glt0-racct,

com3,

wrbtr(16),

com4,

dmbtr,

com5,

mwskz(2),

com6,

prctr(10),

com7,

kostl(10),

com8,

zuonr(18),

com9,

sgtxt(50),

com10,

zlsch,

com11,

zterm(4),

end of wa_glt0_s.

----


  • Internal Table *

----


data: begin of it_output occurs 0,

***wa_bkpf fields

rec_type(1),

com1,

xblnr(15),

com2,

bukrs like bkpf-bukrs,

com3,

blart like bkpf-blart,

com4,

bldat like bkpf-bldat,

com5,

budat like bkpf-budat,

com6,

monat like bkpf-monat,

com7,

bktxt like bkpf-bktxt,

com8,

waers like bkpf-waers,

***wa_bsid_s fields

bschl like bsid-bschl,

kunnr like bsid-kunnr,

wrbtr like bsid-wrbtr,

wmwst like bsid-wmwst,

prctr like bsid-prctr,

zfbdt like bsid-zfbdt,

batch,

belnr(15),

copa_comp,

copa_cus,

copa_prc,

copa_sc,

copa_fn,

dmbtr like bsid-dmbtr,

***wa_bsik_s fields

lifnr like bsik-lifnr,

mwskz like bsik-mwskz,

kostl like bsik-kostl,

zlspr like bsik-zlspr,

hbkid like bsik-hbkid,

zterm like bsik-zterm,

calc_date like sy-datum,

tran_no(15),

zlsch like bsik-zlsch,

***wa_glhdr fields

kursf,

***wa_glt0_s fields

hkont like glt0-racct,

zuonr(18),

sgtxt(50),

end of it_output.

data : it_bsid type standard table of ty_bsid with header line,

it_bkid type standard table of ty_bkpf with header line,

it_bkik type standard table of ty_bkpf initial size 0,

it_bsik type standard table of ty_bsik initial size 0,

it_bkgl type standard table of ty_bkpf initial size 0,

it_bkpf type standard table of ty_bkpf initial size 0,

it_glt0 type standard table of ty_glt0 with header line.

data: l_var1(16), l_var11(19), l_var2(16), l_var22(20), l_var3(16),

l_var33(20), l_var4(16), l_val11(13).

data: l_D1(8).

data: l_D2(10).

data: l_YR(4), l_MO(2), l_DAY(2).

data: l_curr like bsid-waers, bukrs(7).

----


  • Selection Screen Block Selection *

----


selection-screen begin of block blk1 with frame title text-001.

select-options : s_bukrs for bsik-bukrs obligatory. "Company Code

parameters : p_arbut radiobutton group grp default 'X',

p_apbut radiobutton group grp ,

p_glbut radiobutton group grp.

selection-screen end of block blk1.

selection-screen begin of block blk3 with frame title text-003.

select-options : s_kunnr for bsid-kunnr modif id md1, "Customer Number

s_lifnr for bsik-lifnr modif id md2 , "Vendor Account

s_hkont for bsis-hkont modif id md3. "GL Acount Code

selection-screen skip 1.

parameters : p_month like bkpf-monat modif id md4 , "Month

p_ryear like bsis-gjahr modif id md5. "Fiscal Year

parameters : p_date like bkpf-budat modif id md6. "Open Key Date

selection-screen end of block blk3.

selection-screen begin of block blk2 with frame title text-002.

*parameters : p_aserv as checkbox , "Application server

parameters : p_aserv radiobutton group grp1, "Application server

p_path(60) modif id md7. "File Path

parameters: p_aserv1 radiobutton group grp1 default 'X'.

  • l_path like rlgrap-filename modif id md8

  • default 'C:\GG.txt'. "Presentation

  • "server

parameters: p_aserv2 radiobutton group grp1.

data: begin of i_out occurs 0,

data(1000),

end of i_out.

selection-screen end of block blk2.

bukrs = s_bukrs.

----


  • At Selection Screen on Output *

----


at selection-screen output.

loop at screen.

*--Check if AR open items radio button is checked or not

if p_arbut eq 'X'.

perform check_customer.

*--Check if AP open items radio button is checked or not

elseif p_apbut eq 'X'.

perform check_vendor.

*--Check if GL Balance radio button is checked or not

elseif p_glbut eq 'X'.

perform check_gl_account.

endif.

*--Check if checkbox for application server is checked or not

if p_aserv eq 'X'.

perform check_path.

endif.

modify screen.

endloop.

&----


*& Form check_customer

&----


form check_customer .

if screen-group1 = 'md1'.

screen-active = 1.

screen-input = 1.

elseif screen-group1 = 'MD2'.

screen-active = 1.

screen-input = 0.

elseif screen-group1 = 'MD3'.

screen-active = 1.

screen-input = 0.

elseif screen-group1 = 'MD4'.

screen-active = 1.

screen-input = 0.

elseif screen-group1 = 'MD5'.

screen-active = 1.

screen-input = 0.

elseif screen-group1 = 'MD6'.

screen-active = 1.

screen-input = 1.

elseif screen-group1 = 'MD7'.

screen-active = 1.

screen-input = 0.

elseif screen-group1 = 'md8'.

screen-active = 1.

screen-input = 1.

endif.

endform. " check_customer

&----


*& Form check_vendor

&----


form check_vendor .

if screen-group1 = 'MD1'.

screen-active = 1.

screen-input = 0.

elseif screen-group1 = 'md2'.

screen-active = 1.

screen-input = 1.

elseif screen-group1 = 'MD3'.

screen-active = 1.

screen-input = 0.

elseif screen-group1 = 'MD4'.

screen-active = 1.

screen-input = 0.

elseif screen-group1 = 'MD5'.

screen-active = 1.

screen-input = 0.

elseif screen-group1 = 'MD6'.

screen-active = 1.

screen-input = 1.

elseif screen-group1 = 'MD7'.

screen-active = 1.

screen-input = 0.

elseif screen-group1 = 'md8'.

screen-active = 1.

screen-input = 1.

endif.

endform. " check_vendor

&----


*& Form check_gl_account

&----


form check_gl_account .

if screen-group1 = 'MD1'.

screen-active = 1.

screen-input = 0.

elseif screen-group1 = 'MD2'.

screen-active = 1.

screen-input = 0.

elseif screen-group1 = 'md3'.

screen-active = 1.

screen-input = 1.

elseif screen-group1 = 'MD6'.

screen-active = 1.

screen-input = 0.

elseif screen-group1 = 'MD7'.

screen-active = 1.

screen-input = 0.

elseif screen-group1 = 'md8'.

screen-active = 1.

screen-input = 1.

endif.

endform. " check_gl_account

&----


*& Form check_path

&----


form check_path .

if screen-group1 = 'MD7'.

screen-active = 1.

screen-input = 1.

elseif screen-group1 = 'MD8'.

screen-active = 1.

screen-input = 0.

endif.

endform. " check_path

----


  • Start Of Selection *

----


start-of-selection.

*--Check for selection screen values.

  • perform check_selection. " Commented as per Billy's mail

*--Check Program is active or not

  • PERFORM check_program.

*--Start program

if p_arbut eq 'X'.

perform read_bsid.

perform read_bkpf_bsid.

if p_aserv eq 'X' or p_aserv1 eq 'X'.

perform download_data_bsid.

  • if p_aserv1 eq 'X'.

  • perform download.

  • endif.

else.

perform output_data_bsid.

endif.

elseif p_apbut eq 'X'.

perform read_bsik.

perform read_bkpf_bsik.

if p_aserv eq 'X' or p_aserv1 eq 'X'.

perform download_data_bsik.

  • if p_aserv1 eq 'X'.

  • perform download.

  • endif.

else.

perform output_data_bsik.

endif.

elseif p_glbut eq 'X'.

perform read_glt0.

if p_aserv eq 'X' or p_aserv1 eq 'X'.

perform download_data_glt0.

  • if p_aserv1 eq 'X'.

  • perform download.

  • endif.

else.

perform output_data_glt0.

endif.

endif.

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

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

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

                            • P E R F O R M S - R O U T I N E S ***********************

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

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

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

----


  • Check Selection Screen Values

*

----


form check_selection.

if p_arbut eq 'X'.

if s_kunnr is initial or

p_date is initial.

message e000(8i) with 'Please enter Customer number'

' and Open Key Date'.

endif.

elseif p_apbut eq 'X'.

if s_lifnr is initial or

p_date is initial.

message e000(8i) with 'Please enter Vendor number'

' and Open Key Date'.

endif.

elseif p_glbut eq 'X'.

if s_hkont is initial or

p_month is initial or

p_ryear is initial.

message e000(8i) with 'Please enter GL Account'

' and Month and Year'.

endif.

endif.

if p_aserv eq 'X' and

p_path is initial.

message e000(8i) with 'Please enter File Path'.

endif.

endform. "Check_Selection

&----


*& Form check_program

&----


  • text

----


form check_program .

*--Data for program and coding check

  • DATA : i_activ(1),

  • c_exit_activ TYPE REF TO z_check_coding_is_activ.

*--Create class

  • CREATE OBJECT c_exit_activ.

*--Call method to check if program is activ

  • CALL METHOD c_exit_activ->check_program_is_activ

  • EXPORTING

  • repid = sy-repid

    • ftype =

    • value =

  • IMPORTING

  • activ = i_activ

  • EXCEPTIONS

  • not_found = 1

  • OTHERS = 2

*

  • if sy-subrc <> 0 or i_activ is initial.

  • MESSAGE a000(zbc).

*ENDIF.

endform. "check_program

&----


*& Form read_bsid

&----


form read_bsid .

if p_date is initial and s_kunnr is not initial.

select * from bsid

into corresponding fields of table it_bsid_s

where bukrs in s_bukrs

and kunnr in s_kunnr.

elseif s_kunnr is initial and p_date is not initial.

select * from bsid

into corresponding fields of table it_bsid_s

where bukrs in s_bukrs

and budat <= p_date.

elseif p_date is not initial and s_kunnr is not initial.

select * from bsid

into corresponding fields of table it_bsid_s

where bukrs in s_bukrs

and kunnr in s_kunnr

and budat <= p_date.

elseif p_date is initial and s_kunnr is initial.

select * from bsid

into corresponding fields of table it_bsid_s

where bukrs in s_bukrs.

endif.

if sy-subrc ne 0.

message e000(8i) with 'No records for Selection'.

endif.

endform. " read_bsid

&----


*& Form read_bkpf_bsid

&----


form read_bkpf_bsid .

if not it_bsid_s[] is initial.

select bukrs

belnr

bldat

budat

monat

gjahr

blart

waers

kursf

xblnr

bktxt

from bkpf

into corresponding fields of table it_bkid

for all entries in it_bsid_s

where bukrs = it_bsid_s-bukrs

and belnr = it_bsid_s-belnr

  • and budat <= p_date.

and budat = it_bsid_s-budat

and gjahr = it_bsid_s-gjahr.

if sy-subrc eq 0.

sort it_bkid by bukrs belnr.

endif.

endif.

endform. " read_bkpf_bsid

&----


*& Form download_data_bsid

&----


form download_data_bsid.

if p_aserv eq 'X'.

perform open_file.

endif.

loop at it_bkid .

clear wa_bkpf.

wa_bkpf-rec_type = 'H'.

wa_bkpf-com1 = ','.

wa_bkpf-xblnr = it_bkid-xblnr.

wa_bkpf-com2 = ','.

wa_bkpf-bukrs = it_bkid-bukrs.

wa_bkpf-com3 = ','.

wa_bkpf-blart = it_bkid-blart.

wa_bkpf-com4 = ','.

wa_bkpf-bldat = it_bkid-bldat.

l_D2 = wa_bkpf-bldat.

perform get_dat using l_D2 changing wa_bkpf-bldat.

wa_bkpf-bldat = l_D2.

wa_bkpf-com5 = ','.

wa_bkpf-budat = it_bkid-budat.

l_D2 = wa_bkpf-budat.

perform get_dat using l_D2 changing wa_bkpf-budat.

wa_bkpf-budat = l_D2.

wa_bkpf-com6 = ','.

wa_bkpf-monat = it_bkid-monat.

wa_bkpf-com7 = ','.

wa_bkpf-bktxt = it_bkid-bktxt.

wa_bkpf-com8 = ','.

wa_bkpf-waers = it_bkid-waers.

if p_aserv eq 'X'.

transfer wa_bkpf to p_path.

elseif p_aserv1 eq 'X'.

  • MOVE wa_bkpf to i_out.

concatenate

wa_bkpf-rec_type

wa_bkpf-com1

wa_bkpf-xblnr

wa_bkpf-com2

wa_bkpf-bukrs

wa_bkpf-com3

wa_bkpf-blart

wa_bkpf-com4

wa_bkpf-bldat

wa_bkpf-com5

wa_bkpf-budat

wa_bkpf-com6

wa_bkpf-monat

wa_bkpf-com7

wa_bkpf-bktxt

wa_bkpf-com8

wa_bkpf-waers into i_out-data.

append i_out.

endif.

read table it_bsid_s with key bukrs = it_bkid-bukrs

belnr = it_bkid-belnr

monat = it_bkid-monat

gjahr = it_bkid-gjahr.

if sy-subrc = 0.

clear wa_bsid_s.

wa_bsid_s-rec_type = 'D'.

wa_bsid_s-com1 = ','.

wa_bsid_s-bschl = it_bsid_s-bschl.

wa_bsid_s-com2 = ','.

wa_bsid_s-kunnr = it_bsid_s-kunnr.

shift wa_bsid_s-kunnr left deleting leading '0'.

wa_bsid_s-com3 = ','.

wa_bsid_s-wrbtr = it_bsid_s-wrbtr.

l_var1 = wa_bsid_s-wrbtr.

  • if wa_bkpf-waers = 'JPY'.

if l_var1 ca '123456789'.

if wa_bkpf-waers = 'JPY'.

  • replace '.' in l_var1 with ''.

l_var1 = l_var1 * 100.

  • concatenate l_var1 wa_bkpf-waers into l_var11 separated by

  • space.

l_var11 = l_var1.

else.

l_var11 = wa_bsid_s-wrbtr.

endif.

elseif l_var1 co '0.00'.

  • replace '.' in l_var2 with ''.

clear l_var1.

l_var1 = ''.

l_var11 = l_var1.

endif.

  • endif.

wa_bsid_s-com4 = ','.

wa_bsid_s-wmwst = it_bsid_s-wmwst.

l_var2 = wa_bsid_s-wmwst.

  • if wa_bkpf-waers = 'JPY'.

if l_var2 ca '123456789'.

if wa_bkpf-waers = 'JPY'.

l_var2 = l_var2 * 100.

  • replace '.' in l_var2 with ''.

  • concatenate l_var2 wa_bkpf-waers into l_var22

  • separated by space.

l_var22 = l_var2.

else.

l_var22 = wa_bsid_s-wmwst.

endif.

elseif l_var2 co '0.00'.

  • replace '.' in l_var2 with ''.

clear l_var2.

l_var2 = ''.

l_var22 = l_var2.

endif.

  • endif.

wa_bsid_s-com5 = ','.

wa_bsid_s-prctr = it_bsid_s-prctr.

wa_bsid_s-com6 = ','.

wa_bsid_s-zfbdt = it_bsid_s-zfbdt.

l_D2 = wa_bsid_s-zfbdt.

perform get_dat using l_D2 changing wa_bsid_s-zfbdt.

wa_bsid_s-zfbdt = l_D2.

wa_bsid_s-com7 = ','.

wa_bsid_s-batch = ' '.

wa_bsid_s-com8 = ','.

concatenate it_bsid_s-gjahr '/'

it_bsid_s-belnr into wa_bsid_s-belnr.

wa_bsid_s-com9 = ','.

wa_bsid_s-copa_comp = ' '.

wa_bsid_s-com10 = ','.

wa_bsid_s-copa_cus = ' '.

wa_bsid_s-com11 = ','.

wa_bsid_s-copa_prc = ' '.

wa_bsid_s-com12 = ','.

wa_bsid_s-copa_sc = ' '.

wa_bsid_s-com13 = ','.

wa_bsid_s-copa_fn = ' '.

wa_bsid_s-com14 = ','.

wa_bsid_s-dmbtr = it_bsid_s-dmbtr.

l_var3 = wa_bsid_s-dmbtr.

  • if wa_bkpf-waers = 'JPY'.

shift bukrs left by 3 places.

Select single waers from t001 into l_curr where bukrs = bukrs.

if l_var3 ca '123456789'.

if l_curr = 'JPY'.

  • replace '.' in l_var3 with ''.

l_var3 = l_var3 * 100.

  • concatenate l_var3 wa_bkpf-waers into l_var33 separated by

  • space.

l_var33 = l_var3.

else.

l_var33 = wa_bsid_s-dmbtr.

endif.

elseif l_var3 co '0.00'.

  • replace '.' in l_var2 with ''.

clear l_var3.

l_var3 = ''.

l_var33 = l_var3.

endif.

wa_bsid_s-com14 = ','.

wa_bsid_s-sgtxt = it_bsid_s-sgtxt.

wa_bsid_s-com15 = ','.

wa_bsid_s-zuonr = it_bsid_s-zuonr.

  • endif.

if p_aserv eq 'X'.

transfer wa_bsid_s to p_path.

elseif p_aserv1 eq 'X'.

  • MOVE wa_bsid_s TO i_out.

  • append i_out.

concatenate

wa_bsid_s-rec_type

wa_bsid_s-com1

wa_bsid_s-bschl

wa_bsid_s-com2

wa_bsid_s-kunnr

wa_bsid_s-com3

l_var11

wa_bsid_s-com4

l_var22

wa_bsid_s-com5

wa_bsid_s-prctr

wa_bsid_s-com6

wa_bsid_s-zfbdt

wa_bsid_s-com7

wa_bsid_s-batch

wa_bsid_s-com8

wa_bsid_s-belnr

wa_bsid_s-com9

wa_bsid_s-copa_comp

wa_bsid_s-com10

wa_bsid_s-copa_cus

wa_bsid_s-com11

wa_bsid_s-copa_prc

wa_bsid_s-com12

wa_bsid_s-copa_sc

wa_bsid_s-com13

wa_bsid_s-copa_fn

wa_bsid_s-com14

l_var33

wa_bsid_s-com14

wa_bsid_s-sgtxt

wa_bsid_s-com15

wa_bsid_s-zuonr into i_out-data.

append i_out.

clear: l_var1, l_var2, l_var3, l_var4, l_var11, l_var22, l_var33.

endif.

clear wa_bsid_s.

if it_bsid_s-shkzg = 'H'.

wa_bsid_s-bschl = '40'. " '50'.

elseif it_bsid_s-shkzg = 'S'.

wa_bsid_s-bschl = '50'. " '40'.

endif.

wa_bsid_s-rec_type = 'D'.

wa_bsid_s-com1 = ','.

wa_bsid_s-com2 = ','.

wa_bsid_s-kunnr = '899998'.

shift wa_bsid_s-kunnr left deleting leading '0'.

wa_bsid_s-com3 = ','.

wa_bsid_s-wrbtr = it_bsid_s-wrbtr.

l_var1 = wa_bsid_s-wrbtr.

  • if wa_bkpf-waers = 'JPY'.

if l_var1 ca '123456789'.

if wa_bkpf-waers = 'JPY'.

  • replace '.' in l_var1 with ''.

l_var1 = l_var1 * 100.

  • concatenate l_var1 wa_bkpf-waers into l_var11 separated by

  • space.

l_var11 = l_var1.

else.

l_var11 = wa_bsid_s-wrbtr.

endif.

elseif l_var1 co '0.00'.

  • replace '.' in l_var2 with ''.

clear l_var1.

l_var1 = ''.

l_var11 = l_var1.

endif.

  • endif.

wa_bsid_s-com4 = ','.

wa_bsid_s-wmwst = it_bsid_s-wmwst.

l_var2 = wa_bsid_s-wmwst.

  • if wa_bkpf-waers = 'JPY'.

if l_var2 ca '123456789'.

if wa_bkpf-waers = 'JPY'.

  • replace '.' in l_var2 with ''.

l_var2 = l_var2 * 100.

  • concatenate l_var2 wa_bkpf-waers into l_var22 separated by

  • space.

l_var22 = l_var2.

else.

l_var22 = wa_bsid_s-wmwst.

endif.

elseif l_var2 co '0.00'.

  • replace '.' in l_var2 with ''.

clear l_var2.

l_var2 = ''.

l_var22 = l_var2.

endif.

  • endif.

wa_bsid_s-com5 = ','.

wa_bsid_s-prctr = it_bsid_s-prctr.

wa_bsid_s-com6 = ','.

wa_bsid_s-zfbdt = it_bsid_s-zfbdt.

l_D2 = wa_bsid_s-zfbdt.

perform get_dat using l_D2 changing wa_bsid_s-zfbdt.

wa_bsid_s-zfbdt = l_D2.

wa_bsid_s-com7 = ','.

wa_bsid_s-batch = ' '.

wa_bsid_s-com8 = ','.

concatenate it_bsid_s-gjahr '/'

it_bsid_s-belnr into wa_bsid_s-belnr.

wa_bsid_s-com9 = ','.

wa_bsid_s-copa_comp = ' '.

wa_bsid_s-com10 = ','.

wa_bsid_s-copa_cus = ' '.

wa_bsid_s-com11 = ','.

wa_bsid_s-copa_prc = ' '.

wa_bsid_s-com12 = ','.

wa_bsid_s-copa_sc = ' '.

wa_bsid_s-com13 = ','.

wa_bsid_s-copa_fn = ' '.

wa_bsid_s-com14 = ','.

wa_bsid_s-dmbtr = it_bsid_s-dmbtr.

l_var3 = wa_bsid_s-dmbtr.

  • if wa_bkpf-waers = 'JPY'.

shift bukrs left by 3 places.

Select single waers from t001 into l_curr where bukrs = bukrs.

if l_var3 ca '123456789'.

if l_curr = 'JPY'.

  • replace '.' in l_var3 with ''.

l_var3 = l_var3 * 100.

  • concatenate l_var3 wa_bkpf-waers into l_var33 separated by

  • space.

l_var33 = l_var3.

else.

l_var33 = wa_bsid_s-dmbtr.

endif.

elseif l_var3 co '0.00'.

  • replace '.' in l_var2 with ''.

clear l_var3.

l_var3 = ''.

l_var33 = l_var3.

endif.

wa_bsid_s-com14 = ','.

wa_bsid_s-sgtxt = it_bsid_s-sgtxt.

wa_bsid_s-com15 = ','.

wa_bsid_s-zuonr = it_bsid_s-zuonr.

  • endif.

if p_aserv eq 'X'.

transfer wa_bsid_s to p_path.

elseif p_aserv1 eq 'X'.

  • move wa_bsid_s to i_out.

concatenate

wa_bsid_s-rec_type

wa_bsid_s-com1

wa_bsid_s-bschl

  • wa_bsid_s-bschl

  • wa_bsid_s-rec_type

  • wa_bsid_s-com1

wa_bsid_s-com2

wa_bsid_s-kunnr

wa_bsid_s-com3

l_var11

wa_bsid_s-com4

l_var22

wa_bsid_s-com5

wa_bsid_s-prctr

wa_bsid_s-com6

wa_bsid_s-zfbdt

wa_bsid_s-com7

wa_bsid_s-batch

wa_bsid_s-com8

wa_bsid_s-belnr

wa_bsid_s-com9

wa_bsid_s-copa_comp

wa_bsid_s-com10

wa_bsid_s-copa_cus

wa_bsid_s-com11

wa_bsid_s-copa_prc

wa_bsid_s-com12

wa_bsid_s-copa_sc

wa_bsid_s-com13

wa_bsid_s-copa_fn

wa_bsid_s-com14

l_var33

wa_bsid_s-com14

wa_bsid_s-sgtxt

wa_bsid_s-com15

wa_bsid_s-zuonr into i_out-data.

append i_out.

clear: l_var1, l_var2, l_var3, l_var4, l_var11, l_var22, l_var33.

endif.

endif.

endloop.

if p_aserv eq 'X'.

close dataset p_path.

message i000(8i) with 'Customer Open Items downloaded successfully'.

elseif p_aserv1 eq 'X'.

call function 'DOWNLOAD'

exporting

  • FILENAME = ' '

filetype = 'ASC'

tables

data_tab = i_out

EXCEPTIONS

INVALID_FILESIZE = 1

INVALID_TABLE_WIDTH = 2

INVALID_TYPE = 3

NO_BATCH = 4

UNKNOWN_ERROR = 5

GUI_REFUSE_FILETRANSFER = 6

OTHERS = 7

.

if sy-subrc <> 0.

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

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

endif.

message i000(8i) with 'Customer Open Items downloaded successfully'.

endif.

endform. " download_data_bsid

&----


*& Form open_file

&----


form open_file.

if p_aserv eq 'X'.

open dataset p_path for output in text mode encoding default.

if sy-subrc ne 0.

  • WRITE 😕 'Download Failed'.

message e000(8i) with 'Error in File opening for download'.

endif.

endif.

endform. " open_file

&----


*& Form read_bsik

&----


form read_bsik .

if p_date is initial.

select * from bsik

into corresponding fields of table it_bsik_s

where bukrs in s_bukrs

and lifnr in s_lifnr.

elseif s_lifnr is initial.

select * from bsik

into corresponding fields of table it_bsik_s

where bukrs in s_bukrs

and budat <= p_date.

elseif p_date is not initial and s_lifnr is not initial..

select * from bsik

into corresponding fields of table it_bsik_s

where bukrs in s_bukrs

and lifnr in s_lifnr

and budat <= p_date.

elseif p_date is initial and s_kunnr is initial.

select * from bsik

into corresponding fields of table it_bsik_s

where bukrs in s_bukrs.

endif.

if sy-subrc ne 0.

message e000(8i) with 'No records for Selection'.

endif.

endform. " read_bsik

&----


*& Form read_bkpf_bsik

&----


form read_bkpf_bsik .

clear it_bkid.

refresh it_bkid.

if not it_bsik_s[] is initial.

select bukrs

belnr

bldat

budat

monat

gjahr

blart

waers

kursf

xblnr

bktxt

from bkpf

into corresponding fields of table it_bkid

for all entries in it_bsik_s

where bukrs = it_bsik_s-bukrs

and belnr = it_bsik_s-belnr

  • and budat <= p_date.

and budat = it_bsik_s-budat

and gjahr = it_bsik_s-gjahr.

if sy-subrc eq 0.

sort it_bkid by bukrs belnr.

endif.

endif.

endform. " read_bkpf_bsik

&----


*& Form download_data_bsik

&----


form download_data_bsik.

if p_aserv eq 'X'.

perform open_file.

endif.

loop at it_bkid .

clear wa_bkpf.

wa_bkpf-rec_type = 'H'.

wa_bkpf-com1 = ','.

wa_bkpf-xblnr = it_bkid-xblnr.

wa_bkpf-com2 = ','.

wa_bkpf-bukrs = it_bkid-bukrs.

wa_bkpf-com3 = ','.

wa_bkpf-blart = it_bkid-blart.

wa_bkpf-com4 = ','.

wa_bkpf-bldat = it_bkid-bldat.

l_D2 = wa_bkpf-bldat.

perform get_dat using l_D2 changing wa_bkpf-bldat.

wa_bkpf-bldat = l_D2.

wa_bkpf-com5 = ','.

wa_bkpf-budat = it_bkid-budat.

l_D2 = wa_bkpf-budat.

perform get_dat using l_D2 changing wa_bkpf-budat.

wa_bkpf-budat = l_D2.

wa_bkpf-com6 = ','.

wa_bkpf-monat = it_bkid-monat.

wa_bkpf-com7 = ','.

wa_bkpf-bktxt = it_bkid-bktxt.

wa_bkpf-com8 = ','.

wa_bkpf-waers = it_bkid-waers.

if p_aserv eq 'X'.

transfer wa_bkpf to p_path.

elseif p_aserv1 eq 'X'.

  • move wa_bkpf to i_out.

concatenate

wa_bkpf-rec_type

wa_bkpf-com1

wa_bkpf-xblnr

wa_bkpf-com2

wa_bkpf-bukrs

wa_bkpf-com3

wa_bkpf-blart

wa_bkpf-com4

wa_bkpf-bldat

wa_bkpf-com5

wa_bkpf-budat

wa_bkpf-com6

wa_bkpf-monat

wa_bkpf-com7

wa_bkpf-bktxt

wa_bkpf-com8

wa_bkpf-waers into i_out-data.

append i_out.

endif.

read table it_bsik_s with key bukrs = it_bkid-bukrs

belnr = it_bkid-belnr

monat = it_bkid-monat

gjahr = it_bkid-gjahr.

if sy-subrc = 0.

clear wa_bsik_s.

wa_bsik_s-rec_type = 'D'.

wa_bsik_s-com1 = ','.

wa_bsik_s-bschl = it_bsik_s-bschl.

wa_bsik_s-com2 = ','.

wa_bsik_s-lifnr = it_bsik_s-lifnr.

shift wa_bsik_s-lifnr left deleting leading '0'.

wa_bsik_s-com3 = ','.

wa_bsik_s-wrbtr = it_bsik_s-wrbtr.

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

l_var1 = wa_bsik_s-wrbtr.

if l_var1 ca '123456789'.

if wa_bkpf-waers = 'JPY'.

  • replace '.' in l_var1 with ''.

l_var1 = l_var1 * 100.

  • concatenate l_var1 wa_bkpf-waers into l_var11 separated by

  • space.

l_var11 = l_var1.

else.

l_var11 = wa_bsik_s-wrbtr.

endif.

elseif l_var1 co '0.00'.

  • replace '.' in l_var1 with ''.

clear l_var1.

l_var1 = ''.

l_var11 = l_var1.

endif.

  • endif.

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

wa_bsik_s-com4 = ','.

wa_bsik_s-wmwst = it_bsik_s-wmwst.

l_var2 = wa_bsik_s-wmwst.

  • if wa_bkpf-waers = 'JPY'.

if l_var2 ca '123456789'.

if wa_bkpf-waers = 'JPY'.

  • replace '.' in l_var2 with ''.

l_var2 = l_var2 * 100.

  • concatenate l_var2 wa_bkpf-waers into l_var22 separated by

  • space.

l_var22 = l_var2.

else.

l_var22 = wa_bsik_s-wmwst.

endif.

elseif l_var2 co '0.00'.

  • replace '.' in l_var2 with ''.

clear l_var2.

l_var2 = ''.

l_var22 = l_var2.

endif.

  • endif.

wa_bsik_s-com5 = ','.

wa_bsik_s-mwskz = it_bsik_s-mwskz.

wa_bsik_s-com6 = ','.

wa_bsik_s-kostl = it_bsik_s-kostl.

wa_bsik_s-com7 = ','.

wa_bsik_s-prctr = it_bsik_s-prctr.

wa_bsik_s-com8 = ','.

wa_bsik_s-zlspr = it_bsik_s-zlspr.

wa_bsik_s-com9 = ','.

wa_bsik_s-hbkid = it_bsik_s-hbkid.

wa_bsik_s-com10 = ','.

wa_bsik_s-zterm = it_bsik_s-zterm.

wa_bsik_s-com11 = ','.

perform get_date.

wa_bsik_s-calc_date = i_faedt.

l_D2 = wa_bsik_s-calc_date.

perform get_dat using l_D2 changing wa_bsik_s-calc_date.

wa_bsik_s-calc_date = l_D2.

wa_bsik_s-com12 = ','.

wa_bsik_s-batch = ' '.

wa_bsik_s-com13 = ','.

concatenate it_bsik_s-gjahr '/'

it_bsik_s-belnr into wa_bsik_s-tran_no.

wa_bsik_s-com14 = ','.

wa_bsik_s-zlsch = it_bsik_s-zlsch.

wa_bsik_s-com15 = ','.

wa_bsik_s-dmbtr = it_bsik_s-dmbtr.

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

l_var3 = wa_bsik_s-dmbtr.

  • if wa_bkpf-waers = 'JPY'.

shift bukrs left by 3 places.

Select single waers from t001 into l_curr where bukrs = bukrs.

if l_var3 ca '123456789'.

if l_curr = 'JPY'.

  • replace '.' in l_var3 with ''.

l_var3 = l_var3 * 100.

  • concatenate l_var3 wa_bkpf-waers into l_var33 separated by

  • space.

l_var33 = l_var3.

else.

l_var33 = wa_bsik_s-dmbtr.

endif.

elseif l_var3 co '0.00'.

  • replace '.' in l_var3 with ''.

clear l_var3.

l_var3 = ''.

l_var33 = l_var3.

endif.

wa_bsik_s-sgtxt = it_bsik_s-sgtxt.

wa_bsik_s-zuonr = it_bsik_s-zuonr. "By Kavita

  • endif.

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

if p_aserv eq 'X'.

transfer wa_bsik_s to p_path.

elseif p_aserv1 eq 'X'.

  • move wa_bsik_s to i_out.

concatenate

wa_bsik_s-rec_type

wa_bsik_s-com1

wa_bsik_s-bschl

wa_bsik_s-com2

wa_bsik_s-lifnr

wa_bsik_s-com3

l_var11

wa_bsik_s-com4

l_var22

wa_bsik_s-com5

wa_bsik_s-mwskz

wa_bsik_s-com6

wa_bsik_s-kostl

wa_bsik_s-com7

wa_bsik_s-prctr

wa_bsik_s-com8

wa_bsik_s-zlspr

wa_bsik_s-com9

wa_bsik_s-hbkid

wa_bsik_s-com10

wa_bsik_s-zterm

wa_bsik_s-com11

wa_bsik_s-calc_date

wa_bsik_s-com12

wa_bsik_s-batch

wa_bsik_s-com13

wa_bsik_s-tran_no

wa_bsik_s-com14

wa_bsik_s-zlsch

wa_bsik_s-com15

l_var33

wa_bsik_s-com15

wa_bsik_s-sgtxt

wa_bsik_s-com15

wa_bsik_s-zuonr into i_out-data. "By Kavita

append i_out.

clear: l_var1, l_var2, l_var3, l_var4, l_var11, l_var22, l_var33.

endif.

clear wa_bsik_s.

if it_bsik_s-shkzg = 'H'.

wa_bsik_s-bschl = '40'. " '50'.

elseif it_bsik_s-shkzg = 'S'.

wa_bsik_s-bschl = '50'. " '40'.

endif.

wa_bsik_s-rec_type = 'D'.

wa_bsik_s-com1 = ','.

wa_bsik_s-com2 = ','.

wa_bsik_s-lifnr = '899997'.

shift wa_bsik_s-lifnr left deleting leading '0'.

wa_bsik_s-com3 = ','.

wa_bsik_s-wrbtr = it_bsik_s-wrbtr.

l_var1 = wa_bsik_s-wrbtr.

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

  • if wa_bkpf-waers = 'JPY'.

if l_var1 ca '123456789'.

if wa_bkpf-waers = 'JPY'.

  • replace '.' in l_var1 with ''.

l_var1 = l_var1 * 100.

  • concatenate l_var1 wa_bkpf-waers into l_var11 separated by

  • space.

l_var11 = l_var1.

else.

l_var11 = wa_bsik_s-wrbtr.

endif.

elseif l_var1 co '0.00'.

  • replace '.' in l_var2 with ''.

clear l_var1.

l_var1 = ''.

l_var11 = l_var1.

endif.

  • endif.

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

wa_bsik_s-com4 = ','.

wa_bsik_s-wmwst = it_bsik_s-wmwst.

l_var2 = wa_bsik_s-wmwst.

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

  • if wa_bkpf-waers = 'JPY'.

if l_var2 ca '123456789'.

if wa_bkpf-waers = 'JPY'.

  • replace '.' in l_var2 with ''.

l_var2 = l_var2 * 100.

  • concatenate l_var2 wa_bkpf-waers into l_var22 separated by

  • space.

l_var22 = l_var2.

else.

l_var22 = wa_bsik_s-wmwst.

endif.

elseif l_var2 co '0.00'.

  • replace '.' in l_var2 with ''.

clear l_var2.

l_var2 = ''.

l_var22 = l_var2.

endif.

  • endif.

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

wa_bsik_s-com5 = ','.

wa_bsik_s-mwskz = it_bsik_s-mwskz.

wa_bsik_s-com6 = ','.

wa_bsik_s-kostl = it_bsik_s-kostl.

wa_bsik_s-com7 = ','.

wa_bsik_s-prctr = it_bsik_s-prctr.

wa_bsik_s-com8 = ','.

wa_bsik_s-zlspr = it_bsik_s-zlspr.

wa_bsik_s-com9 = ','.

wa_bsik_s-hbkid = it_bsik_s-hbkid.

wa_bsik_s-com10 = ','.

wa_bsik_s-zterm = it_bsik_s-zterm.

wa_bsik_s-com11 = ','.

wa_bsik_s-calc_date = i_faedt.

l_D2 = wa_bsik_s-calc_date.

perform get_dat using l_D2 changing wa_bsik_s-calc_date.

wa_bsik_s-calc_date = l_D2.

wa_bsik_s-com12 = ','.

wa_bsik_s-batch = ' '.

wa_bsik_s-com13 = ','.

concatenate it_bsik_s-gjahr '/'

it_bsik_s-belnr into wa_bsik_s-tran_no.

wa_bsik_s-com14 = ','.

wa_bsik_s-zlsch = it_bsik_s-zlsch.

wa_bsik_s-com15 = ','.

wa_bsik_s-dmbtr = it_bsik_s-dmbtr.

l_var3 = wa_bsik_s-dmbtr.

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

  • if wa_bkpf-waers = 'JPY'.

shift bukrs left by 3 places.

Select single waers from t001 into l_curr where bukrs = bukrs.

if l_var3 ca '123456789'.

if l_curr = 'JPY'.

  • replace '.' in l_var3 with ''.

l_var3 = l_var3 * 100.

  • concatenate l_var3 wa_bkpf-waers into l_var33 separated by

  • space.

l_var33 = l_var3.

else.

l_var33 = wa_bsik_s-dmbtr.

endif.

elseif l_var3 co '0.00'.

  • replace '.' in l_var3 with ''.

clear l_var3.

l_var3 = ''.

l_var33 = l_var3.

endif.

wa_bsik_s-sgtxt = it_bsik_s-sgtxt.

wa_bsik_s-zuonr = it_bsik_s-zuonr. "By Kavita

  • endif.

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

if p_aserv eq 'X'.

transfer wa_bsik_s to p_path.

elseif p_aserv1 eq 'X'.

  • move wa_bsik_s to i_out.

concatenate

wa_bsik_s-rec_type

wa_bsik_s-com1

wa_bsik_s-bschl

wa_bsik_s-com2

wa_bsik_s-lifnr

wa_bsik_s-com3

l_var11

wa_bsik_s-com4

l_var22

wa_bsik_s-com5

wa_bsik_s-mwskz

wa_bsik_s-com6

wa_bsik_s-kostl

wa_bsik_s-com7

wa_bsik_s-prctr

wa_bsik_s-com8

wa_bsik_s-zlspr

wa_bsik_s-com9

wa_bsik_s-hbkid

wa_bsik_s-com10

wa_bsik_s-zterm

wa_bsik_s-com11

wa_bsik_s-calc_date

wa_bsik_s-com12

wa_bsik_s-batch

wa_bsik_s-com13

wa_bsik_s-tran_no

wa_bsik_s-com14

wa_bsik_s-zlsch

wa_bsik_s-com15

l_var33

wa_bsik_s-com15

wa_bsik_s-sgtxt

wa_bsik_s-com15

wa_bsik_s-zuonr into i_out-data. "By Kavita

append i_out.

clear: l_var1, l_var2, l_var3, l_var4, l_var11, l_var22, l_var33.

endif.

endif.

endloop.

if p_aserv eq 'X'.

close dataset p_path.

message i000(8i) with 'Vendor Open Items downloaded successfully'.

elseif p_aserv1 eq 'X'.

call function 'DOWNLOAD'

exporting

  • FILENAME = ' '

filetype = 'ASC'

tables

data_tab = i_out

EXCEPTIONS

INVALID_FILESIZE = 1

INVALID_TABLE_WIDTH = 2

INVALID_TYPE = 3

NO_BATCH = 4

UNKNOWN_ERROR = 5

GUI_REFUSE_FILETRANSFER = 6

OTHERS = 7

.

if sy-subrc <> 0.

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

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

endif.

message i000(8i) with 'Vendor Open Items downloaded successfully'.

endif.

endform. " download_data_bsid

&----


*& Form get_date

&----


form get_date.

clear i_faedt.

call function 'NET_DUE_DATE_GET'

exporting

i_zfbdt = it_bsik_s-zfbdt

i_zbd1t = it_bsik_s-zbd1t

i_zbd2t = it_bsik_s-zbd2t

i_zbd3t = it_bsik_s-zbd3t

i_shkzg = it_bsik_s-shkzg

i_rebzg = it_bsik_s-rebzg

i_koart = 'K'

importing

e_faedt = i_faedt.

endform. " get_date

&----


*& Form read_glt0

&----


form read_glt0.

select * from skb1

into corresponding fields of table it_glhdr

where bukrs in s_bukrs

and saknr in s_hkont.

if sy-subrc ne 0.

message e000(8i) with 'No records for Selection'.

endif.

if not it_glhdr[] is initial.

select bukrs

drcrk

racct

ryear

from glt0

into corresponding fields of table it_glt0

where bukrs in s_bukrs

and ryear = p_ryear

and racct in s_hkont.

if sy-subrc eq 0.

sort it_glt0 by bukrs racct.

endif.

endif.

endform. " read_glt0

&----


*& Form download_data_glt0

&----


form download_data_glt0.

if p_aserv eq 'X'.

perform open_file.

endif.

loop at it_glhdr.

select single * from t001 where bukrs = it_glhdr-bukrs.

clear wa_glhdr.

wa_glhdr-rec_type = 'H'.

wa_glhdr-com1 = ','.

wa_glhdr-bukrs = it_glhdr-bukrs.

wa_glhdr-com2 = ','.

wa_glhdr-bldat = '30042007'.

wa_glhdr-com3 = ','.

wa_glhdr-budat = '30042007'.

wa_glhdr-com4 = ','.

wa_glhdr-monat = p_month.

wa_glhdr-com5 = ','.

wa_glhdr-blart = 'IB'.

wa_glhdr-com6 = ','.

wa_glhdr-waers = t001-waers.

wa_glhdr-com7 = ','.

wa_glhdr-kursf = ' '.

wa_glhdr-com8 = ','.

wa_glhdr-xblnr = it_glhdr-saknr.

wa_glhdr-com9 = ','.

wa_glhdr-bktxt = ' '.

  • if p_aserv eq 'X'.

  • transfer wa_glhdr to p_path.

  • elseif p_aserv1 eq 'X'.

  • move wa_glhdr to i_out.

  • append i_out.

  • endif.

read table it_glt0 with key bukrs = it_glhdr-bukrs

ryear = p_ryear

racct = it_glhdr-saknr.

if sy-subrc = 0.

if p_aserv eq 'X'.

transfer wa_glhdr to p_path.

elseif p_aserv1 eq 'X'.

move wa_glhdr to i_out.

append i_out.

endif.

endif.

if sy-subrc = 0.

wa_glt0_s-rec_type = 'D'.

wa_glt0_s-com1 = ','.

if it_glt0-drcrk = 'H'.

wa_glt0_s-bschl = '50'. " '40'.

elseif it_glt0-drcrk = 'S'.

wa_glt0_s-bschl = '40'. " '50'.

endif.

wa_glt0_s-com2 = ','.

wa_glt0_s-hkont = it_glt0-racct.

shift wa_glt0_s-hkont left deleting leading '0'.

wa_glt0_s-com3 = ','.

perform get_value.

wa_glt0_s-com4 = ','.

wa_glt0_s-dmbtr = ' '.

  • l_var1 = wa_glt0_s-dmbtr.

  • replace '.' in l_var1 with ''.

  • if l_var1 is not initial.

  • concatenate l_var1 wa_bkpf-waers into l_var11 separated by

  • space.

  • endif.

wa_glt0_s-com5 = ','.

wa_glt0_s-mwskz = ' '.

wa_glt0_s-com6 = ','.

wa_glt0_s-prctr = ' '.

wa_glt0_s-com7 = ','.

wa_glt0_s-kostl = ' '.

wa_glt0_s-com8 = ','.

wa_glt0_s-zuonr = ' '.

wa_glt0_s-com9 = ','.

wa_glt0_s-sgtxt = ' '.

wa_glt0_s-com10 = ','.

wa_glt0_s-zlsch = ' '.

wa_glt0_s-com11 = ','.

wa_glt0_s-zterm = ' '.

if p_aserv eq 'X'.

transfer wa_glt0_s to p_path.

elseif p_aserv1 eq 'X'.

  • move wa_glt0_s to i_out.

  • append i_out.

  • Start addition by Kavita

concatenate

wa_glt0_s-rec_type

wa_glt0_s-com1

wa_glt0_s-bschl

wa_glt0_s-com2

wa_glt0_s-hkont

wa_glt0_s-com3

l_var33

wa_glt0_s-com4

wa_glt0_s-dmbtr

wa_glt0_s-com5

wa_glt0_s-mwskz

wa_glt0_s-com6

wa_glt0_s-prctr

wa_glt0_s-com7

wa_glt0_s-kostl

wa_glt0_s-com8

wa_glt0_s-zuonr

wa_glt0_s-com9

wa_glt0_s-sgtxt

wa_glt0_s-com10

wa_glt0_s-zlsch

wa_glt0_s-com11

wa_glt0_s-zterm into i_out-data.

append i_out.

  • End addition by Kavita

endif.

clear wa_glt0_s.

wa_glt0_s-rec_type = 'D'.

wa_glt0_s-com1 = ','.

if it_glt0-drcrk = 'H'.

wa_glt0_s-bschl = '40'. " '50'.

elseif it_glt0-drcrk = 'S'.

wa_glt0_s-bschl = '50'. " '40'.

endif.

wa_glt0_s-com2 = ','.

wa_glt0_s-hkont = '899999'.

shift wa_glt0_s-hkont left deleting leading '0'.

wa_glt0_s-com3 = ','.

perform get_value.

wa_glt0_s-com4 = ','.

wa_glt0_s-dmbtr = ' '.

wa_glt0_s-com5 = ','.

wa_glt0_s-mwskz = ' '.

wa_glt0_s-com6 = ','.

wa_glt0_s-prctr = ' '.

wa_glt0_s-com7 = ','.

wa_glt0_s-kostl = ' '.

wa_glt0_s-com8 = ','.

wa_glt0_s-zuonr = ' '.

wa_glt0_s-com9 = ','.

wa_glt0_s-sgtxt = ' '.

wa_glt0_s-com10 = ','.

wa_glt0_s-zlsch = ' '.

wa_glt0_s-com11 = ','.

wa_glt0_s-zterm = ' '.

if p_aserv eq 'X'.

transfer wa_glt0_s to p_path.

elseif p_aserv1 eq 'X'.

  • move wa_glt0_s to i_out.

  • append i_out.

*Start addition by Kavita

concatenate

wa_glt0_s-rec_type

wa_glt0_s-com1

wa_glt0_s-bschl

wa_glt0_s-com2

wa_glt0_s-hkont

wa_glt0_s-com3

l_var33

wa_glt0_s-com4

wa_glt0_s-dmbtr

wa_glt0_s-com5

wa_glt0_s-mwskz

wa_glt0_s-com6

wa_glt0_s-prctr

wa_glt0_s-com7

wa_glt0_s-kostl

wa_glt0_s-com8

wa_glt0_s-zuonr

wa_glt0_s-com9

wa_glt0_s-sgtxt

wa_glt0_s-com10

wa_glt0_s-zlsch

wa_glt0_s-com11

wa_glt0_s-zterm into i_out-data.

  • End addition by Kavita

append i_out.

endif.

endif.

endloop.

if p_aserv eq 'X'.

close dataset p_path.

message i000(8i) with 'GL Balance Items downloaded successfully'.

elseif p_aserv1 eq 'X'.

call function 'DOWNLOAD'

exporting

FILENAME = ' '

filetype = 'ASC'

tables

data_tab = i_out

EXCEPTIONS

INVALID_FILESIZE = 1

INVALID_TABLE_WIDTH = 2

INVALID_TYPE = 3

NO_BATCH = 4

UNKNOWN_ERROR = 5

GUI_REFUSE_FILETRANSFER = 6

OTHERS = 7

.

if sy-subrc <> 0.

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

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

endif.

  • perform download.

message i000(8i) with 'GL Balance Items downloaded successfully'.

endif.

endform. " download_data_glt0

&----


*& Form get_value

&----


form get_value.

clear it_balance.

refresh it_balance.

clear: l_var3, l_var33.

call function 'BAPI_GL_GETGLACCPERIODBALANCES'

exporting

companycode = it_glt0-bukrs

glacct = it_glt0-racct

fiscalyear = p_ryear

currencytype = '10'

tables

account_balances = it_balance.

read table it_balance with key comp_code = it_glt0-bukrs

gl_account = it_glt0-racct

fisc_year = p_ryear

fis_period = p_month.

if sy-subrc = 0.

wa_glt0_s-wrbtr = it_balance-balance.

l_val11 = wa_glt0_s-wrbtr.

  • l_val11 = wa_glt0_s-wrbtr.

  • Start addition by Kavita to remove decimals

l_var3 = l_val11. " wa_glt0_s-wrbtr.

if l_var3 ca '123456789'.

if t001-waers = 'JPY'.

l_var3 = l_var3 * 100.

l_var33 = l_var3.

else.

l_var33 = l_var3. " wa_glt0_s-wrbtr.

endif.

elseif l_var3 co '0.00'.

clear l_var3.

l_var3 = ''.

l_var33 = l_var3.

endif.

  • clear wa_glt0_s-wrbtr.

  • wa_glt0_s-wrbtr = l_var3. "l_val11.

*end addition by Kavita

endif.

endform. " get_value

&----


*& Form output_data_bsid

&----


form output_data_bsid.

loop at it_bkid .

write: /2 'H',

4 it_bkid-xblnr,

20 it_bkid-bukrs,

25 it_bkid-blart,

28 it_bkid-bldat,

38 it_bkid-budat,

48 it_bkid-monat,

51 it_bkid-bktxt,

77 it_bkid-waers.

read table it_bsid_s with key bukrs = it_bkid-bukrs

belnr = it_bkid-belnr

monat = it_bkid-monat

gjahr = it_bkid-gjahr.

if sy-subrc = 0.

concatenate it_bsid_s-gjahr '/'

it_bsid_s-belnr into wa_bsid_s-belnr.

write: /2 'D',

4 it_bsid_s-bschl,

7 it_bsid_s-kunnr,

16 it_bsid_s-wrbtr,

32 it_bsid_s-wmwst,

48 it_bsid_s-prctr,

60 it_bsid_s-zfbdt,

70 ' ',

72 wa_bsid_s-belnr,

87 ' ',

89 ' ',

90 ' ',

92 ' ',

94 ' ',

96 it_bsid_s-dmbtr.

if it_bsid_s-shkzg = 'H'.

wa_bsid_s-bschl = '40'.

elseif it_bsid_s-shkzg = 'S'.

wa_bsid_s-bschl = '50'.

endif.

write: /2 'D',

4 wa_bsid_s-bschl,

7 '899998',

16 it_bsid_s-wrbtr,

32 it_bsid_s-wmwst,

48 it_bsid_s-prctr,

60 it_bsid_s-zfbdt,

70 ' ',

72 wa_bsid_s-belnr,

87 ' ',

89 ' ',

90 ' ',

92 ' ',

94 ' ',

96 it_bsid_s-dmbtr,

120 it_bsid_s-zuonr.

endif.

skip 1.

endloop.

endform. " output_data_bsid

&----


*& Form output_data_bsik

&----


form output_data_bsik.

loop at it_bkid .

write: /2 'H',

4 it_bkid-xblnr,

20 it_bkid-bukrs,

25 it_bkid-blart,

28 it_bkid-bldat,

38 it_bkid-budat,

48 it_bkid-monat,

51 it_bkid-bktxt,

77 it_bkid-waers.

read table it_bsik_s with key bukrs = it_bkid-bukrs

belnr = it_bkid-belnr

monat = it_bkid-monat

gjahr = it_bkid-gjahr.

if sy-subrc = 0.

clear wa_bsik_s.

perform get_date.

concatenate it_bsik_s-gjahr '/'

it_bsik_s-belnr into wa_bsik_s-tran_no.

write: /2 'D',

4 it_bsik_s-bschl,

7 it_bsik_s-lifnr,

16 it_bsik_s-wrbtr,

32 it_bsik_s-wmwst,

48 it_bsik_s-mwskz,

60 it_bsik_s-kostl,

70 it_bsik_s-prctr,

80 it_bsik_s-zlspr,

82 it_bsik_s-hbkid,

88 it_bsik_s-zterm,

93 i_faedt,

103 ' ',

105 wa_bsik_s-tran_no,

120 it_bsik_s-zlsch,

122 it_bsik_s-dmbtr.

if it_bsik_s-shkzg = 'H'.

wa_bsik_s-bschl = '40'.

elseif it_bsik_s-shkzg = 'S'.

wa_bsik_s-bschl = '50'.

endif.

write: /2 'D',

4 wa_bsik_s-bschl,

7 '899997',

16 it_bsik_s-wrbtr,

32 it_bsik_s-wmwst,

48 it_bsik_s-mwskz,

60 it_bsik_s-kostl,

70 it_bsik_s-prctr,

80 it_bsik_s-zlspr,

82 it_bsik_s-hbkid,

88 it_bsik_s-zterm,

93 i_faedt,

103 ' ',

105 wa_bsik_s-tran_no,

120 it_bsik_s-zlsch,

122 it_bsik_s-dmbtr.

endif.

skip 1.

endloop.

endform. " output_data_bsik

&----


*& Form output_data_glt0

&----


form output_data_glt0.

loop at it_glhdr.

select single * from t001 where bukrs = it_glhdr-bukrs.

clear wa_glhdr.

write: /2 'H',

4 it_glhdr-bukrs,

8 '30042007',

18 '30042007',

29 p_month,

32 'IB',

35 t001-waers,

41 ' ',

43 it_glhdr-saknr,

60 ' '.

read table it_glt0 with key bukrs = it_glhdr-bukrs

ryear = p_ryear

racct = it_glhdr-saknr.

if sy-subrc = 0.

perform get_value.

if it_glt0-drcrk = 'H'.

wa_glt0_s-bschl = '40'.

elseif it_glt0-drcrk = 'S'.

wa_glt0_s-bschl = '50'.

endif.

write: /2 'D',

4 wa_glt0_s-bschl,

7 it_glt0-racct,

25 wa_glt0_s-wrbtr.

if it_glt0-drcrk = 'H'.

wa_glt0_s-bschl = '50'.

elseif it_glt0-drcrk = 'S'.

wa_glt0_s-bschl = '40'.

endif.

write: /2 'D',

4 wa_glt0_s-bschl,

7 '899999',

25 wa_glt0_s-wrbtr.

endif.

skip 1.

endloop.

endform. " output_data_glt0

----


  • Top of Page *

----


top-of-page.

  • Color Scheme

  • FORMAT COLOR COL_HEADING .

format intensified off .

write: /80 'OPEN ITEMS List Report- ' color 6,

130 sy-cprog color 5,

150 'Date: ' color 6,

158 sy-datum color 5.

write: /10 'Company code: ' color 6,

40 s_bukrs-low color 5,

150 'Time: ' color 6,

158 sy-uzeit color 5.

write: /150 'User: ' color 6,

158 sy-uname color 5.

if p_arbut = 'X'.

write: /80 'CUSTOMER ITEMS' color 6.

elseif p_apbut = 'X'.

write: /80 'VENDOR ITEMS' color 6.

elseif p_glbut = 'X'.

write: /80 'GL BALANCE ITEMS' color 6.

endif.

format color col_heading .

uline.

skip .

&----


*& Form download

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form download .

call function 'DOWNLOAD'

exporting

  • FILENAME = 'C:\kavita_madam.txt'

filetype = 'ASC'

tables

data_tab = i_out

EXCEPTIONS

INVALID_FILESIZE = 1

INVALID_TABLE_WIDTH = 2

INVALID_TYPE = 3

NO_BATCH = 4

UNKNOWN_ERROR = 5

GUI_REFUSE_FILETRANSFER = 6

OTHERS = 7

.

if sy-subrc <> 0.

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

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

endif.

endform. " download

&----


*& Form get_dat

&----


  • text

----


  • -->P_D2 text

----


form get_dat using p_d2 changing l_d1.

******************DATE CONVERSION TO MM/DD/YYYY**************

  • CLEAR: l_D1, l_D2, l_YR, l_MO, l_DAY.

l_D1 = p_d2.

l_YR = l_D1(4).

SHIFT l_D1 LEFT BY 4 PLACES.

l_MO = l_D1(2).

SHIFT l_D1 LEFT BY 2 PLACES.

l_DAY = l_D1(2).

CONCATENATE l_DAY l_MO l_YR INTO l_D2.

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

endform. " get_dat

Regards,

Prashant