2024년 1월 31일 수요일

SAP PO 7.5 ABAP Proxy 동기 시나리오 따라하기

해당 시나리오는 ABAP Proxy개발하는 방법을 모르는 PO담당자가 프록시에 대해 비중을 두고 작성하였음

Process Orchestration  ESR,ID 오브젝트 생성

  • Data Type → Message Type → Service Interface → Message Mapping → Operation Mapping 순으로 개발
  • XI때 처음 할때는 이런 개발순서들이 햇갈렸었는데 지금은 머리보다 몸이 먼저 움직임
  • ID오브젝트는 Business Component → SOAP,PROXY Channel → ICO순으로 개발

ABAP 프록시 생성

  • GUI SAP를 통해 연계할 SAP 시스템 로그인 후 'SPROXY' 티코드 실행
  • PO에서 생성한 오브젝트 위치로 가서 Service Interfaces의 해당하는 프록시를 생성
  • 네이밍룰은 _Out일때 SAP가 송신, _ In일때 수신임(프로젝트마다 다를수도)
  • Create Proxy를 누른경우 로컬에서 생성시 Local Object체크,Package $TMP안에 생성됨
  • 그리고 Active까지 해주면 되는데 프록시에서도 PO에서 생성된 DataType구조를 볼수 있음
  • PO DataType의 필드명 타입과 어커런스 등에 따라 프록시 데이터 구조가 생성됨
  • 생성된 오브젝트 타입으로는 Interface,Structure,Table 등 생성되고 하나의 DataType안에 여러 구조인경우? 스트럿쳐,테이블 타입대로 각 각 생성됨
  • 생성된 프록시는 편집도 가능한데 잘 수정되는 경우 인터페이스 간에 문제가 있을수도 있음
  • 수정이 가능한 프록시 항목은 ABAP Name,Prefix,Description,Implementing Class,TableType Name,ABAP Type 등이 있음 

프로그램

  • 호출해야하는 아웃바운드 프록시와 다르게 인바운드 프록시는 Methods에서 프로그래밍 할수 있음
  • 프로그램 순서는 잘 모르겠지만 자바의 변수 선언처럼 데이터를 받을수 있는 타입의 스트럿쳐나 테이블등의 변수를 만들어주고
  • PO에서 보낸 데이터를 받을때 iNPUT 파라메터를 사용하여 가져오고
  • 반대로 PO로 리턴(동기방식)할 데이터는 OUTPUT을 사용하여 보내는듯
  • 그외 필요한 데이터는 RFC(Remote Fuction Call)이나 BAPI(Business Applicaton Programming Interface) 등을 통해 가져오는듯
  • 다른 시스템의 데이터가 필요한경우 PO통해 다른 인터페이스 생성되어 만들어진 프록시를 호출해서 가져올때도 있음 
  • 비동기 방식인경우 ABAP Proxy가 아웃바운드일때 PO를 호출 후 'COMMIT WORK'를 넣어줘야 함 → 이걸 안하면 PO에 전송안됨
  • ABAP Proxy 인바운드인경우 샘플코드에 리턴할때 COMMIT WORK가 들어가 있는데 왜그런지는 모르겠음

테스트

  • 상단 Proxy > Test(단축키 F8)를 통해 테스트도 가능
  • 요청데이터를 수정가능하고 PO에서 전달받은 XML데이터를 임포트하여 테스트도 가능
  • 해당 테스트기능은 SAP 시스템 내 프록시-프로그램 테스트이고
  • 실제 인터페이스는 소스-PO-타겟 연계후 진행하면 됨

댓글 없음:

댓글 쓰기