Created
December 6, 2011 09:28
-
-
Save tfoldi/1437535 to your computer and use it in GitHub Desktop.
KONV extract SAP Download
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
REPORT ZAL_ABAP message-id 26 line-size 255 | |
no standard page heading. | |
* Y_XI_G00D_KONV_FASTFULL_2. | |
PARAMETER $PARAM1 TYPE I. | |
PARAMETER DOWNLOAD(1) DEFAULT 'N' lower case. "N-svr,Y-clnt | |
PARAMETER EXECMODE(1) DEFAULT 'B' lower case. "D-dlg,B-btch | |
PARAMETER OUT_DIR(48) DEFAULT "output file dir | |
'/dwacta/out/LD2' lower case. | |
PARAMETER IN_DIR(48) DEFAULT "input file dir | |
'/dwacta/out/LD2' lower case. | |
PARAMETER P_DF_VK(40) DEFAULT "ABAP data flow object key | |
'' lower case. | |
PARAMETER P_DI_GEN(40) DEFAULT "DI version that generated ABAP | |
'' lower case. | |
*** Machine generated ABAP. Do not modify. *** | |
*** © Copyright Business Objects S.A. All rights reserved. *** | |
* | |
* Date Time: | |
* 08/03/11 13:12:42 | |
* SAP used for generated this ABAP: | |
* Release: 620 | |
* Host : 3.117.244.56 | |
* | |
* ABAP Dataflow Name: | |
* R3_ZKONV_FAST_FULL_LOAD | |
* ABAP program name in SAP: | |
* Y_XI_G00D_KONV_FASTFULL_2 | |
* Generated ABAP file name: | |
* /data/abap/Y_XI_G00D_KONV_FASTFULL_2 | |
TABLES KONV. | |
DATA: begin of ITAB2 occurs 0, | |
KNUMV(10) TYPE C, | |
KPOSN(6) TYPE N, | |
STUNR(3) TYPE N, | |
ZAEHK(2) TYPE N, | |
KSCHL(4) TYPE C, | |
KBETR(16) TYPE P DECIMALS 2, | |
KPEIN(16) TYPE P DECIMALS 0, | |
MWSK1(2) TYPE C, | |
KWERT(16) TYPE P DECIMALS 2, | |
KRECH(1) TYPE C, | |
WAERS(5) TYPE C, | |
KMEIN(3) TYPE C, | |
KAPPL(2) TYPE C, | |
KINAK(1) TYPE C, | |
CDHDR_UDATE(14) TYPE C, | |
SAP_ROW_COUNT TYPE I, | |
KAWRT(16) TYPE P DECIMALS 2, | |
KDATU TYPE D, | |
KGRPE(1) TYPE C, | |
KSTEU(1) TYPE C. | |
DATA: end of ITAB2. | |
data: append_flag(1) value ' ', | |
cntbuf type i, | |
delimleng type i. | |
CONSTANTS C_DF_VK(40) VALUE '22655'. | |
CONSTANTS C_DI_GEN(40) VALUE '12.2.0.0'. | |
DATA WARN_MSG(50). | |
start-of-selection. | |
PERFORM FORM2. | |
PERFORM FORM3. | |
FREE ITAB2. | |
end-of-selection. | |
CLEAR WARN_MSG. | |
IF NOT P_DF_VK IS INITIAL. | |
IF P_DF_VK <> C_DF_VK. | |
CONCATENATE '$$Warning$' | |
C_DF_VK | |
'$' INTO WARN_MSG. | |
ENDIF. | |
ENDIF. | |
IF NOT P_DI_GEN IS INITIAL. | |
IF P_DI_GEN <> C_DI_GEN. | |
IF WARN_MSG IS INITIAL. | |
CONCATENATE '$$Warning$$' | |
C_DI_GEN | |
INTO WARN_MSG. | |
ELSE. | |
CONCATENATE WARN_MSG | |
C_DI_GEN | |
INTO WARN_MSG. | |
ENDIF. | |
ENDIF. | |
ENDIF. | |
IF NOT WARN_MSG IS INITIAL. | |
IF EXECMODE = 'D'. | |
WRITE WARN_MSG. | |
NEW-LINE. | |
ELSE. | |
MESSAGE S000 with WARN_MSG. | |
ENDIF. | |
ENDIF. | |
write '* Program Complete *'. | |
write '© Copyright Business Objects S.A. All rights reserved.'. | |
FORM FORM2. | |
DATA ALTMP3113(10) TYPE C. | |
DATA ALTMP3114(6) TYPE N. | |
DATA ALTMP3115(3) TYPE N. | |
DATA ALTMP3116(2) TYPE N. | |
DATA ALTMP3117(4) TYPE C. | |
DATA ALTMP3118(16) TYPE P DECIMALS 2. | |
DATA ALTMP3119(16) TYPE P DECIMALS 0. | |
DATA ALTMP3120(2) TYPE C. | |
DATA ALTMP3121(16) TYPE P DECIMALS 2. | |
DATA ALTMP3122(1) TYPE C. | |
DATA ALTMP3123(5) TYPE C. | |
DATA ALTMP3124(3) TYPE C. | |
DATA ALTMP3125(2) TYPE C. | |
DATA ALTMP3126(1) TYPE C. | |
DATA ALTMP3127 TYPE D. | |
DATA ALTMP3128 TYPE T. | |
DATA ALTMP3129(512) TYPE C. | |
DATA ALTMP3130 TYPE I. | |
DATA ALTMP3131(16) TYPE P DECIMALS 2. | |
DATA ALTMP3132 TYPE D. | |
DATA ALTMP3133(1) TYPE C. | |
DATA ALTMP3134(1) TYPE C. | |
ALTMP3127 = sy-datum. | |
ALTMP3128 = sy-uzeit. | |
concatenate ALTMP3127 ALTMP3128 into ALTMP3129. | |
ALTMP3130 = $PARAM1. | |
SELECT | |
KNUMV | |
KPOSN | |
STUNR | |
ZAEHK | |
KSCHL | |
KBETR | |
KPEIN | |
MWSK1 | |
KWERT | |
KRECH | |
WAERS | |
KMEIN | |
KAPPL | |
KINAK | |
KAWRT | |
KDATU | |
KGRPE | |
KSTEU | |
INTO CORRESPONDING FIELDS OF KONV | |
FROM KONV | |
WHERE KSCHL IN ('ZACA', | |
'ZACP', | |
'ZASA', | |
'ZASP', | |
'ZBCA', | |
'ZBCP', | |
'ZBSA', | |
'ZBSP', | |
'ZCCA', | |
'ZCCP', | |
'ZCSA', | |
'ZCSP', | |
'ZGCA', | |
'ZGCP', | |
'ZGSA', | |
'ZGSP', | |
'ZJCA', | |
'ZJCP', | |
'ZJSA', | |
'ZJSP', | |
'ZNSA', | |
'ZNSP', | |
'ZPCA', | |
'ZPCP', | |
'ZPSA', | |
'ZPSP', | |
'ZFRE', | |
'HD00', | |
'ZSCL', | |
'ZSIN', | |
'ZSPL', | |
'ZETD', | |
'ZEKL', | |
'ZEDF', | |
'ZELF', | |
'ZNCP', | |
'ZNSA', | |
'ZNSP', | |
'SKTO', | |
'VPRS', | |
'MWST', | |
'ZMWL', | |
'ZMWF', | |
'ZML3', | |
'ZMLT', | |
'ZMOV'). | |
ALTMP3113 = KONV-KNUMV. | |
ALTMP3114 = KONV-KPOSN. | |
ALTMP3115 = KONV-STUNR. | |
ALTMP3116 = KONV-ZAEHK. | |
ALTMP3117 = KONV-KSCHL. | |
ALTMP3118 = KONV-KBETR. | |
ALTMP3119 = KONV-KPEIN. | |
ALTMP3120 = KONV-MWSK1. | |
ALTMP3121 = KONV-KWERT. | |
ALTMP3122 = KONV-KRECH. | |
ALTMP3123 = KONV-WAERS. | |
ALTMP3124 = KONV-KMEIN. | |
ALTMP3125 = KONV-KAPPL. | |
ALTMP3126 = KONV-KINAK. | |
ALTMP3131 = KONV-KAWRT. | |
ALTMP3132 = KONV-KDATU. | |
ALTMP3133 = KONV-KGRPE. | |
ALTMP3134 = KONV-KSTEU. | |
move ALTMP3113 to ITAB2-KNUMV. | |
move ALTMP3114 to ITAB2-KPOSN. | |
move ALTMP3115 to ITAB2-STUNR. | |
move ALTMP3116 to ITAB2-ZAEHK. | |
move ALTMP3117 to ITAB2-KSCHL. | |
move ALTMP3118 to ITAB2-KBETR. | |
move ALTMP3119 to ITAB2-KPEIN. | |
move ALTMP3120 to ITAB2-MWSK1. | |
move ALTMP3121 to ITAB2-KWERT. | |
move ALTMP3122 to ITAB2-KRECH. | |
move ALTMP3123 to ITAB2-WAERS. | |
move ALTMP3124 to ITAB2-KMEIN. | |
move ALTMP3125 to ITAB2-KAPPL. | |
move ALTMP3126 to ITAB2-KINAK. | |
move ALTMP3129 to ITAB2-CDHDR_UDATE. | |
move ALTMP3130 to ITAB2-SAP_ROW_COUNT. | |
move ALTMP3131 to ITAB2-KAWRT. | |
move ALTMP3132 to ITAB2-KDATU. | |
move ALTMP3133 to ITAB2-KGRPE. | |
move ALTMP3134 to ITAB2-KSTEU. | |
append ITAB2. | |
cntbuf = cntbuf + 1. | |
if download = 'N'. | |
if cntbuf > 5000. | |
perform FORM3. | |
clear cntbuf. | |
refresh ITAB2. | |
append_flag = 'A'. | |
endif. | |
endif. | |
ENDSELECT. | |
ENDFORM. | |
FORM FORM3. | |
data: outfile(128), ldfile(50). | |
ldfile = 'ZKONVF'. | |
concatenate out_dir ldfile into outfile | |
separated by '/'. | |
data dlmtlen type i value '1'. | |
data xdlmtlen type i value '1'. | |
data: | |
ht(1) type c, | |
xht(1) type x, | |
conv type ref to cl_abap_conv_in_ce. | |
xht = '7F'. | |
conv = cl_abap_conv_in_ce=>create( | |
encoding = '1100' | |
input = xht | |
). | |
call method conv->read( | |
exporting n = xdlmtlen | |
importing data = ht | |
len = dlmtlen | |
). | |
data return_code type i. | |
perform write_delimited_file | |
tables ITAB2 | |
using outfile | |
append_flag | |
ht | |
dlmtlen | |
download | |
changing return_code. | |
case return_code. | |
when 1. | |
IF EXECMODE = 'D'. | |
WRITE: /5 'No line selected'. | |
ELSE. | |
MESSAGE E098. | |
ENDIF. | |
when 2. | |
IF EXECMODE = 'D'. | |
WRITE: /5 'Open File Error -- ', 25 OUTFILE. | |
ELSE. | |
MESSAGE E107 WITH OUTFILE. | |
ENDIF. | |
when 3. | |
IF EXECMODE = 'D'. | |
WRITE: /5 'Data exceed length limit (8192) '. | |
ELSE. | |
MESSAGE E000 WITH | |
'Data exceed length limit (8192) '. | |
ENDIF. | |
when 4. | |
IF EXECMODE = 'D'. | |
WRITE: /5 'Call function WS_DOWNLOAD error'. | |
ELSE. | |
MESSAGE E000 WITH | |
'Call function WS_DOWNLOAD error'. | |
ENDIF. | |
endcase. | |
ENDFORM. | |
FORM SUBSTRING USING SRC BEG LEN CHANGING RET. | |
DATA: VA1 TYPE I. | |
DATA: VA2 TYPE I. | |
DATA: VA3 TYPE I. | |
VA3 = STRLEN( SRC ). | |
IF BEG = 0. VA1 = 0. | |
ELSE. | |
IF BEG < 0. | |
VA1 = VA3 + BEG. | |
IF VA1 < 0. VA1 = 0. | |
ENDIF. | |
ELSE. VA1 = BEG - 1. | |
ENDIF. | |
ENDIF. | |
IF LEN < 0. VA2 = 0. | |
ELSE. VA2 = VA3 - VA1. | |
ENDIF. | |
IF VA2 > LEN. VA2 = LEN. | |
ENDIF. | |
IF VA2 < 1. MOVE '' TO RET. | |
ELSE. MOVE SRC+VA1(VA2) TO RET. | |
ENDIF. | |
ENDFORM. | |
form write_delimited_file | |
tables datatab | |
using file | |
append | |
delimit | |
dlength | |
dwnload | |
changing rc. | |
data: type1, | |
appd(1), | |
temp(32), | |
time1(8), | |
date1(10), | |
output(8192), | |
rcount type i, | |
offset type i, | |
tablen type i, | |
maxlen type i value '8192'. | |
data: begin of clientab occurs 0, | |
output(8192), | |
end of clientab. | |
field-symbols: <f>. | |
field-symbols <delim1>. | |
data delim2(16). | |
data l_filename type string. | |
appd = append. | |
if appd is not initial. | |
appd = 'X'. | |
endif. | |
move file to l_filename. | |
describe table datatab lines tablen. | |
if dwnload = 'Y'. | |
clear clientab. refresh clientab. | |
rcount = 0. | |
else. | |
if appd = space. | |
open dataset file for output in text mode ENCODING DEFAULT. | |
else. | |
open dataset file for appending in text mode ENCODING DEFAULT. | |
endif. | |
if sy-subrc <> 0. | |
rc = 2. exit. | |
endif. | |
endif. | |
loop at datatab. | |
clear: tablen, offset, output. | |
do. | |
assign component sy-index of | |
structure datatab to <f>. | |
if sy-subrc <> 0. exit. endif. | |
if sy-index > 1. | |
assign delimit(dlength) TO <delim1> CASTING TYPE C. | |
delim2 = <delim1>. | |
write delim2(dlength) to output+offset(dlength). | |
add dlength to offset. | |
endif. | |
describe field <f> type type1. | |
if type1 = 'I' or type1 = 'N'. | |
type1 = 'P'. | |
endif. | |
case type1. | |
when 'D'. | |
if <f> = '00000000'. | |
<f> = ' '. | |
else. | |
move <f> to time1. | |
assign time1 to <f>. | |
endif. | |
when 'F'. | |
if <f> = '0.0'. | |
temp = '0.0'. | |
else. | |
write <f> to temp exponent 0. | |
endif. | |
condense temp no-gaps. | |
translate temp using ',.'. | |
assign temp to <f>. | |
when 'P'. | |
if <f> < 0. | |
write '-' to output+offset(1). | |
add 1 to offset. | |
<f> = <f> * ( -1 ). | |
endif. | |
move <f> to temp. | |
condense temp no-gaps. | |
translate temp using ',.'. | |
assign temp to <f>. | |
endcase. | |
sy-fdpos = strlen( <f> ). | |
tablen = offset + sy-fdpos. | |
if tablen > maxlen. | |
rc = 3. exit. | |
endif. | |
write <f> to output+offset(sy-fdpos). | |
add sy-fdpos to offset. | |
enddo. | |
if dwnload = 'Y'. | |
clientab-output = output. | |
append clientab. | |
rcount = rcount + 1. | |
if rcount >= 50. | |
SY-BATCH = SPACE. | |
CALL FUNCTION 'GUI_DOWNLOAD' | |
EXPORTING | |
FILENAME = l_filename | |
FILETYPE = 'ASC' | |
APPEND = appd | |
WRITE_FIELD_SEPARATOR = 'X' | |
* IMPORTING | |
* FILELENGTH = | |
TABLES | |
DATA_TAB = clientab | |
EXCEPTIONS | |
OTHERS = 1. | |
if sy-subrc <> 0. | |
rc = 4. | |
endif. | |
clear clientab. refresh clientab. | |
rcount = 0. appd = 'A'. | |
endif. | |
else. | |
transfer output to file. | |
endif. | |
endloop. | |
if dwnload = 'Y'. | |
SY-BATCH = SPACE. | |
CALL FUNCTION 'GUI_DOWNLOAD' | |
EXPORTING | |
FILENAME = l_filename | |
FILETYPE = 'ASC' | |
APPEND = appd | |
WRITE_FIELD_SEPARATOR = 'X' | |
* IMPORTING | |
* FILELENGTH = | |
TABLES | |
DATA_TAB = clientab | |
EXCEPTIONS | |
OTHERS = 1. | |
if sy-subrc <> 0. | |
rc = 4. | |
endif. | |
else. | |
close dataset file. | |
endif. | |
endform. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment