10-09-2007 9:56 AM
Hi Experts, Good day!
I have to upload /transfer data from itab to application server folder ' /usr/sap/INTF/OUTBOUND\OUTPUT.
'OUTBOUND\OUTPUT' this folder doesnt existing appl server I have to create the folder as well.
I am not able to get it.
please post it to me.
thanks
S.R.
10-09-2007 10:02 AM
Hi,
Check this code,
DATA : BEGIN OF WA_CUST_INITIAL,
STYPE(5),
CUSTOMER(10),
Company_Code(10),
Sales_Organization(10),
Distribution_Channel(10),
Division(10),
Account_Group(10),
END OF WA_CUST_INITIAL.
DATA : IT_CUST_INITIAL LIKE STANDARD TABLE OF WA_CUST_INITIAL WITH HEADER LINE.
DATA : SOURCE_FILE_INITIAL TYPE STRING VALUE 'C:256_FLATCUST_INITIAL.TXT'.
DATA : TARGET_FILE_INITIAL(200) VALUE 'D:usrsaptransCUST_INITIAL.TXT'.
ALL FUNCTION 'GUI_UPLOAD'
EXPORTING
FILENAME = SOURCE_FILE_INITIAL
FILETYPE = 'ASC'
HAS_FIELD_SEPARATOR = 'X'
TABLES
DATA_TAB = IT_CUST_INITIAL.
OPEN DATASET TARGET_FILE_INITIAL IN TEXT MODE FOR OUTPUT ENCODING DEFAULT. ----> This Open Data Set is used for Creating the file in Application Server.
LOOP AT IT_CUST_INITIAL INTO WA_CUST_INITIAL.
TRANSFER WA_CUST_INITIAL TO TARGET_FILE_INITIAL.
ENDLOOP.
CLOSE DATASET TARGET_FILE_INITIAL.
Thanks.
10-09-2007 10:02 AM
hi S.R
try it like this
DATA : F1 TYPE STRING VALUE 'C:\TEST\HEADER.TXT'. "specify your prsentation path file name
to upload the flat file f1 & f2 from presentation server
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
FILENAME = F1
FILETYPE = 'ASC'
HAS_FIELD_SEPARATOR = '#'
HEADER_LENGTH = 0
READ_BY_LINE = 'X'
DAT_MODE = ' '
CODEPAGE = ' '
IGNORE_CERR = ABAP_TRUE
REPLACEMENT = '#'
CHECK_BOM = ' '
IMPORTING
FILELENGTH =
HEADER =
TABLES
DATA_TAB = ITAB1
EXCEPTIONS
FILE_OPEN_ERROR = 1
FILE_READ_ERROR = 2
NO_BATCH = 3
GUI_REFUSE_FILETRANSFER = 4
INVALID_TYPE = 5
NO_AUTHORITY = 6
UNKNOWN_ERROR = 7
BAD_DATA_FORMAT = 8
HEADER_NOT_ALLOWED = 9
SEPARATOR_NOT_ALLOWED = 10
HEADER_TOO_LONG = 11
UNKNOWN_DP_ERROR = 12
ACCESS_DENIED = 13
DP_OUT_OF_MEMORY = 14
DISK_FULL = 15
DP_TIMEOUT = 16
OTHERS = 17
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
reading the file and to download in application server
DATA : FILE1(200) TYPE C VALUE 'D:\usr\sap\trans\HEADER.TXT',
OPEN DATASET FILE1 IN TEXT MODE FOR OUTPUT ENCODING DEFAULT.
LOOP AT ITAB1 INTO HEADER.
TRANSFER HEADER TO FILE1.
ENDLOOP.
LOOP AT ITAB2 INTO ITEM.
TRANSFER ITEM TO FILE2.
ENDLOOP.
IF SY-SUBRC = 0.
WRITE 'FILE OPEN'.
ELSE.
WRITE 'NO FILE'.
ENDIF.
CLOSE DATASET FILE1.
CLOSE DATASET FILE2.
10-09-2007 10:02 AM
Hi!
For browsing (checking the folder exists or not) you can use the following code:
CALL FUNCTION 'EPS_GET_DIRECTORY_PATH'
EXPORTING
EPS_SUBDIR = 'log'
DIR_NAME = 'DIR_TMP'
IMPORTING
DIR_NAME =
EXCEPTIONS
INVALID_EPS_SUBDIR = 1
SAPGPARAM_FAILED = 2
BUILD_DIRECTORY_FAILED = 3
OTHERS = 4
.
if sy-subrc <> 0.
"the directory not present.
endif.
For creating directory, you have to know the exact path of your server, and then you can use the following code:
path = '
172.52.72.651\qfilesvr400\S109XXXX\usr\sap\TST\SYS\test'.
CALL METHOD CL_GUI_FRONTEND_SERVICES=>DIRECTORY_CREATE
EXPORTING
DIRECTORY = path
CHANGING
RC = rc
EXCEPTIONS
DIRECTORY_CREATE_FAILED = 1
CNTL_ERROR = 2
ERROR_NO_GUI = 3
PATH_NOT_FOUND = 4
DIRECTORY_ACCESS_DENIED = 5
DIRECTORY_ALREADY_EXISTS = 6
UNKNOWN_ERROR = 7
others = 8
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.