외부시스템 (Legacy)과 인터페이스 시 XML 을 통해 파일을 주고 받을 경우 XML에서 보내주는 파일 인코딩 방식을
반드시 확인해야 한다.
필요에 따라 추가적인 Conversion이 필요 하기 때문이다.
이경우는 PI(XI, PO)에서 XML로 BASE64 로 전달 되는 경우 였으며 아래 Function 으로 SAP Directory에 정상 저장 되는
것을 확인 하였다.
아래의 순서를 이해 하기 위해 DRAO의 구조를 보면 이해가 간다.
XML을 통해 Binary 로 변환한 STRING 을 SCMS_BASE64_DECODE_STR 를 통해 XSTRING 으로 변환하고
그 값을 SCMS_XSTIRNG_TO_BINARY 를 통해 2550길이의 Binary TAB 으로 변환한다. (DRAO-ORBLK)
FUNCTION 'SCMS_BASE64_DECODE_STR'
input : 입력받은 XML 의 STRING ( BINARY )
output : XSTRING
FUNCTION 'SCMS_XSTIRNG_TO_BINARY'
input : 'SCMS_BASE64_DECODE_STR' 의 output
output table : 2550 의 tab
ouput : 입력받은 값의 size ( SAP에 저장되는 실제 파일 사이즈) DRAO-ORBKL
외부시스템 -> PI (XML) 인 경우 위의 순서로 진행
PI(XML) -> 외부시스템 인 경우
Proxy 파라메터에 담기전 XSTRING 변환후 > BASE64로 변환한다.
해당 작업 전 반드시 첨부되는 파일의 인코딩 타입을 확인 하여야 한다.
'ABAP' 카테고리의 다른 글
| POPUP Function 정리 (0) | 2022.07.20 |
|---|---|
| CTS 락 풀기 (0) | 2022.07.20 |
| 자주 쓰는 Layout (FUNCTION) (0) | 2022.07.19 |
| 현재 실행 중인 Function (0) | 2022.07.19 |
| Tcode 에 따른 EXIT 찾기 (0) | 2022.07.19 |