Files
ABAP-Indexing/wiki/programs/ZRGGBS000.md
T

12 KiB

type, title, description, resource, tags, generated, status, x-package, x-changed-on, x-tables-read, x-tables-write, x-calls, x-code-hash, x-unit-count, x-chunk-count, x-declaration-count
type title description resource tags generated status x-package x-changed-on x-tables-read x-tables-write x-calls x-code-hash x-unit-count x-chunk-count x-declaration-count
abap-program ZRGGBS000 SAP 표준 대체 Exit 폼풀 RGGBS000 을 회사용으로 복사한 프로그램이다. GGB1(대체) 에서 정의한 대체 규칙이 호출하는 사용자 Exit(U100, U101, U200)을 담으며, 전표 전기 시 코스트센터를 CSKS 에서 읽어 채우거나 이동유형을 참조에서 유도(XREF_TO_RMVCT)하는 등 필드 자동 대체를 수행한다. abap://ZRGGBS000
대체
전표
코스트센터
설정
FI
이동유형
참조필드
연결이전
검증
캐시
마스터조회
필수입력
유효성검증
오류메시지
전기차단
대체 Exit
이동유형 유도
연결 거래유형
참조 필드
대체 Exit 등록
by at
abap-indexing/z-ai/glm-5.2:free 2026-09-20T15:36:23+00:00
stable
T856
407839a9bd026bbd7a8b6b1524cb9abe9db9b39c367359ef71078c184903d33c 6 4 7

업무 목적

SAP 표준 대체 Exit 폼풀 RGGBS000 을 회사용으로 복사한 프로그램이다. GGB1(대체) 에서 정의한 대체 규칙이 호출하는 사용자 Exit(U100, U101, U200)을 담으며, 전표 전기 시 코스트센터를 CSKS 에서 읽어 채우거나 이동유형을 참조에서 유도(XREF_TO_RMVCT)하는 등 필드 자동 대체를 수행한다.

주 흐름

  1. GGB1 에서 대체 규칙이 Exit 를 선택할 수 있도록 Exit 목록을 등록한다 (GET_EXIT_TITLES)
  2. 전표 전기 시 대체 규칙이 등록된 Exit 를 호출한다
  3. U100/U101 에서 CSKS 를 읽어 코스트센터를 채운다
  4. XREF_TO_RMVCT 에서 참조번호로부터 이동유형(RMVCT)을 유도한다

테이블 / 외부 호출

  • read: T856
  • write: -
  • 외부 호출: -

로직 조각 (4건 / unit 3개)

LLM 이 코드에서 골라낸 업무 로직 단위다. 조각마다 소스 원문과 자연어 설명을 함께 싣는다 — 설명이 코드와 맞는지 바로 대조할 수 있어야 하기 때문이다. 테이블·호출은 LLM 이 쓴 값이 아니라 파서가 조각 범위에서 다시 뽑은 사실이다. 순서는 실행 순서다.

FORM GET_EXIT_TITLES — ZRGGBS000 L54-L102 (49줄)

GGB1 대체 규칙에서 선택 가능한 사용자 Exit 목록(U100·U101 코스트센터, U200 연결 이동유형)과 파라미터 유형·제목을 ETAB 에 등록한다.

