SAP을 웹시스템으로 개발하기,  SAP API




SAP은 ABAP(Advanced Business Application Programming) 이라는 4세대 언어를 이용하여 개발한 전용 프로그램(RFC; Remote Function Call)을 SAP 전용 클라이언트 프로그램을 통해 액세스 해야 합니다. 이를 위해, SAP 전용 클라이언트 프로그램이나 고도의 전문적인 기술력을 확보한 개발자를 통해서, SAP 연계를 위한 프로그램을 작성해야 합니다.


SAP API는 웹 기반의 업무 시스템에서 SAP에서 제공하는 RFC 프로그램을 API를 호출하듯이, 어떤 언어를 이용하더라도 API만 호출할 줄 알면 누구나 쉽게 연계할 수 있도록 해 줍니다.  웹 시스템은 SAP에서 데이터를 불러오거나 SAP에 데이터를 저장하기 위해 SAP API를 호출하여 전송하기만 하면 쉽고 빠르게 웹 시스템을 개발할 수 있으며, 사용자 역시 익숙한 웹 기반의 시스템에서 SAP에 데이터를 저장하거나 가져와서 기존 업무를 보다 효율적으로 처리할 수 있도록 해 줍니다.


SAP® Out-bound API의 생성 절차는 다음과 같습니다.



  1. API Engine에서 SAP의 RFC를 호출하기 위한 SAP Out-bound 아답터 등록
  2. SAP RFC의 요청/응답 전문을 정의하는 인터페이스 등록
  3. SAP® Out-bound API 등록 및 SAP API를 연계하기 위한 업무시스템 개발
  4. 업무시스템에서 SAP RFC를 호출하기 위해 API Engine에 등록된 SAP API 호출


웹 기반의 업무 시스템 상에서 SAP API를 이용하여 SAP을 연계하는 동작 메커니즘은 다음과 같습니다.


  • SAP® Out-bound API : SAP에 데이터를 전달하기 위한 SAP API
  • SAP® In-bound API : SAP으로부터 데이터를 전달받기 위한 SAP API


SAP® Out-bound API 동작 메커니즘



  1. 사용자는 업무시스템에서 SAP RFC를 호출하기 위해 화면을 통해 API Engine에 등록된 SAP® Out-bound API 호출
  2. API Engine은 1차적으로 사용자가 입력한 API 요청 전문을 등록된 ContentsTransfomer를 이용하여 내부 맵으로 변환하는 작업 진행
  3. 그 다음, 인터페이스 요청 전문(InParameter)에 정의된 매핑 룰에 따라 최종적으로 시스템 처리에 적합한 구조로 변환
  4. SAP® Out-bound Adaptor를 이용하여 SAP RFC를 호출하여 SAP로 전문을 전송하며, 이에 대한 응답은 요청 프로세스의 역순으로 진행.

이 중 SAP® Out-bound  API 인터페이스의 동작 메커니즘은 다음과 같습니다.


  1. SAP RFC를 호출하기 위한 요청 전문(InParameter)의 구조 및 데이터 타입, 데이터 크기 등의 변환 룰을 정의함.
  2. SAP RFC의 응답을 파싱하여 SAP® Out-bound API를 호출한 업무 시스템에 응답할 응답 전문(OutParameter)의 구조 및 변환 룰을 요청 전문과 동일한 방식으로 정의함.
  3. SAP API를 호출하는 업무시스템 전문의 컨텐츠 타입 설정.
  4. SAP RFC를 호출하기 위한 SAP Adaptor를 다음과 같이 설정.


SAP® In -bound API 동작 메커니즘



  1. SAP RFC에서 기간계를 호출하기 위해 API Engine에 등록된 SAP® In-bound API 호출
  2. API Engine은 SAP® In-bound API 요청 전문을 등록된 ContentsTransfomer를 이용하여 내부 맵으로 변환
  3. 인터페이스 요청 전문(InParameter)에 정의된대로 전문을 변환
  4. HTTP Adaptor 등 기간계 연계를 위해 등록된 아답터를 이용하여 기간계를 호출. 이에 대한 응답은 요청 프로세스의 역순으로 진행



