‎2006 Jun 30 9:58 AM
hi,
iam developing a program to download data from SAP table to flat file using BAPI. when iam executing it is giving file type different error.
pls help. this is code
&----
*& Report Z_RTP_I_INTERNALORDER
*&
&----
*&
*&
&----
REPORT Z_RTP_I_INTERNALORDER NO STANDARD PAGE HEADING.
************************************************************************
PROGRAM - ID :
MODULE : MM
DATE :
PROGRAMMER :
PROGRAM DESCRIPTION :
************************************************************************
------------------ TABLE WORK AREA -----------------------------------
TABLES: COAS. " ORDER MASTER FOR CONTROLLING
*----
SELECTION SCREEN
*----
SELECTION-SCREEN BEGIN OF BLOCK B1.
PARAMETERS: P_COMP TYPE COAS-BUKRS. " COMPANY CODE
*PARAMETERS: P_FILE(30) TYPE C.
PARAMETERS: P_FILE LIKE RLGRAP-FILENAME OBLIGATORY.
SELECTION-SCREEN END OF BLOCK B1.
*
*DATA: P_FILE TYPE STRING.
*P_FILE = 'C:\CHANDRA.TXT'.
***********************************************************************
INTERNAL TABLE DECLARATION
***********************************************************************
DATA BEGIN OF IT_COAS OCCURS 500.
INCLUDE STRUCTURE ZCOAS. " STRUCTURE FOR COAS
DATA END OF IT_COAS.
*----
BAPI FUNCTION MODULE -
*ZBAPI_INTERNAL_ORDER_LIST "BAPI FOR TO GET THE LIST OF INTERNAL ORDERS
*----
AT SELECTION-SCREEN ON VALUE-REQUEST for P_FILE.
CALL FUNCTION 'F4_FILENAME'
EXPORTING
PROGRAM_NAME = SYST-CPROG
DYNPRO_NUMBER = SYST-DYNNR
FIELD_NAME = 'P_FILE '
IMPORTING
FILE_NAME = P_FILE.
START-OF-SELECTION.
CALL FUNCTION 'ZBAPI_INTERNAL_ORDER_GETLIST'
EXPORTING
BUSINESSUNIT = p_comp
IMPORTING
AUFNR =
KTEXT =
TABLES
RETURN =
LIST = IT_COAS.
*--
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
BIN_FILESIZE =
FILENAME = P_FILE
FILETYPE = 'ASC'
APPEND = ' '
WRITE_FIELD_SEPARATOR = ' '
HEADER = '00'
TRUNC_TRAILING_BLANKS = ' '
WRITE_LF = 'X'
COL_SELECT = ' '
COL_SELECT_MASK = ' '
DAT_MODE = ' '
CONFIRM_OVERWRITE = ' '
NO_AUTH_CHECK = ' '
CODEPAGE = ' '
IGNORE_CERR = ABAP_TRUE
REPLACEMENT = '#'
WRITE_BOM = ' '
TRUNC_TRAILING_BLANKS_EOL = 'X'
WK1_N_FORMAT = ' '
WK1_N_SIZE = ' '
WK1_T_FORMAT = ' '
WK1_T_SIZE = ' '
IMPORTING
FILELENGTH =
TABLES
DATA_TAB = IT_COAS
FIELDNAMES =
EXCEPTIONS
FILE_WRITE_ERROR = 1
NO_BATCH = 2
GUI_REFUSE_FILETRANSFER = 3
INVALID_TYPE = 4
NO_AUTHORITY = 5
UNKNOWN_ERROR = 6
HEADER_NOT_ALLOWED = 7
SEPARATOR_NOT_ALLOWED = 8
FILESIZE_NOT_ALLOWED = 9
HEADER_TOO_LONG = 10
DP_ERROR_CREATE = 11
DP_ERROR_SEND = 12
DP_ERROR_WRITE = 13
UNKNOWN_DP_ERROR = 14
ACCESS_DENIED = 15
DP_OUT_OF_MEMORY = 16
DISK_FULL = 17
DP_TIMEOUT = 18
FILE_NOT_FOUND = 19
DATAPROVIDER_EXCEPTION = 20
CONTROL_FLUSH_ERROR = 21
OTHERS = 22.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
chandu
‎2006 Jun 30 10:01 AM
Hi chandra,
1. very minor mistake
2. while calling FM F4_FILENAME,
declare another parameter,
data : myfile like IBIPPARMS-PATH.
3. pass this in the FM.
CALL FUNCTION 'F4_FILENAME'
EXPORTING
PROGRAM_NAME = SYST-CPROG
DYNPRO_NUMBER = SYST-DYNNR
FIELD_NAME = 'P_FILE '
IMPORTING
FILE_NAME = MYFILE.
4. then in start-of-selection,
just do this,
P_FILE = MYFILE.
regards,
amit m.
‎2006 Jun 30 10:03 AM
Hai Chandra Babu
<b>PARAMETERS: P_FILE LIKE RLGRAP-FILENAME OBLIGATORY.</b>
P_File should be String Type for GUI_DOWNLOAD F.M
Try to change and Execute it.
Thanks & regards
Sreenivasulu P
‎2006 Jun 30 10:06 AM
Before FM GUI_DOWNLOAD.
DATA: l_ofile1 TYPE string.
CLEAR: l_ofile1.
l_ofile1 = p_file.
pass l_ofile1 as filename to your FM GUI_DOWNLOAD
Message was edited by: mukesh kumar
‎2006 Jun 30 10:11 AM
Hi,
The problem is that GUI_DOWNLOAD takes file name as string.
So you can do it like that
DATA : v_presentation_path TYPE string.
PARAMETERS: pre_path TYPE rlgrap-filename .
CALL FUNCTION 'F4_FILENAME'
EXPORTING
program_name = syst-cprog
DYNPRO_NUMBER = SYST-DYNNR
FIELD_NAME = ' '
IMPORTING
file_name = v_tmp_file.
IF v_tmp_file IS NOT INITIAL.
pre_path = v_tmp_file.
MOVE pre_path TO v_presentation_path.
ELSE.
MESSAGE e071(zs) .
ENDIF.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
filename = v_presentation_path
filetype = 'ASC'
TABLES
data_tab = i_presentation_data
EXCEPTIONS
file_write_error = 1
no_batch = 2
gui_refuse_filetransfer = 3
invalid_type = 4
no_authority = 5
unknown_error = 6
header_not_allowed = 7
separator_not_allowed = 8
filesize_not_allowed = 9
header_too_long = 10
dp_error_create = 11
dp_error_send = 12
dp_error_write = 13
unknown_dp_error = 14
access_denied = 15
dp_out_of_memory = 16
disk_full = 17
dp_timeout = 18
file_not_found = 19
dataprovider_exception = 20
control_flush_error = 21
OTHERS = 22.
IF sy-subrc NE 0.
MESSAGE i080(zs).
ENDIF.
This will surely work
Reward points if find helpful.
Sumit
‎2006 Jun 30 10:32 AM
hi friends,
now it is working perfectly. thanks to every one.
chandu
‎2006 Jun 30 10:35 AM
Hi,
Do this
PARAMETERS : p_sumfl TYPE char255.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_sumfl.
*-File Path For Summary Report
PERFORM f2000_filepath_f4 USING lc_s
CHANGING p_sumfl.
*-------Form
FORM f2000_filepath_f4 USING xv_indicator TYPE char1
CHANGING xyv_filepath TYPE char255.
*---------------Popup for file name---------------------*
CONSTANTS :
lc_dft_ext TYPE string VALUE 'XLS',
lc_file_flt TYPE string VALUE '*.xls',
lc_int_drc TYPE string VALUE 'C:'.
DATA : lv_win_title TYPE string,
lv_file_name TYPE string,
lv_dft_fname TYPE string,
lv_fname TYPE string,
lv_path TYPE string.
CLEAR: lv_fname,
lv_path,
lv_file_name,
lv_win_title,
lv_dft_fname.
*---------------Set File Details F4 Based on Report Type--------------*
IF xv_indicator = lc_s.
lv_win_title = text-045.
lv_dft_fname = text-038.
ELSE.
lv_win_title = text-044.
lv_dft_fname = text-033.
ENDIF.
CALL METHOD cl_gui_frontend_services=>file_save_dialog
EXPORTING
window_title = lv_win_title
default_extension = lc_dft_ext
default_file_name = lv_dft_fname
file_filter = lc_file_flt
initial_directory = lc_int_drc
prompt_on_overwrite = lc_true
CHANGING
filename = lv_fname
path = lv_path
fullpath = lv_file_name
EXCEPTIONS
cntl_error = 1
error_no_gui = 2
not_supported_by_gui = 3
OTHERS = 4.
IF sy-subrc <> 0 OR lv_fname IS INITIAL
OR lv_path IS INITIAL
OR lv_file_name IS INITIAL.
CLEAR xyv_filepath.
ELSE.
*---FilePath
xyv_filepath = lv_file_name.
ENDIF.
ENDFORM. " f2000_filepath_f4
*--------Gui Download
PERFORM f9000_save_detail_report TABLES lit_det_report
USING p_sumfl
p_detfl.
*--------Form------------------------------------------*
FORM f9000_save_detail_report
TABLES xt_det_report STRUCTURE ls_det_report
USING xv_sum_fp TYPE char255
xv_det_fp TYPE char255.
*---Load Header Data of Detail Report
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
filename = lv_file_name
filetype = lc_file_type
write_field_separator = lc_true
codepage = '4103'
TABLES
data_tab = lit_head_det
EXCEPTIONS
file_write_error = 1
no_batch = 2
gui_refuse_filetransfer = 3
invalid_type = 4
no_authority = 5
‎2006 Jun 30 10:41 AM
GUI_DOWNLOAD function module expects FILENAME of type STRING. so declare another variable of type string & pass P_FILE Value to that variable.
and also populate 'X' to HAS_FIELD_SEPERATOR field in the function module.
regards
srikanth
Message was edited by: Srikanth Kidambi