ABAP로 만든 화면, 메뉴에 연결하기 , T-Code 생성(SE93)과 메뉴 등록(SE43, PFCG)하는 방

ABAP로 프로그램을 개발하고 나면 마지막 관문이 남습니다. 사용자가 SE38에서 프로그램명을 쳐서 실행하게 할 수는 없으니, 트랜잭션 코드(T-Code)를 만들어 메뉴에 붙여주는 작업입니다. 개발 자체보다 쉬운 일인데도 처음에는 SE93, SE43, PFCG 중 뭘 어디에 써야 하는지 헷갈립니다. 이 글에서 커스텀 프로그램을 사용자 메뉴까지 연결하는 전체 과정을 단계별로 정리합니다.

전체 흐름은 이렇습니다: ① 프로그램에 T-Code 부여(SE93) → ② 메뉴에 등록(SE43 영역 메뉴 또는 PFCG 역할 메뉴) → ③ 권한과 함께 사용자에게 배포. 하나씩 봅니다.

1단계. 트랜잭션 코드 생성 — SE93

먼저 개발한 프로그램(예: ZFI_REPORT01)을 호출할 T-Code를 만듭니다.

  1. 트랜잭션 SE93 실행
  2. Transaction Code 입력란에 만들 코드 입력 (예: ZFI01) → 생성(Create) 클릭
    • 커스텀 코드는 반드시 Z 또는 Y로 시작해야 합니다
    • 네이밍은 팀 규칙을 따르되, 모듈 접두어를 넣는 방식(ZFI*, ZMM*)이 관리에 편합니다
  3. 짧은 설명(Short Text) 입력 후, 트랜잭션 유형 선택 팝업이 나옵니다. 여기가 핵심 분기점입니다:
유형언제 쓰나
Program and selection screen (report transaction)실행형 리포트 프로그램 (선택화면이 있는 일반적인 Z리포트) — 가장 많이 씀
Program and screen (dialog transaction)모듈풀(Dynpro) 프로그램. 시작 화면 번호를 지정
Transaction with parameters (parameter transaction)기존 트랜잭션(SM30 등)에 파라미터를 미리 채워 호출할 때
Transaction with variant표준 트랜잭션을 트랜잭션 배리언트와 함께 호출

일반적인 조회/실행 리포트라면 첫 번째(report transaction)를 선택합니다.

  1. 다음 화면에서:
    • Program: 프로그램명 입력 (예: ZFI_REPORT01)
    • Selection screen: 보통 1000 (기본 선택화면)
    • 하단 GUI Support: SAP GUI for Windows/HTML 등 체크 (전부 체크가 일반적)
    • 필요 시 Authorization Object: 이 T-Code 실행에 요구할 권한 오브젝트를 지정할 수 있습니다 (지정하면 S_TCODE 외 추가 권한 체크가 걸립니다)
  2. 저장 → 패키지 지정 → 트랜스포트 요청(TR)에 담기

여기까지 하면 명령 필드에 /nZFI01을 쳐서 프로그램이 실행됩니다. 참고로 파라미터 트랜잭션은 실무 활용도가 높은데, 대표 사례가 “SM30 + 특정 테이블”을 하나의 T-Code로 만들어 현업에게 테이블 관리 화면만 열어주는 방식입니다.

2단계(방법 A). 영역 메뉴에 등록 — SE43

SAP Easy Access 첫 화면에 보이는 트리 메뉴가 영역 메뉴(Area Menu) 입니다. 회사 커스텀 메뉴 트리를 만들어 운영하는 곳이라면 여기에 등록합니다.

  1. 트랜잭션 SE43 (변경은 SE43N) 실행
  2. 회사에서 사용 중인 커스텀 영역 메뉴(예: ZMENU)를 입력 → 변경
    • 새로 만들려면 이름 입력 후 생성 → 최상위 노드부터 구성
  3. 메뉴 트리에서 T-Code를 넣을 폴더(노드)를 선택 → 하위 노드 추가(Add Entry)
  4. 추가 화면에서 Transaction CodeZFI01 입력 → 텍스트는 T-Code 설명이 자동으로 들어옵니다
  5. 저장 → TR에 담기

등록한 영역 메뉴는 사용자 파라미터나 시스템 설정에 따라 SAP Easy Access의 SAP 메뉴 영역에 표시됩니다. 다만 요즘 실무에서는 영역 메뉴보다 다음의 역할 메뉴 방식이 더 일반적입니다.

2단계(방법 B). 역할 메뉴에 등록 — PFCG (실무 표준)