이 중 SAP® In-bound API 인터페이스의 동작 메커니즘은 다음과 같습니다.



  1. 기간계를 호출하기 위한 요청 전문(InParameter)의 구조 및 데이터 타입, 데이터 크기 등의 변환 룰을 정의함.
  2. 기간계의 응답을 파싱하여 SAP® In-bound API를 호출한 업무 시스템에 응답할 응답 전문(OutParameter)의 구조 및 변환 룰을 요청 전문과 동일한 방식으로 정의함.
  3. SAP® In-bound API를 호출하는 SAP RFC 전문 및 기간계의 컨텐츠 타입을 설정.
  4. 기간계를 호출하기 위한 Adaptor를 다음과 같이 설정.



SAP® API 구축 사례


SAP API는 웹 기반의 업무 시스템에서 SAP에서 제공하는 RFC 프로그램을 API를 호출하듯이, 어떤 언어를 이용하더라도 API만 호출할 줄 알면 누구나 쉽게 연계할 수 있도록 해 줍니다.  웹 시스템은 SAP에서 데이터를 불러오거나 SAP에 데이터를 저장하기 위해 SAP API를 호출하여 전송하기만 하면 쉽고 빠르게 웹 시스템을 개발할 수 있으며, 사용자 역시 익숙한 웹 기반의 시스템에서 SAP에 데이터를 저장하거나 가져와서 기존 업무를 보다 효율적으로 처리할 수 있도록 해 줍니다. 또한 고객의 요구사항과 웹 시스템 개발에 따라 SAP의 기능을 최대한으로 이용할 수 있도록 지원합니다.



다음은 고객사에 구축한 마이데이터 과금/정산 업무 및 SAP API 연계 사례입니다.



마이데이터 과금/정산 시스템


마이데이터 과금/정산 시스템은 마이데이터 정보제공 현황에 대한 과금/정산 금액이 전자 세금계산서로 발행되면, 이를 웹 시스템에 등록한 뒤 SAP 연계를 통해 재무 시스템으로 전송합니다. 마이데이터 과금/정산 시스템을 중심으로 SAP API 프로세스 전반에 대해 살펴보면 다음과 같습니다.



Ⅰ. SAP® Out-bound 아답터 등록


SAP® Out-bound API를 호출 시, 인터페이스의 요청(In)/응답(Out) 전문구조에 따라 전문을 변환한 후 SAP® Out-bound Adaptor가 SAP RFC를 호출합니다. 여기서 SAP® Out-bound Adaptor를 사전에 등록해주어야 하며 그에 대한 정보는 다음과 같습니다.





  1. API Portal의 인터페이스 어댑터 화면에서 개발을 마친 SAP Adaptor Class 정보를 입력
  2. SAP 서버에 대한 기본 정보를 어댑터 파라메터로 설정.




Ⅱ. SAP® Out-bound 인터페이스 전문 생성


SAP Out-bound 연계를 위해 인터페이스를 등록하고, 각 항목을 다음과 같이 설정합니다.




  1. SAP RFC에 대한 요청 전문하기 위한 요청(In) 전문 구조 및 변환 룰 정의
  2. SAP RFC의 응답 전문을 파싱하기 위한 응답(Out) 전문 구조 및 변환 룰을 정의
  3. SAP RFC Function 이름 설정
  4. 인터페이스에 정의된 요청/응답 전문 변환 및 SAP RFC를 호출하기 위한 SAP Out-bound 아답터를 설정




SAP RFC에 대한 요청(In) 전문을 파싱하기 위해 요청 전문구조 및 변환 룰을 다음과 같이 정의합니다.




SAP RFC에 대한 응답(Out) 전문을 파싱하기 위해 응답 전문구조 및 변환 룰을 다음과 같이 정의합니다.






Ⅲ. SAP® API 등록


인터페이스 등록을 마친 뒤에는 다음과 같이 API 메소드와 호출을 위한 API URI, SAP 호출을 위해 등록한 인터페이스를 지정하여 API를 등록합니다.





Ⅳ. Postman 호출


업무시스템에서 SAP FRC를 호출하는 테스트를 위해 API Client 툴인 Postman을 이용합니다.


  1. 등록한 SAP API의 URI를 설정한 시나리오를 생성
  2. SAP RFC에 대한 요청 전문 지정
  3. API Engine에 등록된 SAP Out-bound API를 호출하여 SAP API의 정상동작 여부 테스트 가능


Ⅴ. 마이데이터 과금/정산 업무 및 SAP API 연계


SAP API와의 연계를 이용하는 마이데이터 과금/정산 업무의 처리 프로세스는 다음과 같습니다.


1. 마이데이터 과금/정산 비용 등록 프로세스


2. 과금/정산 SAP 전송 프로세스


3. SAP API 전송 확인