05-05-2006 7:06 AM
hello
plz let me know the procedure of uploading a data from excel sheet into SAP system using BDC.
plz mention the function modules invloved.
thanks
aafaq
05-05-2006 7:09 AM
Hi,
FM ALSM_EXCEL_TO_INTERNAL_TABLE can be used to upload data from Excel file to Internal table.
Best regards,
Prashant
05-05-2006 7:09 AM
Hi aafaqhusain,
1. GUI_UPLOAD
2. this is the FM
3. but it won't directly upload from excel file.
4. The excel file data has to be first
save as .TXT file
(TAB Delimited file)
regards,
amit m.
05-05-2006 7:12 AM
*&---------------------------------------------------------------------*
*& Report ZFI_EXCEL_UPLOAD *
*& *
*&---------------------------------------------------------------------*
*& *
*& *
*&---------------------------------------------------------------------*
report zfi_ar_oi_upload .
tables: scustom.
parameters: filename like rlgrap-filename memory id m01,
begcol type i default 1 no-display,
begrow type i default 2 no-display,
endcol type i default 100 no-display,
endrow type i default 32000 no-display.
* Tick don't append header
parameters: kzheader as checkbox.
data: begin of intern occurs 0.
include structure alsmex_tabline.
data: end of intern.
data: begin of intern1 occurs 0.
include structure alsmex_tabline.
data: end of intern1.
data: begin of t_col occurs 0,
col like alsmex_tabline-col,
size type i.
data: end of t_col.
data: zwlen type i,
zwlines type i,
v_file type filetable,
v_fileline type file_table,
v_rc type i.
****************************************************************
* DECLARATION OF BDC_DATA *
* *
****************************************************************
data : bdc_data like bdcdata occurs 0 with header line.
data: msgtab like bdcmsgcoll occurs 0 with header line.
data: begin of fieldnames occurs 3,
title(60),
table(6),
field(10),
kz(1),
end of fieldnames.
* No of columns
data: begin of data_tab occurs 0,
value_0001(50),
value_0002(50),
value_0003(50),
value_0004(50),
value_0005(50),
value_0006(50),
value_0007(50),
value_0008(50),
value_0009(50),
value_0010(50),
value_0011(50),
value_0012(50),
value_0013(50),
value_0014(50),
value_0015(50),
value_0016(50),
value_0017(50),
value_0018(50),
value_0019(50),
value_0020(50),
value_0021(50),
value_0022(50),
value_0023(50),
value_0024(50),
value_0025(50),
value_0026(50),
value_0027(50),
value_0028(50),
value_0029(50),
value_0030(50),
value_0031(50),
value_0032(50),
value_0033(50),
value_0034(50),
value_0035(50),
value_0036(50),
value_0037(50),
value_0038(50),
value_0039(50),
value_0040(50),
value_0041(50),
value_0042(50),
value_0043(50),
value_0044(50),
value_0045(50),
value_0046(50),
value_0047(50),
value_0048(50),
value_0049(50),
value_0050(50),
value_0051(50),
value_0052(50),
value_0053(50),
value_0054(50),
value_0055(50),
value_0056(50),
value_0057(50),
value_0058(50),
value_0059(50),
value_0060(50),
value_0061(50),
value_0062(50).
data: end of data_tab.
data: begin of it_lifnr occurs 0,
lifnr type lfa1-lifnr,
end of it_lifnr.
data : bldate(10).
data : budate(10).
data : zfbdte(10),
v_ddate(10).
data: year(4),
month(2),
date(2),
v_lifnr like lfa1-lifnr.
* value_0062(50),
* value_0063(50),
* value_0064(50),
* value_0065(50),
* value_0066(50),
* value_0067(50),
* value_0068(50),
* value_0069(50),
* value_0070(50),
* value_0071(50),
* value_0072(50),
* value_0073(50),
* value_0074(50),
* value_0075(50),
* value_0076(50),
* value_0077(50),
* value_0078(50),
* value_0079(50),
* value_0080(50),
* value_0081(50),
* value_0082(50),
* value_0083(50),
* value_0084(50),
* value_0085(50),
* value_0086(50),
* value_0087(50),
* value_0088(50),
* value_0089(50),
* value_0090(50),
* value_0091(50),
* value_0092(50),
* value_0093(50),
* value_0094(50),
* value_0095(50),
* value_0096(50),
* value_0097(50),
* value_0098(50),
* value_0099(50),
* value_0100(50).
data: tind(4) type n.
data: zwfeld(19).
data : msg1(60).
types : begin of ttab,
sys_id(8),
sys_rec_id(16),
bldat type d, " type bkpf-bldat,
blart(2), " type bkpf-blart,
bukrs(4), " type bkpf-bukrs,
budat type d,
monat(2),
waers(5), " type bkpf-waers,
kursf(9), " type bkpf-kursf,
belnr(10), "doc no.
wwert type d, "translation date
xblnr(16), " type bkpf-xblnr,
inter_no(10) , "inter comp. no.
bktxt type bkpf-bktxt,
pargb(4) , "trading partner BA
newbs type rf05a-newbs,
newko type rf05a-newko,
newum type rf05a-newum,
bewar(30) , "transaction type
wrbtr(13), " type bseg-wrbtr,
WMWST(13),
ctax(1),
mwskz(2),
gsber type bseg-gsber , "
zterm type bseg-zterm,
zbd1t(3),
zbd1p(5),
zbd2t(3),
zbd2p(5),
abper(6), "settlemt period
zfbdt type d, " type bseg-zfbdt,
sknto(13) , "dis amount
skfbt(13) , "DISCOUNT BASE
kidno(30), " invoice ref
zlspr,
zlsch,
uzawe(2),
zuonr type bseg-zuonr,
sgtxt type bseg-sgtxt,
newbs_01 type rf05a-newbs,
newko_01 type rf05a-newko,
newum_01 type rf05a-newum,
bewar_01(30) , "transaction type
bukrs_01(4), " type bkpf-bukrs,
bvtyp(4),
rstgr(3),
hbkid(5),
anfbn(10),
anfbu(4),
anfbj(4),
hzuon(18),
wrbtr_01(13), " type bseg-wrbtr,
prctr type cobl-prctr,
pprct(10), " type bseg-pprct
* pargb_01(4) , "trading partner BA
zuonr_01 type bseg-zuonr,
sgtxt_01 type bseg-sgtxt,
newbs_02 type rf05a-newbs,
newko_02 type rf05a-newko,
newum_02 type rf05a-newum,
bewar_02(30) , "transaction type
bukrs_02(4), " type bkpf-bukrs,
duedate type d, " Due date
end of ttab.
data itab type ttab occurs 0 with header line.
field-symbols: <fs1>.
include zbdcrecx1.
at selection-screen on value-request for filename.
perform get_pc_file using 1 changing filename.
* call function 'KD_GET_FILENAME_ON_F4'
* exporting
* mask = '*.xls'
* static = 'X'
* changing
* file_name = filename.
start-of-selection.
call function 'ALSM_EXCEL_TO_INTERNAL_TABLE'
exporting
filename = filename
i_begin_col = begcol
i_begin_row = begrow
i_end_col = endcol
i_end_row = endrow
tables
intern = intern
exceptions
inconsistent_parameters = 1
upload_ole = 2
others = 3.
if sy-subrc <> 0.
write:/ 'Upload Error ', sy-subrc.
endif.
end-of-selection.
loop at intern.
intern1 = intern.
clear intern1-row.
append intern1.
endloop.
sort intern1 by col.
loop at intern1.
at new col.
t_col-col = intern1-col.
append t_col.
endat.
zwlen = strlen( intern1-value ).
read table t_col with key col = intern1-col.
if sy-subrc eq 0.
if zwlen > t_col-size.
t_col-size = zwlen.
* Internal Table, Current Row Index
modify t_col index sy-tabix.
endif.
endif.
endloop.
describe table t_col lines zwlines.
sort intern by row col.
if kzheader = 'X'.
loop at intern.
fieldnames-title = intern-value.
append fieldnames.
at end of row.
exit.
endat.
endloop.
else.
do zwlines times.
write sy-index to fieldnames-title.
append fieldnames.
enddo.
endif.
sort intern by row col.
loop at intern.
if kzheader = 'X'
and intern-row = 1.
continue.
endif.
tind = intern-col.
concatenate 'DATA_TAB-VALUE_' tind into zwfeld.
assign (zwfeld) to <fs1>.
<fs1> = intern-value.
at end of row.
append data_tab.
clear data_tab.
endat.
endloop.
loop at data_tab.
ITAB-SYS_ID = DATA_TAB-VALUE_0001.
ITAB-SYS_REC_ID = DATA_TAB-VALUE_0002.
itab-bldat = data_tab-value_0003.
itab-blart = data_tab-value_0004.
itab-bukrs = data_tab-value_0005.
itab-budat = data_tab-value_0006.
itab-monat = data_tab-value_0007.
itab-waers = data_tab-value_0008.
itab-kursf = data_tab-value_0009.
itab-belnr = data_tab-value_0010.
itab-wwert = data_tab-value_0011.
itab-xblnr = data_tab-value_0012.
itab-inter_no = data_tab-value_0013.
itab-bktxt = data_tab-value_0014.
itab-pargb = data_tab-value_0015.
itab-newbs = data_tab-value_0016.
itab-newko = data_tab-value_0017.
itab-newum = data_tab-value_0018.
itab-bewar = data_tab-value_0019.
itab-wrbtr = data_tab-value_0020.
itab-WMWST = data_tab-value_0021.
itab-ctax = data_tab-value_0022.
itab-mwskz = data_tab-value_0023.
itab-gsber = data_tab-value_0024.
itab-zterm = data_tab-value_0025.
itab-zbd1t = data_tab-value_0026.
itab-zbd1p = data_tab-value_0027.
itab-zbd2t = data_tab-value_0028.
itab-zbd2p = data_tab-value_0029.
itab-abper = data_tab-value_0030.
itab-zfbdt = data_tab-value_0031.
itab-sknto = data_tab-value_0032.
itab-skfbt = data_tab-value_0033.
itab-kidno = data_tab-value_0034.
itab-zlspr = data_tab-value_0035.
itab-zlsch = data_tab-value_0036.
itab-uzawe = data_tab-value_0037.
itab-zuonr = data_tab-value_0038.
itab-sgtxt = data_tab-value_0039.
itab-newbs_01 = data_tab-value_0040.
itab-newko_01 = data_tab-value_0041.
itab-newum_01 = data_tab-value_0042.
itab-bewar_01 = data_tab-value_0043.
itab-bukrs_01 = data_tab-value_0044.
itab-bvtyp = data_tab-value_0045.
itab-rstgr = data_tab-value_0046.
itab-hbkid = data_tab-value_0047.
itab-anfbn = data_tab-value_0048.
itab-anfbu = data_tab-value_0049.
itab-anfbj = data_tab-value_0050.
itab-hzuon = data_tab-value_0051.
itab-wrbtr_01 = data_tab-value_0052.
itab-prctr = data_tab-value_0053.
* itab-pargb_01 = data_tab-value_0054.
itab-pprct = data_tab-value_0054.
itab-zuonr_01 = data_tab-value_0055.
itab-sgtxt_01 = data_tab-value_0056.
itab-newbs_02 = data_tab-value_0057.
itab-newko_02 = data_tab-value_0058.
itab-newum_02 = data_tab-value_0059.
itab-bewar_02 = data_tab-value_0060.
itab-bukrs_02 = data_tab-value_0061.
itab-duedate = data_tab-value_0062.
append itab.
clear itab.
endloop.
* perform genarate.
* Checking if Vendor is Service vendor or not i.e. if With Holding Tax
* is activated or not
select lifnr
from lfbw
into table it_lifnr
for all entries in itab
where bukrs = itab-bukrs.
if sy-subrc = 0.
sort it_lifnr by lifnr.
endif.
perform open_group.
loop at itab.
clear bldate.
clear budate.
clear: zfbdte,
v_ddate.
if not it_lifnr[] is initial.
clear: it_lifnr.
read table it_lifnr with key lifnr = itab-newko
binary search
transporting lifnr.
if sy-subrc = 0.
v_lifnr = it_lifnr-lifnr.
endif.
endif.
write itab-bldat to bldate.
* year = itab-bldat+0(4).
* month = itab-bldat+4(2).
* date = itab-bldat+6(2).
* concatenate month date year into bldate separated by '/'.
write itab-budat to budate.
* year = itab-budat+0(4).
* month = itab-budat+4(2).
* date = itab-budat+6(2).
* concatenate month date year into budate separated by '/'.
write itab-zfbdt to zfbdte.
* year = itab-zfbdt+0(4).
* month = itab-zfbdt+4(2).
* date = itab-zfbdt+6(2).
* concatenate month date year into zfbdte separated by '/'.
if not itab-newum is initial.
* Formatting Due Date
write itab-duedate to v_ddate.
* year = itab-duedate+0(4).
* month = itab-duedate+4(2).
* date = itab-duedate+6(2).
* concatenate month date year into v_ddate separated by '/'.
endif.
refresh bdc_data.
clear bdc_data.
************************************************************************
perform bdc_dynpro using 'SAPMF05A' '0100'.
perform bdc_field using 'BDC_CURSOR'
'RF05A-NEWKO'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'BKPF-BLDAT'
bldate.
perform bdc_field using 'BKPF-BLART'
itab-blart.
perform bdc_field using 'BKPF-BUKRS'
itab-bukrs.
perform bdc_field using 'BKPF-BUDAT'
budate.
perform bdc_field using 'BKPF-MONAT'
itab-monat.
perform bdc_field using 'BKPF-WAERS'
itab-waers.
perform bdc_field using 'BKPF-KURSF'
itab-kursf.
perform bdc_field using 'BKPF-XBLNR'
itab-xblnr.
perform bdc_field using 'FS006-DOCID'
'*'.
perform bdc_field using 'RF05A-NEWBS'
itab-newbs.
perform bdc_field using 'RF05A-NEWKO'
itab-newko.
if not itab-newum is initial.
perform bdc_field using 'RF05A-NEWUM'
itab-newum.
endif.
if not itab-newum is initial.
if itab-newum = 'A'.
perform bdc_dynpro using 'SAPMF05A' '0304'.
elseif itab-newum = 'M' or itab-newum = 'Z' or itab-newum = 'L' or itab-newum = 'K' or itab-newum = 'Y'.
perform bdc_dynpro using 'SAPMF05A' '0303'.
elseif itab-newum = 'W'.
perform bdc_dynpro using 'SAPMF05A' '2320'.
endif.
perform bdc_field using 'BDC_CURSOR'
'RF05A-NEWKO'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'BSEG-WRBTR'
itab-wrbtr.
perform bdc_field using 'BSEG-ZUONR'
itab-zuonr.
perform bdc_field using 'BSEG-SGTXT'
itab-sgtxt .
perform bdc_field using 'BSEG-ZFBDT'
v_ddate.
perform bdc_field using 'RF05A-NEWBS'
itab-newbs_01.
perform bdc_field using 'RF05A-NEWKO'
itab-newko_01.
endif.
if itab-newum is initial.
perform bdc_dynpro using 'SAPMF05A' '0302'.
perform bdc_field using 'BDC_CURSOR'
'RF05A-NEWKO'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'BSEG-WRBTR'
itab-wrbtr.
* Changes to add TEXT and ALLOCATION
perform bdc_field using 'BSEG-ZUONR'
itab-zuonr.
perform bdc_field using 'BSEG-SGTXT'
itab-sgtxt .
* End
perform bdc_field using 'BSEG-MWSKZ'
'**'.
perform bdc_field using 'BSEG-ZTERM'
itab-zterm.
perform bdc_field using 'BSEG-ZFBDT'
zfbdte.
perform bdc_field using 'RF05A-NEWBS'
itab-newbs_01.
perform bdc_field using 'RF05A-NEWKO'
itab-newko_01.
endif.
if not v_lifnr is initial.
perform bdc_dynpro using 'SAPLFWTD' '0100'.
perform bdc_field using 'BDC_CURSOR'
'WITH_ITEM-WT_WITHCD(01)'.
perform bdc_field using 'BDC_OKCODE'
'=GO'.
endif.
perform bdc_dynpro using 'SAPMF05A' '0300'.
perform bdc_field using 'BDC_CURSOR'
'BSEG-SGTXT'.
perform bdc_field using 'BDC_OKCODE'
'=BU'.
perform bdc_field using 'BSEG-WRBTR'
itab-wrbtr_01.
* Changes to add ALLOCATION
perform bdc_field using 'BSEG-ZUONR'
itab-zuonr_01.
* End
perform bdc_field using 'BSEG-SGTXT'
itab-sgtxt_01.
* perform bdc_field using 'DKACB-FMORE'
* 'X'.
perform bdc_dynpro using 'SAPLKACB' '0002'.
perform bdc_field using 'BDC_CURSOR'
'COBL-PRCTR'.
perform bdc_field using 'BDC_OKCODE'
'=ENTE'.
perform bdc_field using 'COBL-PRCTR'
itab-prctr.
perform bdc_field using 'COBL-PPRCTR'
itab-pprct.
perform bdc_transaction using 'F-43'.
clear: v_lifnr.
endloop.
perform close_group.
*&---------------------------------------------------------------------*
*& Form get_pc_file
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_1 text
* <--P_FILENAME text
*----------------------------------------------------------------------*
form get_pc_file using p_index
changing filename.
call method cl_gui_frontend_services=>file_open_dialog
exporting
window_title = 'Select the file to be processed...'
changing
file_table = v_file
rc = v_rc.
if sy-subrc = 0.
read table v_file into v_fileline index p_index.
endif.
filename = v_fileline.
endform. " get_pc_file
05-05-2006 7:13 AM
HI
GOOD
AS PER YOUR REQUIREMENT HERE IS SOME FUNCTION MODULE AND THEIR DETAILS
FUNCTION MODULE
-
UPLOAD
WS_ULOAD.
GUI_UPLOAD,
BDC SESSION
-
BDC_START
BDC_OPEN
BDC_CLOSE
=================
GO THROUGH THIS REPORT =>
TABLES: Y001.
7
8 CONSTANTS: C_PATH(14) VALUE '/home/ftpuser/'.
9
10 DATA: BEGIN OF C_TAB,
11 X(1) TYPE X VALUE '09',
12 END OF C_TAB.
13
14 DATA: BUFFER(8000),
15 FIELDNAME_OFFSET TYPE I,
16 * FULLPATH(128),
17 FULLPATH LIKE SXPGCOLIST-PARAMETERS,
18 * CMDFULLPATH(128),
19 CMDFULLPATH LIKE SXPGCOLIST-PARAMETERS,
20 CMD(40),
21 IBTCXPM LIKE BTCXPM OCCURS 0.
22
23 FUNCTION Z_DOWNLOAD.
24 *"----
25 ""Local interface:
26 *" IMPORTING
27 *" VALUE(FILENAME)
28 *" VALUE(LOCATION)
29 *" TABLES
30 *" DATA_TAB
31 *" FIELDNAMES OPTIONAL
32 *"----
33
34 DATA: WS_LINE TYPE I.
35
36 FIELD-SYMBOLS: <F>.
37
38 CHECK NOT FILENAME IS INITIAL.
39
40 CONCATENATE C_PATH FILENAME INTO FULLPATH.
41 OPEN DATASET FULLPATH IN TEXT MODE FOR OUTPUT.
42
43 DESCRIBE TABLE FIELDNAMES LINES WS_LINE.
44 IF WS_LINE NE 0.
45 PERFORM FIELDNAMES_2_BUFFER TABLES FIELDNAMES CHANGING BUFFER.
46 FIELDNAME_OFFSET = STRLEN( BUFFER ).
47 TRANSFER BUFFER TO FULLPATH LENGTH FIELDNAME_OFFSET.
48 ENDIF.
49
50 LOOP AT DATA_TAB.
51 CLEAR BUFFER.
52 CLEAR FIELDNAME_OFFSET.
53 DO.
54 ASSIGN COMPONENT SY-INDEX OF STRUCTURE DATA_TAB TO <F>.
55 IF SY-SUBRC NE 0. EXIT. ENDIF.
56 WRITE <F> TO BUFFER+FIELDNAME_OFFSET.
57 CONDENSE BUFFER.
58 FIELDNAME_OFFSET = STRLEN( BUFFER ).
59 WRITE C_TAB TO BUFFER+FIELDNAME_OFFSET(1).
60 ADD 1 TO FIELDNAME_OFFSET.
61 ENDDO.
62 TRANSFER BUFFER TO FULLPATH LENGTH FIELDNAME_OFFSET.
63 ENDLOOP.
64
65 CLOSE DATASET FULLPATH.
66
67 CALL FUNCTION 'SXPG_COMMAND_EXECUTE'
68 EXPORTING
69 COMMANDNAME = 'ZCHMOD'
70 ADDITIONAL_PARAMETERS = FULLPATH
71 TABLES
72 EXEC_PROTOCOL = IBTCXPM
73 EXCEPTIONS
74 NO_PERMISSION = 1
75 COMMAND_NOT_FOUND = 2
76 PARAMETERS_TOO_LONG = 3
77 SECURITY_RISK = 4
78 WRONG_CHECK_CALL_INTERFACE = 5
79 PROGRAM_START_ERROR = 6
80 PROGRAM_TERMINATION_ERROR = 7
81 X_ERROR = 8
82 PARAMETER_EXPECTED = 9
83 TOO_MANY_PARAMETERS = 10
84 ILLEGAL_COMMAND = 11
85 WRONG_ASYNCHRONOUS_PARAMETERS = 12
86 CANT_ENQ_TBTCO_ENTRY = 13
87 JOBCOUNT_GENERATION_ERROR = 14
88 OTHERS = 15.
89
90 CONCATENATE C_PATH FILENAME '_cmd' INTO CMDFULLPATH.
91 OPEN DATASET CMDFULLPATH IN TEXT MODE FOR OUTPUT.
92 CASE LOCATION. "location A, B, C, D on a network
93 WHEN 'A '.
94
95 TRANSFER 'open xx.xxx.xx.xx' TO CMDFULLPATH.
96 TRANSFER 'user sapftp <pwd>' TO CMDFULLPATH.
97 WHEN 'B '.
98 TRANSFER 'open xx.xxx.xx.xx' TO CMDFULLPATH.
99 TRANSFER 'user sapftp <pwd>' TO CMDFULLPATH.
100 when 'C '.
101 TRANSFER 'open xx.xxx.xx.xx' TO CMDFULLPATH.
102 TRANSFER 'user sapftp <pwd>' TO CMDFULLPATH.
103 when 'D '.
104 TRANSFER 'open xx.xxx.xx.xx' TO CMDFULLPATH.
105 TRANSFER 'user sapftp <pwd>' TO CMDFULLPATH.
106 WHEN OTHERS.
107 ENDCASE.
108
109
110
111
112 *start>
113 CLEAR Y001.
114 SELECT SINGLE Y_PATH INTO Y001-Y_PATH
115 FROM Y001 WHERE BNAME = SY-UNAME
116 AND Y_SITE = LOCATION.
117 TRANSFER Y001-Y_PATH TO CMDFULLPATH.
118 *<end
119 CONCATENATE 'lcd' C_PATH INTO CMD SEPARATED BY SPACE.
120 TRANSFER CMD TO CMDFULLPATH.
121 CLEAR CMD.
122 CONCATENATE 'put' FILENAME INTO CMD SEPARATED BY SPACE.
123 TRANSFER CMD TO CMDFULLPATH.
124 TRANSFER 'bye' TO CMDFULLPATH.
125 CLOSE DATASET CMDFULLPATH.
126
127 CALL FUNCTION 'SXPG_COMMAND_EXECUTE'
128 EXPORTING
129 COMMANDNAME = 'ZCHMOD'
130 ADDITIONAL_PARAMETERS = CMDFULLPATH
131 TABLES
132 EXEC_PROTOCOL = IBTCXPM
133 EXCEPTIONS
134 NO_PERMISSION = 1
135 COMMAND_NOT_FOUND = 2
136 PARAMETERS_TOO_LONG = 3
137 SECURITY_RISK = 4
138 WRONG_CHECK_CALL_INTERFACE = 5
139 PROGRAM_START_ERROR = 6
140 PROGRAM_TERMINATION_ERROR = 7
141 X_ERROR = 8
142 PARAMETER_EXPECTED = 9
143 TOO_MANY_PARAMETERS = 10
144 ILLEGAL_COMMAND = 11
145 WRONG_ASYNCHRONOUS_PARAMETERS = 12
146 CANT_ENQ_TBTCO_ENTRY = 13
147 JOBCOUNT_GENERATION_ERROR = 14
148 OTHERS = 15.
149
150 CALL FUNCTION 'SXPG_COMMAND_EXECUTE'
151 EXPORTING
152 COMMANDNAME = 'ZFTP'
153 ** commandname = 'ZFTP'
154 ADDITIONAL_PARAMETERS = CMDFULLPATH
155 TABLES
156 EXEC_PROTOCOL = IBTCXPM
157 EXCEPTIONS
158 NO_PERMISSION = 1
159 COMMAND_NOT_FOUND = 2
160 PARAMETERS_TOO_LONG = 3
161 SECURITY_RISK = 4
162 WRONG_CHECK_CALL_INTERFACE = 5
163 PROGRAM_START_ERROR = 6
164 PROGRAM_TERMINATION_ERROR = 7
165 X_ERROR = 8
166 PARAMETER_EXPECTED = 9
167 TOO_MANY_PARAMETERS = 10
168 ILLEGAL_COMMAND = 11
169 WRONG_ASYNCHRONOUS_PARAMETERS = 12
170 CANT_ENQ_TBTCO_ENTRY = 13
171 JOBCOUNT_GENERATION_ERROR = 14
172 OTHERS = 15.
173
174 ENDFUNCTION.
175
176 ----
177 * FORM FIELDNAMES_2_BUFFER *
178 ----
179 * ........ *
180 ----
181 * --> FIELDNAMES *
182 * --> BUFFER *
183 ----
184 FORM FIELDNAMES_2_BUFFER TABLES FIELDNAMES CHANGING BUFFER.
185 CLEAR BUFFER.
186 CLEAR FIELDNAME_OFFSET.
187 LOOP AT FIELDNAMES.
188 WRITE FIELDNAMES TO BUFFER+FIELDNAME_OFFSET.
189 CONDENSE BUFFER.
190 FIELDNAME_OFFSET = STRLEN( BUFFER ).
191 WRITE C_TAB TO BUFFER+FIELDNAME_OFFSET(1).
192 ADD 1 TO FIELDNAME_OFFSET.
193 ENDLOOP.
194 FIELDNAME_OFFSET = FIELDNAME_OFFSET - 1.
195 IF FIELDNAME_OFFSET >= 0.
196 WRITE SPACE TO BUFFER+FIELDNAME_OFFSET(1).
197 ENDIF.
198 ENDFORM.
THANKS
MRUTYUN
04-12-2007 1:28 PM