04-21-2008 11:43 AM
HI EXPERTS!!
I WANT TO GET THE FULL FILE NAME STRORED IN THE SERVER FOLDER. I USED FM RZL_READ_DIR_LOCAL BUT I AM GETTING ONLY 32 DIGITS OF NAME NOT FULL NAME AND ALSO SIZE PARAMETER IS CONCATENATING WITH NAME.
I WANT THE FILE NAME WITH FILE EXTENTIONS(TXT. .PDF ETC)..
PLZ SUGGEST ME HOW TO GET THE SAME..
PLZ REPLYE ME..
MAHESH
04-21-2008 11:57 AM
Hi,
Refer the parameter to this one i.e. RFPDO-LBOXFILE we will get 128 characters i think it will solve u r problem u can give entire name along with extension ..
regards,
sunil kumar mutyala
04-21-2008 11:57 AM
Hi,
Refer the parameter to this one i.e. RFPDO-LBOXFILE we will get 128 characters i think it will solve u r problem u can give entire name along with extension ..
regards,
sunil kumar mutyala
04-21-2008 11:58 AM
Hi Mahesh,
Try the below FM in the below code.
DATA:
LV_PERMISSION(10), " Permission
LV_H2, " H2
LV_FLNM(13), " File name
LV_USER(10), " User
LV_GROUP(10), " Group
LV_SIZE(15), " Size
LV_MONTH(3), " Month
LV_DAY_C(2), " Day
LV_YEAR(5), " Year
LV_FILE_NAME TYPE FILE_NAME, " Filename
LV_JUNK, " Junk
RETURN_CODE TYPE I. " Return code
DATA:
CMD_PARAMS LIKE SXPGCOLIST-PARAMETERS,
" External prg.parameters
CMD_OUTPUT TYPE BTCXPM OCCURS 0, " Log message
STATUS TYPE EXTCMDEXEX-STATUS. " Status
CONSTANTS:
LC_DIR TYPE C VALUE 'd'. " Directory
FIELD-SYMBOLS: <CMD_OUTPUT_LINE> LIKE LINE OF CMD_OUTPUT.
CMD_PARAMS = PV_DIRECTORY.
CLEAR CMD_OUTPUT.
CALL FUNCTION 'SXPG_CALL_SYSTEM'
EXPORTING
COMMANDNAME = 'Y_LS_LN'
ADDITIONAL_PARAMETERS = CMD_PARAMS
IMPORTING
STATUS = STATUS
EXITCODE = RETURN_CODE
TABLES
EXEC_PROTOCOL = CMD_OUTPUT
EXCEPTIONS
NO_PERMISSION = 1
COMMAND_NOT_FOUND = 2
PARAMETERS_TOO_LONG = 3
SECURITY_RISK = 4
WRONG_CHECK_CALL_INTERFACE = 5
PROGRAM_START_ERROR = 6
PROGRAM_TERMINATION_ERROR = 7
X_ERROR = 8
PARAMETER_EXPECTED = 9
TOO_MANY_PARAMETERS = 10
ILLEGAL_COMMAND = 11
OTHERS = 12.
Check Status first then check sy-subrc
CASE SY-SUBRC.
WHEN 0.
CASE STATUS.
WHEN 'F'.
MESSAGE I057(YS) WITH 'SXPG_CALL_SYSTEM'(002).
GF_EXIT = GC_TRUE.
WHEN 'E'.
MESSAGE I058(YS) WITH 'SXPG_CALL_SYSTEM'(002).
GF_EXIT = GC_TRUE.
WHEN 'S'.
MESSAGE I059(YS) WITH 'SXPG_CALL_SYSTEM'(002).
GF_EXIT = GC_TRUE.
WHEN 'C'.
MESSAGE I061(YS) WITH 'SXPG_CALL_SYSTEM'(002).
GF_EXIT = GC_TRUE.
ENDCASE. " CASE STATUS.
WHEN 1.
MESSAGE I048(YS) WITH 'SXPG_CALL_SYSTEM'(002).
GF_EXIT = GC_TRUE.
WHEN 2.
MESSAGE I049(YS) WITH 'Y_LS_LN'(003).
GF_EXIT = GC_TRUE.
WHEN 3.
MESSAGE I050(YS) WITH 'SXPG_CALL_SYSTEM'(002).
GF_EXIT = GC_TRUE.
WHEN 9.
MESSAGE I054(YS) WITH 'SXPG_CALL_SYSTEM'(002).
GF_EXIT = GC_TRUE.
WHEN 10.
MESSAGE I055(YS) WITH 'SXPG_CALL_SYSTEM'.
GF_EXIT = GC_TRUE.
WHEN 11.
MESSAGE I056(YS) WITH 'SXPG_CALL_SYSTEM'(002).
GF_EXIT = GC_TRUE.
WHEN OTHERS.
MESSAGE I022(YS) WITH SY-SUBRC.
GF_EXIT = GC_TRUE.
ENDCASE. " CASE SY-SUBRC.
IF GF_EXIT = ' '.
READ TABLE CMD_OUTPUT ASSIGNING <CMD_OUTPUT_LINE> INDEX 1.
IF SY-SUBRC = 0.
CONDENSE <CMD_OUTPUT_LINE>-MESSAGE.
IF <CMD_OUTPUT_LINE>-MESSAGE CS 'total' OR
<CMD_OUTPUT_LINE>-MESSAGE CS 'TOTAL'.
DELETE CMD_OUTPUT INDEX 1.
ENDIF.
ENDIF.
LOOP AT CMD_OUTPUT ASSIGNING <CMD_OUTPUT_LINE>.
CONDENSE <CMD_OUTPUT_LINE>-MESSAGE.
SPLIT <CMD_OUTPUT_LINE>-MESSAGE AT SPACE INTO
LV_PERMISSION
LV_H2
LV_USER
LV_GROUP
LV_SIZE
LV_MONTH
LV_DAY_C
LV_YEAR
LV_FILE_NAME
LV_JUNK.
IF LV_PERMISSION(1) = LC_DIR.
CONTINUE.
ELSE.
LV_FLNM = LV_FILE_NAME(13).
TRANSLATE LV_FLNM TO UPPER CASE.
IF LV_FLNM = '1W_FIARFUNNEL'.
PT_FILE-FILE_NAME = LV_FILE_NAME.
APPEND PT_FILE.
ENDIF. " IF LV_FLNM = '1D_FIARFUNNEL'.
ENDIF. " IF lv_permission(1) = ...
ENDLOOP. " LOOP AT CMD_OUTPUT
ENDIF. " IF GF_EXIT = ' '.
04-21-2008 11:58 AM
SIMPLEST WAY IS COPY THIS FUNCTION ODULE AND CREATE YOU NEW MODULE COZ THE PARAMETER IS ONLY for 32 characters you will never get more
make your own parameter and get the file name u want.
searching for a standard one if i get anything will let u know.
09-30-2008 1:48 PM
09-30-2008 1:50 PM