SAP 유지보수뷰 텍스트 필드 추가(+예제 설명)

SAP에서 유지보수뷰를 생성하며 구성되는 코드값에 대한 텍스트값이 무엇인지 함께 보여줘야 하는 경우가 많은데요, PBO 로직에 SAP 유지보수뷰 텍스트 필드 추가하는 방법에 대해서 정리해 보도록 하겠습니다.

간단히 플랜트 내역 관리하는 테스트 테이블을 하나 만들고, 해당 테이블을 기준으로 유지보수뷰를 먼저 만들도록 하겠습니다.

해당 유지보수뷰에는 [플랜트(코드), 플랜트명]이 들어가게 되고, 플랜트명 유지보수뷰 텍스트 필드를 T001W 테이블에서 가져오는 로직입니다.

테스트 테이블 및 유지보수 뷰 생성

우선 먼저 간단히 WERKS(플랜트), WERKS_TX(플랜트 텍스트)로 이루어진 테이블을 하나 만듭니다.

(원칙적으로는 텍스트 테이블은 필요가 없으나 예제 설명을 간략히 하기 위해 아래와 같이 구성합니다.)

1.-플랜트 코드 및 플랜트 텍스트로 이루어진 SAP TABLE

 

그런 후 위의 테이블을 기준으로 아래와 같이 유지보수 뷰를 만듭니다. 그리고 테이블에 정의한 werks, werks_tx를 모두 뷰 필드로 정의하면 됩니다.

T-CODE : SE11 >> View >> 생성 >> Maintenance View 선택 >> Table ZTESTT001 지정

2.-방금전 만든 테스트 테이블을 활용한 유지보수뷰 테이블

상단 메뉴에서 유틸리티 >> 테이블유지보수생성기 를 선택합니다. 이런 후 다이얼로그를 생성해 줍니다.

3.유지보수뷰 모듈 풀 프로그램 생성

생성이 완료가 되면 상단 메뉴 환경 >> 수정 >> 유지보수 화면으로 이동합니다.(중간에 나오는 메시지 등은 다 무시하면 됩니다.)

4.코드에 대한 텍스트 테이블을 가져오기 위한 코드 삽입 위치로 이동

유지보수뷰 코드에 대한 텍스트 필드 맵핑하기

방금 전 생성한 뷰 화면 PBO 코드로 이동합니다. 다음과 같이 로직이 있는데 아래에 예컨대 MODULE SET_ITEM_TEXT. 등으로 MODULE 구문을 선언해 줍니다.

PROCESS BEFORE OUTPUT.
  MODULE LISTE_INITIALISIEREN.
  LOOP AT EXTRACT WITH CONTROL
    TCTRL_ZTESTV001 CURSOR NEXTLINE.
    MODULE LISTE_SHOW_LISTE.
    MODULE SET_ITEM_TEXT. * <== ★★
  ENDLOOP.

해당 PERFORM 문을 더블클릭하여 적절한 신규 파 또는 위치에 아래와 같이 Moule Implement를 생성한 후 다음과 같이 입력해 줍니다.

MODULE SET_ITEM_TEXT OUTPUT.
  IF ZTESTV001-WERKS IS NOT INITIAL.
    SELECT SINGLE NAME1
      INTO ZTESTV001-WERKS_TX
    FROM T001W
    WHERE WERKS = ZTESTV001-WERKS.
  ENDIF.
ENDMODULE.

위의 코드는, 입력받은 라인에 플랜트 코드가 입력되었다면 T001W 테이블에서 코드에 대한 플랜트 이름을 읽어서 뷰의 해당 필드에 넣어주는 코드입니다.

이제 유지보수뷰를 실행한 후 올바른 플랜트 코드를 입력하면 해당 코드의 텍스트가 뷰에 표시되게 됩니다.

유지보수뷰 코드 텍스트 처리시 고려할 사항

위의 방법은 PBO 모듈에 수동으로 코드를 추가하는 방법입니다. 따라서 유지보수뷰를 삭제 후 다시 생성하거나 테이블유지보수생성기를 통해 일부 삭제되는 케이스 형태로 수정이 되었다면, 아래의 코드는 사라지게 되므로 미리 백업을 해두는 등 이 점을 고려하여 개발을 해야 합니다.

PROCESS BEFORE OUTPUT.
...
    MODULE LISTE_SHOW_LISTE.
    MODULE SET_ITEM_TEXT. * ★★
...
  ENDLOOP.

이상으로 SAP 유지보수뷰 텍스트 필드 추가 방법에 대해서 정리해 보았습니다. 유지보수뷰 특정 필드의 텍스트 필드를 자동으로 맵핑해서 보여주고자 할 때 활용해 보시기 바랍니다.

함께 보면 좋은 글

ABAP READ TABLE 사용법 및 예제 정리
ABAP Collect 사용법 및 예제
ABAP CONCATENATE 사용법 및 예제 정리
ABAP LOOP AT 사용법 및 예제 등
SAP 테이블 데이터 수정 SE16N 사용법(+권한 없을 때 se16n_interface)