FTP의 특정 파일 디렉토리로 텍스트파일전송을 하려고 합니다.
단 파일형식은 텍스트 & UTF-8형식이라 합니다.
FTP 전송 스탠다드 펑션 CALL FUNCTION 'FTP_R3_TO_SERVER'을 썼더니 UTF-8형식으로 안되네요.
혹시 UTF-8로 변경할 수 있는 옵션이 있나요?
그래서 대안으로 OPEN DATASET DSN FOR OUTPUT IN TEXT MODE ENCODING UTF-8 구문을 이용해서 처리할려고
하는데 구문오류나 SUBRC = 0으로 오류가 안 나는데 실제 FTP 경로에 들어가보면 파일생성이 안되어있습니다.
소스는 아래와 같이 했습니다. 어느 부분이 문제일까요?
그리고 부가적인 질문 몇개더요.
1. OPEN DATASET을 쓸려면 BC가 다운로드할 경로를 지정해줘야하는것으로 아는데 그것외 다른 체킹사항은 없나요?
예를 들면 OS단 ID나 패스워드 로직을 코딩에 넣어야하나요?
2. OPEN DATASET으로 생성된 파일은 SAP에서 어떻게 확인가능할꺄요? T-CODE AL11인가요?
DATA : OPEN_REC(80),
USER_REC(80) VALUE 'user fi04 1234',
PASS_REC(80) VALUE 'cd /usr/sap/interface/osconn',
COMD(80) VALUE 'FTP.LOG',
DSN(80),
PUT(80),
TEMP-FILE(100),
LOG-FILE(100).
OPEN_REC = 'open 10.121.21.51'. "sap서버ip
CONCATENATE 'put' FP_FIlenm DSN INTO DSN SEPARATED BY SPACE.
OPEN DATASET DSN FOR OUTPUT IN TEXT MODE ENCODING UTF-8.
LOOP AT PTAB.
TRANSFER PTAB TO DSN.
ENDLOOP.
CLOSE DATASET DSN.
OPEN DATASET COMD FOR OUTPUT IN TEXT MODE ENCODING UTF-8.
TRANSFER OPEN_REC TO COMD.
TRANSFER USER_REC TO COMD.
TRANSFER PASS_REC TO COMD.
TRANSFER PUT TO COMD.
TRANSFER 'bye' TO COMD.
CLOSE DATASET COMD.
IF SY-SUBRC = 0.
* FTP IP ADDRESS/ID/패스워드
PERFORM SET_FTP_INFO.
* 타겟 서버에 전송
"*-- open ip
CONCATENATE 'open' SPACE G_HOST INTO OPEN_REC SEPARATED BY SPACE.
TRANSLATE OPEN_REC TO LOWER CASE.
"*-- user id & password
CONCATENATE 'user' G_USER G_PWD INTO USER_REC SEPARATED BY SPACE.
TRANSLATE USER_REC TO LOWER CASE.
PASS_REC = 'cd /files/inbound'.
TRANSLATE PASS_REC TO LOWER CASE.
OPEN DATASET COMD FOR OUTPUT IN TEXT MODE ENCODING UTF-8.
TRANSFER OPEN_REC TO COMD.
TRANSFER USER_REC TO COMD.
TRANSFER PASS_REC TO COMD.
TRANSFER PUT TO COMD.
TRANSFER 'bye' TO COMD.
CLOSE DATASET COMD.
FP_RESULT = 'S'.
ELSE.
FP_RESULT = 'E'.
ENDIF.