SAP

SAP MM ABAP PO 구매오더 CBO 필드 추가

selectall 2026. 2. 11. 10:55
  • 구매오더 PO의 정보 중 일반 필드 외 업무에 따라 필요한 정보가 상이함.
  • 회사의 필요 구매오더 정보를 추가 하는 과정이 필요.

 

  • CBO 필드 추가 됨으로 영향 받는…

※ ME21N/ME22N/ME23N

※ BAPI_PO_CREATE1


PO 구매오더 CBO 필드 추가 과정

USER-EXIT Project 생성  →  CI 구조 확장 → Subscreen 생성 → MM06E005 Exit 연결 → 로직 작성



USER-EXIT Project 생성 

: SAP가 미리 만들어 둔 확장 콘센트에 전기 꽂는 구조임. 그 콘센트 전원을 켜주는 스위치가 PROJECT.

USER-EXIT 구조.Project가 중간 어댑터 역할

 

- T-CODE: CMOD, USER-EXIT 실행해줄 PROJECT 생성

 

 

- Enhancement 추가 (MM06E005)

 

: 어댑터인 Project 안에 어떠한 확장을 할지 확장 패키지를 넣어 주는 것 = Exit 묶음 세트 

 

 

  • MM06E005 → PO 관련 Exit 세트

 

 


CI 구조 확장

: EKKO/EKPO 확장 할 테이블에 필드 추가

  • CI_EKKODB: PO Header Enhance Structure
  • CI_EKPODB: PO Item Enhance Structure

a)  T-CODE: SE11 에서 (CI_EKKODB / CI_EKPODB)

b)  Project Enhancement 구성요소 → Include 테이블 확인 ( CI_EKKODB / CI_EKPODB)

필드 이름 앞 'Z' 로 생성

 


Subscreen 생성

: ME21N/ME22N/ME223N 와 같은 화면에 보일 때, 스크린 설정 및 값에 대한 layout 로직 구현 필요

  • CMOD - Screen Exit 에서 스크린 이름 확인 가능 
  • SAPLXM06 0101: Header tab
  • SAPLXM06 0111: Item tab

 

1) Screen의 레이아웃으로 어떻게 화면에 보일 건지 필드 구성 

 

2) 스크린페인터 로직

  • 요구사항에 따라 추가로직 구현 가능.
  • 많이 구현 되는 로직 
  • 필드 값에 따라 텍스트 필드 구현 시 로직 추가 필요 (FIELD~ON REQUEST)
  • 생성/변경/조회에 따라 필드 값 입력 활성/비활성화 필요 (PBO)

예 1) 필드 입력 활성/비활성화

  LOOP AT SCREEN.

    IF GV_TRTYP = 'A'.       " GV_TRTYP = I_TRTYP.
      SCREEN-INPUT = 0.
    ELSE.
      SCREEN-INPUT = 1.
    ENDIF.

    MODIFY SCREEN.

  ENDLOOP.
  
  " SET TEXT
  PERFORM GET_ZTRANS_TXT.

 

 

예 2) 값에 따라 텍스트 필드 구현 FIELD ~ ON REQUEST 활용 - 운송모드 ' A' = 항공

PROCESS BEFORE OUTPUT.
  MODULE STATUS_0101.
  
PROCESS AFTER INPUT.
  MODULE USER_COMMAND_0101.

  FIELD EKKO_CI-ZTRANS  MODULE GET_ZTRANS_TXT  ON REQUEST.

 

-> 도메인 값

FORM GET_ZTRANS_TXT .
  SELECT SINGLE DDTEXT
    INTO @GV_ZTRANS_TXT
    FROM DD07T
   WHERE DOMNAME    EQ 'ZD_TRANS'
     AND DDLANGUAGE EQ @SY-LANGU
     AND DOMVALUE_L EQ @EKKO_CI-ZTRANS.
ENDFORM.

 

※ TIP 

- PO 화면 TAB 텍스트 설정 

1) Sub Screen 의 텍스트 요소

2) Sub Screen 화면 번호 (101/111) 에 따라 이름 지정 


MM06E005 Exit 연결

: 컴포넌트 (Funtion Exit) 활성화

  • 해당 Exit 더블 클릭 후, Include 되어 있는 프로그램 더블 클릭으로 활성화
  • 해당 프로그램에 관련 로직 추가

어떤 exit을 사용해야할 지 모를때…

Header

  • EXIT_SAPMM06E_006: Export data to customer subscreen for header (PBO) (대표적)
  • EXIT_SAPMM06E_007: Export data to customer subscreen for header(PAI)
  • EXIT_SAPMM06E_008: Import data from customer subcreen for header (대표적)

Item

  • EXIT_SAPMM06E_016: Export data to customer subscreen for item (PBO) (대표적)
  • EXIT_SAPMM06E_017: Export data to customer subscreen for item(PAI)
  • EXIT_SAPMM06E_018: Import data from customer subcreen for item (대표적)

로직 작성

: 사용하고자 하는 EXIT 안에 로직 작성해줌

  • EXIT_SAPMM06E_006 (PO  Header Export data)
*&---------------------------------------------------------------------*
*& Include          ZXM06U36
*&---------------------------------------------------------------------*
 EKKO_CI-ZTRANS   = I_CI_EKKO-ZTRANS.

 GV_TRTYP = I_TRTYP.

 

  • EXIT_SAPMM06E_008 (PO  Header Import data)   
*&---------------------------------------------------------------------*
*& Include          ZXM06U37
*&---------------------------------------------------------------------*

E_CI_EKKO-ZTRANS   = EKKO_CI-ZTRANS.

 

참조 

Custom Tab in ME21N/ME22N/ME23N purchase order tra... - SAP Community

 

- 끝