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

3948 lines
138 KiB
Markdown

---
type: abap-program
title: "ZFIR0080 — 인사 정보 전표 생성"
description: "인사(HR) 시스템에서 넘어온 급여·인사 관련 정보(CBO 테이블 ZFIT0130/0131)를 읽어 회계전표를 생성하는 프로그램이다. 인사정보 연계 내역을 ALV 로 보여주고 사용자가 확인한 건에 대해 전표를 전기하며, 처리 결과를 ZFIT0130 에 기록한다. 급여 전기(인사연동)를 담당한다."
resource: "abap://ZFIR0080"
tags: ["인터페이스", "인사연동", "급여전기", "전표", "자동기표", "FI", "인사정보", "급여구분", "주민세", "소득세", "세목", "함께처리", "인터페이스내역", "코스트센터", "손익센터", "사업장", "지점고객", "관리회계영역", "텍스트보강", "조직단위"]
generated: { by: "abap-indexing/z-ai/glm-5.2:free", at: "2026-09-20T15:36:21+00:00" }
status: stable
x-package:
x-changed-on:
x-tables-read: ["CEPCT", "CSKT", "DD07T", "J_1BBRANCH", "KNA1", "LTDX", "SKAT", "T001", "T007S", "TKA02", "USR01", "V_USERNAME", "ZFIT0130", "ZFIT0131", "ZFIT0160"]
x-tables-write: ["GT_DATA", "ZFIT0130"]
x-calls: ["BAL_DSP_LOG_DISPLAY", "BAL_LOG_CREATE", "BAL_LOG_MSG_ADD", "CLOI_PUT_SIGN_IN_FRONT", "CONVERSION_EXIT_ALPHA_INPUT", "CONVERSION_EXIT_ALPHA_OUTPUT", "CONVERT_TO_FOREIGN_CURRENCY", "CONVERT_TO_LOCAL_CURRENCY", "CURRENCY_AMOUNT_IDOC_TO_SAP", "CURRENCY_AMOUNT_SAP_TO_IDOC", "DOMAIN_VALUE_GET", "DYNP_VALUES_READ", "F4IF_INT_TABLE_VALUE_REQUEST", "FB03", "FD03", "FK03", "GUI_UPLOAD", "HELP_VALUES_GET_NO_DD_NAME", "HRVE_GET_TIME_BETWEEN_DATES", "ICON_CREATE", "KCD_EXCEL_OLE_TO_INT_CONVERT", "LVC_VARIANT_DEFAULT_GET", "LVC_VARIANT_EXISTENCE_CHECK", "LVC_VARIANT_F4", "MESSAGE_TEXT_BUILD", "NUMBER_GET_NEXT", "NUMERIC_CHECK", "POPUP_TO_CONFIRM_STEP", "P_TCODE", "REUSE_ALV_EVENTS_GET", "REUSE_ALV_FIELDCATALOG_MERGE", "REUSE_ALV_GRID_DISPLAY", "REUSE_ALV_GRID_DISPLAY_LVC", "REUSE_ALV_HIERSEQ_LIST_DISPLAY", "RP_CALC_DATE_IN_INTERVAL", "RP_LAST_DAY_OF_MONTHS", "SAPGUI_PROGRESS_INDICATOR", "SSF_CLOSE", "SSF_FUNCTION_MODULE_NAME", "SSF_OPEN"]
x-code-hash: "1f164126a0442d8b36bb06244d7262a525609c0f3ce0f381ffda89e774e98946"
x-unit-count: 98
x-chunk-count: 46
x-declaration-count: 293
---
## 업무 목적
인사(HR) 시스템에서 넘어온 급여·인사 관련 정보(CBO 테이블 ZFIT0130/0131)를 읽어 회계전표를 생성하는 프로그램이다. 인사정보 연계 내역을 ALV 로 보여주고 사용자가 확인한 건에 대해 전표를 전기하며, 처리 결과를 ZFIT0130 에 기록한다. 급여 전기(인사연동)를 담당한다.
## 주 흐름
1. ALV 설정과 도메인 텍스트를 준비한다 (ALV_SETTING → GET_DOMAIN)
2. 회사코드 권한을 검증한다 (AUTHORITY_BUKRS)
3. 인사정보 인터페이스 내역을 추출한다 (GET_ZFIT0130)
4. 고객·손익센터·코스트센터 텍스트를 붙여 표시 데이터를 만든다 (DISPLAY_DATA)
5. ALV 화면에 출력해 사용자가 전기 대상을 선택하게 한다
6. 선택 건에 대해 전표를 생성하고 결과를 ZFIT0130 에 갱신한다 (POSTING_DOCUMET)
## 핵심 내부테이블
- `GT_DATA` — 인사정보 I/F 내역 및 전기 대상 (채움: GET_ZFIT0130 / 소비: DISPLAY_DATA, POSTING_DOCUMET)
## 테이블 / 외부 호출
- read: CEPCT, CSKT, DD07T, J_1BBRANCH, KNA1, LTDX, SKAT, T001, T007S, TKA02, USR01, V_USERNAME, ZFIT0130, ZFIT0131, ZFIT0160
- write: GT_DATA, ZFIT0130
- 외부 호출: BAL_DSP_LOG_DISPLAY, BAL_LOG_CREATE, BAL_LOG_MSG_ADD, CLOI_PUT_SIGN_IN_FRONT, CONVERSION_EXIT_ALPHA_INPUT, CONVERSION_EXIT_ALPHA_OUTPUT, CONVERT_TO_FOREIGN_CURRENCY, CONVERT_TO_LOCAL_CURRENCY, CURRENCY_AMOUNT_IDOC_TO_SAP, CURRENCY_AMOUNT_SAP_TO_IDOC, DOMAIN_VALUE_GET, DYNP_VALUES_READ, F4IF_INT_TABLE_VALUE_REQUEST, FB03, FD03, FK03, GUI_UPLOAD, HELP_VALUES_GET_NO_DD_NAME, HRVE_GET_TIME_BETWEEN_DATES, ICON_CREATE, KCD_EXCEL_OLE_TO_INT_CONVERT, LVC_VARIANT_DEFAULT_GET, LVC_VARIANT_EXISTENCE_CHECK, LVC_VARIANT_F4, MESSAGE_TEXT_BUILD, NUMBER_GET_NEXT, NUMERIC_CHECK, POPUP_TO_CONFIRM_STEP, P_TCODE, REUSE_ALV_EVENTS_GET
## 로직 조각 (46건 / unit 37개)
LLM 이 코드에서 골라낸 업무 로직 단위다. **조각마다 소스 원문과 자연어 설명을 함께 싣는다** — 설명이 코드와 맞는지 바로 대조할 수 있어야 하기 때문이다.
테이블·호출은 LLM 이 쓴 값이 아니라 파서가 조각 범위에서 다시 뽑은 사실이다. 순서는 실행 순서다.
### FORM GET_DOMAIN — `ZFIR0080F01` L9-L43 (35줄)
*내역구분(ZDPGUBN)·조직구분(ZDOGUBN)·직책구분(ZDPOSIT) 도메인의 고정값 텍스트를 DD07T 에서 읽어 GT_DOMAIN 에 담는다.*
> 이 unit 의 조각 1개가 28/35줄(80%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다.
#### [sql_select] 로그인 언어의 활성(AS4LOCAL='A') 도메인 고정값 텍스트를 DD07T 에서 ZDPGUBN·ZDOGUBN·ZDPOSIT 세 도메인에 대해 읽어 ALV 표시용 내역구분·조직구분·직책구분명으로 사용한다.
```abap
13| SELECT DOMNAME
14| DOMVALUE_L
15| DDTEXT
16| INTO TABLE GT_DOMAIN
17| FROM DD07T
18| WHERE DD07T~DOMNAME EQ 'ZDPGUBN'
19| AND DD07T~DDLANGUAGE EQ SY-LANGU
20| AND DD07T~AS4LOCAL EQ 'A'.
21|
22| * 조직구분(ZDOGUBN)
23| SELECT DOMNAME
24| DOMVALUE_L
25| DDTEXT
26| APPENDING TABLE GT_DOMAIN
27| FROM DD07T
28| WHERE DD07T~DOMNAME EQ 'ZDOGUBN'
29| AND DD07T~DDLANGUAGE EQ SY-LANGU
30| AND DD07T~AS4LOCAL EQ 'A'.
31|
32| * 직책구분(ZDPOSIT)
33| SELECT DOMNAME
34| DOMVALUE_L
35| DDTEXT
36| APPENDING TABLE GT_DOMAIN
37| FROM DD07T
38| WHERE DD07T~DOMNAME EQ 'ZDPOSIT'
39| AND DD07T~DDLANGUAGE EQ SY-LANGU
40| AND DD07T~AS4LOCAL EQ 'A'.
```
- **EN**: Read active fixed-value texts from DD07T for domains ZDPGUBN, ZDOGUBN and ZDPOSIT in the logon language to show category, organisation and position descriptions in the ALV.
- 테이블(파서): read [DD07T](/tables/DD07T.md) / write -
- SAP 객체: DD07T
- 업무 키워드: 도메인 고정값 텍스트, 내역구분, 조직구분, 직책구분
- English: Domain Fixed Values, DD07T, Text Lookup
- 정의부(복사 시 함께 필요): [`GT_DOMAIN`](#decl-zfir0080top-70-gt_domain)
- 위치: `abap://ZFIR0080/ZFIR0080F01#L13-L40` · confidence 0.9 · `ZFIR0080#ZFIR0080F01#FORM#GET_DOMAIN#C1`
### EVENT START-OF-SELECTION — `ZFIR0080` L51-L59 (9줄)
*START-OF-SELECTION 에서 회사코드 권한(AUTHORITY_BUKRS)을 검증하고 GET_DATA 로 수불 I/F 이력을 조회하는 디스패치 블록이다.*
> 이 unit 의 조각 1개가 3/9줄(33%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다.
#### [validation] 공용 AUTHORITY_BUKRS 로 선택한 회사코드(P_BUKRS)에 대한 사용자 권한(ZFIT0160 기반)을 검증한 뒤 GET_DATA 로 수불부 I/F 이력을 조회한다.
```abap
53| PERFORM AUTHORITY_BUKRS USING P_BUKRS.
54|
55| PERFORM GET_DATA.
```
- **EN**: Check the user's authorization for the selected company code via AUTHORITY_BUKRS and then extract the interface history with GET_DATA.
- 호출(파서): AUTHORITY_BUKRS, GET_DATA
- SAP 객체: ZFIT0160
- 업무 키워드: 회사코드 권한 체크, 권한 검증, 데이터 조회
- English: authorization check, company code
- 정의부(복사 시 함께 필요): [`P_BUKRS`](#decl-zfir0080top-95-p_bukrs)
- 위치: `abap://ZFIR0080/ZFIR0080#L53-L55` · confidence 0.8 · `ZFIR0080#ZFIR0080#EVENT#START-OF-SELECTION#C1`
### FORM AUTHORITY_BUKRS — `ZFICOM` L528-L536 (9줄)
*회사코드에 대한 SAP 표준 권한(F_BKPF_BUK)을 검사하고 권한이 없으면 처리를 중단한다.*
> 이 unit 의 조각 1개가 7/9줄(78%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다.
#### [validation] 전표 권한 오브젝트 F_BKPF_BUK 로 해당 회사코드 접근 권한을 검사하고, 권한이 없으면 메시지를 띄운 뒤 리스트 처리를 즉시 중단한다.
```abap
529| AUTHORITY-CHECK OBJECT 'F_BKPF_BUK'
530| ID 'BUKRS' FIELD P_BUKRS.
531| IF SY-SUBRC NE 0.
532| MESSAGE I240(FZ) WITH P_BUKRS.
533| GF_CHECK = C_X.
534| LEAVE LIST-PROCESSING.
535| ENDIF.
```
- **EN**: Checks company-code authorization via F_BKPF_BUK and aborts list processing when the user lacks it.
- SAP 객체: F_BKPF_BUK, T001, BUKRS
- 업무 키워드: 권한체크, 회사코드권한, 권한오브젝트, 접근제어, 처리중단
- English: authority check, company code authorization, F_BKPF_BUK, access control
- 정의부(복사 시 함께 필요): [`P_BUKRS`](#decl-zfir0080top-95-p_bukrs), [`GF_CHECK`](#decl-zficom-87-gf_check), [`C_X`](#decl-zficom-231-c_x)
- 위치: `abap://ZFIR0080/ZFICOM#L529-L535` · confidence 0.93 · `ZFIR0080#ZFICOM#FORM#AUTHORITY_BUKRS#C1`
### FORM GET_ZFIT0130 — `ZFIR0080F01` L63-L163 (101줄)
*인사정보 연계 내역을 급여항목 구분별로 읽고, 조직단위 텍스트와 항목별 차·대변 계정 매핑을 붙인다.*
> 이 unit 의 조각 3개가 90/101줄(89%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다.
#### [sql_select] 급여구분이 주민세(P7) 또는 소득세(P8)면 두 구분을 함께 읽고, 그 외에는 선택한 구분만 읽는다 — 세목이 한 전표로 묶여야 하므로 조회 단계에서 합친다.
```abap
69| IF P_PGUBN EQ 'P7' OR P_PGUBN EQ 'P8'.
70| SELECT *
71| INTO TABLE GT_Z0130
72| FROM ZFIT0130
73| WHERE BUKRS EQ P_BUKRS
74| AND SPMON EQ P_SPMON
75| AND PGUBN IN ('P7', 'P8').
76| ELSE.
77| SELECT *
78| INTO TABLE GT_Z0130
79| FROM ZFIT0130
80| WHERE BUKRS EQ P_BUKRS
81| AND SPMON EQ P_SPMON
82| AND PGUBN EQ P_PGUBN.
83| ENDIF.
84|
85| CHECK GT_Z0130[] IS NOT INITIAL.
```
- **EN**: Reads HR interface records for the selected payroll category, combining P7/P8 (resident tax and income tax) because they must post together.
- 테이블(파서): read [ZFIT0130](/tables/ZFIT0130.md) / write -
- SAP 객체: ZFIT0130, PGUBN, SPMON, BUKRS
- 업무 키워드: 인사정보, 급여구분, 주민세, 소득세, 세목, 함께처리, 인터페이스내역
- English: HR interface, payroll category, resident tax, income tax, combined selection
- 정의부(복사 시 함께 필요): [`P_PGUBN`](#decl-zfir0080top-97-p_pgubn), [`GT_Z0130`](#decl-zfir0080top-39-gt_z0130), [`P_BUKRS`](#decl-zfir0080top-95-p_bukrs), [`P_SPMON`](#decl-zfir0080top-96-p_spmon)
- 위치: `abap://ZFIR0080/ZFIR0080F01#L69-L85` · confidence 0.87 · `ZFIR0080#ZFIR0080F01#FORM#GET_ZFIT0130#C1`
#### [sql_select] 회사코드(T001)·관리회계영역(TKA02)을 읽고, 코스트센터명(CSKT)·손익센터명(CEPCT)·사업장명(J_1BBRANCH)·지점고객명(KNA1)을 FOR ALL ENTRIES 로 붙여 표시용 조직단위 텍스트를 확보한다.
```abap
87| SELECT SINGLE *
88| FROM T001
89| WHERE BUKRS EQ P_BUKRS.
90|
91| SELECT SINGLE *
92| FROM TKA02
93| WHERE BUKRS EQ P_BUKRS.
94| * 코스트센터명
95| SELECT KOSTL LTEXT
96| INTO TABLE GT_CSKT
97| FROM CSKT
98| FOR ALL ENTRIES IN GT_Z0130
99| WHERE SPRAS EQ SY-LANGU
100| AND KOKRS EQ TKA02-KOKRS
101| AND KOSTL EQ GT_Z0130-KOSTL.
102|
103| * 손익센터명
104| SELECT PRCTR KTEXT
105| INTO TABLE GT_CEPCT
106| FROM CEPCT
107| FOR ALL ENTRIES IN GT_Z0130
108| WHERE SPRAS EQ SY-LANGU
109| AND KOKRS EQ TKA02-KOKRS
110| AND PRCTR EQ GT_Z0130-PRCTR.
111|
112| * 사업장명
113| SELECT BRANCH NAME
114| INTO TABLE GT_BRANCH
115| FROM J_1BBRANCH
116| FOR ALL ENTRIES IN GT_Z0130
117| WHERE BUKRS EQ P_BUKRS
118| AND BRANCH EQ GT_Z0130-BUPLA.
119|
120| * 지점고객명
121| SELECT KUNNR NAME1
122| INTO TABLE GT_KNA1
123| FROM KNA1
124| FOR ALL ENTRIES IN GT_Z0130
125| WHERE KUNNR EQ GT_Z0130-KUNNR.
```
- **EN**: Enriches records with controlling area, cost center, profit center, business place and customer names for display.
- 테이블(파서): read [T001](/tables/T001.md), [TKA02](/tables/TKA02.md), [CSKT](/tables/CSKT.md), [CEPCT](/tables/CEPCT.md), [J_1BBRANCH](/tables/J_1BBRANCH.md), [KNA1](/tables/KNA1.md) / write -
- SAP 객체: T001, TKA02, CSKT, CEPCT, J_1BBRANCH, KNA1
- 업무 키워드: 코스트센터, 손익센터, 사업장, 지점고객, 관리회계영역, 텍스트보강, 조직단위
- English: cost center, profit center, business place, customer, controlling area, text enrichment
- 정의부(복사 시 함께 필요): [`T001`](#decl-zficom-11-t001), [`P_BUKRS`](#decl-zfir0080top-95-p_bukrs), [`TKA02`](#decl-zfir0080top-7-tka02), [`GT_CSKT`](#decl-zfir0080top-50-gt_cskt), [`GT_Z0130`](#decl-zfir0080top-39-gt_z0130), [`GT_CEPCT`](#decl-zfir0080top-45-gt_cepct), [`GT_BRANCH`](#decl-zfir0080top-55-gt_branch), [`GT_KNA1`](#decl-zfir0080top-60-gt_kna1), [`KNA1`](#decl-zficom-38-kna1)
- 선언을 못 찾은 이름: J_1BBRANCH (수집 안 된 인클루드·함수 인터페이스일 수 있다)
- 위치: `abap://ZFIR0080/ZFIR0080F01#L87-L125` · confidence 0.88 · `ZFIR0080#ZFIR0080F01#FORM#GET_ZFIT0130#C2`
#### [aggregation] 급여구분·항목(POSIT)별 계정 매핑 테이블 ZFIT0131 을 읽어 차변계정(HKONT_S)·대변계정(HKONT_H)을 가져오고, 두 계정의 이름을 SKAT 에서 각각 읽어 매핑 행에 채운다 — 전표 생성 시 쓰이는 계정결정 기준이다.
```abap
128| SELECT *
129| INTO CORRESPONDING FIELDS OF TABLE GT_Z0131
130| FROM ZFIT0131
131| FOR ALL ENTRIES IN GT_Z0130
132| WHERE PGUBN EQ GT_Z0130-PGUBN
133| AND POSIT EQ GT_Z0130-POSIT.
134|
135| CHECK GT_Z0131[] IS NOT INITIAL.
136|
137| * 계정명 추출
138| SELECT SAKNR TXT50
139| INTO TABLE GT_SKAT
140| FROM SKAT
141| FOR ALL ENTRIES IN GT_Z0131
142| WHERE SAKNR EQ GT_Z0131-HKONT_S.
143|
144| SELECT SAKNR TXT50
145| APPENDING TABLE GT_SKAT
146| FROM SKAT
147| FOR ALL ENTRIES IN GT_Z0131
148| WHERE SAKNR EQ GT_Z0131-HKONT_H.
149|
150| LOOP AT GT_Z0131.
151| * 차변계정
152| READ TABLE GT_SKAT WITH KEY SAKNR = GT_Z0131-HKONT_S.
153| IF SY-SUBRC EQ 0.
154| GT_Z0131-HKONT_ST = GT_SKAT-TXT50.
155| ENDIF.
156| * 대변계정
157| READ TABLE GT_SKAT WITH KEY SAKNR = GT_Z0131-HKONT_H.
158| IF SY-SUBRC EQ 0.
159| GT_Z0131-HKONT_HT = GT_SKAT-TXT50.
160| ENDIF.
161| ENDLOOP.
```
- **EN**: Loads the per-item debit/credit account mapping from ZFIT0131 and fills both account texts from SKAT — the account determination basis for posting.
- 테이블(파서): read [ZFIT0131](/tables/ZFIT0131.md), [SKAT](/tables/SKAT.md) / write -
- SAP 객체: ZFIT0131, SKAT, HKONT_S, HKONT_H, POSIT
- 업무 키워드: 계정매핑, 계정결정, 차변계정, 대변계정, 급여항목, 계정명, 전표생성기준
- English: account mapping, account determination, debit account, credit account, payroll item, G/L account text
- 정의부(복사 시 함께 필요): [`GT_Z0131`](#decl-zfir0080top-34-gt_z0131), [`GT_Z0130`](#decl-zfir0080top-39-gt_z0130), [`GT_SKAT`](#decl-zfir0080top-65-gt_skat)
- 위치: `abap://ZFIR0080/ZFIR0080F01#L128-L161` · confidence 0.86 · `ZFIR0080#ZFIR0080F01#FORM#GET_ZFIT0130#C3`
### FORM DISPLAY_DATA — `ZFIR0080F01` L169-L279 (111줄)
*인사정보 I/F 내역(ZFIT0130)에 내역구분별 계정 매핑(ZFIT0131)과 도메인·손익센터·코스트센터·사업장·고객 텍스트를 붙여 차변/대변 금액을 나누고 상태 아이콘을 설정하며 차대 합계 일치를 검증해 GT_DATA 를 만든다.*
> 이 unit 의 조각 3개가 96/111줄(86%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다.
#### [aggregation] 내역구분·순번으로 정렬한 I/F 내역마다 첫 행을 헤더(HCHK)로 표시하고 ZFIT0131 에서 내역구분·직책별 차변/대변 계정을 매핑(없으면 오류 상태)하며 도메인 텍스트(ZDPGUBN/ZDOGUBN/ZDPOSIT)·손익센터명(CEPCT)·코스트센터명(CSKT)·사업장명(J_1BBRANCH)·고객명(KNA1)을 붙인다.
```abap
174| SORT GT_Z0130 BY PGUBN SEQ.
175| LOOP AT GT_Z0130.
176| MOVE-CORRESPONDING GT_Z0130 TO GT_DATA.
177|
178| AT FIRST.
179| GT_DATA-HCHK = C_X.
180| ENDAT.
181|
182| * 내역 구분별 계정 매핑
183| READ TABLE GT_Z0131 WITH KEY PGUBN = GT_Z0130-PGUBN
184| POSIT = GT_Z0130-POSIT.
185| IF SY-SUBRC EQ 0.
186| GT_DATA-HKONT_S = GT_Z0131-HKONT_S.
187| GT_DATA-HKONT_H = GT_Z0131-HKONT_H.
188| GT_DATA-HKONT_ST = GT_Z0131-HKONT_ST.
189| GT_DATA-HKONT_HT = GT_Z0131-HKONT_HT.
190| ELSE.
191| GT_DATA-STATS = C_E.
192| GT_DATA-MESSG = '내역구분에 따른 계정 매핑 누락'.
193| ENDIF.
194|
195| * 내역구분명
196| READ TABLE GT_DOMAIN WITH KEY DOMNAME = 'ZDPGUBN'
197| DOMVALUE_L = GT_Z0130-PGUBN.
198| IF SY-SUBRC EQ 0.
199| GT_DATA-PGUBN_T = GT_DOMAIN-DDTEXT.
200| ENDIF.
201|
202| * 조직구분명
203| READ TABLE GT_DOMAIN WITH KEY DOMNAME = 'ZDOGUBN'
204| DOMVALUE_L = GT_Z0130-OGUBN.
205| IF SY-SUBRC EQ 0.
206| GT_DATA-OGUBN_T = GT_DOMAIN-DDTEXT.
207| ENDIF.
208|
209| * 직책구분명
210| READ TABLE GT_DOMAIN WITH KEY DOMNAME = 'ZDPOSIT'
211| DOMVALUE_L = GT_Z0130-POSIT.
212| IF SY-SUBRC EQ 0.
213| GT_DATA-POSIT_T = GT_DOMAIN-DDTEXT.
214| ENDIF.
215|
216| * 손익센터명
217| READ TABLE GT_CEPCT WITH KEY PRCTR = GT_Z0130-PRCTR.
218| IF SY-SUBRC EQ 0.
219| GT_DATA-PRCTR_T = GT_CEPCT-KTEXT.
220| ENDIF.
221|
222| * 코스트센터명
223| READ TABLE GT_CSKT WITH KEY KOSTL = GT_Z0130-KOSTL.
224| IF SY-SUBRC EQ 0.
225| GT_DATA-KOSTL_T = GT_CSKT-LTEXT.
226| ENDIF.
227|
228| * 사업장명
229| READ TABLE GT_BRANCH WITH KEY BRANCH = GT_Z0130-BUPLA.
230| IF SY-SUBRC EQ 0.
231| GT_DATA-BUPLA_T = GT_BRANCH-NAME.
232| ENDIF.
233|
234| * 지점고객명
235| READ TABLE GT_KNA1 WITH KEY KUNNR = GT_Z0130-KUNNR.
236| IF SY-SUBRC EQ 0.
237| GT_DATA-KUNNR_T = GT_KNA1-NAME1.
238| ENDIF.
```
- **EN**: For each interface record sorted by category and sequence mark the first row as header, map debit/credit G/L accounts from ZFIT0131 by category and position (error status if missing) and attach domain texts, profit center, cost center, business place and customer names.
- SAP 객체: ZFIT0130, ZFIT0131, CEPCT, CSKT, J_1BBRANCH, KNA1
- 업무 키워드: 계정 매핑, 내역구분, 직책구분, 손익센터명, 코스트센터명, 사업장명, 고객명
- English: Account Mapping, Domain Text, Profit Center, Cost Center, Business Place, ZFIT0131
- 정의부(복사 시 함께 필요): [`GT_Z0130`](#decl-zfir0080top-39-gt_z0130), [`GT_DATA`](#decl-zfir0080top-13-gt_data), [`C_X`](#decl-zficom-231-c_x), [`GT_Z0131`](#decl-zfir0080top-34-gt_z0131), [`C_E`](#decl-zficom-212-c_e), [`GT_DOMAIN`](#decl-zfir0080top-70-gt_domain), [`GT_CEPCT`](#decl-zfir0080top-45-gt_cepct), [`GT_CSKT`](#decl-zfir0080top-50-gt_cskt), [`GT_BRANCH`](#decl-zfir0080top-55-gt_branch), [`GT_KNA1`](#decl-zfir0080top-60-gt_kna1)
- 위치: `abap://ZFIR0080/ZFIR0080F01#L174-L238` · confidence 0.85 · `ZFIR0080#ZFIR0080F01#FORM#DISPLAY_DATA#C1`
#### [calculation] 차대구분(SHKZG)에 따라 금액을 차변(WRBTR_S/DMBTR_S) 또는 대변(WRBTR_H/DMBTR_H) 컬럼에 넣어 합계를 누적하고, 상태(S 성공/F·E 오류/기타 대기)에 따라 신호등 아이콘을 설정하며 이미 처리된 건이면 전기 버튼 숨김 플래그(GV_HIDE)를 켠다.
```abap
240| IF GT_Z0130-SHKZG EQ C_S.
241| GT_DATA-WRBTR_S = GT_Z0130-WRBTR_C.
242| GT_DATA-DMBTR_S = GT_Z0130-DMBTR_C.
243| LV_WRBTR_S = LV_WRBTR_S + GT_Z0130-WRBTR_C.
244| ELSE.
245| GT_DATA-WRBTR_H = GT_Z0130-WRBTR_C.
246| GT_DATA-DMBTR_H = GT_Z0130-DMBTR_C.
247| LV_WRBTR_H = LV_WRBTR_H + GT_Z0130-WRBTR_C.
248| ENDIF.
249|
250| * 상태 아이콘
251| CASE GT_DATA-STATS.
252| WHEN C_S.
253| GT_DATA-CICON = ICON_GREEN_LIGHT.
254| WHEN C_F OR C_E.
255| GT_DATA-CICON = ICON_RED_LIGHT.
256| WHEN OTHERS.
257| GT_DATA-CICON = ICON_YELLOW_LIGHT.
258| ENDCASE.
259|
260| IF GT_DATA-STATS EQ C_F OR GT_DATA-STATS EQ C_S.
261| GV_HIDE = C_X.
262| ENDIF.
263|
264| APPEND GT_DATA. CLEAR GT_DATA.
```
- **EN**: Split amounts into debit or credit columns by SHKZG while accumulating totals, set the traffic-light icon by status (S success, F/E error, else pending) and set GV_HIDE when the record is already processed.
- 업무 키워드: 차변/대변 금액, 차대구분, 상태 아이콘, 처리완료 건 숨김
- English: Debit/Credit Indicator, Status Icon, Amount Split
- 정의부(복사 시 함께 필요): [`GT_Z0130`](#decl-zfir0080top-39-gt_z0130), [`C_S`](#decl-zficom-226-c_s), [`GT_DATA`](#decl-zfir0080top-13-gt_data), [`LV_WRBTR_S`](#decl-zfir0080f01-171-lv_wrbtr_s), [`LV_WRBTR_H`](#decl-zfir0080f01-170-lv_wrbtr_h), [`C_F`](#decl-zficom-213-c_f), [`C_E`](#decl-zficom-212-c_e), [`GV_HIDE`](#decl-zfir0080top-77-gv_hide), [`C_X`](#decl-zficom-231-c_x)
- 위치: `abap://ZFIR0080/ZFIR0080F01#L240-L264` · confidence 0.85 · `ZFIR0080#ZFIR0080F01#FORM#DISPLAY_DATA#C2`
#### [validation] 차변 합계와 대변 합계가 다르면 헤더 행에 '차/대변 금액 합계 불일치' 메시지를 기록하고 전기를 막는다(GV_HIDE).
```abap
268| IF LV_WRBTR_S NE LV_WRBTR_H.
269| GT_DATA-MESSG = '차/대변 금액 합계 불일치'.
270| MODIFY GT_DATA TRANSPORTING MESSG
271| WHERE HCHK EQ C_X.
272| GV_HIDE = C_X.
273| ENDIF.
```
- **EN**: If total debit and credit amounts differ, write the imbalance message on the header row and block posting via GV_HIDE.
- 테이블(파서): read - / write [GT_DATA](/tables/GT_DATA.md)
- 업무 키워드: 차대 균형 검증, 합계 불일치, 전기 차단
- English: Debit/Credit Balance, Validation, Posting Block
- 정의부(복사 시 함께 필요): [`LV_WRBTR_S`](#decl-zfir0080f01-171-lv_wrbtr_s), [`LV_WRBTR_H`](#decl-zfir0080f01-170-lv_wrbtr_h), [`GT_DATA`](#decl-zfir0080top-13-gt_data), [`C_X`](#decl-zficom-231-c_x), [`GV_HIDE`](#decl-zfir0080top-77-gv_hide)
- 위치: `abap://ZFIR0080/ZFIR0080F01#L268-L273` · confidence 0.9 · `ZFIR0080#ZFIR0080F01#FORM#DISPLAY_DATA#C3`
### EVENT END-OF-SELECTION — `ZFIR0080` L60-L66 (7줄)
*END-OF-SELECTION 에서 조회 결과 GT_DATA 가 없으면 메시지 S003 후 종료하고 있으면 화면 0100 을 호출하는 블록이다.*
> 이 unit 의 조각 1개가 6/7줄(86%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다.
#### [control_flow] 자가소비 이력 데이터가 없으면 '데이터 없음' 메시지(S003)를 내고 리스트 처리를 종료하며, 있으면 ALV 화면 0100 을 호출한다.
```abap
61| IF GT_DATA[] IS INITIAL.
62| MESSAGE S003.
63| LEAVE LIST-PROCESSING.
64| ELSE.
65| CALL SCREEN 0100.
66| ENDIF.
```
- **EN**: If no data was found issue message S003 and leave, otherwise call screen 0100 to show the ALV.
- 호출(파서): 0100
- 업무 키워드: 결과 없음, 화면 호출
- English: no data, call screen
- 정의부(복사 시 함께 필요): [`GT_DATA`](#decl-zfir0080top-13-gt_data)
- 위치: `abap://ZFIR0080/ZFIR0080#L61-L66` · confidence 0.8 · `ZFIR0080#ZFIR0080#EVENT#END-OF-SELECTION#C1`
### FORM NAME_SELECT — `ZFICOM` L378-L387 (10줄)
*사용자 ID 로 V_USERNAME 뷰에서 사용자 이름을 조회하는 공통 FORM 이다.*
> 이 unit 의 조각 1개가 7/10줄(70%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다.
#### [sql_select] V_USERNAME 뷰에서 사용자 ID 의 이름(NAME_TEXT)을 조회하고 이름이 비어 있으면 사용자 ID 를 그대로 돌려준다.
```abap
380| SELECT SINGLE V_USERNAME~NAME_TEXT
381| INTO P_NAMET
382| FROM V_USERNAME
383| WHERE V_USERNAME~BNAME EQ P_UNAME.
384| IF SY-DBCNT GT 0 AND P_NAMET IS INITIAL.
385| P_NAMET = P_UNAME.
386| ENDIF.
```
- **EN**: Reads the user's full name from view V_USERNAME by user ID, falling back to the user ID when the name is empty.
- 테이블(파서): read [V_USERNAME](/tables/V_USERNAME.md) / write -
- SAP 객체: V_USERNAME, USR21, ADRP
- 업무 키워드: 사용자 이름, 사용자 ID, 담당자명
- English: User Name, V_USERNAME, User Master
- 선언을 못 찾은 이름: V_USERNAME (수집 안 된 인클루드·함수 인터페이스일 수 있다)
- 위치: `abap://ZFIR0080/ZFICOM#L380-L386` · confidence 0.9 · `ZFIR0080#ZFICOM#FORM#NAME_SELECT#C1`
### FORM SELECT_CSKT — `ZFICOM` L397-L408 (12줄)
*관리회계영역·코스트센터로 CSKT 에서 유효한 코스트센터명을 조회하는 공통 FORM 이다.*
> 이 unit 의 조각 1개가 7/12줄(58%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다.
#### [sql_select] CSKT 에서 영어 언어 기준 관리회계영역(KOKRS)·코스트센터(KOSTL)의 현재 유효(DATBI ≥ 오늘)한 명칭 KTEXT 를 단건 조회한다.
```abap
401| SELECT SINGLE CSKT~KTEXT
402| INTO P_KTEXT
403| FROM CSKT
404| WHERE CSKT~SPRAS EQ 'E' "SY-LANGU
405| AND CSKT~KOKRS EQ P_KOKRS
406| AND CSKT~KOSTL EQ P_KOSTL
407| AND CSKT~DATBI GE SY-DATLO.
```
- **EN**: Reads the currently valid cost center name KTEXT from CSKT for the controlling area and cost center (language 'E', DATBI >= today).
- 테이블(파서): read [CSKT](/tables/CSKT.md) / write -
- SAP 객체: CSKT
- 업무 키워드: 코스트센터, 코스트센터명, 관리회계영역, 유효기간
- English: Cost Center, Controlling Area, CSKT
- 위치: `abap://ZFIR0080/ZFICOM#L401-L407` · confidence 0.9 · `ZFIR0080#ZFICOM#FORM#SELECT_CSKT#C1`
### FORM SELECT_J_1BBRANCH — `ZFICOM` L419-L428 (10줄)
*회사코드·사업장(Business Place)으로 J_1BBRANCH 사업장명을 조회하는 공통 FORM 이다.*
> 이 unit 의 조각 1개가 5/10줄(50%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다.
#### [sql_select] 회사코드와 사업장 코드로 J_1BBRANCH 에서 사업장명(NAME)을 단건 조회한다.
```abap
423| SELECT SINGLE J_1BBRANCH~NAME
424| INTO P_NAME
425| FROM J_1BBRANCH
426| WHERE J_1BBRANCH~BUKRS EQ P_BUKRS
427| AND J_1BBRANCH~BRANCH EQ P_BRANCH.
```
- **EN**: Reads the business place name from J_1BBRANCH for the company code and branch.
- 테이블(파서): read [J_1BBRANCH](/tables/J_1BBRANCH.md) / write -
- SAP 객체: J_1BBRANCH
- 업무 키워드: 사업장, 사업장명, 회사코드, 세금계산서
- English: Business Place, Branch, Company Code
- 정의부(복사 시 함께 필요): [`P_BUKRS`](#decl-zfir0080top-95-p_bukrs)
- 선언을 못 찾은 이름: J_1BBRANCH (수집 안 된 인클루드·함수 인터페이스일 수 있다)
- 위치: `abap://ZFIR0080/ZFICOM#L423-L427` · confidence 0.9 · `ZFIR0080#ZFICOM#FORM#SELECT_J_1BBRANCH#C1`
### FORM SELECT_SKAT — `ZFICOM` L438-L464 (27줄)
*G/L 계정번호로 SKAT 계정과목 텍스트(장문 50/단문 20)를 언어별로 조회하는 공통 FORM 이다.*
> 이 unit 의 조각 1개가 21/27줄(78%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다.
#### [sql_select] 파라미터 ID ZSP 또는 로그온 언어로 언어를 정한 뒤 텍스트 유형(L/S)에 따라 SKAT 에서 계정과목 장문(TXT50) 또는 단문(TXT20)을 계정표(C_KTOPL) 기준으로 단건 조회한다.
```abap
443| GET PARAMETER ID 'ZSP' FIELD L_LANG.
444| IF L_LANG IS INITIAL.
445| L_LANG = SY-LANGU.
446| ENDIF.
447| * Long text
448| IF P_TYPE EQ C_L.
449| SELECT SINGLE SKAT~TXT50
450| INTO P_TXT20
451| FROM SKAT
452| WHERE SKAT~SPRAS EQ L_LANG
453| AND SKAT~KTOPL EQ C_KTOPL
454| AND SKAT~SAKNR EQ P_SAKNR.
455| * Short text
456| ELSE.
457| SELECT SINGLE SKAT~TXT20
458| INTO P_TXT20
459| FROM SKAT
460| WHERE SKAT~SPRAS EQ L_LANG
461| AND SKAT~KTOPL EQ C_KTOPL
462| AND SKAT~SAKNR EQ P_SAKNR.
463| ENDIF.
```
- **EN**: Determines the language (parameter ZSP or SY-LANGU) and reads the G/L account long text TXT50 or short text TXT20 from SKAT for the chart of accounts.
- 테이블(파서): read [SKAT](/tables/SKAT.md) / write -
- SAP 객체: SKAT
- 업무 키워드: 계정과목 텍스트, G/L 계정, 계정표, 언어
- English: G/L Account, Chart of Accounts, Account Text, SKAT
- 정의부(복사 시 함께 필요): [`L_LANG`](#decl-zficom-441-l_lang), [`C_L`](#decl-zficom-219-c_l), [`C_KTOPL`](#decl-zficom-202-c_ktopl)
- 위치: `abap://ZFIR0080/ZFICOM#L443-L463` · confidence 0.9 · `ZFIR0080#ZFICOM#FORM#SELECT_SKAT#C1`
### FORM CHECK_CONFIRM_STEP — `ZFICOM` L476-L491 (16줄)
*제목·메시지 1줄로 POPUP_TO_CONFIRM_STEP 확인 팝업을 띄우고 응답(GF_ANSWER)을 받는 공통 헬퍼다.*
> 이 unit 의 조각 1개가 8/16줄(50%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다.
#### [fm_call] POPUP_TO_CONFIRM_STEP 으로 제목·메시지·취소버튼 여부·기본버튼을 지정한 확인 팝업을 띄우고 사용자의 응답을 GF_ANSWER 에 받는다.
```abap
482| CALL FUNCTION 'POPUP_TO_CONFIRM_STEP'
483| EXPORTING
484| DEFAULTOPTION = P_BUTTON
485| TEXTLINE1 = P_MESS1
486| TITEL = P_TITLE
487| CANCEL_DISPLAY = P_CANCEL
488| IMPORTING
489| ANSWER = GF_ANSWER.
```
- **EN**: Shows a confirmation popup via POPUP_TO_CONFIRM_STEP and returns the user's answer in GF_ANSWER.
- 호출(파서): POPUP_TO_CONFIRM_STEP
- SAP 객체: POPUP_TO_CONFIRM_STEP
- 업무 키워드: 확인 팝업, 사용자 확인, 실행 확인
- English: Confirmation Popup, POPUP_TO_CONFIRM_STEP
- 정의부(복사 시 함께 필요): [`GF_ANSWER`](#decl-zficom-90-gf_answer)
- 위치: `abap://ZFIR0080/ZFICOM#L482-L489` · confidence 0.85 · `ZFIR0080#ZFICOM#FORM#CHECK_CONFIRM_STEP#C1`
### FORM CHECK_CONFIRM_STEP_2 — `ZFICOM` L503-L520 (18줄)
*제목·메시지 2줄로 POPUP_TO_CONFIRM_STEP 확인 팝업을 띄우고 응답(GF_ANSWER)을 받는 공통 헬퍼다.*
> 이 unit 의 조각 1개가 9/18줄(50%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다.
#### [fm_call] POPUP_TO_CONFIRM_STEP 으로 제목·메시지 2줄·취소버튼 여부·기본버튼을 지정한 확인 팝업을 띄우고 사용자의 응답을 GF_ANSWER 에 받는다.
```abap
510| CALL FUNCTION 'POPUP_TO_CONFIRM_STEP'
511| EXPORTING
512| DEFAULTOPTION = P_BUTTON
513| TEXTLINE1 = P_MESS1
514| TEXTLINE2 = P_MESS2
515| TITEL = P_TITLE
516| CANCEL_DISPLAY = P_CANCEL
517| IMPORTING
518| ANSWER = GF_ANSWER.
```
- **EN**: Shows a confirmation popup via POPUP_TO_CONFIRM_STEP with two text lines and returns the user's answer in GF_ANSWER.
- 호출(파서): POPUP_TO_CONFIRM_STEP
- SAP 객체: POPUP_TO_CONFIRM_STEP
- 업무 키워드: 확인 팝업, 사용자 확인, 실행 확인
- English: Confirmation Popup, POPUP_TO_CONFIRM_STEP
- 정의부(복사 시 함께 필요): [`GF_ANSWER`](#decl-zficom-90-gf_answer)
- 위치: `abap://ZFIR0080/ZFICOM#L510-L518` · confidence 0.85 · `ZFIR0080#ZFICOM#FORM#CHECK_CONFIRM_STEP_2#C1`
### FORM AUTHORITY_PG — `ZFICOM` L545-L563 (19줄)
*사용자 ID 로 커스텀 권한테이블 ZFIT0160 을 조회해 프로그램(T-Code)별 실행 권한을 검증하는 공통 FORM 이다.*
> 이 unit 의 조각 1개가 16/19줄(84%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다.
#### [validation] ZFIT0160 에서 사용자 ID 의 프로그램 권한 행을 조회하고, 미등록이거나 ZFIR0090 권한 플래그가 비어 있으면 '프로그램 권한이 없습니다' 메시지 후 GF_CHECK 를 세우고 처리를 중단한다.
```abap
547| SELECT SINGLE * FROM ZFIT0160
548| WHERE USERID = P_UNAME.
549|
550| IF SY-SUBRC = 0.
551| IF P_TCODE = 'ZFIR0090'.
552| IF ZFIT0160-ZFIR0090 = ''.
553| MESSAGE I000 WITH '프로그램 권한이 없습니다 (ZFIR0160) 미등록'.
554| GF_CHECK = C_X.
555| LEAVE LIST-PROCESSING.
556| ENDIF.
557| ENDIF.
558| ELSE.
559| MESSAGE I000 WITH '프로그램 권한이 없습니다 (ZFIR0160) 미등록'.
560| GF_CHECK = C_X.
561| LEAVE LIST-PROCESSING.
562| ENDIF.
```
- **EN**: Reads the custom program authorization table ZFIT0160 by user ID and stops with an 'no program authorization' message (GF_CHECK = X) when the user is not registered or the ZFIR0090 flag is empty.
- 테이블(파서): read [ZFIT0160](/tables/ZFIT0160.md) / write -
- SAP 객체: ZFIT0160, ZFIR0090
- 업무 키워드: 프로그램 권한, 권한 체크, 사용자 ID, 권한 테이블
- English: Authorization Check, Custom Authorization Table, User ID
- 정의부(복사 시 함께 필요): [`ZFIT0160`](#decl-zficom-45-zfit0160), [`GF_CHECK`](#decl-zficom-87-gf_check), [`C_X`](#decl-zficom-231-c_x)
- 위치: `abap://ZFIR0080/ZFICOM#L547-L562` · confidence 0.9 · `ZFIR0080#ZFICOM#FORM#AUTHORITY_PG#C1`
### FORM GET_DOMAIN_VALUE — `ZFICOM` L574-L593 (20줄)
*DOMAIN_VALUE_GET 으로 도메인 고정값의 텍스트를 조회하는 공통 헬퍼다.*
> 이 unit 의 조각 1개가 14/20줄(70%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다.
#### [fm_call] 도메인명·값으로 DOMAIN_VALUE_GET 을 호출해 고정값 텍스트(DDTEXT)를 얻고 미존재 시 시스템 메시지를 표시한다.
```abap
578| CALL FUNCTION 'DOMAIN_VALUE_GET'
579| EXPORTING
580| I_DOMNAME = P_DOMNAME
581| I_DOMVALUE = P_DOMVALUE
582| IMPORTING
583| E_DDTEXT = P_DDTEXT
584| EXCEPTIONS
585| NOT_EXIST = 1
586| OTHERS = 2.
587|
588| IF SY-SUBRC NE 0.
589| MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
590| WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
591| ENDIF.
```
- **EN**: Calls DOMAIN_VALUE_GET to get the fixed-value text of a domain value and raises the system message if not found.
- 호출(파서): DOMAIN_VALUE_GET
- SAP 객체: DOMAIN_VALUE_GET
- 업무 키워드: 도메인, 고정값 텍스트, 코드 설명
- English: Domain, Fixed Value, DDTEXT
- 위치: `abap://ZFIR0080/ZFICOM#L578-L591` · confidence 0.85 · `ZFIR0080#ZFICOM#FORM#GET_DOMAIN_VALUE#C1`
### FORM CALC_DATE_IN_INTERVAL — `ZFICOM` L606-L623 (18줄)
*기준일에 일·월·년을 가감한 날짜를 RP_CALC_DATE_IN_INTERVAL 로 계산하는 공통 헬퍼다.*
> 이 unit 의 조각 1개가 9/18줄(50%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다.
#### [fm_call] 기준일에 일·월·년 값을 부호(SIGNUM)에 따라 더하거나 빼서 결과 날짜를 RP_CALC_DATE_IN_INTERVAL 로 계산한다.
```abap
613| CALL FUNCTION 'RP_CALC_DATE_IN_INTERVAL'
614| EXPORTING
615| DATE = P_DATE
616| DAYS = P_DAYS
617| MONTHS = P_MONTHS
618| SIGNUM = P_SIGNUM
619| YEARS = P_YEARS
620| IMPORTING
621| CALC_DATE = P_CALC_DATE.
```
- **EN**: Adds or subtracts days/months/years to a base date with RP_CALC_DATE_IN_INTERVAL according to SIGNUM.
- 호출(파서): RP_CALC_DATE_IN_INTERVAL
- SAP 객체: RP_CALC_DATE_IN_INTERVAL
- 업무 키워드: 날짜 계산, 기준일, 일자 가감
- English: Date Calculation, RP_CALC_DATE_IN_INTERVAL
- 위치: `abap://ZFIR0080/ZFICOM#L613-L621` · confidence 0.85 · `ZFIR0080#ZFICOM#FORM#CALC_DATE_IN_INTERVAL#C1`
### FORM CALC_BETWEEN_DATES — `ZFICOM` L635-L651 (17줄)
*두 날짜 사이의 일·월·년 차이를 HRVE_GET_TIME_BETWEEN_DATES 로 계산하는 공통 헬퍼다.*
> 이 unit 의 조각 1개가 8/17줄(47%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다.
#### [fm_call] 시작일·종료일을 넘겨 HRVE_GET_TIME_BETWEEN_DATES 로 경과 일수·개월·연수를 계산한다.
```abap
642| CALL FUNCTION 'HRVE_GET_TIME_BETWEEN_DATES'
643| EXPORTING
644| BEG_DATE = P_BDATE
645| END_DATE = P_EDATE
646| IMPORTING
647| DAYS = P_DAYS
648| MONTHS = P_MONTHS
649| YEARS = P_YEARS.
```
- **EN**: Calculates days, months and years between two dates via HRVE_GET_TIME_BETWEEN_DATES.
- 호출(파서): HRVE_GET_TIME_BETWEEN_DATES
- SAP 객체: HRVE_GET_TIME_BETWEEN_DATES
- 업무 키워드: 기간 계산, 일수, 개월수, 경과기간
- English: Date Difference, Period Calculation
- 위치: `abap://ZFIR0080/ZFICOM#L642-L649` · confidence 0.85 · `ZFIR0080#ZFICOM#FORM#CALC_BETWEEN_DATES#C1`
### FORM DYNP_VALUES_READ — `ZFICOM` L674-L703 (30줄)
*DYNP_VALUES_READ 로 현재 화면 필드의 입력값을 PAI 전에 읽어오는 공통 헬퍼다.*
> 이 unit 의 조각 1개가 21/30줄(70%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다.
#### [fm_call] 읽을 화면 필드명·STEPL 을 GT_DYNFIELDS 에 담고 DYNP_VALUES_READ 로 현재 프로그램·화면의 필드 값을 읽어 P_VALUE 로 돌려준다.
```abap
682| CLEAR : GT_DYNFIELDS, GT_DYNFIELDS[].
683| GT_DYNFIELDS-FIELDNAME = P_FNAME.
684| GT_DYNFIELDS-STEPL = P_STEPL.
685| APPEND GT_DYNFIELDS.
686|
687| LV_PROG = SY-CPROG.
688| LV_DNUM = SY-DYNNR.
689| * To read Field Value on screen
690| CALL FUNCTION 'DYNP_VALUES_READ'
691| EXPORTING
692| DYNAME = LV_PROG
693| DYNUMB = LV_DNUM
694| DETERMINE_LOOP_INDEX = C_X
695| TABLES
696| DYNPFIELDS = GT_DYNFIELDS
697| EXCEPTIONS
698| OTHERS = 01.
699| IF SY-SUBRC EQ 0.
700| READ TABLE GT_DYNFIELDS INDEX 1.
701| P_VALUE = GT_DYNFIELDS-FIELDVALUE.
702| ENDIF.
```
- **EN**: Fills GT_DYNFIELDS with the screen field name/STEPL and reads its current value from the active dynpro with DYNP_VALUES_READ.
- 호출(파서): DYNP_VALUES_READ
- SAP 객체: DYNP_VALUES_READ
- 업무 키워드: 화면 필드값 읽기, 다이나프로, 입력값
- English: DYNP_VALUES_READ, Dynpro Field, Screen Value
- 정의부(복사 시 함께 필요): [`GT_DYNFIELDS`](#decl-zficom-63-gt_dynfields), [`LV_PROG`](#decl-zficom-678-lv_prog), [`LV_DNUM`](#decl-zficom-679-lv_dnum), [`C_X`](#decl-zficom-231-c_x)
- 위치: `abap://ZFIR0080/ZFICOM#L682-L702` · confidence 0.85 · `ZFIR0080#ZFICOM#FORM#DYNP_VALUES_READ#C1`
### FORM SELECT_T007S — `ZFICOM` L758-L770 (13줄)
*세금코드(MWSKZ)의 부가세 텍스트를 T007S 에서 조회하는 공통 FORM 이다.*
> 이 unit 의 조각 1개가 9/13줄(69%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다.
#### [sql_select] 세금계산절차(KALSM) 기본값을 세팅하고 T007S 에서 영어 언어 기준 세금코드(MWSKZ)의 설명 TEXT1 을 단건 조회한다.
```abap
761| IF GV_KALSM IS INITIAL.
762| GV_KALSM = C_KALSM.
763| ENDIF.
764| SELECT SINGLE T007S~TEXT1
765| INTO P_TEXT1
766| FROM T007S
767| WHERE T007S~SPRAS EQ 'E' " SY-LANGU
768| AND T007S~KALSM EQ GV_KALSM
769| AND T007S~MWSKZ EQ P_MWSKZ.
```
- **EN**: Defaults the tax procedure KALSM and reads the tax code description TEXT1 from T007S (language 'E').
- 테이블(파서): read [T007S](/tables/T007S.md) / write -
- SAP 객체: T007S
- 업무 키워드: 세금코드, 부가세, 세금계산절차, 텍스트 조회
- English: Tax Code, Tax Procedure, Sales Tax
- 정의부(복사 시 함께 필요): [`GV_KALSM`](#decl-zficom-146-gv_kalsm), [`C_KALSM`](#decl-zficom-204-c_kalsm)
- 위치: `abap://ZFIR0080/ZFICOM#L761-L769` · confidence 0.9 · `ZFIR0080#ZFICOM#FORM#SELECT_T007S#C1`
### FORM GET_NEXT_NUMBER — `ZFICOM` L781-L819 (39줄)
*번호범위 오브젝트에서 다음 일련번호를 받아온다 (CBO 테이블의 키 생성용).*
> 이 unit 의 조각 1개가 20/39줄(51%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다.
#### [fm_call] 표준 FM NUMBER_GET_NEXT 로 지정한 번호범위·오브젝트·서브오브젝트의 다음 일련번호를 채번하고, 구간 미존재·오버플로 등 예외는 시스템 메시지로 그대로 올린다.
```abap
787| CALL FUNCTION 'NUMBER_GET_NEXT'
788| EXPORTING
789| NR_RANGE_NR = P_NRRNG
790| OBJECT = P_OBJCT
791| SUBOBJECT = P_SBJCT
792| IMPORTING
793| NUMBER = P_NUMBR
794| EXCEPTIONS
795| INTERVAL_NOT_FOUND = 1
796| NUMBER_RANGE_NOT_INTERN = 2
797| OBJECT_NOT_FOUND = 3
798| QUANTITY_IS_0 = 4
799| QUANTITY_IS_NOT_1 = 5
800| INTERVAL_OVERFLOW = 6
801| BUFFER_OVERFLOW = 7
802| OTHERS = 8.
803| IF SY-SUBRC <> 0.
804| MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
805| WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
806| ENDIF.
```
- **EN**: Draws the next sequence number from a number-range object via NUMBER_GET_NEXT, surfacing interval/overflow exceptions as system messages.
- 호출(파서): NUMBER_GET_NEXT
- SAP 객체: NUMBER_GET_NEXT, INRI, NROBJ
- 업무 키워드: 번호범위, 채번, 일련번호, 키생성, 번호오브젝트
- English: number range, number assignment, sequence number, NUMBER_GET_NEXT, NROBJ
- 위치: `abap://ZFIR0080/ZFICOM#L787-L806` · confidence 0.9 · `ZFIR0080#ZFICOM#FORM#GET_NEXT_NUMBER#C1`
### FORM DATA_UPLOAD — `ZFICOM` L853-L908 (56줄)
*파일 확장자(TXT/XLS)에 따라 GUI_UPLOAD 또는 TEXT_CONVERT_XLS_TO_SAP 으로 로컬 파일을 내부테이블로 업로드하는 공통 FORM 이다.*
> 이 unit 의 조각 3개가 42/56줄(75%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다.
#### [validation] 파일명의 마지막 3자리로 확장자(TXT/XLS)를 판별해 업로드 방식을 결정한다.
```abap
864| LV_LEN = STRLEN( P_FNAME ).
865| LV_POS = LV_LEN - 3.
866| LV_TYPE = P_FNAME+LV_POS(3).
867| TRANSLATE LV_TYPE TO UPPER CASE.
```
- **EN**: Extracts the file extension (last 3 characters) to decide the upload method.
- 업무 키워드: 파일 확장자, 업로드 방식, 파일명
- English: File Extension, File Upload
- 정의부(복사 시 함께 필요): [`LV_LEN`](#decl-zficom-858-lv_len), [`LV_POS`](#decl-zficom-859-lv_pos), [`LV_TYPE`](#decl-zficom-860-lv_type)
- 위치: `abap://ZFIR0080/ZFICOM#L864-L867` · confidence 0.85 · `ZFIR0080#ZFICOM#FORM#DATA_UPLOAD#C1`
#### [fm_call] TXT 파일이면 GUI_UPLOAD(탭 구분자)로 로컬 파일을 T_LOAD 내부테이블로 읽고 실패 시 메시지 I106 후 종료한다.
```abap
869| IF LV_TYPE EQ 'TXT'.
870| CLEAR : T_LOAD[], T_LOAD.
871| LV_FILENAME = P_FNAME.
872| CALL FUNCTION 'GUI_UPLOAD'
873| EXPORTING
874| FILENAME = LV_FILENAME
875| * FILETYPE = 'ASC'
876| * tab
877| HAS_FIELD_SEPARATOR = C_X
878| * CODEPAGE = '8000'
879| TABLES
880| DATA_TAB = T_LOAD.
881|
882| IF SY-SUBRC NE 0.
883| MESSAGE I106.
884| LEAVE LIST-PROCESSING.
885| ENDIF.
```
- **EN**: For TXT files uploads the tab-separated local file into T_LOAD with GUI_UPLOAD and stops with message I106 on failure.
- 호출(파서): GUI_UPLOAD
- SAP 객체: GUI_UPLOAD
- 업무 키워드: 텍스트 파일 업로드, 탭 구분, 로컬 파일
- English: GUI_UPLOAD, Text File, Local File
- 정의부(복사 시 함께 필요): [`LV_TYPE`](#decl-zficom-860-lv_type), [`LV_FILENAME`](#decl-zficom-861-lv_filename), [`C_X`](#decl-zficom-231-c_x)
- 위치: `abap://ZFIR0080/ZFICOM#L869-L885` · confidence 0.9 · `ZFIR0080#ZFICOM#FORM#DATA_UPLOAD#C2`
#### [fm_call] XLS 파일이면 TEXT_CONVERT_XLS_TO_SAP 으로 엑셀을 T_LOAD 로 변환(헤더행 옵션)하고, 실패·미지원 확장자면 메시지 I006/I007 로 종료한다.
```abap
887| ELSEIF LV_TYPE EQ 'XLS'.
888| CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'
889| EXPORTING
890| * I_FIELD_SEPERATOR =
891| I_LINE_HEADER = P_HLINE
892| I_TAB_RAW_DATA = LV_RAW_DATA
893| I_FILENAME = P_FNAME
894| TABLES
895| I_TAB_CONVERTED_DATA = T_LOAD
896| EXCEPTIONS
897| CONVERSION_FAILED = 1
898| OTHERS = 2.
899|
900| IF SY-SUBRC NE 0.
901| MESSAGE I006. "업로드 실패!! 담당자에게 문의하세요.
902| LEAVE LIST-PROCESSING.
903| ENDIF.
904| ELSE.
905| MESSAGE I007. "지원하지 않는 확장자입니다. 파일형식을 확인하세요.
906| LEAVE LIST-PROCESSING.
907| ENDIF.
```
- **EN**: For XLS files converts the Excel sheet into T_LOAD with TEXT_CONVERT_XLS_TO_SAP (header line option); unsupported extensions or failures stop with messages I006/I007.
- 호출(파서): TEXT_CONVERT_XLS_TO_SAP
- SAP 객체: TEXT_CONVERT_XLS_TO_SAP
- 업무 키워드: 엑셀 업로드, 헤더행, 파일 변환, 미지원 확장자
- English: Excel Upload, TEXT_CONVERT_XLS_TO_SAP, Conversion
- 정의부(복사 시 함께 필요): [`LV_TYPE`](#decl-zficom-860-lv_type), [`LV_RAW_DATA`](#decl-zficom-862-lv_raw_data)
- 위치: `abap://ZFIR0080/ZFICOM#L887-L907` · confidence 0.9 · `ZFIR0080#ZFICOM#FORM#DATA_UPLOAD#C3`
### FORM DATA_UPLOAD_2 — `ZFICOM` L917-L950 (34줄)
*엑셀 파일을 KCD_EXCEL_OLE_TO_INT_CONVERT 로 셀 단위로 읽어 행별로 T_LOAD 내부테이블 구조에 매핑하는 공통 업로드 FORM 이다.*
> 이 unit 의 조각 2개가 26/34줄(76%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다.
#### [fm_call] KCD_EXCEL_OLE_TO_INT_CONVERT 로 엑셀 파일을 2행부터(헤더 제외) 셀 단위 내부테이블 GT_XLS 로 읽고 실패 시 '업로드 실패' 메시지 후 종료한다.
```abap
922| CALL FUNCTION 'KCD_EXCEL_OLE_TO_INT_CONVERT'
923| EXPORTING
924| FILENAME = P_FNAME
925| I_BEGIN_COL = 1
926| I_BEGIN_ROW = 2
927| I_END_COL = 256
928| I_END_ROW = 65536
929| TABLES
930| INTERN = GT_XLS
931| EXCEPTIONS
932| INCONSISTENT_PARAMETERS = 1
933| UPLOAD_OLE = 2
934| OTHERS = 3.
935|
936| IF SY-SUBRC <> 0.
937| MESSAGE I000 WITH '업로드 실패!! 담당자에게 문의하세요.'.
938| LEAVE LIST-PROCESSING.
939| ENDIF.
```
- **EN**: Reads the Excel file cell by cell (from row 2, skipping the header) into GT_XLS with KCD_EXCEL_OLE_TO_INT_CONVERT and stops with an upload-failed message on error.
- 호출(파서): KCD_EXCEL_OLE_TO_INT_CONVERT
- SAP 객체: KCD_EXCEL_OLE_TO_INT_CONVERT, KCDE_INTERN_STRUC
- 업무 키워드: 엑셀 업로드, OLE, 헤더 제외, 셀 데이터
- English: Excel Upload, KCD_EXCEL_OLE_TO_INT_CONVERT, OLE
- 정의부(복사 시 함께 필요): [`GT_XLS`](#decl-zficom-919-gt_xls)
- 위치: `abap://ZFIR0080/ZFICOM#L922-L939` · confidence 0.9 · `ZFIR0080#ZFICOM#FORM#DATA_UPLOAD_2#C1`
#### [calculation] 셀 데이터를 행·열 순으로 정렬한 뒤 열 번호를 T_LOAD 구조의 컴포넌트에 ASSIGN 해 값을 채우고 행이 끝날 때마다 T_LOAD 에 한 줄씩 추가한다.
```abap
941| SORT GT_XLS BY ROW COL.
942| LOOP AT GT_XLS.
943| ASSIGN COMPONENT GT_XLS-COL OF STRUCTURE T_LOAD TO <FS>.
944| <FS> = GT_XLS-VALUE.
945| AT END OF ROW.
946| APPEND T_LOAD. CLEAR: T_LOAD.
947| ENDAT.
948| ENDLOOP.
```
- **EN**: Sorts cells by row/column, assigns each cell value to the corresponding component of T_LOAD by column index and appends a line at the end of each row.
- 업무 키워드: 행 변환, 컬럼 매핑, 업로드 내역, 필드심볼
- English: Row Mapping, Field Symbol, Internal Table
- 정의부(복사 시 함께 필요): [`GT_XLS`](#decl-zficom-919-gt_xls), [`<FS>`](#decl-zficom-920--fs-)
- 위치: `abap://ZFIR0080/ZFICOM#L941-L948` · confidence 0.9 · `ZFIR0080#ZFICOM#FORM#DATA_UPLOAD_2#C2`
### FORM CONVERT_TO_FOREIGN_CURRENCY — `ZFICOM` L962-L999 (38줄)
*현지통화 금액을 환율·기준일로 외화 금액으로 환산하는 공통 FORM 이다.*
> 이 unit 의 조각 1개가 32/38줄(84%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다.
#### [fm_call] 현지통화 기본값을 설정한 뒤 CONVERT_TO_FOREIGN_CURRENCY 로 현지통화금액(DMBTR)을 환율(KURSF)·기준일 기준 외화금액(WRBTR)으로 환산하고 오류 시 시스템 메시지를 표시한다.
```abap
967| IF T001-WAERS IS INITIAL.
968| T001-WAERS = C_WAERS.
969| ENDIF.
970| CALL FUNCTION 'CONVERT_TO_FOREIGN_CURRENCY'
971| EXPORTING
972| * CLIENT = SY-MANDT
973| DATE = P_DATUM
974| FOREIGN_CURRENCY = P_WAERS
975| LOCAL_AMOUNT = P_DMBTR
976| LOCAL_CURRENCY = T001-WAERS
977| RATE = P_KURSF
978| * TYPE_OF_RATE = 'M'
979| * READ_TCURR = 'X'
980| IMPORTING
981| * EXCHANGE_RATE =
982| FOREIGN_AMOUNT = P_WRBTR
983| * FOREIGN_FACTOR =
984| * LOCAL_FACTOR =
985| * EXCHANGE_RATEX =
986| * DERIVED_RATE_TYPE =
987| * FIXED_RATE =
988| EXCEPTIONS
989| NO_RATE_FOUND = 1
990| OVERFLOW = 2
991| NO_FACTORS_FOUND = 3
992| NO_SPREAD_FOUND = 4
993| DERIVED_2_TIMES = 5
994| OTHERS = 6.
995| IF SY-SUBRC NE 0.
996| MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
997| WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
998| ENDIF.
```
- **EN**: Converts the local currency amount (DMBTR) to the foreign currency amount (WRBTR) via CONVERT_TO_FOREIGN_CURRENCY using rate and date, raising the system message on error.
- 호출(파서): CONVERT_TO_FOREIGN_CURRENCY
- SAP 객체: CONVERT_TO_FOREIGN_CURRENCY, T001, TCURR
- 업무 키워드: 환율, 외화 환산, 현지통화, 전표금액
- English: Foreign Currency, Exchange Rate, Currency Conversion
- 정의부(복사 시 함께 필요): [`T001`](#decl-zficom-11-t001), [`C_WAERS`](#decl-zficom-199-c_waers)
- 위치: `abap://ZFIR0080/ZFICOM#L967-L998` · confidence 0.9 · `ZFIR0080#ZFICOM#FORM#CONVERT_TO_FOREIGN_CURRENCY#C1`
### FORM CONVERT_TO_LOCAL_CURRENCY — `ZFICOM` L1011-L1039 (29줄)
*외화 금액을 환율·기준일로 회사코드 현지통화(T001-WAERS) 금액으로 환산하는 공통 FORM 이다.*
> 이 unit 의 조각 1개가 23/29줄(79%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다.
#### [fm_call] 현지통화가 없으면 기본통화(C_WAERS)를 쓰고 CONVERT_TO_LOCAL_CURRENCY 로 외화금액(WRBTR)·환율(KURSF)·기준일로 현지통화금액(DMBTR)을 계산하며 환율 미존재 등 오류 시 메시지를 띄운다.
```abap
1016| IF T001-WAERS IS INITIAL.
1017| T001-WAERS = C_WAERS.
1018| ENDIF.
1019| CALL FUNCTION 'CONVERT_TO_LOCAL_CURRENCY'
1020| EXPORTING
1021| DATE = P_DATUM
1022| FOREIGN_AMOUNT = P_WRBTR
1023| FOREIGN_CURRENCY = P_WAERS
1024| LOCAL_CURRENCY = T001-WAERS
1025| RATE = P_KURSF
1026| IMPORTING
1027| LOCAL_AMOUNT = P_DMBTR
1028| EXCEPTIONS
1029| NO_RATE_FOUND = 1
1030| OVERFLOW = 2
1031| NO_FACTORS_FOUND = 3
1032| NO_SPREAD_FOUND = 4
1033| DERIVED_2_TIMES = 5
1034| OTHERS = 6.
1035| IF SY-SUBRC NE 0.
1036| MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
1037| WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
1038| ENDIF.
```
- **EN**: Converts the foreign amount to local currency amount (DMBTR) with CONVERT_TO_LOCAL_CURRENCY using the rate and date, defaulting the local currency, and raises the system message on error.
- 호출(파서): CONVERT_TO_LOCAL_CURRENCY
- SAP 객체: CONVERT_TO_LOCAL_CURRENCY, T001, TCURR
- 업무 키워드: 환율, 외화 환산, 현지통화, 전표금액
- English: Local Currency, Exchange Rate, Currency Conversion
- 정의부(복사 시 함께 필요): [`T001`](#decl-zficom-11-t001), [`C_WAERS`](#decl-zficom-199-c_waers)
- 위치: `abap://ZFIR0080/ZFICOM#L1016-L1038` · confidence 0.9 · `ZFIR0080#ZFICOM#FORM#CONVERT_TO_LOCAL_CURRENCY#C1`
### FORM SELECT_USR01 — `ZFICOM` L1084-L1088 (5줄)
*사용자명으로 USR01(사용자 마스터 기본값)을 단건 조회하는 공통 FORM 이다.*
> 이 unit 의 조각 1개가 3/5줄(60%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다.
#### [sql_select] 사용자 ID(P_UNAME)로 USR01 을 단건 조회해 사용자 기본 설정(날짜/숫자 형식 등)을 읽는다.
```abap
1085| SELECT SINGLE *
1086| FROM USR01
1087| WHERE USR01~BNAME EQ P_UNAME.
```
- **EN**: Reads the user master defaults from USR01 for the given user name.
- 테이블(파서): read [USR01](/tables/USR01.md) / write -
- SAP 객체: USR01
- 업무 키워드: 사용자 마스터, 사용자 기본값, 사용자 ID
- English: User Master, USR01
- 정의부(복사 시 함께 필요): [`USR01`](#decl-zficom-41-usr01)
- 위치: `abap://ZFIR0080/ZFICOM#L1085-L1087` · confidence 0.85 · `ZFIR0080#ZFICOM#FORM#SELECT_USR01#C1`
### FORM SMARTFORM_CONTROL — `ZFICOM` L1101-L1138 (38줄)
*Smartform 이름으로 생성 FM 이름을 구하고 미리보기·다이얼로그·프린터 등 출력 옵션(GS_DEVICE/GS_OPTIONS)을 설정한다.*
> 이 unit 의 조각 1개가 29/38줄(76%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다.
#### [fm_call] SSF_FUNCTION_MODULE_NAME 으로 Smartform 의 실행 FM 이름(GV_FNAME)을 구한 뒤 미리보기·NO_DIALOG·OTF·프린터(TDDEST)·즉시출력 등 출력 옵션을 GS_DEVICE/GS_OPTIONS 에 설정한다.
```abap
1108| CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
1109| EXPORTING
1110| FORMNAME = P_FORMNAME
1111| IMPORTING
1112| FM_NAME = GV_FNAME
1113| EXCEPTIONS
1114| NO_FORM = 1
1115| NO_FUNCTION_MODULE = 2
1116| OTHERS = 3.
1117|
1118| IF SY-SUBRC EQ 0.
1119| * Output option appointment (preview screen exception)
1120| GS_DEVICE-PREVIEW = P_PREVIEW.
1121| GS_DEVICE-NO_DIALOG = P_DIALOG.
1122| GS_DEVICE-GETOTF = P_GETOTF.
1123| GS_DEVICE-LANGU = SY-LANGU.
1124| GS_DEVICE-DEVICE = 'PRINTER'.
1125| GS_DEVICE-NO_OPEN = C_X.
1126| GS_DEVICE-NO_CLOSE = C_X.
1127| GS_OPTIONS-TDDEST = P_TDDEST.
1128| GS_OPTIONS-TDIMMED = C_X.
1129| GS_OPTIONS-TDDELETE = C_X.
1130| GS_OPTIONS-TDNEWID = C_X.
1131| * 미리보기버튼
1132| GS_OPTIONS-TDNOPREV = SPACE.
1133| GS_OPTIONS-TDCOVER = SPACE. "C_S.
1134| GS_OPTIONS-TDNOPRINT = P_TDNOPRINT.
1135| * GS_OPTIONS-TDRECEIVER = SY-UNAME.
1136| ENDIF.
```
- **EN**: Gets the generated function module name of the Smart Form via SSF_FUNCTION_MODULE_NAME and fills control parameters (preview, no dialog, OTF) and output options (TDDEST, immediate print).
- 호출(파서): SSF_FUNCTION_MODULE_NAME
- SAP 객체: SSF_FUNCTION_MODULE_NAME, SSFCTRLOP, SSFCOMPOP
- 업무 키워드: 스마트폼, 출력 옵션, 미리보기, 프린터
- English: Smart Forms, Output Options, Control Parameters, Print Preview
- 정의부(복사 시 함께 필요): [`GV_FNAME`](#decl-zficom-98-gv_fname), [`GS_DEVICE`](#decl-zficom-100-gs_device), [`C_X`](#decl-zficom-231-c_x), [`GS_OPTIONS`](#decl-zficom-99-gs_options)
- 위치: `abap://ZFIR0080/ZFICOM#L1108-L1136` · confidence 0.9 · `ZFIR0080#ZFICOM#FORM#SMARTFORM_CONTROL#C1`
### FORM SMARTFORM_OPEN — `ZFICOM` L1144-L1156 (13줄)
*Smartform 출력 작업을 SSF_OPEN 으로 시작하는 공통 FORM 이다.*
> 이 unit 의 조각 1개가 11/13줄(85%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다.
#### [fm_call] GS_DEVICE/GS_OPTIONS 의 출력 옵션으로 SSF_OPEN 을 호출해 Smartform 출력 job 을 연다.
```abap
1145| CALL FUNCTION 'SSF_OPEN'
1146| EXPORTING
1147| CONTROL_PARAMETERS = GS_DEVICE
1148| OUTPUT_OPTIONS = GS_OPTIONS
1149| USER_SETTINGS = SPACE
1150| EXCEPTIONS
1151| FORMATTING_ERROR = 1
1152| INTERNAL_ERROR = 2
1153| SEND_ERROR = 3
1154| USER_CANCELED = 4
1155| OTHERS = 5.
```
- **EN**: Opens a Smart Form print job with SSF_OPEN using the control parameters GS_DEVICE and output options GS_OPTIONS.
- 호출(파서): SSF_OPEN
- SAP 객체: SSF_OPEN
- 업무 키워드: 스마트폼, 출력 시작, 양식 출력
- English: Smart Forms, SSF_OPEN, Output Options
- 정의부(복사 시 함께 필요): [`GS_DEVICE`](#decl-zficom-100-gs_device), [`GS_OPTIONS`](#decl-zficom-99-gs_options)
- 위치: `abap://ZFIR0080/ZFICOM#L1145-L1155` · confidence 0.85 · `ZFIR0080#ZFICOM#FORM#SMARTFORM_OPEN#C1`
### FORM SMARTFORM_CLOSE — `ZFICOM` L1162-L1175 (14줄)
*Smartform 출력 작업을 SSF_CLOSE 로 종료하고 JOB_OUTPUT_INFO 를 받아오는 공통 FORM 이다.*
> 이 unit 의 조각 1개가 12/14줄(86%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다.
#### [fm_call] SSF_CLOSE 로 Smartform 출력 job 을 닫고 출력 결과(GS_JOB_OUTPUT_INFO)를 받으며 오류 시 시스템 메시지를 표시한다.
```abap
1163| CALL FUNCTION 'SSF_CLOSE'
1164| IMPORTING
1165| JOB_OUTPUT_INFO = GS_JOB_OUTPUT_INFO
1166| EXCEPTIONS
1167| FORMATTING_ERROR = 1
1168| INTERNAL_ERROR = 2
1169| SEND_ERROR = 3
1170| OTHERS = 4.
1171| IF SY-SUBRC NE 0.
1172| MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
1173| WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
1174| ENDIF.
```
- **EN**: Closes the Smart Form print job with SSF_CLOSE, retrieves JOB_OUTPUT_INFO and raises the system message on error.
- 호출(파서): SSF_CLOSE
- SAP 객체: SSF_CLOSE
- 업무 키워드: 스마트폼, 출력 종료, 양식 출력
- English: Smart Forms, SSF_CLOSE, Print Job
- 정의부(복사 시 함께 필요): [`GS_JOB_OUTPUT_INFO`](#decl-zficom-102-gs_job_output_info)
- 위치: `abap://ZFIR0080/ZFICOM#L1163-L1174` · confidence 0.85 · `ZFIR0080#ZFICOM#FORM#SMARTFORM_CLOSE#C1`
### FORM DYNPRO — `ZFICOM` L1240-L1251 (12줄)
*BDC 화면 시작 또는 필드값 한 줄을 GT_BDC(BDCDATA) 에 추가하는 공통 BDC 빌더 헬퍼다.*
> 이 unit 의 조각 1개가 9/12줄(75%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다.
#### [interface] P_DYN 이 X 면 모듈풀·화면번호로 BDC 화면 시작 행을, 아니면 필드명·값 행을 GT_BDC(BDCDATA)에 추가한다.
```abap
1242| IF P_DYN EQ C_X.
1243| MOVE : P_NAME TO GT_BDC-PROGRAM, "BDC module pool
1244| P_VALUE TO GT_BDC-DYNPRO, "Screen Number
1245| P_DYN TO GT_BDC-DYNBEGIN. "BDC screen start
1246| ELSE.
1247| MOVE : P_NAME TO GT_BDC-FNAM, "Field Name
1248| P_VALUE TO GT_BDC-FVAL. "BDC field value
1249| ENDIF.
1250| APPEND GT_BDC.
```
- **EN**: Appends either a screen-start row (program, dynpro, DYNBEGIN) or a field/value row to GT_BDC (BDCDATA).
- SAP 객체: BDCDATA
- 업무 키워드: BDC 데이터, 화면 번호, 필드값, 배치인풋
- English: BDCDATA, Batch Input, Dynpro
- 정의부(복사 시 함께 필요): [`C_X`](#decl-zficom-231-c_x), [`GT_BDC`](#decl-zficom-168-gt_bdc)
- 위치: `abap://ZFIR0080/ZFICOM#L1242-L1250` · confidence 0.9 · `ZFIR0080#ZFICOM#FORM#DYNPRO#C1`
### FORM BDC_TRANSACTION — `ZFICOM` L1259-L1266 (8줄)
*GT_BDC 데이터로 지정 T-Code 를 CALL TRANSACTION 하고 결과 메시지를 GT_MESS 에 받는 공통 BDC 실행 FORM 이다.*
> 이 unit 의 조각 1개가 6/8줄(75%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다.
#### [interface] BDC 실행 옵션(표시모드 GV_MODE, 갱신모드 A)을 CTU_PARAMS 에 설정하고 GT_BDC 로 P_TCODE 트랜잭션을 CALL TRANSACTION 해 결과 메시지를 GT_MESS 에 수집한다.
```abap
1260| CTU_PARAMS-DISMODE = GV_MODE.
1261| CTU_PARAMS-UPDMODE = C_A.
1262| * CTU_PARAMS-NOBINPT = C_X.
1263| * CTU_PARAMS-RACOMMIT = C_X.
1264| CALL TRANSACTION P_TCODE USING GT_BDC OPTIONS FROM CTU_PARAMS
1265| MESSAGES INTO GT_MESS.
```
- **EN**: Sets CTU_PARAMS (display mode GV_MODE, sync update) and runs CALL TRANSACTION for P_TCODE with GT_BDC, collecting messages into GT_MESS.
- 호출(파서): P_TCODE
- SAP 객체: BDCDATA, BDCMSGCOLL, CTU_PARAMS
- 업무 키워드: BDC 실행, 트랜잭션 호출, 처리 메시지, 표시모드
- English: Call Transaction, BDC, CTU_PARAMS
- 정의부(복사 시 함께 필요): [`CTU_PARAMS`](#decl-zficom-48-ctu_params), [`GV_MODE`](#decl-zficom-174-gv_mode), [`C_A`](#decl-zficom-208-c_a), [`GT_BDC`](#decl-zficom-168-gt_bdc), [`GT_MESS`](#decl-zficom-172-gt_mess)
- 위치: `abap://ZFIR0080/ZFICOM#L1260-L1265` · confidence 0.9 · `ZFIR0080#ZFICOM#FORM#BDC_TRANSACTION#C1`
### FORM MESSAGE_SELECT — `ZFICOM` L1274-L1285 (12줄)
*BDC 메시지(GT_MESS)의 ID·번호·변수를 MESSAGE_TEXT_BUILD 로 메시지 텍스트로 조립하는 공통 헬퍼다.*
> 이 unit 의 조각 1개가 10/12줄(83%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다.
#### [fm_call] BDC 결과 메시지(GT_MESS)의 MSGID·MSGNR·MSGV1~4 를 MESSAGE_TEXT_BUILD 로 읽을 수 있는 메시지 텍스트로 만들어 로그 필드에 돌려준다.
```abap
1275| CALL FUNCTION 'MESSAGE_TEXT_BUILD'
1276| EXPORTING
1277| MSGID = GT_MESS-MSGID
1278| MSGNR = GT_MESS-MSGNR
1279| MSGV1 = GT_MESS-MSGV1
1280| MSGV2 = GT_MESS-MSGV2
1281| MSGV3 = GT_MESS-MSGV3
1282| MSGV4 = GT_MESS-MSGV4
1283| IMPORTING
1284| MESSAGE_TEXT_OUTPUT = P_NATXT.
```
- **EN**: Builds the readable message text from the BDC message fields (MSGID, MSGNR, MSGV1-4) in GT_MESS using MESSAGE_TEXT_BUILD.
- 호출(파서): MESSAGE_TEXT_BUILD
- SAP 객체: MESSAGE_TEXT_BUILD, BDCMSGCOLL
- 업무 키워드: BDC 메시지, 메시지 텍스트, 처리 로그
- English: BDC Message, MESSAGE_TEXT_BUILD, Message Log
- 정의부(복사 시 함께 필요): [`GT_MESS`](#decl-zficom-172-gt_mess)
- 위치: `abap://ZFIR0080/ZFICOM#L1275-L1284` · confidence 0.9 · `ZFIR0080#ZFICOM#FORM#MESSAGE_SELECT#C1`
### FORM BDC_FK03 — `ZFICOM` L1294-L1318 (25줄)
*구매처코드와 회사코드로 FK03 구매처 마스터 조회 화면을 BDC 로 호출한다.*
> 이 unit 의 조각 1개가 18/25줄(72%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다.
#### [interface] SAPMF02K 0106 화면에 구매처·회사코드와 조회 뷰 플래그를 BDC 로 채우고 CALL TRANSACTION FK03 으로 구매처 마스터를 표시한다.
```abap
1299| PERFORM DYNPRO USING :
1300| 'X' 'SAPMF02K' '0106',
1301| ' ' 'BDC_OKCODE' '/00',
1302| ' ' 'RF02K-LIFNR' P_LIFNR,
1303| ' ' 'RF02K-BUKRS' P_BUKRS,
1304| ' ' 'RF02K-D0110' C_X,
1305| ' ' 'RF02K-D0120' C_X,
1306| ' ' 'RF02K-D0130' C_X,
1307| ' ' 'RF02K-D0210' C_X,
1308| ' ' 'RF02K-D0215' C_X,
1309| ' ' 'RF02K-D0215' C_X,
1310| ' ' 'RF02K-D0610' C_X.
1311|
1312| CTU_PARAMS-DISMODE = C_E.
1313| CTU_PARAMS-UPDMODE = C_A.
1314| CTU_PARAMS-NOBINPT = C_X.
1315| CTU_PARAMS-RACOMMIT = C_X.
1316| CALL TRANSACTION 'FK03' USING GT_BDC OPTIONS FROM CTU_PARAMS.
```
- **EN**: Builds BDC data for screen SAPMF02K 0106 (vendor, company code, view flags) and calls transaction FK03 to display the vendor master.
- 호출(파서): DYNPRO, DYNPRO, DYNPRO, DYNPRO, DYNPRO, DYNPRO, DYNPRO, DYNPRO, DYNPRO, DYNPRO, DYNPRO, FK03
- SAP 객체: FK03, SAPMF02K, LFA1
- 업무 키워드: 구매처 조회, 구매처 마스터, BDC, 회사코드
- English: Vendor Master, BDC, Call Transaction
- 정의부(복사 시 함께 필요): [`P_BUKRS`](#decl-zfir0080top-95-p_bukrs), [`C_X`](#decl-zficom-231-c_x), [`CTU_PARAMS`](#decl-zficom-48-ctu_params), [`C_E`](#decl-zficom-212-c_e), [`C_A`](#decl-zficom-208-c_a), [`GT_BDC`](#decl-zficom-168-gt_bdc)
- 위치: `abap://ZFIR0080/ZFICOM#L1299-L1316` · confidence 0.9 · `ZFIR0080#ZFICOM#FORM#BDC_FK03#C1`
### FORM CALL_TRANSACTION_FB03 — `ZFICOM` L1328-L1336 (9줄)
*회사코드·전표번호·회계연도를 파라미터 ID 로 넘겨 FB03 회계전표 조회 화면을 호출한다.*
> 이 unit 의 조각 1개가 5/9줄(56%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다.
#### [control_flow] 전표번호가 있으면 SET PARAMETER ID(BLN/BUK/GJR) 로 키를 넘기고 FB03 트랜잭션을 첫 화면 건너뛰기로 호출해 회계전표를 조회한다.
```abap
1331| CHECK P_BELNR IS NOT INITIAL.
1332| SET PARAMETER ID 'BLN' FIELD P_BELNR.
1333| SET PARAMETER ID 'BUK' FIELD P_BUKRS.
1334| SET PARAMETER ID 'GJR' FIELD P_GJAHR.
1335| CALL TRANSACTION 'FB03' AND SKIP FIRST SCREEN.
```
- **EN**: Sets parameter IDs BLN/BUK/GJR and calls transaction FB03 with SKIP FIRST SCREEN to display the accounting document.
- 호출(파서): FB03
- SAP 객체: FB03, BKPF
- 업무 키워드: 회계전표 조회, 전표번호, 회사코드, 회계연도
- English: Accounting Document, Display Document, FB03
- 정의부(복사 시 함께 필요): [`P_BUKRS`](#decl-zfir0080top-95-p_bukrs)
- 위치: `abap://ZFIR0080/ZFICOM#L1331-L1335` · confidence 0.95 · `ZFIR0080#ZFICOM#FORM#CALL_TRANSACTION_FB03#C1`
### FORM STATUS_BAR — `ZFICOM` L1345-L1366 (22줄)
*처리 진행률을 계산해 SAPGUI 상태바에 진행 상황 텍스트를 표시하는 공통 유틸리티다.*
> 이 unit 의 조각 1개가 16/22줄(73%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다.
#### [fm_call] 텍스트가 없으면 GV_INDEX/GV_TABIN 으로 진행률(%)을 계산해 SAPGUI_PROGRESS_INDICATOR 로 상태바에 처리 진행 상황을 표시한다.
```abap
1350| IF P_TXT EQ SPACE.
1351| GV_INDEX = GV_INDEX + 1.
1352| GV_KBETR = GV_INDEX / GV_TABIN * 100.
1353| CONCATENATE GV_INDEX '/' GV_TABIN '=====>' GV_KBETR '% Processing...'
1354| INTO LV_TEXT SEPARATED BY SPACE.
1355| CONDENSE GV_KBETR.
1356| LV_PCEN = GV_KBETR.
1357| ELSE.
1358| LV_TEXT = P_TXT.
1359| LV_PCEN = P_PCT.
1360| ENDIF.
1361|
1362| CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
1363| EXPORTING
1364| PERCENTAGE = LV_PCEN
1365| TEXT = LV_TEXT.
```
- **EN**: Calculates the processing percentage from GV_INDEX/GV_TABIN and shows a progress indicator via SAPGUI_PROGRESS_INDICATOR.
- 호출(파서): SAPGUI_PROGRESS_INDICATOR
- SAP 객체: SAPGUI_PROGRESS_INDICATOR
- 업무 키워드: 진행률, 상태바, 처리건수, 진행표시
- English: Progress Indicator, Status Bar
- 정의부(복사 시 함께 필요): [`GV_INDEX`](#decl-zficom-82-gv_index), [`GV_KBETR`](#decl-zficom-83-gv_kbetr), [`GV_TABIN`](#decl-zficom-81-gv_tabin), [`LV_TEXT`](#decl-zficom-1347-lv_text), [`LV_PCEN`](#decl-zficom-1348-lv_pcen)
- 위치: `abap://ZFIR0080/ZFICOM#L1350-L1365` · confidence 0.9 · `ZFIR0080#ZFICOM#FORM#STATUS_BAR#C1`
### FORM HOTSPOT_CLICK — `ZFIR0080F01` L507-L529 (23줄)
*ALV 핫스팟 클릭 시 고객코드(KUNNR)는 FD03 고객마스터 조회로, 전표번호(BELNR)는 FB03 전표 조회로 이동한다.*
> 이 unit 의 조각 1개가 18/23줄(78%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다.
#### [interface] 클릭한 행의 컬럼이 KUNNR 이면 파라미터 KUN/BUK 를 설정해 FD03 으로 고객 마스터를, BELNR 이면 BLN/BUK/GJR 을 설정해 FB03 으로 회계전표를 조회한다.
```abap
510| READ TABLE GT_DATA INDEX P_ROW_ID-INDEX.
511| CHECK SY-SUBRC EQ 0.
512|
513| CASE P_COLUMN_ID.
514| * 고객코드
515| WHEN 'KUNNR'.
516| CHECK GT_DATA-KUNNR IS NOT INITIAL.
517| SET PARAMETER ID 'KUN' FIELD GT_DATA-KUNNR.
518| SET PARAMETER ID 'BUK' FIELD P_BUKRS.
519| CALL TRANSACTION 'FD03' AND SKIP FIRST SCREEN.
520| * 전표번호
521| WHEN 'BELNR'.
522| CHECK GT_DATA-BELNR IS NOT INITIAL.
523| SET PARAMETER ID 'BLN' FIELD GT_DATA-BELNR.
524| SET PARAMETER ID 'BUK' FIELD P_BUKRS.
525| SET PARAMETER ID 'GJR' FIELD GT_DATA-GJAHR.
526| CALL TRANSACTION 'FB03' AND SKIP FIRST SCREEN.
527| ENDCASE.
```
- **EN**: On hotspot click set parameter IDs and call FD03 to display the customer master for KUNNR or FB03 to display the accounting document for BELNR.
- 호출(파서): FD03, FB03
- SAP 객체: FD03, FB03
- 업무 키워드: 핫스팟, 고객 마스터 조회, 전표 조회, 파라미터 ID
- English: Hotspot, FD03, FB03, SET PARAMETER
- 정의부(복사 시 함께 필요): [`GT_DATA`](#decl-zfir0080top-13-gt_data), [`P_BUKRS`](#decl-zfir0080top-95-p_bukrs)
- 위치: `abap://ZFIR0080/ZFIR0080F01#L510-L527` · confidence 0.9 · `ZFIR0080#ZFIR0080F01#FORM#HOTSPOT_CLICK#C1`
### FORM ALV_GRID_DISPLAY — `ZFIR0080F01` L339-L354 (16줄)
*필드카탈로그를 만들고 GT_DATA(업로드된 계정과목 목록)를 CL_GUI_ALV_GRID 로 화면 0100 에 출력한다.*
> 이 unit 의 조각 1개가 14/16줄(88%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다.
#### [output] 필드카탈로그 생성 후 SET_TABLE_FOR_FIRST_DISPLAY 로 업로드된 계정과목 목록 GT_DATA 를 레이아웃·변형·툴바 제외 설정과 함께 ALV 그리드에 표시한다.
```abap
340| PERFORM SET_FIELD_CATALOGS.
341| * Report Display.
342| GV_VARI-REPORT = SY-REPID.
343| CALL METHOD GV_ALV_GRID->SET_TABLE_FOR_FIRST_DISPLAY
344| EXPORTING
345| I_STRUCTURE_NAME = 'GT_DATA'
346| IT_TOOLBAR_EXCLUDING = GT_EXCLUDE
347| IS_LAYOUT = GV_LAYO
348| IS_VARIANT = GV_VARI
349| I_BUFFER_ACTIVE = C_X
350| I_SAVE = C_A
351| CHANGING
352| IT_OUTTAB = GT_DATA[]
353| IT_FIELDCATALOG = GT_FCAT_HEAD[].
```
- **EN**: Builds the field catalog and displays the uploaded G/L account list GT_DATA in the ALV grid via SET_TABLE_FOR_FIRST_DISPLAY with layout, variant and toolbar exclusions.
- 호출(파서): SET_FIELD_CATALOGS, GV_ALV_GRID->SET_TABLE_FOR_FIRST_DISPLAY
- SAP 객체: CL_GUI_ALV_GRID
- 업무 키워드: ALV 출력, 계정과목 목록, 업로드 내역 확인
- English: ALV Grid, SET_TABLE_FOR_FIRST_DISPLAY, G/L Account
- 정의부(복사 시 함께 필요): [`GV_VARI`](#decl-zfir0080top-83-gv_vari), [`GV_ALV_GRID`](#decl-zfir0080top-81-gv_alv_grid), [`GT_EXCLUDE`](#decl-zfialv-102-gt_exclude), [`GV_LAYO`](#decl-zfir0080top-82-gv_layo), [`C_X`](#decl-zficom-231-c_x), [`C_A`](#decl-zficom-208-c_a), [`GT_DATA`](#decl-zfir0080top-13-gt_data), [`GT_FCAT_HEAD`](#decl-zfialv-81-gt_fcat_head)
- 위치: `abap://ZFIR0080/ZFIR0080F01#L340-L353` · confidence 0.85 · `ZFIR0080#ZFIR0080F01#FORM#ALV_GRID_DISPLAY#C1`
### FORM POSTING_DOCUMET — `ZFIR0080F01` L538-L675 (138줄)
*사용자 확인 후 인사정보 I/F 내역(GT_DATA)으로 FBV1 전표 헤더·아이템(BBKPF/BBSEG)을 구성해 Z_FI_DOCUMENT_POSTING 으로 전표를 생성하고 결과(전표번호·상태·오류메시지)를 GT_DATA 와 ZFIT0130 에 기록한다.*
> 이 unit 의 조각 3개가 113/138줄(82%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다.
#### [calculation] 전기 확인 팝업(CHECK_CONFIRM_STEP) 승인 후 헤더 행(HCHK)에서 FBV1 전표 헤더(전표일·전기일·전표유형·회사코드·통화·'YYYY년MM월/내역명' 헤더텍스트)를 만들고, 각 라인은 차변(SHKZG='S')이면 전기키 40+차변계정+코스트센터, 대변이면 전기키 50+대변계정으로 하며 외화면 전표통화금액·원화금액을 함께 설정하고 손익센터를 넣어 BBSEG 를 구성한다.
```abap
555| PERFORM CHECK_CONFIRM_STEP USING TEXT-001 TEXT-002 SPACE C_N.
556| CHECK GF_ANSWER EQ C_J.
557| CLEAR: GT_Z0130_S[], GT_Z0130_S,
558| GT_BBKPF[], GT_BBKPF, GT_BBSEG[], GT_BBSEG.
559| LOOP AT GT_DATA.
560| IF GT_DATA-HCHK EQ C_X.
561| * 전표 헤더정보
562| GT_BBKPF-TCODE = 'FBV1'.
563| GT_BBKPF-BLDAT = GT_DATA-BUDAT.
564| GT_BBKPF-BUDAT = GT_DATA-BUDAT.
565| GT_BBKPF-BLART = C_BLART.
566| GT_BBKPF-BUKRS = P_BUKRS.
567| GT_BBKPF-WAERS = GT_DATA-WAERS.
568| * YYYY년MM월 / 내역명
569| CONCATENATE GT_DATA-GJAHR '년' GT_DATA-SPMON+4(2) '월'
570| INTO GT_BBKPF-BKTXT.
571| CONCATENATE GT_BBKPF-BKTXT '/' GT_DATA-PGUBN_T
572| INTO GT_BBKPF-BKTXT SEPARATED BY SPACE.
573|
574| APPEND GT_BBKPF.
575| ENDIF.
576|
577| * 전표 아이템
578| CLEAR GT_BBSEG.
579| IF GT_DATA-SHKZG EQ C_S.
580| GT_BBSEG-NEWBS = '40'. "전기키
581| GT_BBSEG-NEWKO = GT_DATA-HKONT_S. "계정
582| GT_BBSEG-KOSTL = GT_DATA-KOSTL. "코스트센터
583| ELSE.
584| GT_BBSEG-NEWBS = '50'. "전기키
585| GT_BBSEG-NEWKO = GT_DATA-HKONT_H. "계정
586| ENDIF.
587| IF GT_DATA-WAERS EQ T001-WAERS.
588| GT_BBSEG-WRBTR = GT_DATA-DMBTR. "금액
589| ELSE.
590| GT_BBSEG-WRBTR = GT_DATA-WRBTR. "금액
591| GT_BBSEG-DMBTR = GT_DATA-DMBTR. "원화금액
592| ENDIF.
593|
594| GT_BBSEG-PRCTR = GT_DATA-PRCTR.
595|
596| APPEND GT_BBSEG. CLEAR GT_BBSEG.
597|
598| ENDLOOP.
```
- **EN**: After user confirmation build the FBV1 batch-input header (dates, document type, company code, currency, header text 'YYYY MM / description') from the header row and, per line, the BBSEG item with posting key 40 and debit account plus cost center for debit lines or 50 and credit account for credit lines, foreign/local amounts and profit center.
- 호출(파서): CHECK_CONFIRM_STEP
- SAP 객체: FBV1, BBKPF, BBSEG, T001
- 업무 키워드: 급여 전표 생성, 전표 헤더, 전기키, 차변/대변 계정, 코스트센터, 손익센터, 외화 금액
- English: Batch Input, BBKPF, BBSEG, Posting Key, Profit Center, Cost Center, FBV1
- 정의부(복사 시 함께 필요): [`C_N`](#decl-zficom-221-c_n), [`GF_ANSWER`](#decl-zficom-90-gf_answer), [`C_J`](#decl-zficom-217-c_j), [`GT_Z0130_S`](#decl-zfir0080top-40-gt_z0130_s), [`GT_BBKPF`](#decl-zficom-108-gt_bbkpf), [`GT_BBSEG`](#decl-zficom-109-gt_bbseg), [`GT_DATA`](#decl-zfir0080top-13-gt_data), [`C_X`](#decl-zficom-231-c_x), [`C_BLART`](#decl-zfir0080top-88-c_blart), [`P_BUKRS`](#decl-zfir0080top-95-p_bukrs), [`C_S`](#decl-zficom-226-c_s), [`T001`](#decl-zficom-11-t001)
- 위치: `abap://ZFIR0080/ZFIR0080F01#L555-L598` · confidence 0.85 · `ZFIR0080#ZFIR0080F01#FORM#POSTING_DOCUMET#C1`
#### [fm_call] Z_FI_DOCUMENT_POSTING 으로 BDC 전표를 생성하고 전표번호가 돌아오면 성공 상태(S, 초록불)로, 실패면 오류(E, 빨간불)로 표시하며 메시지 테이블에서 E/A 타입 메시지를 찾아 MESSAGE_TEXT_BUILD 로 오류 텍스트를 만들고 처리 일시·사용자를 GT_DATA 에 기록한다.
```abap
604| CALL FUNCTION 'Z_FI_DOCUMENT_POSTING'
605| EXPORTING
606| I_BDC_MODE = GV_MODE
607| I_MESSAGE = SPACE
608| IMPORTING
609| E_BELNR = GV_BELNR
610| E_GJAHR = GV_GJAHR
611| E_BUKRS = GV_BUKRS
612| TABLES
613| T_BBKPF = GT_BBKPF
614| T_BBSEG = GT_BBSEG
615| T_MESSTAB = GT_FIMSG.
616|
617| IF GV_BELNR NE SPACE.
618| GT_DATA-BELNR = GV_BELNR.
619| GT_DATA-STATS = C_S.
620| GT_DATA-CICON = ICON_GREEN_LIGHT.
621| CLEAR GT_DATA-MESSG.
622| GV_HIDE = C_X.
623| ELSE.
624| GT_DATA-STATS = C_E.
625| GT_DATA-CICON = ICON_RED_LIGHT.
626| READ TABLE GT_FIMSG WITH KEY MSGTY = C_E. "에러
627| IF SY-SUBRC <> 0.
628| READ TABLE GT_FIMSG WITH KEY MSGTY = C_A. "AVEND
629| ENDIF.
630| IF GT_FIMSG IS INITIAL.
631| * 메시지 타입이 정상이면서 에러인 건이 있는지 확인
632| DESCRIBE TABLE GT_MESS LINES GV_INDEX.
633| READ TABLE GT_MESS INDEX GV_INDEX.
634| IF SY-SUBRC EQ 0.
635| CALL FUNCTION 'MESSAGE_TEXT_BUILD'
636| EXPORTING
637| MSGID = GT_FIMSG-MSGID
638| MSGNR = GT_FIMSG-MSGNO
639| MSGV1 = GT_FIMSG-MSGV1
640| MSGV2 = GT_FIMSG-MSGV2
641| MSGV3 = GT_FIMSG-MSGV3
642| MSGV4 = GT_FIMSG-MSGV4
643| IMPORTING
644| MESSAGE_TEXT_OUTPUT = GT_DATA-MESSG.
645| ENDIF.
646| ELSE.
647| CALL FUNCTION 'MESSAGE_TEXT_BUILD'
648| EXPORTING
649| MSGID = GT_FIMSG-MSGID
650| MSGNR = GT_FIMSG-MSGNO
651| MSGV1 = GT_FIMSG-MSGV1
652| MSGV2 = GT_FIMSG-MSGV2
653| MSGV3 = GT_FIMSG-MSGV3
654| MSGV4 = GT_FIMSG-MSGV4
655| IMPORTING
656| MESSAGE_TEXT_OUTPUT = GT_DATA-MESSG.
657| ENDIF.
658| ENDIF.
659| GT_DATA-UDATE = SY-DATUM.
660| GT_DATA-UTIME = SY-UZEIT.
661| GT_DATA-UNAME = SY-UNAME.
662|
663| MODIFY GT_DATA TRANSPORTING BELNR STATS MESSG CICON
664| UDATE UTIME UNAME
665| WHERE BELNR EQ SPACE.
```
- **EN**: Call Z_FI_DOCUMENT_POSTING to post the document via BDC; on success store the document number with status S and a green icon, otherwise status E with a red icon and an error text built by MESSAGE_TEXT_BUILD from the E/A message, then stamp date, time and user into GT_DATA.
- 테이블(파서): read - / write [GT_DATA](/tables/GT_DATA.md)
- 호출(파서): Z_FI_DOCUMENT_POSTING, MESSAGE_TEXT_BUILD, MESSAGE_TEXT_BUILD
- SAP 객체: Z_FI_DOCUMENT_POSTING, MESSAGE_TEXT_BUILD
- 업무 키워드: 전표 전기, BDC 전표 생성, 전기 결과, 오류 메시지, 상태 아이콘
- English: Document Posting, BDC, Message Text, Posting Result, Z_FI_DOCUMENT_POSTING
- 정의부(복사 시 함께 필요): [`GV_MODE`](#decl-zficom-174-gv_mode), [`GV_BELNR`](#decl-zficom-104-gv_belnr), [`GV_GJAHR`](#decl-zficom-106-gv_gjahr), [`GV_BUKRS`](#decl-zficom-105-gv_bukrs), [`GT_BBKPF`](#decl-zficom-108-gt_bbkpf), [`GT_BBSEG`](#decl-zficom-109-gt_bbseg), [`GT_FIMSG`](#decl-zficom-115-gt_fimsg), [`GT_DATA`](#decl-zfir0080top-13-gt_data), [`C_S`](#decl-zficom-226-c_s), [`GV_HIDE`](#decl-zfir0080top-77-gv_hide), [`C_X`](#decl-zficom-231-c_x), [`C_E`](#decl-zficom-212-c_e) 외 3건
- 위치: `abap://ZFIR0080/ZFIR0080F01#L604-L665` · confidence 0.9 · `ZFIR0080#ZFIR0080F01#FORM#POSTING_DOCUMET#C2`
#### [db_write] 전기 결과가 반영된 인사정보 I/F 내역을 CBO 테이블 ZFIT0130 에 MODIFY 로 저장해 전표번호·상태·메시지 이력을 남긴다.
```abap
667| LOOP AT GT_DATA.
668| MOVE-CORRESPONDING GT_DATA TO GT_Z0130_S.
669| APPEND GT_Z0130_S. CLEAR GT_Z0130_S.
670| ENDLOOP.
671| IF GT_Z0130_S[] IS NOT INITIAL.
672| MODIFY ZFIT0130 FROM TABLE GT_Z0130_S.
673| ENDIF.
```
- **EN**: Write the processed interface records with document number, status and message back to the CBO table ZFIT0130 via MODIFY.
- 테이블(파서): read - / write [ZFIT0130](/tables/ZFIT0130.md)
- SAP 객체: ZFIT0130
- 업무 키워드: 처리 결과 저장, 인사정보 I/F 이력, CBO 테이블
- English: ZFIT0130, MODIFY, Interface History
- 정의부(복사 시 함께 필요): [`GT_DATA`](#decl-zfir0080top-13-gt_data), [`GT_Z0130_S`](#decl-zfir0080top-40-gt_z0130_s)
- 위치: `abap://ZFIR0080/ZFIR0080F01#L667-L673` · confidence 0.9 · `ZFIR0080#ZFIR0080F01#FORM#POSTING_DOCUMET#C3`
### MODULE USER_COMMAND_0100 INPUT — `ZFIR0080I01` L9-L17 (9줄)
*화면 0100 PAI 에서 POST 기능코드일 때 POSTING_DOCUMET 을 호출해 인사정보 전표를 생성하는 사용자 명령 MODULE 이다.*
> 이 unit 의 조각 1개가 6/9줄(67%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다.
#### [control_flow] 사용자 명령이 POST(전표 생성)이면 POSTING_DOCUMET 을 수행해 인사정보 I/F 내역으로 회계전표를 전기한다.
```abap
11| GV_UCOMM = SY-UCOMM.
12| CASE GV_UCOMM.
13| * 전표 생성
14| WHEN 'POST'.
15| PERFORM POSTING_DOCUMET.
16| ENDCASE.
```
- **EN**: Dispatch the POST user command to POSTING_DOCUMET, which posts the FI document for the HR interface data.
- 호출(파서): POSTING_DOCUMET
- 업무 키워드: 전표 생성, 사용자 명령, 전기
- English: User Command, Document Posting, PAI
- 정의부(복사 시 함께 필요): [`GV_UCOMM`](#decl-zficom-71-gv_ucomm)
- 위치: `abap://ZFIR0080/ZFIR0080I01#L11-L16` · confidence 0.8 · `ZFIR0080#ZFIR0080I01#MODULE#USER_COMMAND_0100_INPUT#C1`
## 정의부 (307건)
로직 조각을 다른 프로그램으로 옮겨 붙일 때 **함께 가야 하는 선언**이다. 조각별로 무엇이 필요한지는 위 조각 항목의 `정의부` 줄에 있고(이름을 누르면 여기로 온다), 붙여넣기용으로 의존까지 묶은 코드는 `GET /chunks/<chunk_id>``declaration_code` 로 받는다.
### `ZFIALV` (76건)
#### SLIS — type-pool · L7-L7 {#decl-zfialv-7-slis}
```abap
TYPE-POOLS : SLIS.
```
#### LCL_EVENT_RECEIVER — class · L10-L20 {#decl-zfialv-10-lcl_event_receiver}
```abap
CLASS LCL_EVENT_RECEIVER DEFINITION.
PUBLIC SECTION.
METHODS :
HANDLE_CLOSE
FOR EVENT CLOSE OF CL_GUI_DIALOGBOX_CONTAINER
IMPORTING SENDER.
PRIVATE SECTION.
* 'X': does exist, SPACE: does not ex.
DATA : DIALOGBOX_STATUS TYPE C.
ENDCLASS. "lcl_event_receiver DEFINITION
```
#### GT_FIELDCAT — data · L37-L37 {#decl-zfialv-37-gt_fieldcat}
```abap
DATA : GT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV. " WA
```
#### GT_FIELDCAT_HEAD — data · L38-L38 {#decl-zfialv-38-gt_fieldcat_head}
```abap
DATA:
GT_FIELDCAT_HEAD TYPE SLIS_T_FIELDCAT_ALV. " HEAD
```
#### GT_FIELDCAT_ITEM — data · L39-L39 {#decl-zfialv-39-gt_fieldcat_item}
```abap
DATA:
GT_FIELDCAT_ITEM TYPE SLIS_T_FIELDCAT_ALV. " ITEM
```
#### GT_FIELDCAT_FIELD — data · L40-L40 {#decl-zfialv-40-gt_fieldcat_field}
```abap
DATA:
GT_FIELDCAT_FIELD TYPE SLIS_T_FIELDCAT_ALV.
```
#### GT_DROP — data · L41-L41 {#decl-zfialv-41-gt_drop}
```abap
DATA:
GT_DROP TYPE LVC_T_DROP. " Drop-down
```
#### GT_DRAL — data · L42-L42 {#decl-zfialv-42-gt_dral}
```abap
DATA:
GT_DRAL TYPE LVC_T_DRAL.
```
#### GT_SORTINFO — data · L43-L43 {#decl-zfialv-43-gt_sortinfo}
```abap
DATA:
GT_SORTINFO TYPE SLIS_T_SORTINFO_ALV. " SORT
```
#### GT_EVENT — data · L44-L44 {#decl-zfialv-44-gt_event}
```abap
DATA:
GT_EVENT TYPE SLIS_T_EVENT. " EVENT
```
#### GT_PRINT — data · L45-L45 {#decl-zfialv-45-gt_print}
```abap
DATA:
GT_PRINT TYPE SLIS_PRINT_ALV. " PRINT
```
#### GT_LISTHEADER — data · L46-L46 {#decl-zfialv-46-gt_listheader}
```abap
DATA:
GT_LISTHEADER TYPE SLIS_T_LISTHEADER. " TITLE
```
#### GT_CELLTAB — data · L47-L47 {#decl-zfialv-47-gt_celltab}
```abap
DATA:
GT_CELLTAB TYPE LVC_T_STYL.
```
#### GT_COLOR — data · L48-L48 {#decl-zfialv-48-gt_color}
```abap
DATA:
GT_COLOR TYPE LVC_T_SCOL.
```
#### GT_COLINFO — data · L49-L49 {#decl-zfialv-49-gt_colinfo}
```abap
DATA:
GT_COLINFO TYPE SLIS_T_SPECIALCOL_ALV WITH HEADER LINE.
```
#### GS_FIELDCAT_HEAD — data · L51-L51 {#decl-zfialv-51-gs_fieldcat_head}
```abap
DATA : GS_FIELDCAT_HEAD TYPE SLIS_FIELDCAT_ALV. " HEAD
```
#### GS_FIELDCAT_ITEM — data · L52-L52 {#decl-zfialv-52-gs_fieldcat_item}
```abap
DATA:
GS_FIELDCAT_ITEM TYPE SLIS_FIELDCAT_ALV. " ITEM
```
#### GS_DROP — data · L53-L53 {#decl-zfialv-53-gs_drop}
```abap
DATA:
GS_DROP TYPE LVC_S_DROP. " Drop-down
```
#### GS_DRAL — data · L54-L54 {#decl-zfialv-54-gs_dral}
```abap
DATA:
GS_DRAL TYPE LVC_S_DRAL.
```
#### GS_SORTINFO — data · L55-L55 {#decl-zfialv-55-gs_sortinfo}
```abap
DATA:
GS_SORTINFO TYPE SLIS_SORTINFO_ALV. " SORT
```
#### GS_EVENT — data · L56-L56 {#decl-zfialv-56-gs_event}
```abap
DATA:
GS_EVENT LIKE LINE OF GT_EVENT. " EVENT
```
#### GS_VARIANT — data · L57-L57 {#decl-zfialv-57-gs_variant}
```abap
DATA:
GS_VARIANT LIKE DISVARIANT. " Layout
```
#### GS_DEF_VARIANT — data · L58-L58 {#decl-zfialv-58-gs_def_variant}
```abap
DATA:
GS_DEF_VARIANT LIKE DISVARIANT. " Default Layout
```
#### GS_LAYOUT — data · L59-L59 {#decl-zfialv-59-gs_layout}
```abap
DATA:
GS_LAYOUT TYPE SLIS_LAYOUT_ALV. " Layout
```
#### GS_EXIT_BY_USER — data · L60-L60 {#decl-zfialv-60-gs_exit_by_user}
```abap
DATA:
GS_EXIT_BY_USER TYPE SLIS_EXIT_BY_USER.
```
#### GS_LISTHEADER — data · L61-L61 {#decl-zfialv-61-gs_listheader}
```abap
DATA:
GS_LISTHEADER TYPE SLIS_LISTHEADER. " TITLE
```
#### GS_KEYINFO — data · L62-L62 {#decl-zfialv-62-gs_keyinfo}
```abap
DATA:
GS_KEYINFO TYPE SLIS_KEYINFO_ALV.
```
#### GS_CELLTAB — data · L63-L63 {#decl-zfialv-63-gs_celltab}
```abap
DATA:
GS_CELLTAB TYPE LVC_S_STYL.
```
#### GS_COLOR — data · L64-L64 {#decl-zfialv-64-gs_color}
```abap
DATA:
GS_COLOR TYPE LVC_S_SCOL.
```
#### GS_GRIDSET — data · L65-L65 {#decl-zfialv-65-gs_gridset}
```abap
DATA:
GS_GRIDSET TYPE LVC_S_GLAY. " GRID SETTING
```
#### GV_REPID — data · L67-L67 {#decl-zfialv-67-gv_repid}
```abap
DATA : GV_REPID TYPE SY-REPID. " Program-ID.
```
#### GV_PROGRAM — data · L68-L68 {#decl-zfialv-68-gv_program}
```abap
DATA:
GV_PROGRAM LIKE SY-REPID. " Program-ID
```
#### GV_INCLNAME — data · L69-L69 {#decl-zfialv-69-gv_inclname}
```abap
DATA:
GV_INCLNAME LIKE SY-REPID.
```
#### GV_GRID_TITLE — data · L70-L70 {#decl-zfialv-70-gv_grid_title}
```abap
DATA:
GV_GRID_TITLE TYPE LVC_TITLE. " GRID TITLE
```
#### GV_VARIANT_EXIT — data · L71-L71 {#decl-zfialv-71-gv_variant_exit}
```abap
DATA:
GV_VARIANT_EXIT(1) TYPE C.
```
#### GV_SAVE — data · L72-L72 {#decl-zfialv-72-gv_save}
```abap
DATA:
GV_SAVE(1) TYPE C.
```
#### GV_TABNAME_HEAD — data · L73-L73 {#decl-zfialv-73-gv_tabname_head}
```abap
DATA:
GV_TABNAME_HEAD TYPE SLIS_TABNAME.
```
#### GV_TABNAME_ITEM — data · L74-L74 {#decl-zfialv-74-gv_tabname_item}
```abap
DATA:
GV_TABNAME_ITEM TYPE SLIS_TABNAME.
```
#### GV_PF_STATUS — data · L75-L75 {#decl-zfialv-75-gv_pf_status}
```abap
DATA:
GV_PF_STATUS TYPE SLIS_FORMNAME VALUE 'SET_STATUS'.
```
#### GV_USER_COMMAND — data · L76-L76 {#decl-zfialv-76-gv_user_command}
```abap
DATA:
GV_USER_COMMAND TYPE SLIS_FORMNAME VALUE 'USER_COMMAND'.
```
#### GV_DATA_CHANGED — data · L77-L77 {#decl-zfialv-77-gv_data_changed}
```abap
DATA:
GV_DATA_CHANGED TYPE SLIS_FORMNAME VALUE 'ALV_DATA_CHANGED'.
```
#### GV_TOP_OF_PAGE — data · L78-L78 {#decl-zfialv-78-gv_top_of_page}
```abap
DATA:
GV_TOP_OF_PAGE TYPE SLIS_FORMNAME.
```
#### GV_F2CODE — data · L79-L79 {#decl-zfialv-79-gv_f2code}
```abap
DATA:
GV_F2CODE LIKE SY-UCOMM VALUE 'PICK'.
```
#### GT_FCAT_HEAD — data · L81-L81 {#decl-zfialv-81-gt_fcat_head}
```abap
DATA : GT_FCAT_HEAD TYPE LVC_T_FCAT.
```
#### GT_FCAT_ITEM — data · L82-L82 {#decl-zfialv-82-gt_fcat_item}
```abap
DATA:
GT_FCAT_ITEM TYPE LVC_T_FCAT.
```
#### GS_FCAT_HEAD — data · L83-L83 {#decl-zfialv-83-gs_fcat_head}
```abap
DATA:
GS_FCAT_HEAD TYPE LVC_S_FCAT.
```
#### GS_FCAT_ITEM — data · L84-L84 {#decl-zfialv-84-gs_fcat_item}
```abap
DATA:
GS_FCAT_ITEM TYPE LVC_S_FCAT.
```
#### GS_LAYOUT_ON — data · L85-L85 {#decl-zfialv-85-gs_layout_on}
```abap
DATA:
GS_LAYOUT_ON TYPE LVC_S_LAYO. " ALV_LAYOUT
```
#### GT_SORT — data · L86-L86 {#decl-zfialv-86-gt_sort}
```abap
DATA:
GT_SORT TYPE LVC_T_SORT. " Sort
```
#### GS_SORT — data · L87-L87 {#decl-zfialv-87-gs_sort}
```abap
DATA:
GS_SORT TYPE LVC_S_SORT. " Sort
```
#### GT_F4 — data · L88-L88 {#decl-zfialv-88-gt_f4}
```abap
DATA:
GT_F4 TYPE LVC_T_F4.
```
#### GS_F4 — data · L89-L89 {#decl-zfialv-89-gs_f4}
```abap
DATA:
GS_F4 TYPE LVC_S_F4. " F4
```
#### GS_ROW_ID — data · L90-L90 {#decl-zfialv-90-gs_row_id}
```abap
DATA:
GS_ROW_ID TYPE LVC_S_ROW. " Cursor
```
#### GS_COLUMN_ID — data · L91-L91 {#decl-zfialv-91-gs_column_id}
```abap
DATA:
GS_COLUMN_ID TYPE LVC_S_COL.
```
#### GT_EXCLUDING — data · L93-L93 {#decl-zfialv-93-gt_excluding}
```abap
DATA : GT_EXCLUDING TYPE SLIS_T_EXTAB.
```
#### GT_EVENT_EXIT — data · L94-L94 {#decl-zfialv-94-gt_event_exit}
```abap
DATA:
GT_EVENT_EXIT TYPE SLIS_T_EVENT_EXIT.
```
#### GV_TOOLBAR — data · L96-L96 {#decl-zfialv-96-gv_toolbar}
```abap
DATA : GV_TOOLBAR TYPE REF TO CL_GUI_TOOLBAR.
```
#### GV_TOP_NODE — data · L97-L97 {#decl-zfialv-97-gv_top_node}
```abap
DATA:
GV_TOP_NODE TYPE LVC_NKEY.
```
#### GV_ALV_TREE — data · L98-L98 {#decl-zfialv-98-gv_alv_tree}
```abap
DATA:
GV_ALV_TREE TYPE REF TO CL_GUI_ALV_TREE.
```
#### GV_ALV_ITEM — data · L99-L99 {#decl-zfialv-99-gv_alv_item}
```abap
DATA:
GV_ALV_ITEM TYPE REF TO CL_GUI_ALV_GRID.
```
#### GT_ROW — data · L100-L100 {#decl-zfialv-100-gt_row}
```abap
DATA:
GT_ROW TYPE LVC_T_ROW. " SELLECTION INDEX
```
#### GT_ROID — data · L101-L101 {#decl-zfialv-101-gt_roid}
```abap
DATA:
GT_ROID TYPE LVC_T_ROID.
```
#### GT_EXCLUDE — data · L102-L102 {#decl-zfialv-102-gt_exclude}
```abap
DATA:
GT_EXCLUDE TYPE UI_FUNCTIONS.
```
#### GS_EXCLUDE — data · L103-L103 {#decl-zfialv-103-gs_exclude}
```abap
DATA:
GS_EXCLUDE TYPE UI_FUNC.
```
#### DC_GRID — data · L105-L105 {#decl-zfialv-105-dc_grid}
```abap
DATA : DC_GRID TYPE REF TO CL_GUI_DOCKING_CONTAINER.
```
#### CC_GRID — data · L106-L106 {#decl-zfialv-106-cc_grid}
```abap
DATA:
CC_GRID TYPE REF TO CL_GUI_CUSTOM_CONTAINER.
```
#### CC_GRID2 — data · L107-L107 {#decl-zfialv-107-cc_grid2}
```abap
DATA:
CC_GRID2 TYPE REF TO CL_GUI_CUSTOM_CONTAINER.
```
#### CC_DIALOG — data · L108-L108 {#decl-zfialv-108-cc_dialog}
```abap
DATA:
CC_DIALOG TYPE REF TO CL_GUI_DIALOGBOX_CONTAINER.
```
#### GV_EVENT_RECEIVER — data · L109-L109 {#decl-zfialv-109-gv_event_receiver}
```abap
DATA:
GV_EVENT_RECEIVER TYPE REF TO LCL_EVENT_RECEIVER.
```
#### GT_UCOMM — data · L111-L111 {#decl-zfialv-111-gt_ucomm}
```abap
DATA : GT_UCOMM TYPE TABLE OF SY-UCOMM. "버튼제어
```
#### C_BDC01 — constants · L115-L115 {#decl-zfialv-115-c_bdc01}
```abap
CONSTANTS : C_BDC01(9) TYPE C VALUE 'Sequence'.
```
#### C_BDC02 — constants · L116-L116 {#decl-zfialv-116-c_bdc02}
```abap
CONSTANTS:
C_BDC02(9) TYPE C VALUE 'Field'.
```
#### C_BDC03 — constants · L117-L117 {#decl-zfialv-117-c_bdc03}
```abap
CONSTANTS:
C_BDC03(9) TYPE C VALUE 'Type'.
```
#### C_BDC04 — constants · L118-L118 {#decl-zfialv-118-c_bdc04}
```abap
CONSTANTS:
C_BDC04(9) TYPE C VALUE 'Length'.
```
#### C_BDC05 — constants · L119-L119 {#decl-zfialv-119-c_bdc05}
```abap
CONSTANTS:
C_BDC05(9) TYPE C VALUE 'Required'.
```
#### C_BDC06 — constants · L120-L120 {#decl-zfialv-120-c_bdc06}
```abap
CONSTANTS:
C_BDC06(9) TYPE C VALUE 'Example'.
```
### `ZFICOM` (201건)
#### ICON — type-pool · L7-L7 {#decl-zficom-7-icon}
```abap
TYPE-POOLS : SHLP, KCDE, VRM, ICON, TPIT.
```
#### KCDE — type-pool · L7-L7 {#decl-zficom-7-kcde}
```abap
TYPE-POOLS : SHLP, KCDE, VRM, ICON, TPIT.
```
#### SHLP — type-pool · L7-L7 {#decl-zficom-7-shlp}
```abap
TYPE-POOLS : SHLP, KCDE, VRM, ICON, TPIT.
```
#### TPIT — type-pool · L7-L7 {#decl-zficom-7-tpit}
```abap
TYPE-POOLS : SHLP, KCDE, VRM, ICON, TPIT.
```
#### VRM — type-pool · L7-L7 {#decl-zficom-7-vrm}
```abap
TYPE-POOLS : SHLP, KCDE, VRM, ICON, TPIT.
```
#### T001 — tables · L11-L11 {#decl-zficom-11-t001}
```abap
TABLES : T001. " Company Codes
```
#### T005 — tables · L12-L12 {#decl-zficom-12-t005}
```abap
TABLES:
T005. " Land
```
#### BKPF — tables · L13-L13 {#decl-zficom-13-bkpf}
```abap
TABLES:
BKPF. " Accounting Document Heade
```
#### BSEG — tables · L14-L14 {#decl-zficom-14-bseg}
```abap
TABLES:
BSEG. " Accounting Document Segment
```
#### BSID — tables · L15-L15 {#decl-zficom-15-bsid}
```abap
TABLES:
BSID. " Accounting: Secondary Index for Customers
```
#### BSAD — tables · L16-L16 {#decl-zficom-16-bsad}
```abap
TABLES:
BSAD. " Accounting: Secondary Index for Customers
```
#### BSIK — tables · L18-L18 {#decl-zficom-18-bsik}
```abap
TABLES:
BSIK. " Accounting: Secondary Index for Vendors
```
#### BSAK — tables · L19-L19 {#decl-zficom-19-bsak}
```abap
TABLES:
BSAK. " Accounting: Secondary Index for Vendors
```
#### BSIS — tables · L21-L21 {#decl-zficom-21-bsis}
```abap
TABLES:
BSIS. " Accounting: Secondary Index for G/L Accounts
```
#### BSAS — tables · L22-L22 {#decl-zficom-22-bsas}
```abap
TABLES:
BSAS. " Accounting: Secondary Index for G/L Accounts
```
#### BSEC — tables · L24-L24 {#decl-zficom-24-bsec}
```abap
TABLES:
BSEC. " One-Time Account Data Document Segment
```
#### BSET — tables · L25-L25 {#decl-zficom-25-bset}
```abap
TABLES:
BSET. " Tax Data Document Segment
```
#### BSED — tables · L26-L26 {#decl-zficom-26-bsed}
```abap
TABLES:
BSED. " n Bill of Exchange Fields Docume
```
#### VBKPF — tables · L27-L27 {#decl-zficom-27-vbkpf}
```abap
TABLES:
VBKPF. " Document Header for Document Parking
```
#### VBSEGS — tables · L28-L28 {#decl-zficom-28-vbsegs}
```abap
TABLES:
VBSEGS. " Document Segment for Document Parking
```
#### VBSEGD — tables · L30-L30 {#decl-zficom-30-vbsegd}
```abap
TABLES:
VBSEGD. " Document Segment for Customer Document Parking
```
#### VBSEGK — tables · L31-L31 {#decl-zficom-31-vbsegk}
```abap
TABLES:
VBSEGK. " Document Segment for Vendor Document Parking
```
#### VBSET — tables · L32-L32 {#decl-zficom-32-vbset}
```abap
TABLES:
VBSET. " Document Segment for Taxes Document Parking
```
#### VBSEC — tables · L33-L33 {#decl-zficom-33-vbsec}
```abap
TABLES:
VBSEC. " Document Parking One-Time Data Document Segment
```
#### SKA1 — tables · L34-L34 {#decl-zficom-34-ska1}
```abap
TABLES:
SKA1. " G/L Account Master (Chart of Accounts)
```
#### SKB1 — tables · L35-L35 {#decl-zficom-35-skb1}
```abap
TABLES:
SKB1. " G/L account master (company code)
```
#### LFA1 — tables · L36-L36 {#decl-zficom-36-lfa1}
```abap
TABLES:
LFA1. " Vendor Master (General Section)
```
#### LFB1 — tables · L37-L37 {#decl-zficom-37-lfb1}
```abap
TABLES:
LFB1. " Vendor Master (Company Code)
```
#### KNA1 — tables · L38-L38 {#decl-zficom-38-kna1}
```abap
TABLES:
KNA1. " General Data in Customer Master
```
#### KNB1 — tables · L39-L39 {#decl-zficom-39-knb1}
```abap
TABLES:
KNB1. " Customer Master (Company Code)
```
#### ADRC — tables · L40-L40 {#decl-zficom-40-adrc}
```abap
TABLES:
ADRC. " Addresses (Business Address Services)
```
#### USR01 — tables · L41-L41 {#decl-zficom-41-usr01}
```abap
TABLES:
USR01. " User master record (runtime data)
```
#### USR05 — tables · L42-L42 {#decl-zficom-42-usr05}
```abap
TABLES:
USR05. " User Master Parameter ID
```
#### USR21 — tables · L43-L43 {#decl-zficom-43-usr21}
```abap
TABLES:
USR21. " Assign user name address key
```
#### ZFIT0160 — tables · L45-L45 {#decl-zficom-45-zfit0160}
```abap
TABLES:
ZFIT0160. " FI 권한 관리 테이블
```
#### CTU_PARAMS — tables · L48-L48 {#decl-zficom-48-ctu_params}
```abap
TABLES : CTU_PARAMS. "CALL TRANSACTION USING...
```
#### GT_SQL — data · L54-L54 {#decl-zficom-54-gt_sql}
```abap
DATA : GT_SQL(72) OCCURS 0 WITH HEADER LINE.
```
#### GT_FIELD — data · L56-L56 {#decl-zficom-56-gt_field}
```abap
DATA : GT_FIELD LIKE HELP_VALUE OCCURS 0 WITH HEADER LINE.
```
#### GV_FIELD — data · L57-L57 {#decl-zficom-57-gv_field}
```abap
DATA:
GV_FIELD LIKE HELP_INFO-FIELDNAME.
```
#### GV_VALUE — data · L58-L58 {#decl-zficom-58-gv_value}
```abap
DATA:
GV_VALUE LIKE HELP_INFO-FLDVALUE.
```
#### GV_TABIX — data · L59-L59 {#decl-zficom-59-gv_tabix}
```abap
DATA:
GV_TABIX LIKE SY-TABIX.
```
#### GT_SHLP — data · L61-L61 {#decl-zficom-61-gt_shlp}
```abap
DATA : GT_SHLP TYPE SHLP_DESCR_T.
```
#### GT_DYNFIELDS — data · L63-L63 {#decl-zficom-63-gt_dynfields}
```abap
DATA : GT_DYNFIELDS LIKE DYNPREAD OCCURS 0 WITH HEADER LINE.
```
#### GT_RETVALUES — data · L64-L64 {#decl-zficom-64-gt_retvalues}
```abap
DATA:
GT_RETVALUES LIKE DDSHRETVAL OCCURS 0 WITH HEADER LINE.
```
#### GT_RECEIVE — data · L65-L65 {#decl-zficom-65-gt_receive}
```abap
DATA:
GT_RECEIVE LIKE DYNPREAD OCCURS 0 WITH HEADER LINE.
```
#### GT_EXCODE — data · L66-L66 {#decl-zficom-66-gt_excode}
```abap
DATA:
GT_EXCODE TYPE TABLE OF SY-UCOMM. " Button Control
```
#### GV_DBCNT — data · L68-L68 {#decl-zficom-68-gv_dbcnt}
```abap
DATA : GV_DBCNT LIKE SY-DBCNT. " Inquiry count
```
#### GV_TFILL — data · L69-L69 {#decl-zficom-69-gv_tfill}
```abap
DATA:
GV_TFILL LIKE SY-TFILL. " Current number of lines
```
#### GV_SUBRC — data · L70-L70 {#decl-zficom-70-gv_subrc}
```abap
DATA:
GV_SUBRC LIKE SY-SUBRC. " Return Value
```
#### GV_UCOMM — data · L71-L71 {#decl-zficom-71-gv_ucomm}
```abap
DATA:
GV_UCOMM LIKE SY-UCOMM. " Function Code
```
#### GV_TITLE — data · L72-L72 {#decl-zficom-72-gv_title}
```abap
DATA:
GV_TITLE LIKE SY-TITLE. " Title
```
#### GV_DATUM — data · L73-L73 {#decl-zficom-73-gv_datum}
```abap
DATA:
GV_DATUM LIKE SY-DATUM. " Date
```
#### GV_TYPE — data · L74-L74 {#decl-zficom-74-gv_type}
```abap
DATA:
GV_TYPE LIKE DD01V-DATATYPE. " Num/Char Flag
```
#### GV_SEQNO — data · L75-L75 {#decl-zficom-75-gv_seqno}
```abap
DATA:
GV_SEQNO(3) TYPE N. " Seqence No
```
#### GV_CURSOR_FIELD — data · L76-L76 {#decl-zficom-76-gv_cursor_field}
```abap
DATA:
GV_CURSOR_FIELD(30). " CURSOR FIELD
```
#### GV_CURSOR_LINE — data · L77-L77 {#decl-zficom-77-gv_cursor_line}
```abap
DATA:
GV_CURSOR_LINE LIKE SY-LILLI. " CURSOR LINE
```
#### GV_10_D — data · L79-L79 {#decl-zficom-79-gv_10_d}
```abap
DATA : GV_10_D(16) TYPE P DECIMALS 0.
```
#### GV_TABIN — data · L81-L81 {#decl-zficom-81-gv_tabin}
```abap
DATA : GV_TABIN(06). " total count
```
#### GV_INDEX — data · L82-L82 {#decl-zficom-82-gv_index}
```abap
DATA:
GV_INDEX(06). " progress count
```
#### GV_KBETR — data · L83-L83 {#decl-zficom-83-gv_kbetr}
```abap
DATA:
GV_KBETR(05). " progress percent
```
#### GV_INDIC — data · L84-L84 {#decl-zficom-84-gv_indic}
```abap
DATA:
GV_INDIC(80). " progress status
```
#### GV_TEXT — data · L85-L85 {#decl-zficom-85-gv_text}
```abap
DATA:
GV_TEXT(100).
```
#### GF_CHECK — data · L87-L87 {#decl-zficom-87-gf_check}
```abap
DATA : GF_CHECK(1). " Input Check
```
#### GF_MARK — data · L88-L88 {#decl-zficom-88-gf_mark}
```abap
DATA:
GF_MARK(1). " Select Flag
```
#### GF_LOCK — data · L89-L89 {#decl-zficom-89-gf_lock}
```abap
DATA:
GF_LOCK(1). " Lock Flag
```
#### GF_ANSWER — data · L90-L90 {#decl-zficom-90-gf_answer}
```abap
DATA:
GF_ANSWER(1). " MessageBox Return Value
```
#### GF_COLOR — data · L91-L91 {#decl-zficom-91-gf_color}
```abap
DATA:
GF_COLOR(1). " LINE COLOR
```
#### GV_NAME — data · L94-L94 {#decl-zficom-94-gv_name}
```abap
DATA : GV_NAME TYPE VRM_ID.
```
#### GT_LIST — data · L95-L95 {#decl-zficom-95-gt_list}
```abap
DATA:
GT_LIST TYPE VRM_VALUES.
```
#### GS_VALUE — data · L96-L96 {#decl-zficom-96-gs_value}
```abap
DATA:
GS_VALUE LIKE LINE OF GT_LIST.
```
#### GV_FNAME — data · L98-L98 {#decl-zficom-98-gv_fname}
```abap
DATA : GV_FNAME TYPE RS38L_FNAM.
```
#### GS_OPTIONS — data · L99-L99 {#decl-zficom-99-gs_options}
```abap
DATA:
GS_OPTIONS TYPE SSFCOMPOP.
```
#### GS_DEVICE — data · L100-L100 {#decl-zficom-100-gs_device}
```abap
DATA:
GS_DEVICE TYPE SSFCTRLOP.
```
#### GV_TDDEST — data · L101-L101 {#decl-zficom-101-gv_tddest}
```abap
DATA:
GV_TDDEST LIKE GS_OPTIONS-TDDEST VALUE 'LOCL'.
```
#### GS_JOB_OUTPUT_INFO — data · L102-L102 {#decl-zficom-102-gs_job_output_info}
```abap
DATA:
GS_JOB_OUTPUT_INFO TYPE SSFCRESCL.
```
#### GV_BELNR — data · L104-L104 {#decl-zficom-104-gv_belnr}
```abap
DATA : GV_BELNR LIKE BKPF-BELNR.
```
#### GV_BUKRS — data · L105-L105 {#decl-zficom-105-gv_bukrs}
```abap
DATA:
GV_BUKRS LIKE BKPF-BUKRS.
```
#### GV_GJAHR — data · L106-L106 {#decl-zficom-106-gv_gjahr}
```abap
DATA:
GV_GJAHR LIKE BKPF-GJAHR.
```
#### GV_BUZEI — data · L107-L107 {#decl-zficom-107-gv_buzei}
```abap
DATA:
GV_BUZEI LIKE BSEG-BUZEI.
```
#### GT_BBKPF — data · L108-L108 {#decl-zficom-108-gt_bbkpf}
```abap
DATA : GT_BBKPF LIKE BBKPF OCCURS 0 WITH HEADER LINE.
```
#### GT_BBSEG — data · L109-L109 {#decl-zficom-109-gt_bbseg}
```abap
DATA:
GT_BBSEG LIKE BBSEG OCCURS 0 WITH HEADER LINE.
```
#### GT_BBTAX — data · L110-L110 {#decl-zficom-110-gt_bbtax}
```abap
DATA:
GT_BBTAX LIKE BBTAX OCCURS 0 WITH HEADER LINE.
```
#### GT_BWITH — data · L111-L111 {#decl-zficom-111-gt_bwith}
```abap
DATA:
GT_BWITH LIKE BWITH OCCURS 0 WITH HEADER LINE.
```
#### GT_BSELK — data · L112-L112 {#decl-zficom-112-gt_bselk}
```abap
DATA:
GT_BSELK LIKE BSELK OCCURS 0 WITH HEADER LINE.
```
#### GT_BSELP — data · L113-L113 {#decl-zficom-113-gt_bselp}
```abap
DATA:
GT_BSELP LIKE BSELP OCCURS 0 WITH HEADER LINE.
```
#### GT_FIMSG — data · L115-L115 {#decl-zficom-115-gt_fimsg}
```abap
DATA:
GT_FIMSG LIKE FIMSG OCCURS 0 WITH HEADER LINE.
```
#### GT_ACCCHG — data · L117-L117 {#decl-zficom-117-gt_accchg}
```abap
DATA : GT_ACCCHG LIKE ACCCHG OCCURS 0 WITH HEADER LINE.
```
#### GS_ACCPMBLK — data · L119-L119 {#decl-zficom-119-gs_accpmblk}
```abap
DATA : GS_ACCPMBLK LIKE ACCPMBLK.
```
#### GT_ROWS — data · L121-L121 {#decl-zficom-121-gt_rows}
```abap
DATA : GT_ROWS TYPE LVC_T_ROW. " ALV control: Table rows
```
#### GS_ROWS — data · L122-L122 {#decl-zficom-122-gs_rows}
```abap
DATA:
GS_ROWS TYPE LVC_S_ROW. " ALV control: Line description
```
#### GV_ROW_POS — data · L123-L123 {#decl-zficom-123-gv_row_pos}
```abap
DATA:
GV_ROW_POS TYPE I.
```
#### GT_EXTAB — data · L125-L125 {#decl-zficom-125-gt_extab}
```abap
DATA : GT_EXTAB LIKE SY-UCOMM OCCURS 0 WITH HEADER LINE.
```
#### GS_EMAIL_DATA — data · L127-L129 {#decl-zficom-127-gs_email_data}
```abap
DATA : BEGIN OF GS_EMAIL_DATA.
INCLUDE STRUCTURE SODOCCHGI1.
DATA : END OF GS_EMAIL_DATA.
```
#### GT_EMAIL — data · L131-L131 {#decl-zficom-131-gt_email}
```abap
DATA : GT_EMAIL LIKE SOMLRECI1 OCCURS 0 WITH HEADER LINE.
```
#### GT_ETEXT — data · L132-L132 {#decl-zficom-132-gt_etext}
```abap
DATA:
GT_ETEXT LIKE SOLISTI1 OCCURS 0 WITH HEADER LINE.
```
#### GT_RSPAR — data · L134-L134 {#decl-zficom-134-gt_rspar}
```abap
DATA : GT_RSPAR LIKE RSPARAMS OCCURS 10 WITH HEADER LINE.
```
#### GV_SMTP_ADDR — data · L136-L136 {#decl-zficom-136-gv_smtp_addr}
```abap
DATA : GV_SMTP_ADDR LIKE ADR6-SMTP_ADDR.
```
#### GF_FIRST — data · L138-L138 {#decl-zficom-138-gf_first}
```abap
DATA : GF_FIRST(1) TYPE C.
```
#### GF_NEW — data · L139-L139 {#decl-zficom-139-gf_new}
```abap
DATA:
GF_NEW(1) TYPE C.
```
#### GF_END — data · L140-L140 {#decl-zficom-140-gf_end}
```abap
DATA:
GF_END(1) TYPE C.
```
#### GF_LAST — data · L141-L141 {#decl-zficom-141-gf_last}
```abap
DATA:
GF_LAST(1) TYPE C.
```
#### GV_BUK — data · L144-L144 {#decl-zficom-144-gv_buk}
```abap
DATA : GV_BUK LIKE BKPF-BUKRS. " Company Code
```
#### GV_KURST — data · L145-L145 {#decl-zficom-145-gv_kurst}
```abap
DATA:
GV_KURST LIKE TCURR-KURST. " Exchange rate type
```
#### GV_KALSM — data · L146-L146 {#decl-zficom-146-gv_kalsm}
```abap
DATA:
GV_KALSM LIKE T005-KALSM. " Procedure
```
#### GV_KOKRS — data · L147-L147 {#decl-zficom-147-gv_kokrs}
```abap
DATA:
GV_KOKRS LIKE CSKT-KOKRS. " Controlling Area
```
#### GT_BSE — data · L149-L165 {#decl-zficom-149-gt_bse}
```abap
DATA : BEGIN OF GT_BSE OCCURS 0,
BUKRS_CLR LIKE BSE_CLR-BUKRS_CLR, "반제전표-회사코드
BELNR_CLR LIKE BSE_CLR-BELNR_CLR, "반제전표-전표번호
GJAHR_CLR LIKE BSE_CLR-GJAHR_CLR, "반제전표-회계연도
INDEX_CLR LIKE BSE_CLR-INDEX_CLR, "반제정보에 대한 일련번호
WAERS LIKE BSE_CLR-WAERS, "통화 키
CLRIN LIKE BSE_CLR-CLRIN, "반제유형
BUKRS LIKE BSE_CLR-BUKRS, "원전표-회사코드
BELNR LIKE BSE_CLR-BELNR, "원전표-전표번호
GJAHR LIKE BSE_CLR-GJAHR, "원전표-회계연도
BUZEI LIKE BSE_CLR-BUZEI, "원전표-개별항목번호
SHKZG LIKE BSE_CLR-SHKZG, "차대변지시자
DMBTR LIKE BSE_CLR-DMBTR, "금액(현지통화)
DIFHW LIKE BSE_CLR-DIFHW, "차액(현지통화)
WRBTR LIKE BSE_CLR-WRBTR, "금액(전표통화)
DIFFW LIKE BSE_CLR-DIFFW, "차약(전표통화)
END OF GT_BSE.
```
#### GT_BDC — data · L168-L170 {#decl-zficom-168-gt_bdc}
```abap
DATA : BEGIN OF GT_BDC OCCURS 0.
INCLUDE STRUCTURE BDCDATA.
DATA : END OF GT_BDC.
```
#### GT_MESS — data · L172-L172 {#decl-zficom-172-gt_mess}
```abap
DATA : GT_MESS LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.
```
#### GV_MODE — data · L174-L174 {#decl-zficom-174-gv_mode}
```abap
DATA : GV_MODE(1) VALUE 'N'. "BDC MODE
```
#### GS_LOG — data · L176-L176 {#decl-zficom-176-gs_log}
```abap
DATA : GS_LOG TYPE BAL_S_LOG.
```
#### GS_LOG_HANDLE — data · L177-L177 {#decl-zficom-177-gs_log_handle}
```abap
DATA:
GS_LOG_HANDLE TYPE BALLOGHNDL.
```
#### GS_DISPLAY_PROFILE — data · L178-L178 {#decl-zficom-178-gs_display_profile}
```abap
DATA:
GS_DISPLAY_PROFILE TYPE BAL_S_PROF.
```
#### GT_LOG_HANDLE — data · L179-L179 {#decl-zficom-179-gt_log_handle}
```abap
DATA:
GT_LOG_HANDLE TYPE BAL_T_LOGH.
```
#### GS_MSG — data · L180-L180 {#decl-zficom-180-gs_msg}
```abap
DATA:
GS_MSG TYPE BAL_S_MSG.
```
#### GS_BAL_FCAT — data · L181-L181 {#decl-zficom-181-gs_bal_fcat}
```abap
DATA:
GS_BAL_FCAT TYPE BAL_S_FCAT.
```
#### GV_COL_POS — data · L182-L182 {#decl-zficom-182-gv_col_pos}
```abap
DATA:
GV_COL_POS TYPE I.
```
#### GT_STRUCT — data · L185-L193 {#decl-zficom-185-gt_struct}
```abap
DATA : BEGIN OF GT_STRUCT OCCURS 0,
SEQNO(03), "Sequence no
FNAME(60), "Field name
FTYPE(04), "Type
FLENG(03), "Length
FFLAG(50), "Required
FEXAM(80), "Example
* FNOTE(80), "Note
END OF GT_STRUCT.
```
#### C_BUKRS — constants · L198-L198 {#decl-zficom-198-c_bukrs}
```abap
CONSTANTS:
C_BUKRS LIKE BKPF-BUKRS VALUE 'KR01'. " Company Code
```
#### C_WAERS — constants · L199-L199 {#decl-zficom-199-c_waers}
```abap
CONSTANTS:
C_WAERS LIKE BKPF-WAERS VALUE 'KRW'. " Currency Key
```
#### C_LANGU — constants · L200-L200 {#decl-zficom-200-c_langu}
```abap
CONSTANTS:
C_LANGU LIKE SKAT-SPRAS VALUE '3'. " Country Key
```
#### C_LAND1 — constants · L201-L201 {#decl-zficom-201-c_land1}
```abap
CONSTANTS:
C_LAND1 LIKE T001-LAND1 VALUE 'KR'. " Country Key
```
#### C_KTOPL — constants · L202-L202 {#decl-zficom-202-c_ktopl}
```abap
CONSTANTS:
C_KTOPL LIKE SKAT-KTOPL VALUE '1000'. " Chart of Accounts
```
#### C_KOKRS — constants · L203-L203 {#decl-zficom-203-c_kokrs}
```abap
CONSTANTS:
C_KOKRS LIKE CSKT-KOKRS VALUE 'KR01'. " Controlling Area
```
#### C_KALSM — constants · L204-L204 {#decl-zficom-204-c_kalsm}
```abap
CONSTANTS:
C_KALSM LIKE T007S-KALSM VALUE 'TAXKR'. " Procedure
```
#### C_KURST — constants · L205-L205 {#decl-zficom-205-c_kurst}
```abap
CONSTANTS:
C_KURST LIKE TCURR-KURST VALUE 'M'. " Exchange Rate Type
```
#### C_SPRAS — constants · L206-L206 {#decl-zficom-206-c_spras}
```abap
CONSTANTS:
C_SPRAS LIKE T001-SPRAS VALUE '3'. " Language Key
```
#### C_PARID — constants · L207-L207 {#decl-zficom-207-c_parid}
```abap
CONSTANTS:
C_PARID LIKE USR05-PARID VALUE 'ZSP'. " 사용자종속언어
```
#### C_A — constants · L208-L208 {#decl-zficom-208-c_a}
```abap
CONSTANTS:
C_A(1) TYPE C VALUE 'A'.
```
#### C_B — constants · L209-L209 {#decl-zficom-209-c_b}
```abap
CONSTANTS:
C_B(1) TYPE C VALUE 'B'.
```
#### C_C — constants · L210-L210 {#decl-zficom-210-c_c}
```abap
CONSTANTS:
C_C(1) TYPE C VALUE 'C'.
```
#### C_D — constants · L211-L211 {#decl-zficom-211-c_d}
```abap
CONSTANTS:
C_D(1) TYPE C VALUE 'D'.
```
#### C_E — constants · L212-L212 {#decl-zficom-212-c_e}
```abap
CONSTANTS:
C_E(1) TYPE C VALUE 'E'.
```
#### C_F — constants · L213-L213 {#decl-zficom-213-c_f}
```abap
CONSTANTS:
C_F(1) TYPE C VALUE 'F'.
```
#### C_G — constants · L214-L214 {#decl-zficom-214-c_g}
```abap
CONSTANTS:
C_G(1) TYPE C VALUE 'G'.
```
#### C_H — constants · L215-L215 {#decl-zficom-215-c_h}
```abap
CONSTANTS:
C_H(1) TYPE C VALUE 'H'.
```
#### C_I — constants · L216-L216 {#decl-zficom-216-c_i}
```abap
CONSTANTS:
C_I(1) TYPE C VALUE 'I'.
```
#### C_J — constants · L217-L217 {#decl-zficom-217-c_j}
```abap
CONSTANTS:
C_J(1) TYPE C VALUE 'J'.
```
#### C_K — constants · L218-L218 {#decl-zficom-218-c_k}
```abap
CONSTANTS:
C_K(1) TYPE C VALUE 'K'.
```
#### C_L — constants · L219-L219 {#decl-zficom-219-c_l}
```abap
CONSTANTS:
C_L(1) TYPE C VALUE 'L'.
```
#### C_M — constants · L220-L220 {#decl-zficom-220-c_m}
```abap
CONSTANTS:
C_M(1) TYPE C VALUE 'M'.
```
#### C_N — constants · L221-L221 {#decl-zficom-221-c_n}
```abap
CONSTANTS:
C_N(1) TYPE C VALUE 'N'.
```
#### C_O — constants · L222-L222 {#decl-zficom-222-c_o}
```abap
CONSTANTS:
C_O(1) TYPE C VALUE 'O'.
```
#### C_P — constants · L223-L223 {#decl-zficom-223-c_p}
```abap
CONSTANTS:
C_P(1) TYPE C VALUE 'P'.
```
#### C_Q — constants · L224-L224 {#decl-zficom-224-c_q}
```abap
CONSTANTS:
C_Q(1) TYPE C VALUE 'Q'.
```
#### C_R — constants · L225-L225 {#decl-zficom-225-c_r}
```abap
CONSTANTS:
C_R(1) TYPE C VALUE 'R'.
```
#### C_S — constants · L226-L226 {#decl-zficom-226-c_s}
```abap
CONSTANTS:
C_S(1) TYPE C VALUE 'S'.
```
#### C_T — constants · L227-L227 {#decl-zficom-227-c_t}
```abap
CONSTANTS:
C_T(1) TYPE C VALUE 'T'.
```
#### C_U — constants · L228-L228 {#decl-zficom-228-c_u}
```abap
CONSTANTS:
C_U(1) TYPE C VALUE 'U'.
```
#### C_V — constants · L229-L229 {#decl-zficom-229-c_v}
```abap
CONSTANTS:
C_V(1) TYPE C VALUE 'V'.
```
#### C_W — constants · L230-L230 {#decl-zficom-230-c_w}
```abap
CONSTANTS:
C_W(1) TYPE C VALUE 'W'.
```
#### C_X — constants · L231-L231 {#decl-zficom-231-c_x}
```abap
CONSTANTS:
C_X(1) TYPE C VALUE 'X'.
```
#### C_Y — constants · L232-L232 {#decl-zficom-232-c_y}
```abap
CONSTANTS:
C_Y(1) TYPE C VALUE 'Y'.
```
#### C_Z — constants · L233-L233 {#decl-zficom-233-c_z}
```abap
CONSTANTS:
C_Z(1) TYPE C VALUE 'Z'.
```
#### C_0 — constants · L234-L234 {#decl-zficom-234-c_0}
```abap
CONSTANTS:
C_0(1) TYPE C VALUE '0'.
```
#### C_1 — constants · L235-L235 {#decl-zficom-235-c_1}
```abap
CONSTANTS:
C_1(1) TYPE C VALUE '1'.
```
#### C_2 — constants · L236-L236 {#decl-zficom-236-c_2}
```abap
CONSTANTS:
C_2(1) TYPE C VALUE '2'.
```
#### C_3 — constants · L237-L237 {#decl-zficom-237-c_3}
```abap
CONSTANTS:
C_3(1) TYPE C VALUE '3'.
```
#### C_4 — constants · L238-L238 {#decl-zficom-238-c_4}
```abap
CONSTANTS:
C_4(1) TYPE C VALUE '4'.
```
#### C_5 — constants · L239-L239 {#decl-zficom-239-c_5}
```abap
CONSTANTS:
C_5(1) TYPE C VALUE '5'.
```
#### C_6 — constants · L240-L240 {#decl-zficom-240-c_6}
```abap
CONSTANTS:
C_6(1) TYPE C VALUE '6'.
```
#### C_7 — constants · L241-L241 {#decl-zficom-241-c_7}
```abap
CONSTANTS:
C_7(1) TYPE C VALUE '7'.
```
#### C_8 — constants · L242-L242 {#decl-zficom-242-c_8}
```abap
CONSTANTS:
C_8(1) TYPE C VALUE '8'.
```
#### C_9 — constants · L243-L243 {#decl-zficom-243-c_9}
```abap
CONSTANTS:
C_9(1) TYPE C VALUE '9'.
```
#### C_EQ — constants · L244-L244 {#decl-zficom-244-c_eq}
```abap
CONSTANTS:
C_EQ(2) TYPE C VALUE 'EQ'.
```
#### C_NE — constants · L245-L245 {#decl-zficom-245-c_ne}
```abap
CONSTANTS:
C_NE(2) TYPE C VALUE 'NE'.
```
#### C_BT — constants · L246-L246 {#decl-zficom-246-c_bt}
```abap
CONSTANTS:
C_BT(2) TYPE C VALUE 'BT'.
```
#### C_CP — constants · L247-L247 {#decl-zficom-247-c_cp}
```abap
CONSTANTS:
C_CP(2) TYPE C VALUE 'CP'.
```
#### C_NP — constants · L248-L248 {#decl-zficom-248-c_np}
```abap
CONSTANTS:
C_NP(2) TYPE C VALUE 'NP'.
```
#### C_LE — constants · L249-L249 {#decl-zficom-249-c_le}
```abap
CONSTANTS:
C_LE(2) TYPE C VALUE 'LE'.
```
#### C_LT — constants · L250-L250 {#decl-zficom-250-c_lt}
```abap
CONSTANTS:
C_LT(2) TYPE C VALUE 'LT'.
```
#### C_GE — constants · L251-L251 {#decl-zficom-251-c_ge}
```abap
CONSTANTS:
C_GE(2) TYPE C VALUE 'GE'.
```
#### C_GT — constants · L252-L252 {#decl-zficom-252-c_gt}
```abap
CONSTANTS:
C_GT(2) TYPE C VALUE 'GT'.
```
#### C_FBV0 — constants · L253-L253 {#decl-zficom-253-c_fbv0}
```abap
CONSTANTS:
C_FBV0 LIKE BKPF-TCODE VALUE 'FBV0'. " 임시전표전기 T-Code
```
#### C_FBV1 — constants · L254-L254 {#decl-zficom-254-c_fbv1}
```abap
CONSTANTS:
C_FBV1 LIKE BKPF-TCODE VALUE 'FBV1'. " 임시전표생성 T-Code
```
#### C_FB01 — constants · L255-L255 {#decl-zficom-255-c_fb01}
```abap
CONSTANTS:
C_FB01 LIKE BKPF-TCODE VALUE 'FB01'. " 전표생성 T-Code
```
#### C_FB05 — constants · L256-L256 {#decl-zficom-256-c_fb05}
```abap
CONSTANTS:
C_FB05 LIKE BKPF-TCODE VALUE 'FB05'. " 전표반제 T-Code
```
#### C_FB08 — constants · L257-L257 {#decl-zficom-257-c_fb08}
```abap
CONSTANTS:
C_FB08 LIKE BKPF-TCODE VALUE 'FB08'. " 전표역분개-Code
```
#### ALPHA_INPUT — macro · L267-L273 {#decl-zficom-267-alpha_input}
```abap
DEFINE ALPHA_INPUT.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = &1
IMPORTING
OUTPUT = &2.
END-OF-DEFINITION.
```
#### ALPHA_OUTPUT — macro · L282-L288 {#decl-zficom-282-alpha_output}
```abap
DEFINE ALPHA_OUTPUT.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
INPUT = &1
IMPORTING
OUTPUT = &2.
END-OF-DEFINITION.
```
#### SET_RANGES — macro · L294-L301 {#decl-zficom-294-set_ranges}
```abap
DEFINE SET_RANGES.
CLEAR &1.
&1-SIGN = &2.
&1-OPTION = &3.
&1-LOW = &4.
&1-HIGH = &5.
COLLECT &1.
END-OF-DEFINITION.
```
#### LAST_DAY — macro · L310-L316 {#decl-zficom-310-last_day}
```abap
DEFINE LAST_DAY.
CALL FUNCTION 'RP_LAST_DAY_OF_MONTHS'
EXPORTING
DAY_IN = &1
IMPORTING
LAST_DAY_OF_MONTH = &2.
END-OF-DEFINITION.
```
#### CHANGE_UNIT — macro · L322-L327 {#decl-zficom-322-change_unit}
```abap
DEFINE CHANGE_UNIT.
WRITE &1 TO &2 CURRENCY &3.
CALL FUNCTION 'CLOI_PUT_SIGN_IN_FRONT'
CHANGING
VALUE = &2.
END-OF-DEFINITION.
```
#### CHANGE_CURRENCY — macro · L333-L340 {#decl-zficom-333-change_currency}
```abap
DEFINE CHANGE_CURRENCY.
CALL FUNCTION 'CURRENCY_AMOUNT_SAP_TO_IDOC'
EXPORTING
CURRENCY = &3
SAP_AMOUNT = &1
IMPORTING
IDOC_AMOUNT = &2.
END-OF-DEFINITION.
```
#### CHANGE_CURRENCY_SAP — macro · L346-L353 {#decl-zficom-346-change_currency_sap}
```abap
DEFINE CHANGE_CURRENCY_SAP.
CALL FUNCTION 'CURRENCY_AMOUNT_IDOC_TO_SAP'
EXPORTING
CURRENCY = &3
IDOC_AMOUNT = &1
IMPORTING
SAP_AMOUNT = &2.
END-OF-DEFINITION.
```
#### WRITE_STCD2 — macro · L359-L361 {#decl-zficom-359-write_stcd2}
```abap
DEFINE WRITE_STCD2.
WRITE &1 TO &2 USING EDIT MASK '___-__-_____'.
END-OF-DEFINITION.
```
#### WRITE_STCD1 — macro · L367-L369 {#decl-zficom-367-write_stcd1}
```abap
DEFINE WRITE_STCD1.
WRITE &1 TO &2 USING EDIT MASK '______-_______'.
END-OF-DEFINITION.
```
#### L_LANG — data · unit 로컬 · L441-L441 {#decl-zficom-441-l_lang}
```abap
DATA : L_LANG LIKE SY-LANGU.
```
#### LV_PROG — data · unit 로컬 · L678-L678 {#decl-zficom-678-lv_prog}
```abap
DATA : LV_PROG LIKE D020S-PROG.
```
#### LV_DNUM — data · unit 로컬 · L679-L679 {#decl-zficom-679-lv_dnum}
```abap
DATA:
LV_DNUM LIKE D020S-DNUM.
```
#### LV_LEN — data · unit 로컬 · L858-L858 {#decl-zficom-858-lv_len}
```abap
DATA : LV_LEN TYPE I.
```
#### LV_POS — data · unit 로컬 · L859-L859 {#decl-zficom-859-lv_pos}
```abap
DATA:
LV_POS TYPE I.
```
#### LV_TYPE — data · unit 로컬 · L860-L860 {#decl-zficom-860-lv_type}
```abap
DATA:
LV_TYPE(3) TYPE C.
```
#### LV_FILENAME — data · unit 로컬 · L861-L861 {#decl-zficom-861-lv_filename}
```abap
DATA:
LV_FILENAME TYPE STRING.
```
#### LV_RAW_DATA — data · unit 로컬 · L862-L862 {#decl-zficom-862-lv_raw_data}
```abap
DATA:
LV_RAW_DATA TYPE TRUXS_T_TEXT_DATA.
```
#### GT_XLS — data · unit 로컬 · L919-L919 {#decl-zficom-919-gt_xls}
```abap
DATA: GT_XLS TYPE STANDARD TABLE OF KCDE_INTERN_STRUC WITH HEADER LINE.
```
#### <FS> — field-symbol · unit 로컬 · L920-L920 {#decl-zficom-920--fs-}
```abap
FIELD-SYMBOLS <FS> TYPE ANY.
```
#### CHANGE_UNIT — macro · L1045-L1050 {#decl-zficom-1045-change_unit}
```abap
DEFINE CHANGE_UNIT.
WRITE &1 TO &2 CURRENCY &3.
CALL FUNCTION 'CLOI_PUT_SIGN_IN_FRONT'
CHANGING
VALUE = &2.
END-OF-DEFINITION.
```
#### CHANGE_CURRENCY — macro · L1056-L1063 {#decl-zficom-1056-change_currency}
```abap
DEFINE CHANGE_CURRENCY.
CALL FUNCTION 'CURRENCY_AMOUNT_SAP_TO_IDOC'
EXPORTING
CURRENCY = &3
SAP_AMOUNT = &1
IMPORTING
IDOC_AMOUNT = &2.
END-OF-DEFINITION.
```
#### CHANGE_CURRENCY_SAP — macro · L1069-L1076 {#decl-zficom-1069-change_currency_sap}
```abap
DEFINE CHANGE_CURRENCY_SAP.
CALL FUNCTION 'CURRENCY_AMOUNT_IDOC_TO_SAP'
EXPORTING
CURRENCY = &3
IDOC_AMOUNT = &1
IMPORTING
SAP_AMOUNT = &2.
END-OF-DEFINITION.
```
#### LV_TEXT — data · unit 로컬 · L1347-L1347 {#decl-zficom-1347-lv_text}
```abap
DATA : LV_TEXT(100).
```
#### LV_PCEN — data · unit 로컬 · L1348-L1348 {#decl-zficom-1348-lv_pcen}
```abap
DATA:
LV_PCEN(3).
```
### `ZFIR0080CLS` (2건)
#### LCL_EVENT_RECEIVER_GRID — class · L7-L17 {#decl-zfir0080cls-7-lcl_event_receiver_grid}
```abap
CLASS LCL_EVENT_RECEIVER_GRID DEFINITION.
PUBLIC SECTION.
METHODS :
HANDLE_HOTSPOT_CLICK
FOR EVENT HOTSPOT_CLICK OF CL_GUI_ALV_GRID
IMPORTING E_ROW_ID E_COLUMN_ID ES_ROW_NO.
ENDCLASS. "LCL_EVENT_RECEIVER_GRID DEFINITION
```
#### GV_EVENT — data · L29-L29 {#decl-zfir0080cls-29-gv_event}
```abap
DATA : GV_EVENT TYPE REF TO LCL_EVENT_RECEIVER_GRID.
```
### `ZFIR0080TOP` (26건)
#### TKA02 — tables · L7-L7 {#decl-zfir0080top-7-tka02}
```abap
TABLES: ZFIT0040, ZFIT0060, ZFIT0070, ZFIT0080, TKA02.
```
#### ZFIT0040 — tables · L7-L7 {#decl-zfir0080top-7-zfit0040}
```abap
TABLES: ZFIT0040, ZFIT0060, ZFIT0070, ZFIT0080, TKA02.
```
#### ZFIT0060 — tables · L7-L7 {#decl-zfir0080top-7-zfit0060}
```abap
TABLES: ZFIT0040, ZFIT0060, ZFIT0070, ZFIT0080, TKA02.
```
#### ZFIT0070 — tables · L7-L7 {#decl-zfir0080top-7-zfit0070}
```abap
TABLES: ZFIT0040, ZFIT0060, ZFIT0070, ZFIT0080, TKA02.
```
#### ZFIT0080 — tables · L7-L7 {#decl-zfir0080top-7-zfit0080}
```abap
TABLES: ZFIT0040, ZFIT0060, ZFIT0070, ZFIT0080, TKA02.
```
#### GT_DATA — data · L13-L32 {#decl-zfir0080top-13-gt_data}
```abap
DATA: BEGIN OF GT_DATA OCCURS 0.
INCLUDE STRUCTURE ZFIT0130.
DATA: CICON LIKE ICON-ID, "상태아이콘
PGUBN_T LIKE DD07T-DDTEXT, "발생/취소
OGUBN_T LIKE DD07T-DDTEXT, "거래유형명
POSIT_T LIKE DD07T-DDTEXT, "결제유형명
PRCTR_T LIKE CEPCT-LTEXT, "손익센터명
KOSTL_T LIKE CSKT-LTEXT, "코스트센터명
KUNNR_T LIKE KNA1-NAME1, "고객명
BUPLA_T LIKE J_1BBRANCH-NAME, "사업장명
HKONT_S LIKE ZFIT0131-HKONT_S,
HKONT_H LIKE ZFIT0131-HKONT_H,
HKONT_ST LIKE SKAT-TXT50,
HKONT_HT LIKE SKAT-TXT50,
WRBTR_S LIKE ZFIT0130-WRBTR_C,
DMBTR_S LIKE ZFIT0130-DMBTR_C,
WRBTR_H LIKE ZFIT0130-WRBTR_C,
DMBTR_H LIKE ZFIT0130-DMBTR_C,
HCHK(1) TYPE C,
END OF GT_DATA.
```
#### GT_Z0131 — data · L34-L37 {#decl-zfir0080top-34-gt_z0131}
```abap
DATA: BEGIN OF GT_Z0131 OCCURS 0.
INCLUDE STRUCTURE ZFIT0131.
DATA: HKONT_ST LIKE SKAT-TXT50,
END OF GT_Z0131.
```
#### GT_Z0130 — data · L39-L39 {#decl-zfir0080top-39-gt_z0130}
```abap
DATA: GT_Z0130 LIKE ZFIT0130 OCCURS 0 WITH HEADER LINE.
```
#### GT_Z0130_S — data · L40-L40 {#decl-zfir0080top-40-gt_z0130_s}
```abap
DATA:
GT_Z0130_S LIKE ZFIT0130 OCCURS 0 WITH HEADER LINE.
```
#### GT_Z0040 — data · L42-L42 {#decl-zfir0080top-42-gt_z0040}
```abap
DATA:
GT_Z0040 LIKE ZFIT0040 OCCURS 0 WITH HEADER LINE.
```
#### GT_CEPCT — data · L45-L48 {#decl-zfir0080top-45-gt_cepct}
```abap
DATA: BEGIN OF GT_CEPCT OCCURS 0,
PRCTR LIKE CEPCT-PRCTR,
KTEXT LIKE CEPCT-KTEXT,
END OF GT_CEPCT.
```
#### GT_CSKT — data · L50-L53 {#decl-zfir0080top-50-gt_cskt}
```abap
DATA: BEGIN OF GT_CSKT OCCURS 0,
KOSTL LIKE CSKT-KOSTL,
LTEXT LIKE CSKT-LTEXT,
END OF GT_CSKT.
```
#### GT_BRANCH — data · L55-L58 {#decl-zfir0080top-55-gt_branch}
```abap
DATA: BEGIN OF GT_BRANCH OCCURS 0,
BRANCH LIKE J_1BBRANCH-BRANCH,
NAME LIKE J_1BBRANCH-NAME,
END OF GT_BRANCH.
```
#### GT_KNA1 — data · L60-L63 {#decl-zfir0080top-60-gt_kna1}
```abap
DATA: BEGIN OF GT_KNA1 OCCURS 0,
KUNNR LIKE KNA1-KUNNR,
NAME1 LIKE KNA1-NAME1,
END OF GT_KNA1.
```
#### GT_SKAT — data · L65-L68 {#decl-zfir0080top-65-gt_skat}
```abap
DATA: BEGIN OF GT_SKAT OCCURS 0,
SAKNR LIKE SKAT-SAKNR,
TXT50 LIKE SKAT-TXT50,
END OF GT_SKAT.
```
#### GT_DOMAIN — data · L70-L74 {#decl-zfir0080top-70-gt_domain}
```abap
DATA: BEGIN OF GT_DOMAIN OCCURS 0,
DOMNAME LIKE DD07T-DOMNAME,
DOMVALUE_L LIKE DD07T-DOMVALUE_L,
DDTEXT LIKE DD07T-DDTEXT,
END OF GT_DOMAIN.
```
#### GV_MONTH — data · L76-L76 {#decl-zfir0080top-76-gv_month}
```abap
DATA: GV_MONTH(2) TYPE N.
```
#### GV_HIDE — data · L77-L77 {#decl-zfir0080top-77-gv_hide}
```abap
DATA:
GV_HIDE(1) TYPE C. " 포스팅 가능 여부
```
#### GS_STABLE — data · L80-L80 {#decl-zfir0080top-80-gs_stable}
```abap
DATA : GS_STABLE TYPE LVC_S_STBL.
```
#### GV_ALV_GRID — data · L81-L81 {#decl-zfir0080top-81-gv_alv_grid}
```abap
DATA:
GV_ALV_GRID TYPE REF TO CL_GUI_ALV_GRID.
```
#### GV_LAYO — data · L82-L82 {#decl-zfir0080top-82-gv_layo}
```abap
DATA:
GV_LAYO TYPE LVC_S_LAYO.
```
#### GV_VARI — data · L83-L83 {#decl-zfir0080top-83-gv_vari}
```abap
DATA:
GV_VARI TYPE DISVARIANT.
```
#### C_BLART — constants · L88-L88 {#decl-zfir0080top-88-c_blart}
```abap
CONSTANTS: C_BLART LIKE BKPF-BLART VALUE 'SA'. "GL전표
```
#### P_BUKRS — parameter · L95-L95 {#decl-zfir0080top-95-p_bukrs}
```abap
PARAMETERS: P_BUKRS LIKE T001-BUKRS MEMORY ID BUK OBLIGATORY.
```
#### P_SPMON — parameter · L96-L96 {#decl-zfir0080top-96-p_spmon}
```abap
PARAMETERS:
P_SPMON LIKE S001-SPMON OBLIGATORY.
```
#### P_PGUBN — parameter · L97-L98 {#decl-zfir0080top-97-p_pgubn}
```abap
PARAMETERS:
P_PGUBN LIKE ZFIT0130-PGUBN AS LISTBOX OBLIGATORY
VISIBLE LENGTH 20.
```
### `ZFIR0080F01` (2건)
#### LV_WRBTR_H — data · unit 로컬 · L170-L170 {#decl-zfir0080f01-170-lv_wrbtr_h}
```abap
DATA: LV_WRBTR_H LIKE BSEG-WRBTR.
```
#### LV_WRBTR_S — data · unit 로컬 · L171-L171 {#decl-zfir0080f01-171-lv_wrbtr_s}
```abap
DATA:
LV_WRBTR_S LIKE BSEG-WRBTR.
```
## Unit 목록 (컨테이너)
| unit | 유형 | 위치 | 조각 | 한 줄 요약 |
|---|---|---|---|---|
| LCL_EVENT_RECEIVER~HANDLE_CLOSE | METHOD | ZFIALV L27-31 | 0 | |
| ALV_SETTING | FORM | ZFIALV L126-129 | 0 | |
| VARIANT_DEFAULT | FORM | ZFIALV L137-168 | 0 | |
| VARIANT_HELP | FORM | ZFIALV L176-199 | 0 | |
| VARIANT_FILL | FORM | ZFIALV L207-233 | 0 | |
| FIELDCATALOG_CALL | FORM | ZFIALV L241-256 | 0 | |
| EVENT_BUILD | FORM | ZFIALV L269-282 | 0 | |
| ALV_LAYOUT_BUILD | FORM | ZFIALV L291-308 | 0 | |
| ALV_DISPLAY | FORM | ZFIALV L317-354 | 0 | |
| COLOR_SETTING | FORM | ZFIALV L360-367 | 0 | |
| FIELD_SORTING | FORM | ZFIALV L380-393 | 0 | |
| COLINFO_SETTING | FORM | ZFIALV L403-410 | 0 | |
| ALV_HIERSEQ_DISPLAY | FORM | ZFIALV L419-460 | 0 | |
| BUILD_LAYOUT | FORM | ZFIALV L475-492 | 0 | |
| ALV_EVENTS_GET | FORM | ZFIALV L501-532 | 0 | |
| USE_FORM | FORM | ZFIALV L538-550 | 0 | |
| ALV_CELL_CONTROL | FORM | ZFIALV L560-570 | 0 | |
| CREATE_DIALOG | FORM | ZFIALV L582-603 | 0 | |
| ALV_CELL_COLOR | FORM | ZFIALV L612-620 | 0 | |
| EVENT_BUILD_LVC | FORM | ZFIALV L633-704 | 0 | |
| ALV_DISPLAY_LVC | FORM | ZFIALV L713-752 | 0 | |
| SET_GRID_EXCLUDE | FORM | ZFIALV L761-782 | 0 | |
| DATA_WRITE | FORM | ZFIALV L795-806 | 0 | |
| FIELDCATALOG_MERGE_STRUCTURE | FORM | ZFIALV L812-845 | 0 | |
| LOG_ALV_DISPLAY | FORM | ZFIALV L851-874 | 0 | |
| LOG_CREATE | FORM | ZFIALV L885-942 | 0 | |
| LOG_FIELDCATALOG | FORM | ZFIALV L952-962 | 0 | |
| NAME_SELECT | FORM | ZFICOM L378-387 | 1 | 사용자 ID 로 V_USERNAME 뷰에서 사용자 이름을 조회하는 공통 FORM 이다. |
| SELECT_CSKT | FORM | ZFICOM L397-408 | 1 | 관리회계영역·코스트센터로 CSKT 에서 유효한 코스트센터명을 조회하는 공통 FORM 이다. |
| SELECT_J_1BBRANCH | FORM | ZFICOM L419-428 | 1 | 회사코드·사업장(Business Place)으로 J_1BBRANCH 사업장명을 조회하는 공통 FORM 이다. |
| SELECT_SKAT | FORM | ZFICOM L438-464 | 1 | G/L 계정번호로 SKAT 계정과목 텍스트(장문 50/단문 20)를 언어별로 조회하는 공통 FORM 이다. |
| CHECK_CONFIRM_STEP | FORM | ZFICOM L476-491 | 1 | 제목·메시지 1줄로 POPUP_TO_CONFIRM_STEP 확인 팝업을 띄우고 응답(GF_ANSWER)을 받는 공통 헬퍼다. |
| CHECK_CONFIRM_STEP_2 | FORM | ZFICOM L503-520 | 1 | 제목·메시지 2줄로 POPUP_TO_CONFIRM_STEP 확인 팝업을 띄우고 응답(GF_ANSWER)을 받는 공통 헬퍼다. |
| AUTHORITY_BUKRS | FORM | ZFICOM L528-536 | 1 | 회사코드에 대한 SAP 표준 권한(F_BKPF_BUK)을 검사하고 권한이 없으면 처리를 중단한다. |
| AUTHORITY_PG | FORM | ZFICOM L545-563 | 1 | 사용자 ID 로 커스텀 권한테이블 ZFIT0160 을 조회해 프로그램(T-Code)별 실행 권한을 검증하는 공통 FORM 이다. |
| GET_DOMAIN_VALUE | FORM | ZFICOM L574-593 | 1 | DOMAIN_VALUE_GET 으로 도메인 고정값의 텍스트를 조회하는 공통 헬퍼다. |
| CALC_DATE_IN_INTERVAL | FORM | ZFICOM L606-623 | 1 | 기준일에 일·월·년을 가감한 날짜를 RP_CALC_DATE_IN_INTERVAL 로 계산하는 공통 헬퍼다. |
| CALC_BETWEEN_DATES | FORM | ZFICOM L635-651 | 1 | 두 날짜 사이의 일·월·년 차이를 HRVE_GET_TIME_BETWEEN_DATES 로 계산하는 공통 헬퍼다. |
| NUMERIC_CHECK | FORM | ZFICOM L659-665 | 0 | |
| DYNP_VALUES_READ | FORM | ZFICOM L674-703 | 1 | DYNP_VALUES_READ 로 현재 화면 필드의 입력값을 PAI 전에 읽어오는 공통 헬퍼다. |
| FIELD_SETTING | FORM | ZFICOM L713-720 | 0 | |
| HELP_DISPLAY | FORM | ZFICOM L729-749 | 0 | |
| SELECT_T007S | FORM | ZFICOM L758-770 | 1 | 세금코드(MWSKZ)의 부가세 텍스트를 T007S 에서 조회하는 공통 FORM 이다. |
| GET_NEXT_NUMBER | FORM | ZFICOM L781-819 | 1 | 번호범위 오브젝트에서 다음 일련번호를 받아온다 (CBO 테이블의 키 생성용). |
| CREATE_ICON | FORM | ZFICOM L829-844 | 0 | |
| DATA_UPLOAD | FORM | ZFICOM L853-908 | 3 | 파일 확장자(TXT/XLS)에 따라 GUI_UPLOAD 또는 TEXT_CONVERT_XLS_TO_SAP 으로 로컬 파일을 내부테이블로 업로드하는 공통 FORM 이다. |
| DATA_UPLOAD_2 | FORM | ZFICOM L917-950 | 2 | 엑셀 파일을 KCD_EXCEL_OLE_TO_INT_CONVERT 로 셀 단위로 읽어 행별로 T_LOAD 내부테이블 구조에 매핑하는 공통 업로드 FORM 이다. |
| CONVERT_TO_FOREIGN_CURRENCY | FORM | ZFICOM L962-999 | 1 | 현지통화 금액을 환율·기준일로 외화 금액으로 환산하는 공통 FORM 이다. |
| CONVERT_TO_LOCAL_CURRENCY | FORM | ZFICOM L1011-1039 | 1 | 외화 금액을 환율·기준일로 회사코드 현지통화(T001-WAERS) 금액으로 환산하는 공통 FORM 이다. |
| SELECT_USR01 | FORM | ZFICOM L1084-1088 | 1 | 사용자명으로 USR01(사용자 마스터 기본값)을 단건 조회하는 공통 FORM 이다. |
| SMARTFORM_CONTROL | FORM | ZFICOM L1101-1138 | 1 | Smartform 이름으로 생성 FM 이름을 구하고 미리보기·다이얼로그·프린터 등 출력 옵션(GS_DEVICE/GS_OPTIONS)을 설정한다. |
| SMARTFORM_OPEN | FORM | ZFICOM L1144-1156 | 1 | Smartform 출력 작업을 SSF_OPEN 으로 시작하는 공통 FORM 이다. |
| SMARTFORM_CLOSE | FORM | ZFICOM L1162-1175 | 1 | Smartform 출력 작업을 SSF_CLOSE 로 종료하고 JOB_OUTPUT_INFO 를 받아오는 공통 FORM 이다. |
| F4IF_INT_TABLE_VALUE_REQUEST | FORM | ZFICOM L1186-1214 | 0 | |
| EXIT INPUT | MODULE | ZFICOM L1220-1230 | 0 | |
| DYNPRO | FORM | ZFICOM L1240-1251 | 1 | BDC 화면 시작 또는 필드값 한 줄을 GT_BDC(BDCDATA) 에 추가하는 공통 BDC 빌더 헬퍼다. |
| BDC_TRANSACTION | FORM | ZFICOM L1259-1266 | 1 | GT_BDC 데이터로 지정 T-Code 를 CALL TRANSACTION 하고 결과 메시지를 GT_MESS 에 받는 공통 BDC 실행 FORM 이다. |
| MESSAGE_SELECT | FORM | ZFICOM L1274-1285 | 1 | BDC 메시지(GT_MESS)의 ID·번호·변수를 MESSAGE_TEXT_BUILD 로 메시지 텍스트로 조립하는 공통 헬퍼다. |
| BDC_FK03 | FORM | ZFICOM L1294-1318 | 1 | 구매처코드와 회사코드로 FK03 구매처 마스터 조회 화면을 BDC 로 호출한다. |
| CALL_TRANSACTION_FB03 | FORM | ZFICOM L1328-1336 | 1 | 회사코드·전표번호·회계연도를 파라미터 ID 로 넘겨 FB03 회계전표 조회 화면을 호출한다. |
| STATUS_BAR | FORM | ZFICOM L1345-1366 | 1 | 처리 진행률을 계산해 SAPGUI 상태바에 진행 상황 텍스트를 표시하는 공통 유틸리티다. |
| INITIALIZATION | EVENT | ZFIR0080 L32-50 | 0 | INITIALIZATION 에서 ALV 설정과 도메인 텍스트를 준비하고 정산월(P_SPMON) 기본값을 지난달로 설정한다. |
| START-OF-SELECTION | EVENT | ZFIR0080 L51-59 | 1 | START-OF-SELECTION 에서 회사코드 권한(AUTHORITY_BUKRS)을 검증하고 GET_DATA 로 수불 I/F 이력을 조회하는 디스패치 블록이다. |
| END-OF-SELECTION | EVENT | ZFIR0080 L60-66 | 1 | END-OF-SELECTION 에서 조회 결과 GT_DATA 가 없으면 메시지 S003 후 종료하고 있으면 화면 0100 을 호출하는 블록이다. |
| LCL_EVENT_RECEIVER_GRID~HANDLE_HOTSPOT_CLICK | METHOD | ZFIR0080CLS L23-25 | 0 | ALV 그리드 핫스팟 클릭 이벤트를 받아 HOTSPOT_CLICK 서브루틴으로 위임하는 이벤트 핸들러다. |
| GET_DOMAIN | FORM | ZFIR0080F01 L9-43 | 1 | 내역구분(ZDPGUBN)·조직구분(ZDOGUBN)·직책구분(ZDPOSIT) 도메인의 고정값 텍스트를 DD07T 에서 읽어 GT_DOMAIN 에 담는다. |
| GET_DATA | FORM | ZFIR0080F01 L49-57 | 0 | GET_ZFIT0130 으로 인사정보 I/F 내역을 추출하고 DISPLAY_DATA 로 표시 데이터를 만드는 단순 디스패치 FORM 이다. |
| GET_ZFIT0130 | FORM | ZFIR0080F01 L63-163 | 3 | 인사정보 연계 내역을 급여항목 구분별로 읽고, 조직단위 텍스트와 항목별 차·대변 계정 매핑을 붙인다. |
| DISPLAY_DATA | FORM | ZFIR0080F01 L169-279 | 3 | 인사정보 I/F 내역(ZFIT0130)에 내역구분별 계정 매핑(ZFIT0131)과 도메인·손익센터·코스트센터·사업장·고객 텍스트를 붙여 차변/대변 금액을 나누고 상태 아이콘을 설정하며 차대 합계 일치를 검증해 GT_DATA 를 만든다. |
| CREATE_AND_INIT_CONTROLS | FORM | ZFIR0080F01 L285-317 | 0 | 커스텀 컨테이너와 ALV 그리드를 생성하고 핫스팟 이벤트 핸들러·레이아웃·툴바 제외·필드카탈로그를 설정해 그리드를 표시하는 컨트롤 초기화 플러밍 FORM 이다. |
| SET_GRID_LAYOUT | FORM | ZFIR0080F01 L323-333 | 0 | ALV 그리드 레이아웃(열 최적화, 선택모드, 줄무늬)을 설정하는 플러밍 FORM 이다. |
| ALV_GRID_DISPLAY | FORM | ZFIR0080F01 L339-354 | 1 | 필드카탈로그를 만들고 GT_DATA(업로드된 계정과목 목록)를 CL_GUI_ALV_GRID 로 화면 0100 에 출력한다. |
| SET_FIELD_CATALOGS | FORM | ZFIR0080F01 L360-498 | 0 | GT_DATA ALV 필드카탈로그를 생성하고 상태 아이콘·일자·내역/조직/직책 구분·고객(핫스팟)·차대 금액·코스트센터·손익센터·사업장·전표번호(핫스팟)·메시지 컬럼 속성을 설정하는 ALV 플러밍 FORM 이다. |
| HOTSPOT_CLICK | FORM | ZFIR0080F01 L507-529 | 1 | ALV 핫스팟 클릭 시 고객코드(KUNNR)는 FD03 고객마스터 조회로, 전표번호(BELNR)는 FB03 전표 조회로 이동한다. |
| POSTING_DOCUMET | FORM | ZFIR0080F01 L538-675 | 3 | 사용자 확인 후 인사정보 I/F 내역(GT_DATA)으로 FBV1 전표 헤더·아이템(BBKPF/BBSEG)을 구성해 Z_FI_DOCUMENT_POSTING 으로 전표를 생성하고 결과(전표번호·상태·오류메시지)를 GT_DATA 와 ZFIT0130 에 기록한다. |
| USER_COMMAND_0100 INPUT | MODULE | ZFIR0080I01 L9-17 | 1 | 화면 0100 PAI 에서 POST 기능코드일 때 POSTING_DOCUMET 을 호출해 인사정보 전표를 생성하는 사용자 명령 MODULE 이다. |
| STATUS_0100 OUTPUT | MODULE | ZFIR0080O01 L10-19 | 0 | |
| CREATE_INSTANCE_CONTROLS OUTPUT | MODULE | ZFIR0080O01 L25-39 | 0 | |