2013-03-29 8 views

답변

4

gui_upload 함수는 파일을 응용 프로그램 서버에 업로드하지 않습니다. 프리젠 테이션 계층에서 내부 테이블로 파일을 읽습니다. 그런 다음이 함수를 사용하여이 내부 테이블을 응용 프로그램 서버의 파일에 기록해야합니다.

희망이 도움이됩니다.

0

나는 ABAP 스택을 준비하고 있지는 않지만, OPEN DATASET 또는 그 라인을 따라 무엇인가 찾고 있다고 생각합니다. 이것은 응용 프로그램 서버에서 파일 읽기 및 쓰기를 처리합니다. OPEN DATASET을 통해 처리되는 파일은 트랜잭션 AL11에서 찾을 수 있습니다.

1

이전 답변을 모두 확인할 수 있습니다. 예를 들어 텍스트/csv 파일을 응용 프로그램 서버에 업로드하려면 다음 코드를 사용할 수 있습니다. 실제로 내부 테이블에 지정된 입력 파일을 읽을 GUI_UPLOAD를 사용

:

이 텍스트 파일의 데이터, 그리고 올바르게 내부 테이블로 전송 된 확인하면
lv_filename = p_filebp. 
CLEAR lt_data_tab. 

IF NOT lv_filename IS INITIAL. 
    CALL FUNCTION 'GUI_UPLOAD' 
    EXPORTING 
     filename    = lv_filename 
    TABLES 
     data_tab    = lt_data_tab 
    EXCEPTIONS 
     file_open_error   = 1 
     OTHERS     = 17. 

    IF sy-subrc <> 0. 
    EXIT. 
    ENDIF. 
ENDIF. 

. 그렇다면 응용 프로그램 서버의 파일에 업로드하십시오. 이 업로드 참조 할 위치의 경로를 직접 제공 할 수

READ TABLE lt_data_tab INDEX 1. 
IF sy-subrc <> 0. 
    WRITE:/'No data in input file.'. 
ELSE. 
    CONCATENATE '/interfaces/' sy-sysid '/CRM_ACTIVITIES/' sy-datum '_INPUT.CSV' INTO p_serinp. 

    OPEN DATASET p_serinp FOR OUTPUT IN TEXT MODE ENCODING DEFAULT. 

    IF sy-subrc NE 0. 
    EXIT. 
    ENDIF. 

    LOOP AT lt_data_tab. 
    TRANSFER lt_data_tab TO p_serinp. 
    CLEAR lt_data_tab. 
    ENDLOOP. 

    CLOSE DATASET p_serinp. 

    IF sy-subrc = 0. 
    CLEAR gd_error_text. 

    CONCATENATE 'Download to file: ' p_serinp ' is finished.' 
    INTO gd_error_text SEPARATED BY space. 

    WRITE:/gd_error_text. 
    ENDIF. 
ENDIF. 

은 오픈 데이터 집합 문을 사용하여, 당신은 당신의 네트워크의 어느 곳에서나 파일을 쓸 수 있습니다 유의하십시오. 적어도 필요한 권한이 있다면.

트랜잭션 AL11은 SAP 시스템의 기존 폴더 및 파일을 탐색하는 데 사용할 수 있습니다.

관련 문제