SAP ABAP 개발자는 기존 모듈(MM, PP 등)의 강화판을 제작하는 업무를 수행하게 된다.
따라서 기존 모듈에 대한 이해도가 필요하다.
예제 : MM의 Purchase Order 생성
PO를 만드는 화면을 새로 개발한다고 생각해보자.
PO는 ME21N T-CODE에서 새로 생성할 수 있다.
SAP에 대해 전혀 모르는 사람은 여기서부터 막막할 테지만,
MM을 좀 해본 사람은 Org Data, Material, PO Quantity, Net Price, Plant, Storage Location 정도만 입력해주면 된다는 것을 알고있다.
나머지 요소는 대부분 Configuration에서 가져온다.
따라서 우리는 위의 5가지만 파라미터로 제공하면 된다는 것이다.
오류가 발생하면 설정을 담당하는 컨설턴트한테 이야기하면 된다.
그렇다면 해당 PO를 호출하는 함수는?
SAP에서는 이런 함수를 BAPI( Business Application Programming Interfaces)라고 한다.
BAPI_PO_CREATE1 - 구매 오더 생성 (예제 코드 포함) (tistory.com)
예제 : MM의 Purchase Order 조회
보통 데이터를 조회하는 경우는 테이블을 긁어오거나 계산이 필요한 데이터가 있는 경우 BAPI를 사용해서 가져온다.
아래와 같은 PO의 경우 Header는 EKKO, Item Data는 EKPO에 있다.
그런데 ITEM Detail은 여러 탭으로 구성되어 있는데,
이 테이블들은 Item의 item no와 doc no를 Foreign 키로 사용하는 분리된 테이블로 존재한다.
Item의 Doc No는 Header의 키를 사용하는 식이다.
예를 들어 Po history table은 EKBE, Confirmation Table은 EKES인 식이다.
추가로 스탠다드 데이터를 수정하는 경우에도 BAPI를 호출하는데,
Modify PO 이런 식으로 필요한 BAPI를 스탠다드 디버깅을 떠서 찾아내거나, 구글링하면 된다.
요약
대충 트랜잭션 생성의 Basic과 데이터 조회의 Basic을 설명하였는데,
- SAP의 모든 데이터는 헤더, 아이템, 디테일 식으로 구성되어 있으며, 디테일은 각 탭으로 분리되어 있다.
- BAPI에 필요한 파라미터는 화면에서 직접 넣어보고 돌려가며 알아낸다.
- 따라서 T-CODE 등 스탠다드 기능 공부가 필요
- 필요한 데이터 조회, 생성과 관련된 BAPI를 먼저 구글링.
조회를 Table로 하는 경우도 있고 BAPI로 하는 경우도 있는데, 보통 BAPI로 하게 되면
Standard 화면 구성에 필요한 데이터를 전부 한번에 가져오는 경향이 있다. (안보이는 탭에서 사용할 것도 미리 들고 있음).
따라서 성능을 고려하면 Table로 가져오는 것이 대부분 나을 것이다.
'SAP' 카테고리의 다른 글
[EWM] qdoccat, qdocid, qdocno (0) | 2024.10.02 |
---|---|
[EWM] Warehouse Task의 TAPOS (0) | 2024.10.01 |
[EWM] EWM110 Basic Customizing in SAP EWM 번역(WIP) (0) | 2024.09.11 |
[번역][EWM] S4 HANA EWM System Connection : Basic Settings in 3 Easy Steps (0) | 2024.09.08 |
[EWM] 조직구조와 마스터 데이터 (0) | 2024.09.07 |