Code: Alles auswählen.
datei type FILENAME-FILEINTERN.
*Pfad der zu uploadenden Datei auf Verzeichnis j: auf dem APP.
datei = 'j:/.../HEP.csv'.
CALL FUNCTION 'FILE_READ_AND_CONVERT_SAP_DATA'
EXPORTING
I_FILENAME = datei
I_SERVERTYP = 'APP'
I_FILEFORMAT = 'csv'
I_FIELD_SEPERATOR = ';'
* I_LINE_HEADER =
* IMPORTING
* E_BIN_FILELENGTH =
TABLES
I_TAB_RECEIVER = hep
EXCEPTIONS
FILE_NOT_FOUND = 1
CLOSE_FAILED = 2
AUTHORIZATION_FAILED = 3
OPEN_FAILED = 4
CONVERSION_FAILED = 5
OTHERS = 6
Nicht zwingend, der FILE Zugriff läuft nicht unter deinem User, sondern unter dem "SAP-User" des ApplikationServers.Stephan-KKH hat geschrieben:Heißt das dann "AUTHORIZATION_FAILED" ? wäre quatsch, da ich Lese und Schreibrechte auf dem Verzeichnis habe)
Code: Alles auswählen.
CALL FUNCTION 'FILE_READ_AND_CONVERT_SAP_DATA'
EXPORTING
I_FILENAME = datei
I_SERVERTYP = 'APP'
Code: Alles auswählen.
* Read data from application server
IF i_servertyp = c_application_server.
* derive log.filenames
CASE sy-cprog.
WHEN 'RFTR_INTF_MAINFLOWS_UPLOAD'.
l_filename_logical = 'FTRM_FTR_DEALDATA_AMORTIZATION_SCHEDULES_IMPORT'.
WHEN 'RFTS6510'.
l_filename_logical = 'FCLM_CM_MEMO_RECORD_IMPORT'.
WHEN 'RFVOBJ01'.
l_filename_logical = 'CML_MIGRATION_OBJECTS_PHYSFILE_IN'.
WHEN 'RFVSIC01'.
l_filename_logical = 'CML_MIGRATION_COLLATERALS_PHYSFILE_IN'.
WHEN OTHERS.
MESSAGE ID 'SG' TYPE 'E' NUMBER '809'
WITH 'SPACE'
RAISING authorization_failed.
ENDCASE.
Code: Alles auswählen.
* note 1509869: File validation
CALL FUNCTION 'FILE_VALIDATE_NAME'
EXPORTING
logical_filename = l_filename_logical
* any parameters defined for that logical file name
CHANGING
physical_filename = l_file_name
EXCEPTIONS
OTHERS = 1.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4
RAISING authorization_failed.
ENDIF.
Code: Alles auswählen.
CALL FUNCTION 'FILE_READ_AND_CONVERT_SAP_DATA'
EXPORTING
I_FILENAME = datei
I_SERVERTYP = 'APP'
Code: Alles auswählen.
* Read data from application server
IF i_servertyp = c_application_server.
* derive log.filenames
CASE sy-cprog.
WHEN 'RFTR_INTF_MAINFLOWS_UPLOAD'.
l_filename_logical = 'FTRM_FTR_DEALDATA_AMORTIZATION_SCHEDULES_IMPORT'.
WHEN 'RFTS6510'.
l_filename_logical = 'FCLM_CM_MEMO_RECORD_IMPORT'.
WHEN 'RFVOBJ01'.
l_filename_logical = 'CML_MIGRATION_OBJECTS_PHYSFILE_IN'.
WHEN 'RFVSIC01'.
l_filename_logical = 'CML_MIGRATION_COLLATERALS_PHYSFILE_IN'.
WHEN OTHERS.
MESSAGE ID 'SG' TYPE 'E' NUMBER '809'
WITH 'SPACE'
RAISING authorization_failed.
ENDCASE.