사용자가 로그인하면 보이는 사용자 메뉴(User Menu) 는 그 사용자에게 부여된 역할(Role)의 메뉴입니다. 권한과 메뉴를 한 번에 관리할 수 있어 실무에서는 이 방식이 표준입니다.

  1. 트랜잭션 PFCG 실행
  2. 대상 역할 입력 (예: 현업 FI 사용자 역할 Z_FI_USER) → 변경
    • 새 역할이라면 이름 입력 → 단일 역할 생성
  3. 메뉴(Menu) 탭 클릭
  4. 트랜잭션 추가(+Transaction) 버튼 클릭 → ZFI01 입력 → 적용
    • 폴더를 만들어 메뉴를 계층화할 수도 있습니다 (예: “FI 커스텀 리포트” 폴더 아래 배치)
  5. 권한(Authorizations) 탭 클릭 → 권한 프로파일 변경/생성
    • 메뉴에 T-Code를 추가하면 S_TCODE 권한에 ZFI01이 자동 반영됩니다. SE93에서 권한 오브젝트를 지정했거나 프로그램 내 AUTHORITY-CHECK가 있다면 해당 오브젝트 값도 여기서 채웁니다
    • 생성(프로파일 생성) 버튼으로 프로파일 활성화
  6. 사용자(User) 탭 → 이 역할을 쓸 사용자 ID 할당 → 사용자 비교(User Comparison) 실행
  7. 저장 → TR 처리

이제 해당 사용자가 로그인하면 사용자 메뉴에 ZFI01이 보이고, 클릭으로 실행할 수 있습니다. 정리하면 SE43은 “모두에게 보이는 메뉴 트리”, PFCG는 “권한 있는 사람에게만 보이는 메뉴” 라는 차이입니다. 커스텀 프로그램은 대부분 특정 부서용이므로 PFCG 방식이 자연스럽습니다.

3단계. 사용자 입장에서 확인

  1. 대상 사용자로 로그인 (또는 테스트 계정)
  2. SAP Easy Access의 사용자 메뉴에서 등록한 항목 확인
  3. 더블클릭 실행 → 프로그램 정상 기동 확인
  4. 권한 오류가 나면: 사용자에게 SU53을 바로 실행하게 해서 부족한 권한 오브젝트를 확인 → PFCG에서 보완

추가로, 자주 쓰는 사용자는 즐겨찾기(Favorites)에 직접 추가할 수도 있습니다: SAP Easy Access에서 즐겨찾기 우클릭 → 트랜잭션 삽입 → ZFI01. 메뉴 배포 전 임시로 안내할 때 유용합니다.

자주 겪는 문제와 팁

  1. T-Code는 만들었는데 사용자가 실행하면 권한 오류: S_TCODE 권한이 없는 경우입니다. PFCG 역할 메뉴에 추가 + 프로파일 생성 + 사용자 비교까지 마쳤는지 확인하세요. 프로파일 생성을 빼먹는 실수가 가장 흔합니다.
  2. 메뉴에 추가했는데 안 보임: 사용자 비교(User Comparison)를 실행했는지, 사용자가 재로그인했는지 확인하세요.
  3. 다른 시스템(QAS/PRD)에서 안 보임: SE93/SE43/PFCG 변경분이 모두 TR에 담겨 이관됐는지 확인합니다. 특히 역할은 이관 방식(역할 이관)이 별도로 관리되는 조직이 많으니 권한 담당자와 협의가 필요합니다.
  4. 화면 없이 바로 실행되는 유틸성 프로그램: 선택화면이 없는 프로그램은 report transaction으로 만들면 실행 즉시 수행되니, 실수 방지가 필요한 처리(마감, 삭제 등)라면 확인 팝업을 프로그램에 넣거나 선택화면을 두는 것이 안전합니다.
  5. Fiori 환경이라면: S/4HANA에서 커스텀 T-Code를 Fiori Launchpad 타일로 노출할 수도 있습니다(앱 매니저에서 GUI 트랜잭션 타일 생성). GUI 화면을 그대로 런치패드에서 여는 방식이라 과도기 시스템에서 많이 쓰는 구성입니다. 이 부분은 지난 Fiori 글과 이어집니다.

개발 완료부터 사용자 실행까지의 마지막 구간을 정리하면: SE93으로 T-Code 부여 → PFCG 역할 메뉴 + 권한 등록 → 사용자 비교 → TR 이관 입니다. 화면을 잘 만들어놓고 배포 단계에서 권한 오류로 첫인상을 구기는 일이 생각보다 많으니, 오픈 전에 실제 사용자 권한의 테스트 계정으로 한 번 실행해보는 것을 습관으로 만드시길 권합니다. 궁금한 점은 댓글로 남겨주세요

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

위로 스크롤