01-15-2007 5:38 AM
Hi,
I wanti put the file from Presentation server to Application Server. Can anybody provide me the coding..
Thanks...
01-15-2007 5:40 AM
OPEN DATASET TEST.TXT FOR OUTPUT/INPUT /APPENDING IN TEXTMODE/BINARYMODE ENCODING DEFAULT
O/P- moving data from itab to seq file
I/p moving data from seq file to itab
Appending this is also move data from itab to seq file but it doesnt overwrites the existing content file , it adds content at last
Open dataset- creating seqfile in app layer and open it to accept data
Textmode- moving data line by line
Binarymode movin data char by char generally used in grtaphical
Encoding default converting data fornat to default format of seqfile i.e to Unicode or non-unicode format
Transfer- to move data from itab to seqfile
Never use sy-subrc after transfer because it doesnt refer sy-subrc
Close data set tast.txt
Delete datset test.txt
01-15-2007 5:40 AM
HI,
Use the function module:
C13Z_FRONT_END_TO_APPL
to move a file from Front end (presentation) to application server.
regards
Subramanian
01-15-2007 5:41 AM
If it is a one time activity, use transaction CG3Z to upload the file. Or else use the function module ARCHIVFILE_CLIENT_TO_SERVER.
Manoj
01-15-2007 5:46 AM
Use transactions CG3y and CG3z if download or upload is one time only.
otherwise refer demo cdoe below for both upload/download -
&----
*& Report ZGILL_AS *
*& *
&----
*& *
*& *
&----
REPORT ZGILL_AS message-id rp .
tables: pa0001,pa0002.
select-options s_pernr for pa0001-pernr no intervals MODIF ID XYZ.
parameters: p_dwnld AS CHECKBOX ,
p_upld AS CHECKBOX DEFAULT 'X'.
parameters: P_DSNI(75) TYPE C MODIF ID ABG DEFAULT
'/usr/local/sapdata/amit.dat' LOWER CASE.
data: begin of itab occurs 0,
pernr(8),
sp1(1) value ',',
werks(4),
sp2(1) value ',',
persg(1),
sp3(1) value ',',
persk(2),
end of itab.
data: s_eof(3).
start-of-selection.
if p_upld = 'X'.
OPEN DATASET P_DSNI FOR OUTPUT IN LEGACY TEXT MODE.
PERFORM FETCH_DATA.
STOP.
elseif p_dwnld = 'X'.
OPEN DATASET P_DSNI FOR INPUT IN LEGACY TEXT MODE.
IF SY-SUBRC NE 0.
MESSAGE E016 WITH
'Error opening seq. file, RC:' SY-SUBRC.
EXIT.
ENDIF.
CLEAR S_EOF.
DO.
PERFORM FETCH_file.
IF S_EOF EQ 'YES'. stop. ENDIF.
ENDDO.
endif.
END-OF-SELECTION.
if itab[] is not initial.
perform print_file1 tables itab.
else.
write:/ 'No records exists'.
endif.
&----
*& Form FETCH_DATA
&----
text
----
--> p1 text
<-- p2 text
----
FORM FETCH_DATA .
SELECT * FROM PA0001 WHERE PERNR IN S_PERNR.
MOVE-CORRESPONDING PA0001 TO ITAB.
TRANSFER ITAB TO P_DSNI.
APPEND ITAB.
ENDSELECT.
CLOSE DATASET P_DSNI.
ENDFORM. " FETCH_DATA
&----
*& Form FETCH_file
&----
text
----
--> p1 text
<-- p2 text
----
FORM FETCH_file .
READ DATASET P_DSNI INTO itab.
append itab.
clear itab.
IF SY-SUBRC NE 0.
S_EOF = 'YES'. EXIT.
ENDIF.
ENDFORM. " FETCH_file
&----
*& Form print_file1
&----
text
----
-->P_ITAB text
----
FORM print_file1 tables P_ITAB structure itab .
write:/2 'EmpNo',
14 'Personnel Area',
34 'Emp Group',
47 'Emp SubGroup'.
skip 1.
loop at p_itab.
write:2 p_itab-pernr,
14 p_itab-werks,
34 p_itab-persg,
47 p_itab-persk.
skip 1.
endloop.
ENDFORM. " print_file1
01-15-2007 5:41 AM
TYPES: BEGIN OF TY_ITAB,
BUKRS(4), "Comp Code
EBELN(10), "PO Number
BLDAT(8), " Inv Date
XBLNR(16), "Inv Number
LIFNR(10), "Vendor
AMOUNT(15), "
CURR(4),
BUSAREA(4),
BKTXT(25), "Header Text
DMBTR(16),
MENGE(17),
SRNO(4),
END OF TY_ITAB.
DATA: I_TAB TYPE STANDARD TABLE OF TY_ITAB WITH HEADER LINE.
DATA : GFILE(150).
DATA: G_FILE(150).
DATA: PATH(100).
DATA: DATE(8), DATE1(6).
DATA: RECORD TYPE STRING,
FILE TYPE STRING.
DATA: L_FILETAB TYPE FILETABLE,
L_FILETAB_H TYPE FILETABLE WITH HEADER LINE,
INITIAL_DIR_PATH TYPE STRING,
L_RC TYPE I.
SELECTION-SCREEN: BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
PARAMETERS: FNAME TYPE LOCALFILE OBLIGATORY.
SELECTION-SCREEN: END OF BLOCK B1.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR FNAME.
REFRESH L_FILETAB.
INITIAL_DIR_PATH = 'C:\'.
CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_OPEN_DIALOG
EXPORTING
WINDOW_TITLE = 'Select the Asset Master Data file'
DEFAULT_EXTENSION =
DEFAULT_FILENAME =
FILE_FILTER = 'Text Files (.TXT)|.TXT|'
INITIAL_DIRECTORY = INITIAL_DIR_PATH
MULTISELECTION = SPACE
WITH_ENCODING =
CHANGING
FILE_TABLE = L_FILETAB
RC = L_RC
USER_ACTION =
FILE_ENCODING =
EXCEPTIONS
FILE_OPEN_DIALOG_FAILED = 1
CNTL_ERROR = 2
ERROR_NO_GUI = 3
NOT_SUPPORTED_BY_GUI = 4
OTHERS = 5
.
IF SY-SUBRC <> 0.
WRITE:/ 'Error while selecting the input file'.
ELSE.
LOOP AT L_FILETAB INTO L_FILETAB_H.
FNAME = L_FILETAB_H-FILENAME.
EXIT.
ENDLOOP.
ENDIF.
START-OF-SELECTION.
PERFORM READ_FILE_DATA.
PERFORM SUB_GET_FILEPATH.
PERFORM WRITE_FILE_DATA.
&----
*& Form READ_FILE_DATA
&----
text
----
--> p1 text
<-- p2 text
----
FORM READ_FILE_DATA .
DATA: VFILE TYPE STRING.
DATA: FL(1).
FILE = FNAME.
WHILE FL <> 'X'.
SEARCH FILE FOR '\'.
IF SY-SUBRC = 0.
SPLIT FILE AT '\' INTO PATH FILE.
ELSE.
FL = 'X'.
ENDIF.
ENDWHILE.
VFILE = FNAME.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
FILENAME = VFILE
FILETYPE = 'ASC'
HAS_FIELD_SEPARATOR = 'X'
HEADER_LENGTH = 0
READ_BY_LINE = 'X'
DAT_MODE = ' '
CODEPAGE = ' '
IGNORE_CERR = ABAP_TRUE
REPLACEMENT = '#'
CHECK_BOM = ' '
VIRUS_SCAN_PROFILE =
IMPORTING
FILELENGTH =
HEADER =
TABLES
DATA_TAB = I_TAB
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.
ENDFORM. " READ_FILE_DATA
&----
*& Form SUB_GET_FILEPATH
&----
text
----
--> p1 text
<-- p2 text
----
FORM SUB_GET_FILEPATH .
GFILE = 'E:\SAP_INT\INBOUND\INBOX'.
ENDFORM. " SUB_GET_FILEPATH
&----
*& Form WRITE_FILE_DATA
&----
text
----
--> p1 text
<-- p2 text
----
FORM WRITE_FILE_DATA .
DATA: L_FL.
CLEAR L_FL.
DATE = SY-DATUM.
CONCATENATE DATE6(2) DATE4(2) DATE+0(4) INTO DATE.
DATE1 = DATE+2(6).
IF NOT I_TAB[] IS INITIAL.
CONCATENATE: GFILE '\' FILE INTO G_FILE.
OPEN DATASET G_FILE FOR OUTPUT IN TEXT MODE
ENCODING DEFAULT
IGNORING CONVERSION ERRORS.
IF SY-SUBRC = 0.
LOOP AT I_TAB.
CONCATENATE I_TAB-BUKRS ',' I_TAB-EBELN ','
I_TAB-BLDAT ',' I_TAB-XBLNR ','
I_TAB-LIFNR ',' I_TAB-AMOUNT ','
I_TAB-CURR ',' I_TAB-BUSAREA ','
I_TAB-BKTXT ',' I_TAB-DMBTR ','
I_TAB-MENGE ',' I_TAB-SRNO INTO RECORD.
TRANSFER RECORD TO G_FILE.
L_FL = 'X'.
ENDLOOP.
CLOSE DATASET G_FILE.
IF L_FL = 'X'.
MESSAGE S038 WITH FILE.
CLEAR L_FL.
ENDIF.
ENDIF.
ENDIF.
ENDFORM. " WRITE_FILE_DATA
01-15-2007 5:42 AM
01-15-2007 5:44 AM
Tcode CG3Z <------Presentation to application Server
CG3Y <-----Application to presentation Server
Regards