외부시스템 (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

+ Recent posts