이 unit 의 조각 1개가 15/49줄(31%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다.

[other] 대체 Exit U100(파라미터 없음, CSKS 코스트센터)·U101(필드 파라미터, CSKS 코스트센터)·U200(필드 파라미터, XREF 기반 연결 이동유형)의 이름·파라미터 유형·제목을 EXITS 에 등록해 GGB1 에서 선택할 수 있게 한다.

    62|   exits-name  = 'U100'.
    63|   exits-param = c_exit_param_none.
    64|   exits-title = text-100.             "Cost center from CSKS
    65|   APPEND exits.
    66| 
    67|   exits-name  = 'U101'.
    68|   exits-param = c_exit_param_field.
    69|   exits-title = text-101.             "Cost center from CSKS
    70|   APPEND exits.
    71| 
    72| * begin of insertion                                          "wms092357
    73|   exits-name  = 'U200'.
    74|   exits-param = c_exit_param_field.
    75|   exits-title = text-200.             "Cons. transaction type
    76|   APPEND exits.                       "from xref1/2
  • EN: Register the substitution exits U100 (no parameter, cost center from CSKS), U101 (field parameter) and U200 (field parameter, consolidation transaction type from XREF1/2) with their parameter type and title so GGB1 can offer them.
  • SAP 객체: GGB1, RGGBS000, CSKS
  • 업무 키워드: 대체 Exit 등록, Exit 목록, 코스트센터 대체, 이동유형 대체
  • English: Substitution Exit, GGB1, Exit Registration, RGGBS000
  • 정의부(복사 시 함께 필요): EXITS
  • 선언을 못 찾은 이름: C_EXIT_PARAM_NONE, C_EXIT_PARAM_FIELD (수집 안 된 인클루드·함수 인터페이스일 수 있다)
  • 위치: abap://ZRGGBS000/ZRGGBS000#L62-L76 · confidence 0.85 · ZRGGBS000#ZRGGBS000#FORM#GET_EXIT_TITLES#C1

FORM U200 — ZRGGBS000 L201-L203 (3줄)

대체(Substitution) Exit U200 으로, XREF_TO_RMVCT 를 호출해 전표 참조키(XREF1/2)로부터 연결 이동유형(RMVCT/BEWAR)을 유도해 반환한다.

이 unit 의 조각 1개가 1/3줄(33%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다.

[control_flow] GGB1 대체 규칙에서 호출되는 Exit U200 이 BKPF/BSEG 를 넘겨 XREF_TO_RMVCT 로 참조 필드에서 연결 이동유형(BEWAR)을 유도해 E_RMVCT 에 채운다.

   202|   PERFORM xref_to_rmvct USING bkpf bseg 1 CHANGING e_rmvct.
  • EN: Substitution exit U200 derives the consolidation transaction type (BSEG-BEWAR) from the document reference fields via XREF_TO_RMVCT and returns it in E_RMVCT.
  • 호출(파서): XREF_TO_RMVCT
  • SAP 객체: GGB1, BSEG, BKPF
  • 업무 키워드: 대체 Exit, 이동유형 유도, 연결 거래유형, 참조 필드
  • English: Substitution Exit, Transaction Type, RMVCT, GGB1
  • 정의부(복사 시 함께 필요): BKPF, BSEG
  • 위치: abap://ZRGGBS000/ZRGGBS000#L202-L202 · confidence 0.8 · ZRGGBS000#ZRGGBS000#FORM#U200#C1

FORM XREF_TO_RMVCT — ZRGGBS000 L210-L247 (38줄)

전표의 참조필드(XREF1/XREF2) 값을 연결이전 이동유형으로 변환하고 유효성을 검증한다.

이 unit 의 조각 2개가 26/38줄(68%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다.

[validation] 참조필드 지정값이 1 또는 2 인지 확인해 아니면 치명적 오류를 내고, 이동유형 마스터 T856 을 해시테이블에 한 번만 캐시한 뒤 지정된 참조필드(XREF1 또는 XREF2)에서 이동유형 값을 꺼낸다.

   220|   if i_xref_field <> 1 and i_xref_field <> 2.
   221|     message x000(gk) with 'UNEXPECTED VALUE I_XREF_FIELD ='
   222|       i_xref_field '(MUST BE = 1 OR = 2)' ''.
   223|   endif.
   224|   if st_rmvct is initial.
   225|     select trtyp from t856 into table st_rmvct.
   226|   endif.
   227|   if i_xref_field = 1.
   228|     c_rmvct = is_bseg-xref1.
   229|   else.
   230|     c_rmvct = is_bseg-xref2.
   231|   endif.
  • EN: Validates the xref field selector (must be 1 or 2), caches the consolidation transaction-type master T856 once, and picks the value from BSEG-XREF1/XREF2.
  • 테이블(파서): read T856 / write -
  • SAP 객체: T856, BSEG, XREF1, XREF2, RMVCT
  • 업무 키워드: 이동유형, 참조필드, 연결이전, 검증, 캐시, 마스터조회
  • English: movement type, reference field, consolidation transaction type, validation, static cache, T856
  • 정의부(복사 시 함께 필요): ST_RMVCT
  • 위치: abap://ZRGGBS000/ZRGGBS000#L220-L231 · confidence 0.85 · ZRGGBS000#ZRGGBS000#FORM#XREF_TO_RMVCT#C1

[validation] 참조필드가 비어 있으면 '연결이전 이동유형을 입력하라'는 오류를, 값이 T856 에 없으면 '이동유형이 유효하지 않다'는 오류를 각각 필드명을 넣어 발생시켜 전표 전기를 막는다.

   232|   if c_rmvct is initial.
   233|     write i_xref_field to l_msgv left-justified.
   234|     concatenate text-m00 l_msgv into l_msgv separated by space.
   235| *   cons. transaction type is not specified => send an error message...
   236|     message e123(g3) with l_msgv.
   237| *   Bitte geben Sie im Feld &1 eine Konsolidierungsbewegungsart an
   238|   endif.
   239| * c_rmvct <> initial...
   240|   read table st_rmvct transporting no fields from c_rmvct.
   241|   check not sy-subrc is initial.
   242| * cons. transaction type does not exist => send error message...
   243|   write i_xref_field to l_msgv left-justified.
   244|   concatenate text-m00 l_msgv into l_msgv separated by space.
   245|   message e124(g3) with c_rmvct l_msgv.
  • EN: Raises an error if the reference field is empty or holds a transaction type absent from T856, blocking the posting.
  • SAP 객체: T856, RMVCT
  • 업무 키워드: 필수입력, 유효성검증, 오류메시지, 전기차단, 이동유형
  • English: mandatory field, validity check, error message, posting block, movement type
  • 정의부(복사 시 함께 필요): L_MSGV, ST_RMVCT
  • 위치: abap://ZRGGBS000/ZRGGBS000#L232-L245 · confidence 0.87 · ZRGGBS000#ZRGGBS000#FORM#XREF_TO_RMVCT#C2

정의부 (10건)

로직 조각을 다른 프로그램으로 옮겨 붙일 때 함께 가야 하는 선언이다. 조각별로 무엇이 필요한지는 위 조각 항목의 정의부 줄에 있고(이름을 누르면 여기로 온다), 붙여넣기용으로 의존까지 묶은 코드는 GET /chunks/<chunk_id>declaration_code 로 받는다.

ZRGGBS000 (10건)

GB002 — type-pool · L22-L22

 TYPE-POOLS: GB002. " TO BE INCLUDED IN                       "wms092357

BKPF — tables · L23-L23

 TABLES: BKPF.  " ANY SYSTEM THAT                         "wms092357

BSEG — tables · L24-L24

TABLES:
         BSEG.  " HAS 'FI' INSTALLED                      "wms092357

COBL — tables · L25-L25

TABLES:
         COBL.  " wms092357

CSKS — tables · L26-L26

TABLES:
         CSKS.  " wms092357

ANLZ — tables · L27-L27

TABLES:
         ANLZ.  " wms092357

GLU1 — tables · L28-L28

TABLES:
         GLU1.  " wms092357

EXITS — data · unit 로컬 · L56-L60

  DATA: BEGIN OF exits OCCURS 50,
          name(5)   TYPE c,
          param     LIKE c_exit_param_none,
          title(60) TYPE c,
        END OF exits.

L_MSGV — data · unit 로컬 · L216-L216

  data l_msgv type symsgv.

ST_RMVCT — data · unit 로컬 · L217-L217

  statics st_rmvct type hashed table of rmvct with unique default key.

Unit 목록 (컨테이너)

unit 유형 위치 조각 한 줄 요약
GET_EXIT_TITLES FORM ZRGGBS000 L54-102 1 GGB1 대체 규칙에서 선택 가능한 사용자 Exit 목록(U100·U101 코스트센터, U200 연결 이동유형)과 파라미터 유형·제목을 ETAB 에 등록한다.
U100 FORM ZRGGBS000 L111-127 0 SAP 예제 대체 Exit — 코스트센터를 CSKS 에서 읽어 부서로 바꾸는 샘플이지만 본문이 전부 주석 처리되어 동작하지 않는다.
U101 FORM ZRGGBS000 L138-154 0 대체 Exit U101 로 CSKS 에서 코스트센터의 부서(ABTEI)를 읽어 대체하도록 예시된 FORM 이나 실제 로직은 모두 주석 처리되어 비어 있다.
U200 FORM ZRGGBS000 L201-203 1 대체(Substitution) Exit U200 으로, XREF_TO_RMVCT 를 호출해 전표 참조키(XREF1/2)로부터 연결 이동유형(RMVCT/BEWAR)을 유도해 반환한다.
XREF_TO_RMVCT FORM ZRGGBS000 L210-247 2 전표의 참조필드(XREF1/XREF2) 값을 연결이전 이동유형으로 변환하고 유효성을 검증한다.