‎2007 Oct 09 12:06 PM
how to transfer a flat file from application server/ presentation server to SAP system(tables).
‎2007 Oct 09 12:10 PM
if u want to transfer file from presentation server to sap tables
u have to use function module GUI_UPLOAD
if u want to transfer file from application server to sap tables
u have to use
OPEN DATASET <filename> FOR INPUT IN BINARY MODE
reward if u find useful
regards
Nagesh.Paruchuri
‎2007 Oct 09 12:10 PM
if u want to transfer file from presentation server to sap tables
u have to use function module GUI_UPLOAD
if u want to transfer file from application server to sap tables
u have to use
OPEN DATASET <filename> FOR INPUT IN BINARY MODE
reward if u find useful
regards
Nagesh.Paruchuri
‎2007 Oct 09 12:16 PM
GUI_UPLOAD --presentation
OPEN DATASET <filename> FOR INPUT IN BINARY MODE -- app server
populate data into an internal table.
Look for Function mudules, BAPIs, Idocs available to update your data.
If u want to update custom tables go for INSERT command.
‎2007 Oct 09 12:47 PM
to transfer file from PRESENTATION SERVER to SAP tables use GUI_UPLOAD Function module as
data: l__filename type string.
l_filename = p_file. "input file name
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
FILENAME = l_filename
FILETYPE = 'ASC'
HAS_FIELD_SEPARATOR = '#'
TABLES
DATA_TAB = internaltable
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.
To transfer file from APPLICATION server to SAP internal tables use
Open dataset <appl file name> for input in text mode encoding default.
do.
read dataset <appl file name> into <work area>.
append <internal table> from <workarea>.
if sy-subrc <> 0.
exit.
enddo.
close dataset <appl file name>.
Message was edited by:
sangeetha s k
‎2007 Oct 09 1:03 PM
DATA :IT_BDCDATA TYPE TABLE OF BDCDATA WITH HEADER LINE,
IT_MSGTAB TYPE TABLE OF BDCMSGCOLL WITH HEADER LINE,
ST_OPT TYPE CTU_PARAMS,
BEGIN OF IT_KA06 OCCURS 0,
KOKRS(10),
KSTAR(10),
DATAB_ANFO TYPE D,
DATBI_ANFO TYPE D,
KTEXT(10),
LTEXT(10),
KATYP(10),
MGEFL(10),
MSEHI_CHAR(10),
END OF IT_KA06,
BEGIN OF IT_EKA06 OCCURS 0,
KOKRS(10),
KSTAR(10),
DATAB_ANFO TYPE D,
DATBI_ANFO TYPE D,
KTEXT(10),
LTEXT(10),
KATYP(10),
MGEFL(10),
MSEHI_CHAR(10),
END OF IT_EKA06,
BEGIN OF IT_SKA06 OCCURS 0,
KOKRS(10),
KSTAR(10),
DATAB_ANFO TYPE D,
DATBI_ANFO TYPE D,
KTEXT(10),
LTEXT(10),
KATYP(10),
MGEFL(10),
MSEHI_CHAR(10),
END OF IT_SKA06,
MSG TYPE STRING,
FNAME TYPE STRING,
BEGIN OF IT_DISPERR OCCURS 0,
KSTAR(20),
MSG LIKE MSG,
END OF IT_DISPERR,
V_DOWNLOADFILE TYPE STRING,
V_UPLOADFILE TYPE STRING,
V_PORTSTRING(300),
V_EXPORTSTRING(300).
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
PARAMETERS:P_URL LIKE IBIPPARMS-PATH.
SELECTION-SCREEN END OF BLOCK B1.
SELECTION-SCREEN BEGIN OF BLOCK B3 WITH FRAME TITLE TEXT-002.
PARAMETERS:P_DISP LIKE ST_OPT-DISMODE.
SELECTION-SCREEN END OF BLOCK B3.
SELECTION-SCREEN BEGIN OF BLOCK B4 WITH FRAME TITLE TEXT-004.
PARAMETERS:P_ERROR LIKE IBIPPARMS-PATH.
SELECTION-SCREEN END OF BLOCK B4.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_URL.
PERFORM GET_FILE_NAME USING 'P_URL'
CHANGING P_URL.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_ERROR.
PERFORM GET_FILE_NAME USING 'P_ERROR'
CHANGING P_ERROR.
START-OF-SELECTION.
PERFORM UPLOAD_DATA.
PERFORM BUILD_DATA.
END-OF-SELECTION.
PERFORM DOWNLOAD_ERRORS.
&----
*& Form GET_FILE_NAME
&----
text
----
-->P_0208 text
<--P_P_URL text
----
FORM GET_FILE_NAME USING P_NAME TYPE ANY
CHANGING P_VALUE TYPE ANY.
CALL FUNCTION 'F4_FILENAME'
EXPORTING
PROGRAM_NAME = SYST-CPROG
DYNPRO_NUMBER = SYST-DYNNR
FIELD_NAME = P_NAME
IMPORTING
FILE_NAME = P_VALUE.
ENDFORM. " get_file_name
&----
*& Form UPLOAD_DATA
&----
text
----
--> p1 text
<-- p2 text
----
FORM UPLOAD_DATA .
OPEN DATASET FNAME FOR INPUT IN TEXT MODE ENCODING DEFAULT.
IF SY-SUBRC <> 0.
MESSAGE I000 WITH 'sorry file not found continue any way'.
STOP.
ELSE.
DO.
READ DATASET FNAME INTO V_PORTSTRING.
IF SY-SUBRC = 0.
SPLIT V_PORTSTRING AT ','
INTO
IT_KA06-KOKRS
IT_KA06-KSTAR
IT_KA06-DATAB_ANFO
IT_KA06-DATBI_ANFO
IT_KA06-KTEXT
IT_KA06-LTEXT
IT_KA06-KATYP
IT_KA06-MGEFL
IT_KA06-MSEHI_CHAR.
APPEND IT_KA06.
ELSE.
CLOSE DATASET FNAME.
EXIT.
ENDIF.
ENDDO.
ENDIF.
ENDFORM. " UPLOAD_DATA
&----
*& Form BUILD_DATA
&----
text
----
--> p1 text
<-- p2 text
----
FORM BUILD_DATA .
LOOP AT IT_KA06.
perform bdc_dynpro using 'SAPLKMA4' '0200'.
perform bdc_field using 'BDC_CURSOR'
'CSKBZ-KOKRS'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'CSKBZ-KOKRS'
IT_KA06-KOKRS."1
perform bdc_field using 'CSKBZ-KSTAR'
IT_KA06-KSTAR."2
perform bdc_field using 'CSKBZ-DATAB_ANFO'
IT_KA06-DATAB_ANFO."3
perform bdc_field using 'CSKBZ-DATBI_ANFO'
IT_KA06-DATBI_ANFO."4
perform bdc_dynpro using 'SAPLKMA4' '0299'.
perform bdc_field using 'BDC_OKCODE'
'=KZEI'.
perform bdc_field using 'BDC_CURSOR'
'CSKBZ-FUNC_AREA'.
perform bdc_field using 'CSKBZ-KTEXT'
IT_KA06-KTEXT."5
perform bdc_field using 'CSKBZ-LTEXT'
IT_KA06-LTEXT."6
perform bdc_field using 'CSKBZ-KATYP'
IT_KA06-KATYP."7
perform bdc_field using 'CSKBZ-EIGEN'
''.
perform bdc_dynpro using 'SAPLKMA4' '0299'.
perform bdc_field using 'BDC_OKCODE'
'=BU'.
perform bdc_field using 'BDC_CURSOR'
'CSKBZ-MSEHI_TEXT'.
perform bdc_field using 'CSKBZ-MGEFL'
IT_KA06-MGEFL."8
perform bdc_field using 'CSKBZ-MSEHI_CHAR'
IT_KA06-MSEHI_CHAR."9
ST_OPT-DISMODE = P_DISP.
ST_OPT-DEFSIZE = 'X'.
CALL TRANSACTION 'KA06' USING IT_BDCDATA OPTIONS FROM ST_OPT
MESSAGES INTO IT_MSGTAB.
IF SY-SUBRC = 0.
IT_SKA06 = IT_KA06.
APPEND IT_SKA06.
ELSE.
IT_EKA06 = IT_KA06.
APPEND IT_EKA06.
LOOP AT IT_MSGTAB.
CALL FUNCTION 'FORMAT_MESSAGE'
EXPORTING
ID = IT_MSGTAB-MSGID
LANG = '-D'
NO = IT_MSGTAB-MSGNR
V1 = IT_MSGTAB-MSGV1
V2 = IT_MSGTAB-MSGV2
V3 = IT_MSGTAB-MSGV3
V4 = IT_MSGTAB-MSGV4
IMPORTING
MSG = MSG
EXCEPTIONS
NOT_FOUND = 1
OTHERS = 2
.
IF SY-SUBRC = 0.
IT_DISPERR-KSTAR = IT_KA06-KSTAR.
IT_DISPERR-MSG = MSG.
APPEND IT_DISPERR.
CLEAR IT_DISPERR.
ENDIF.
ENDLOOP.
ENDIF.
CLEAR IT_BDCDATA[].
CLEAR IT_MSGTAB[].
CLEAR IT_KA06.
ENDLOOP.
ENDFORM. " BUILD_DATA
&----
*& Form bdc_dynpro
&----
text
----
-->P_0322 text
-->P_0323 text
----
FORM BDC_DYNPRO USING PROGNAME
SCREEN.
IT_BDCDATA-PROGRAM = PROGNAME.
IT_BDCDATA-DYNPRO = SCREEN.
IT_BDCDATA-DYNBEGIN = 'X'.
APPEND IT_BDCDATA.
CLEAR IT_BDCDATA.
ENDFORM. " bdc_dynpro
&----
*& Form bdc_field
&----
text
----
-->P_0407 text
-->P_IT_KA06_MGEFL text
----
FORM BDC_FIELD USING FIELDNAME
FIELDVALUE.
IT_BDCDATA-FNAM = FIELDNAME.
IT_BDCDATA-FVAL = FIELDVALUE.
APPEND IT_BDCDATA.
CLEAR IT_BDCDATA.
ENDFORM. " bdc_field
&----
*& Form DOWNLOAD_ERRORS
&----
text
----
--> p1 text
<-- p2 text
----
FORM DOWNLOAD_ERRORS .
OPEN DATASET V_DOWNLOADFILE FOR OUTPUT IN TEXT MODE ENCODING DEFAULT .
IF SY-SUBRC = 0.
LOOP AT IT_EKA06.
CONCATENATE IT_KA06-KOKRS
IT_KA06-KSTAR
IT_KA06-DATAB_ANFO
IT_KA06-DATBI_ANFO
IT_KA06-KTEXT
IT_KA06-LTEXT
IT_KA06-KATYP
IT_KA06-MGEFL
IT_KA06-MSEHI_CHAR
INTO V_EXPORTSTRING
SEPARATED BY ',' .
TRANSFER V_EXPORTSTRING TO V_DOWNLOADFILE.
ENDLOOP.
CLOSE DATASET V_DOWNLOADFILE.
ENDIF.
ENDFORM. " DOWNLOAD_ERRORS
‎2007 Oct 09 1:35 PM
Hi Mr:Kumard,
In order to transfer data from a flat file from presentation server:
1. Use FM GUI_UPLOAD, which will trasfer the data into some Internal table, and from that you can updateyour data base tables.
2. You can use FM "ARCHIVFILE_CLIENT_TO_SERVER" which will trasfer flat file into SAP application server from there you can use OPEN DATA SEt and alll.
If you have any doubt on this regard, probably I can help you
Thanks
Antony Thomas