아웃바운드 프록시에서 PO를 호출할때 COMMIT WORK구문을 안넣고 호출하게 되면 SXI_MONITOR이나 SXMB_MONITOR 모니터링 화면에서 아래와 같은 오류가 확인되며 PO는 호출이 안됨
“하얀색 깃발의 Message recorded (commit missing)”
COMMIT WORK
- PO로 비동기 아웃바운드 메시지를 보내려면 해당 구문이 필요
- ABAP에서 구문을 실행하면 데이터베이스에 커밋(변경사항을 저장)된다고 함 → 커밋하기전에 일시적으로 메모리에만 저장된다고 함
- 커밋 구문이 없어도 프로그램이 끝날때 저장된다고 함 → ABAP Proxy 인터페이스 호출은 다를수 있을것 같음
- 사용자가 데이터베이스, 트랜잭션 등 변경한 내용을 영구적으로 저장할수 있게 함
- 반대로 ROLLBACK WORK가 있는데 실행하면 커밋되지 않는 변경사항이 롤백된다고 함
- SAP Logical unit of work(LUW)를 종료시킴
- BAPI에서도 커밋워크가 사용된다고 함
ABAP Proxy-PO에서 커밋
- 인바운드 프록시 경우 커밋이 필요하지 않음 → 암묵적으로 처리된다고 함
- 인바운드 프록시 로직 구현시 명시적 커밋/롤백 작업은 SAP에서 권장하지 않는다고 함-SAP Note 1954060 및 2268877
- 동기 아웃바운드 프록시에서는 커밋워크를 안해도 호출이 됨
비동기 아웃바운드 프록시 흐름
- 아웃바운드 프록시 호출
- 페이로드 XML변환 → XI메시지 생성
- 비동기 XI메시지 데이터베이스 생성
- 큐에 넣에 커밋워크 후에 아웃바운드 처리를 트리거 → 커밋워크와 프로그램 관련 LUW 끝
- 큐에 있는 XI메시지 처리 관련 LUW 시작
- DB에서 XI메시지를 읽어 XI아웃바운드 어댑터 호출
- 오류가 발생되면 암묵적으로 커밋워크
댓글 없음:
댓글 쓰기