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

4096 lines
153 KiB
Markdown

---
type: abap-program
title: "ZFIC0020 — 전표 대량 UPLOAD"
description: "엑셀로 받은 회계전표를 대량으로 업로드해 전표를 생성하는 유틸리티다. 구조조회(어떤 컬럼을 채워야 하는지)·템플릿 다운로드·업로드 실행·BDC 로그 조회의 네 모드를 한 화면에서 제공하고, 업로드 결과는 ZFIT0010 에 적재해 이력으로 남긴다. BDC 처리 모드(백그라운드/오류만표시/포그라운드)를 선택할 수 있어 대량 처리와 오류 디버깅을 겸한다."
resource: "abap://ZFIC0020"
tags: ["전표", "대량업로드", "배치작업", "결산작업", "FI", "전표그룹", "엑셀순서", "정렬", "라인순서", "업로드", "대차검증", "차변", "대변", "전기키", "계정유형", "세액", "대차일치", "신호등", "업로드검증", "번호범위"]
generated: { by: "abap-indexing/z-ai/glm-5.2:free", at: "2026-09-20T15:36:18+00:00" }
status: stable
x-package:
x-changed-on:
x-tables-read: ["CSKT", "J_1BBRANCH", "LTDX", "SKAT", "T007S", "TBSL", "USR01", "V_USERNAME", "ZFIT0010", "ZFIT0160"]
x-tables-write: ["GT_LOAD", "ZFIT0010"]
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", "DOWNLOAD_WEB_OBJECT", "DYNP_VALUES_READ", "F4IF_INT_TABLE_VALUE_REQUEST", "FB03", "FK03", "GUI_DOWNLOAD", "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"]
x-code-hash: "679d87a72c21ec5ad830f402eac88c0fdd426bbbf10502c27b0b1dbc15c79206"
x-unit-count: 102
x-chunk-count: 53
x-declaration-count: 285
---
## 업무 목적
엑셀로 받은 회계전표를 대량으로 업로드해 전표를 생성하는 유틸리티다. 구조조회(어떤 컬럼을 채워야 하는지)·템플릿 다운로드·업로드 실행·BDC 로그 조회의 네 모드를 한 화면에서 제공하고, 업로드 결과는 ZFIT0010 에 적재해 이력으로 남긴다. BDC 처리 모드(백그라운드/오류만표시/포그라운드)를 선택할 수 있어 대량 처리와 오류 디버깅을 겸한다.
## 주 흐름
1. 회사코드와 처리 모드(구조조회/다운로드/업로드/로그)를 선택한다
2. 구조조회 모드: 업로드 파일이 가져야 할 구조를 화면에 보여준다 (STRUCTURE_DISPLAY)
3. 다운로드 모드: 입력 템플릿 파일을 내려준다 (FILE_DOWNLOAD)
4. 업로드 모드: 파일 경로 필수 확인 후 엑셀을 읽어 전표 항목을 정리한다 (DATA_UPLOAD_2 → MODIFY_DATA)
5. ALV 로 업로드 내용을 검토시키고 BDC 로 전표를 생성한다
6. 처리 결과를 ZFIT0010 에 적재하고, 로그 모드에서 생성일자 기준으로 조회한다 (GET_ZFIT0010)
## 핵심 내부테이블
- `GT_LOAD` — 엑셀 원본 행 (채움: DATA_UPLOAD_2 / 소비: MODIFY_DATA)
- `GT_DATA` — 전표 생성 대상 항목 (채움: MODIFY_DATA / 소비: ALV_DISPLAY)
## 테이블 / 외부 호출
- read: CSKT, J_1BBRANCH, LTDX, SKAT, T007S, TBSL, USR01, V_USERNAME, ZFIT0010, ZFIT0160
- write: GT_LOAD, ZFIT0010
- 외부 호출: 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, DOWNLOAD_WEB_OBJECT, DYNP_VALUES_READ, F4IF_INT_TABLE_VALUE_REQUEST, FB03, FK03, GUI_DOWNLOAD, 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
## 로직 조각 (53건 / unit 43개)
LLM 이 코드에서 골라낸 업무 로직 단위다. **조각마다 소스 원문과 자연어 설명을 함께 싣는다** — 설명이 코드와 맞는지 바로 대조할 수 있어야 하기 때문이다.
테이블·호출은 LLM 이 쓴 값이 아니라 파서가 조각 범위에서 다시 뽑은 사실이다. 순서는 실행 순서다.
### EVENT START-OF-SELECTION — `ZFIC0020` L46-L84 (39줄)
*START-OF-SELECTION 에서 모드별(구조조회/템플릿 다운로드/업로드/로그)로 파일 검증·엑셀 업로드·ZFIT0010 조회·ALV 준비를 분기하는 메인 흐름이다.*
> 이 unit 의 조각 2개가 24/39줄(62%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다.
#### [control_flow] 업로드 모드에서 파일 경로(P_FNAME) 필수 검증 후 DATA_UPLOAD_2 로 엑셀을 GT_LOAD 에 읽고 MODIFY_DATA 로 정리한 뒤 ALV 설정·필드카탈로그·이벤트(PF_T1000)를 준비한다.
```abap
55| WHEN P_U.
56| CLEAR GV_RUN.
57| * 필수입력값 체크
58| IF P_FNAME IS INITIAL.
59| MESSAGE S000 WITH TEXT-001 DISPLAY LIKE C_E.
60| "파일경로필드는 필수입력입니다!!!
61| LEAVE LIST-PROCESSING.
62| ENDIF.
63| PERFORM DATA_UPLOAD_2 TABLES GT_LOAD USING P_FNAME.
64| PERFORM MODIFY_DATA.
65| * ALV setting
66| PERFORM ALV_SETTING.
67| * ALV FIELD Define
68| PERFORM FIELDCATALOG_MERGE.
69| * ALV EVENT Define
70| PERFORM EVENT_BUILD USING 'PF_T1000' SPACE SPACE C_X C_X GV_DBCNT.
```
- **EN**: In upload mode validate the mandatory file path, read the Excel file into GT_LOAD (DATA_UPLOAD_2), post-process it (MODIFY_DATA) and prepare ALV settings, field catalog and events.
- 호출(파서): DATA_UPLOAD_2, MODIFY_DATA, ALV_SETTING, FIELDCATALOG_MERGE, EVENT_BUILD
- 업무 키워드: 파일 경로 필수, 엑셀 업로드, 전표 항목 정리, ALV 준비
- English: file upload, validation, ALV
- 정의부(복사 시 함께 필요): [`P_U`](#decl-zfic0020top-120-p_u), [`GV_RUN`](#decl-zfic0020top-88-gv_run), [`P_FNAME`](#decl-zfic0020top-99-p_fname), [`C_E`](#decl-zficom-212-c_e), [`GT_LOAD`](#decl-zfic0020top-6-gt_load), [`C_X`](#decl-zficom-231-c_x), [`GV_DBCNT`](#decl-zficom-68-gv_dbcnt)
- 위치: `abap://ZFIC0020/ZFIC0020#L55-L70` · confidence 0.85 · `ZFIC0020#ZFIC0020#EVENT#START-OF-SELECTION#C1`
#### [control_flow] 로그 모드에서 GET_ZFIT0010 으로 업로드 이력을 조회하고 로그용 ALV 설정·필드카탈로그·이벤트를 준비한다.
```abap
72| WHEN P_L.
73| PERFORM GET_ZFIT0010.
74| * ALV setting
75| PERFORM ALV_SETTING.
76| * ALV FIELD Define
77| PERFORM FIELDCATALOG_MERGE_LOG.
78| * ALV EVENT Define
79| PERFORM EVENT_BUILD USING 'PF_T1000' SPACE SPACE C_X C_X GV_DBCNT.
```
- **EN**: In log mode read upload history via GET_ZFIT0010 and prepare the log ALV.
- 호출(파서): GET_ZFIT0010, ALV_SETTING, FIELDCATALOG_MERGE_LOG, EVENT_BUILD
- SAP 객체: ZFIT0010
- 업무 키워드: 로그 조회, 업로드 이력, ALV 준비
- English: upload log, ZFIT0010
- 정의부(복사 시 함께 필요): [`P_L`](#decl-zfic0020top-122-p_l), [`C_X`](#decl-zficom-231-c_x), [`GV_DBCNT`](#decl-zficom-68-gv_dbcnt)
- 위치: `abap://ZFIC0020/ZFIC0020#L72-L79` · confidence 0.8 · `ZFIC0020#ZFIC0020#EVENT#START-OF-SELECTION#C2`
### FORM STRUCTURE_DATA — `ZFIC0020F01` L45-L94 (50줄)
*업로드 엑셀이 가져야 할 컬럼 구조(항목명·타입·길이·필수여부·설명)를 DATA_WRITE 로 GT_STRUCT 에 나열하는 구조조회용 FORM이다.*
> 이 unit 의 조각 1개가 47/50줄(94%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다.
#### [output] 그룹핑번호·헤더지시자·전표일자·전표유형·회사코드·통화·전기키·계정·금액·세액·사업장·원가대상·지급조건·참조·텍스트·거래은행 등 업로드 파일 컬럼 정의(타입·길이·필수·설명)를 DATA_WRITE 로 GT_STRUCT 에 적재하고 건수를 GV_DBCNT 에 둔다.
```abap
47| PERFORM DATA_WRITE USING :
48| TEXT-T01 'CHAR' '010' TEXT-T99 TEXT-T51, "그룹핑번호
49| TEXT-T02 'CHAR' '001' TEXT-T99 TEXT-T52, "헤더지시자
50| TEXT-T03 'CHAR' '010' SPACE TEXT-T53, "전표번호
51| TEXT-T04 'CHAR' '008' TEXT-T99 TEXT-T54, "전표 증빙일
52| TEXT-T05 'CHAR' '008' TEXT-T99 TEXT-T55, "전표의 전기일
53| TEXT-T06 'CHAR' '002' TEXT-T99 TEXT-T56, "회계 기간
54| TEXT-T07 'CHAR' '002' TEXT-T99 TEXT-T57, "전표 유형
55| TEXT-T38 'CHAR' '004' TEXT-T99 TEXT-T88, "회사 코드
56| TEXT-T08 'CHAR' '005' TEXT-T99 TEXT-T58, "통화 키
57| TEXT-T09 'CHAR' '010' SPACE TEXT-T59, "환율
58| TEXT-T10 'CHAR' '008' SPACE TEXT-T60, "환산일
59| TEXT-T11 'CHAR' '016' SPACE TEXT-T61, "참조 전표 번호
60| TEXT-T12 'CHAR' '025' SPACE TEXT-T62, "전표 헤더 텍스트
61| TEXT-T13 'CHAR' '002' TEXT-T99 TEXT-T63, "전기 키
62| TEXT-T14 'CHAR' '010' TEXT-T99 TEXT-T64, "개별항목의 계정
63| TEXT-T15 'CHAR' '001' SPACE TEXT-T65, "특별 G/L 지시자
64| TEXT-T16 'CHAR' '003' SPACE TEXT-T66, "자산 거래 유형
65| TEXT-T17 'CHAR' '010' SPACE TEXT-T67, "조정 계정
66| TEXT-T18 'CHAR' '016' TEXT-T99 TEXT-T68, "전표 통화 금액
67| TEXT-T19 'CHAR' '016' SPACE TEXT-T69, "현지 통화 금액
68| TEXT-T20 'CHAR' '016' SPACE TEXT-T70, "전표 통화 세액
69| TEXT-T21 'CHAR' '016' SPACE TEXT-T71, "현지 통화 세액
70| TEXT-T39 'CHAR' '016' SPACE TEXT-T70, "전표 통화 세액
71| TEXT-T40 'CHAR' '016' SPACE TEXT-T71, "현지 통화 세액
72| TEXT-T22 'CHAR' '004' SPACE TEXT-T72, "사업장
73| TEXT-T23 'CHAR' '002' SPACE TEXT-T73, "세금코드
74| TEXT-T24 'CHAR' '004' SPACE TEXT-T74, "사업 영역
75| TEXT-T25 'CHAR' '024' SPACE TEXT-T75, "WBS Element
76| TEXT-T26 'CHAR' '010' SPACE TEXT-T76, "코스트 센터
77| TEXT-T78 'CHAR' '010' SPACE TEXT-T77, "손익센터
78| TEXT-T43 'CHAR' '012' SPACE TEXT-T90, "네트워크번호
79| TEXT-T44 'CHAR' '004' SPACE TEXT-T91, "작업/액티비티 번호
80| TEXT-T27 'CHAR' '016' SPACE TEXT-T77, "자금 관리 센터
81| TEXT-T28 'CHAR' '012' SPACE TEXT-T78, "오더 번호
82| TEXT-T29 'CHAR' '008' SPACE TEXT-T79, "만기 계산 기준일
83| TEXT-T30 'CHAR' '004' SPACE TEXT-T80, "지급 조건 키
84| TEXT-T41 'CHAR' '003' SPACE TEXT-T88, "현금할인일
85| TEXT-T42 'CHAR' '001' SPACE TEXT-T88, "지급 방법
86| TEXT-T31 'CHAR' '012' SPACE TEXT-T81, "참조 1
87| TEXT-T32 'CHAR' '012' SPACE TEXT-T82, "참조 2
88| TEXT-T33 'CHAR' '020' SPACE TEXT-T83, "참조 3
89| TEXT-T34 'CHAR' '018' SPACE TEXT-T84, "지정 번호
90| TEXT-T35 'CHAR' '050' SPACE TEXT-T85, "품목텍스트
91| TEXT-T36 'CHAR' '005' SPACE TEXT-T86, "고유은행
92| TEXT-T37 'CHAR' '005' SPACE TEXT-T87. "은행거래처
93| GV_DBCNT = GV_SEQNO.
```
- **EN**: List the required upload file column definitions (name, type, length, mandatory flag, description) for header and line-item fields into GT_STRUCT via DATA_WRITE.
- 호출(파서): DATA_WRITE, DATA_WRITE, DATA_WRITE, DATA_WRITE, DATA_WRITE, DATA_WRITE, DATA_WRITE, DATA_WRITE, DATA_WRITE, DATA_WRITE, DATA_WRITE, DATA_WRITE, DATA_WRITE, DATA_WRITE, DATA_WRITE, DATA_WRITE, DATA_WRITE, DATA_WRITE, DATA_WRITE, DATA_WRITE
- 업무 키워드: 업로드 구조, 컬럼 정의, 필수 항목, 템플릿 레이아웃
- English: upload layout, structure inquiry, file format
- 정의부(복사 시 함께 필요): [`GV_DBCNT`](#decl-zficom-68-gv_dbcnt), [`GV_SEQNO`](#decl-zficom-75-gv_seqno)
- 위치: `abap://ZFIC0020/ZFIC0020F01#L47-L93` · confidence 0.85 · `ZFIC0020#ZFIC0020F01#FORM#STRUCTURE_DATA#C1`
### FORM FILE_DOWNLOAD — `ZFIC0020F01` L370-L376 (7줄)
*웹 리포지토리(SMW0) 객체 MIZFIC0020 을 DOWNLOAD_WEB_OBJECT 로 내려받아 업로드 템플릿 파일을 제공하는 FORM이다.*
> 이 unit 의 조각 1개가 4/7줄(57%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다.
#### [fm_call] SMW0 웹 오브젝트 키 MIZFIC0020 으로 DOWNLOAD_WEB_OBJECT 를 호출해 전표 업로드용 엑셀 템플릿을 PC 로 다운로드한다.
```abap
372| LV_KEY = 'MIZFIC0020'.
373| CALL FUNCTION 'DOWNLOAD_WEB_OBJECT'
374| EXPORTING
375| KEY = LV_KEY.
```
- **EN**: Call DOWNLOAD_WEB_OBJECT with web repository key MIZFIC0020 to download the upload template file.
- 호출(파서): DOWNLOAD_WEB_OBJECT
- SAP 객체: DOWNLOAD_WEB_OBJECT, WWWDATATAB, SMW0
- 업무 키워드: 템플릿 다운로드, 웹 오브젝트, 업로드 양식
- English: DOWNLOAD_WEB_OBJECT, SMW0, template
- 정의부(복사 시 함께 필요): [`LV_KEY`](#decl-zfic0020f01-371-lv_key)
- 위치: `abap://ZFIC0020/ZFIC0020F01#L372-L375` · confidence 0.85 · `ZFIC0020#ZFIC0020F01#FORM#FILE_DOWNLOAD#C1`
### 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
- 정의부(복사 시 함께 필요): [`P_FNAME`](#decl-zfic0020top-99-p_fname), [`GT_XLS`](#decl-zficom-919-gt_xls)
- 위치: `abap://ZFIC0020/ZFICOM#L922-L939` · confidence 0.9 · `ZFIC0020#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://ZFIC0020/ZFICOM#L941-L948` · confidence 0.9 · `ZFIC0020#ZFICOM#FORM#DATA_UPLOAD_2#C2`
### FORM MODIFY_DATA — `ZFIC0020F01` L532-L582 (51줄)
*업로드한 전표 행을 전표그룹별로 묶어 차·대변 합계가 맞는지 검증하고 신호등으로 표시한다.*
> 이 unit 의 조각 2개가 45/51줄(88%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다.
#### [aggregation] 엑셀에서 읽은 순서를 SEQNO2 에 보존한 뒤 전표그룹번호(SEQNO)와 엑셀 순서로 정렬한다 — 한 전표 안 라인 순서가 업로드 시트 순서와 같아야 하기 때문이다.
```abap
536| LOOP AT GT_LOAD.
537| GT_LOAD-SEQNO2 = SY-TABIX. "현재 SEQUNECE 대로 값입력
538| MODIFY GT_LOAD.
539| ENDLOOP.
540|
541| DATA : LV_SRBTR LIKE BSEG-WRBTR,
542| LV_HRBTR LIKE BSEG-WRBTR,
543| LV_WRBTR LIKE BSEG-WRBTR,
544| LV_WMWST LIKE BSEG-WMWST.
545|
546| SORT GT_LOAD BY SEQNO SEQNO2. "전표그룹 번호와 엑셀시트 순서대로 소팅
```
- **EN**: Preserves the original Excel row order in SEQNO2 and sorts by document group and that order so line sequence within a document matches the sheet.
- 테이블(파서): read - / write [GT_LOAD](/tables/GT_LOAD.md)
- SAP 객체: SEQNO, SEQNO2
- 업무 키워드: 전표그룹, 엑셀순서, 정렬, 라인순서, 업로드
- English: document group, Excel row order, sort, line sequence, upload
- 정의부(복사 시 함께 필요): [`GT_LOAD`](#decl-zfic0020top-6-gt_load)
- 위치: `abap://ZFIC0020/ZFIC0020F01#L536-L546` · confidence 0.85 · `ZFIC0020#ZFIC0020F01#FORM#MODIFY_DATA#C1`
#### [validation] 행마다 전기키 마스터(TBSL)에서 계정유형·차대구분을 읽어 차변·대변 금액을 누적한다. 고객(D)·공급업체(K) 계정이면 세액을 빼고, 그 외 계정은 세액을 더해 합산한다. 전표그룹이 끝나는 지점(AT END OF SEQNO)에서 차변 합계와 대변 합계가 같으면 녹색, 다르면 적색 LED 를 세워 대차 불일치 전표를 업로드 전에 걸러낸다.
```abap
548| LOOP AT GT_LOAD.
549| ALPHA_OUTPUT GT_LOAD-SEQNO GT_LOAD-SEQNO.
550| READ TABLE GT_TBSL WITH KEY BSCHL = GT_LOAD-BSCHL.
551| CHANGE_CURRENCY_SAP GT_LOAD-WRBTR LV_WRBTR C_WAERS.
552| CHANGE_CURRENCY_SAP GT_LOAD-WMWST LV_WMWST C_WAERS.
553| IF GT_TBSL-KOART EQ C_D OR GT_TBSL-KOART EQ C_K.
554| IF GT_TBSL-SHKZG EQ C_S.
555| LV_SRBTR = LV_SRBTR + LV_WRBTR - LV_WMWST.
556| ELSE.
557| LV_HRBTR = LV_HRBTR + LV_WRBTR - LV_WMWST.
558| ENDIF.
559| ELSE.
560| IF GT_TBSL-SHKZG EQ C_S.
561| LV_SRBTR = LV_SRBTR + LV_WRBTR + LV_WMWST.
562| ELSE.
563| LV_HRBTR = LV_HRBTR + LV_WRBTR + LV_WMWST.
564| ENDIF.
565| ENDIF.
566| AT END OF SEQNO.
567| GF_END = C_X.
568| ENDAT.
569|
570| IF GF_END EQ C_X.
571| ALPHA_OUTPUT GT_LOAD-SEQNO GT_LOAD-SEQNO.
572| IF LV_SRBTR EQ LV_HRBTR.
573| GT_LOAD-SICON = ICON_LED_GREEN.
574| ELSE.
575| GT_LOAD-SICON = ICON_LED_RED.
576| ENDIF.
577| GV_DBCNT = GV_DBCNT + 1.
578| CLEAR : LV_SRBTR, LV_HRBTR, GF_END, LV_WRBTR, LV_WMWST.
579| ENDIF.
580| MODIFY GT_LOAD.
581| ENDLOOP.
```
- **EN**: Per row: reads posting-key attributes from TBSL and accumulates debit/credit totals (tax excluded for customer/vendor accounts, included otherwise); at each document-group break, flags balanced documents green and unbalanced ones red.
- 테이블(파서): read - / write [GT_LOAD](/tables/GT_LOAD.md)
- SAP 객체: TBSL, BSEG, BSCHL, KOART, SHKZG, WRBTR, WMWST
- 업무 키워드: 대차검증, 차변, 대변, 전기키, 계정유형, 세액, 전표그룹, 대차일치, 신호등, 업로드검증
- English: balance check, debit, credit, posting key, account type, tax amount, document group, balanced document, upload validation
- 정의부(복사 시 함께 필요): [`GT_LOAD`](#decl-zfic0020top-6-gt_load), [`ALPHA_OUTPUT`](#decl-zficom-282-alpha_output), [`GT_TBSL`](#decl-zfic0020top-58-gt_tbsl), [`CHANGE_CURRENCY_SAP`](#decl-zficom-346-change_currency_sap), [`LV_WRBTR`](#decl-zfic0020f01-543-lv_wrbtr), [`C_WAERS`](#decl-zficom-199-c_waers), [`LV_WMWST`](#decl-zfic0020f01-544-lv_wmwst), [`C_D`](#decl-zficom-211-c_d), [`C_K`](#decl-zficom-218-c_k), [`C_S`](#decl-zficom-226-c_s), [`LV_SRBTR`](#decl-zfic0020f01-541-lv_srbtr), [`LV_HRBTR`](#decl-zfic0020f01-542-lv_hrbtr) 외 3건
- 위치: `abap://ZFIC0020/ZFIC0020F01#L548-L581` · confidence 0.87 · `ZFIC0020#ZFIC0020F01#FORM#MODIFY_DATA#C2`
### FORM GET_TBSL — `ZFIC0020F01` L591-L599 (9줄)
*전기키 마스터 TBSL 에서 전기키·차대변지시자·계정유형을 읽어 GT_TBSL 에 적재하는 FORM이다.*
> 이 unit 의 조각 1개가 6/9줄(67%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다.
#### [sql_select] TBSL 에서 전기키(BSCHL), 차/대변 지시자(SHKZG), 계정유형(KOART)을 모두 읽어 GT_TBSL 에 저장해 업로드 항목의 전기키 해석에 사용한다.
```abap
593| SELECT TBSL~BSCHL
594| TBSL~SHKZG
595| TBSL~KOART
596| INTO CORRESPONDING FIELDS OF TABLE GT_TBSL
597| FROM TBSL
598| WHERE BSCHL NE SPACE.
```
- **EN**: Select posting key, debit/credit indicator and account type from TBSL into GT_TBSL for interpreting uploaded posting keys.
- 테이블(파서): read [TBSL](/tables/TBSL.md) / write -
- SAP 객체: TBSL
- 업무 키워드: 전기키, 차대변 지시자, 계정유형, 마스터 조회
- English: posting key, TBSL, debit/credit indicator, account type
- 정의부(복사 시 함께 필요): [`GT_TBSL`](#decl-zfic0020top-58-gt_tbsl)
- 위치: `abap://ZFIC0020/ZFIC0020F01#L593-L598` · confidence 0.9 · `ZFIC0020#ZFIC0020F01#FORM#GET_TBSL#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://ZFIC0020/ZFICOM#L1350-L1365` · confidence 0.9 · `ZFIC0020#ZFICOM#FORM#STATUS_BAR#C1`
### FORM GET_ZFIT0010 — `ZFIC0020F01` L605-L620 (16줄)
*회사코드와 생성일자 범위로 업로드 이력 테이블 ZFIT0010 을 조회해 GT_Z0010 에 적재하고 SEQNO 로 정렬하는 FORM이다.*
> 이 unit 의 조각 1개가 12/16줄(75%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다.
#### [sql_select] ZFIT0010 에서 회사코드(P_BUKRS)와 생성일자(S_CPUDT) 조건으로 전표 업로드 이력을 읽어 GT_Z0010 에 적재하고, 없으면 메시지 I003 후 종료하며 있으면 건수를 저장하고 SEQNO 로 정렬한다.
```abap
607| SELECT *
608| INTO TABLE GT_Z0010
609| FROM ZFIT0010
610| WHERE BUKRS EQ P_BUKRS
611| AND CPUDT IN S_CPUDT.
612| IF SY-DBCNT EQ 0.
613| MESSAGE I003.
614| LEAVE LIST-PROCESSING.
615| ELSE.
616| GV_DBCNT = SY-DBCNT.
617| ENDIF.
618| SORT GT_Z0010 BY SEQNO.
```
- **EN**: Select upload history from ZFIT0010 by company code and creation date range into GT_Z0010; exit with message I003 if none, else store the count and sort by SEQNO.
- 테이블(파서): read [ZFIT0010](/tables/ZFIT0010.md) / write -
- SAP 객체: ZFIT0010
- 업무 키워드: 업로드 이력, 로그 조회, 회사코드, 생성일자
- English: upload log, SELECT, history table
- 정의부(복사 시 함께 필요): [`ZFIT0010`](#decl-zfic0020top-4-zfit0010), [`GT_Z0010`](#decl-zfic0020top-64-gt_z0010), [`P_BUKRS`](#decl-zfic0020top-98-p_bukrs), [`S_CPUDT`](#decl-zfic0020top-128-s_cpudt), [`GV_DBCNT`](#decl-zficom-68-gv_dbcnt)
- 위치: `abap://ZFIC0020/ZFIC0020F01#L607-L618` · confidence 0.95 · `ZFIC0020#ZFIC0020F01#FORM#GET_ZFIT0010#C1`
### EVENT END-OF-SELECTION — `ZFIC0020` L85-L98 (14줄)
*END-OF-SELECTION 에서 처리 모드(구조조회/업로드/로그)에 따라 GT_STRUCT·GT_LOAD·GT_Z0010 중 하나를 ALV_DISPLAY 로 출력하는 디스패치 블록이다.*
> 이 unit 의 조각 1개가 13/14줄(93%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다.
#### [control_flow] 구조조회(P_S)면 GT_STRUCT, 업로드(P_U)면 GT_LOAD(전기 버튼 포함 PF 상태), 로그(P_L)면 ZFIT0010 이력 GT_Z0010 을 ALV_DISPLAY 로 출력하며 조회/로그 모드는 PF 상태·커맨드 핸들러를 비운다.
```abap
86| CASE C_X.
87| * Structure : Layout Display
88| WHEN P_S.
89| CLEAR : GV_PF_STATUS, GV_USER_COMMAND.
90| PERFORM ALV_DISPLAY TABLES GT_STRUCT.
91| * Upload
92| WHEN P_U.
93| PERFORM ALV_DISPLAY TABLES GT_LOAD.
94| * BDC : Log Display
95| WHEN P_L.
96| CLEAR : GV_PF_STATUS, GV_USER_COMMAND.
97| PERFORM ALV_DISPLAY TABLES GT_Z0010.
98| ENDCASE.
```
- **EN**: Depending on the selected mode display the structure table, uploaded documents or ZFIT0010 log via ALV_DISPLAY, clearing custom PF-status/user-command for structure and log modes.
- 호출(파서): ALV_DISPLAY, ALV_DISPLAY, ALV_DISPLAY
- SAP 객체: ZFIT0010
- 업무 키워드: 처리 모드, 구조 조회, 업로드 결과, 로그 조회, ALV 출력
- English: ALV display, mode dispatch
- 정의부(복사 시 함께 필요): [`C_X`](#decl-zficom-231-c_x), [`P_S`](#decl-zfic0020top-115-p_s), [`GV_PF_STATUS`](#decl-zfialv-75-gv_pf_status), [`GV_USER_COMMAND`](#decl-zfialv-76-gv_user_command), [`GT_STRUCT`](#decl-zficom-185-gt_struct), [`P_U`](#decl-zfic0020top-120-p_u), [`GT_LOAD`](#decl-zfic0020top-6-gt_load), [`P_L`](#decl-zfic0020top-122-p_l), [`ZFIT0010`](#decl-zfic0020top-4-zfit0010), [`GT_Z0010`](#decl-zfic0020top-64-gt_z0010)
- 위치: `abap://ZFIC0020/ZFIC0020#L86-L98` · confidence 0.8 · `ZFIC0020#ZFIC0020#EVENT#END-OF-SELECTION#C1`
### FORM DATA_BDC — `ZFIC0020F01` L100-L148 (49줄)
*BDC 모드를 정하고 GT_LOAD 를 SEQNO 단위로 묶어 전표 헤더/항목을 만들어 BDC 전기한 뒤 결과를 GT_LOAD 에 반영하고 ZFIT0010 이력에 저장하는 핵심 FORM이다.*
> 이 unit 의 조각 3개가 41/49줄(84%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다.
#### [control_flow] 선택화면 라디오버튼(P_A/P_E/P_N)에 따라 BDC 처리 모드(A 포그라운드/E 오류만/N 백그라운드)를 GV_MODE 에 설정하고 업로드 건수를 저장한다.
```abap
102| CASE C_X.
103| WHEN P_A.
104| GV_MODE = C_A.
105| WHEN P_E.
106| GV_MODE = C_E.
107| WHEN P_N.
108| GV_MODE = C_N.
109| ENDCASE.
110| * Upload number of item save
111| DESCRIBE TABLE GT_LOAD LINES GV_TABIN.
```
- **EN**: Set the BDC processing mode (A/E/N) from the selection radio buttons and record the number of uploaded lines.
- 업무 키워드: BDC 모드, 포그라운드, 백그라운드, 오류만 표시
- English: BDC mode, call transaction mode
- 정의부(복사 시 함께 필요): [`C_X`](#decl-zficom-231-c_x), [`P_A`](#decl-zfic0020top-108-p_a), [`GV_MODE`](#decl-zficom-174-gv_mode), [`C_A`](#decl-zficom-208-c_a), [`P_E`](#decl-zfic0020top-106-p_e), [`C_E`](#decl-zficom-212-c_e), [`P_N`](#decl-zfic0020top-104-p_n), [`C_N`](#decl-zficom-221-c_n), [`GT_LOAD`](#decl-zfic0020top-6-gt_load), [`GV_TABIN`](#decl-zficom-81-gv_tabin)
- 위치: `abap://ZFIC0020/ZFIC0020F01#L102-L111` · confidence 0.85 · `ZFIC0020#ZFIC0020F01#FORM#DATA_BDC#C1`
#### [control_flow] GT_LOAD 를 순회하며 SEQNO(그룹핑번호)가 바뀔 때 BBKPF/BBSEG 를 초기화하고 헤더지시자(XHEIN) 행은 MAKE_BKPF 로 헤더를, 각 행은 MAKE_BSEG 로 항목을 만들며 오류 대비용 GT_ERROR 에 복사한 뒤 SEQNO 끝에서 BDC_TRANSACTION_FB01 로 전기하고 전표번호·연도·메시지·아이콘을 GT_LOAD 에 반영한다.
```abap
116| LOOP AT GT_LOAD.
117| MOVE-CORRESPONDING GT_LOAD TO GS_LOAD.
118| AT NEW SEQNO.
119| CLEAR : GT_BBKPF[], GT_BBKPF, GT_BBSEG[], GT_BBSEG,
120| GV_BELNR, GV_GJAHR, GF_END.
121| ENDAT.
122| IF GS_LOAD-XHEIN EQ C_X.
123| * Accounting Document Header
124| PERFORM MAKE_BKPF.
125| ENDIF.
126|
127| MOVE-CORRESPONDING GT_LOAD TO GT_ERROR.
128| APPEND GT_ERROR.
129| * Accounting Document Item
130| PERFORM MAKE_BSEG.
131| * The progress rate
132| PERFORM STATUS_BAR USING 0 SPACE.
133| AT END OF SEQNO.
134| * Document Posting
135| PERFORM BDC_TRANSACTION_FB01.
136| GF_END = C_X.
137| ENDAT.
138| IF GF_END EQ C_X.
139| GT_LOAD-BELNR = GV_BELNR.
140| GT_LOAD-GJAHR = GV_GJAHR.
141| GT_LOAD-MSG = GT_Z0010-NATXT.
142| GT_LOAD-SICON = GT_Z0010-SICON.
143| ENDIF.
144| MODIFY GT_LOAD.
145| ENDLOOP.
```
- **EN**: Loop over GT_LOAD grouped by SEQNO: build BBKPF header on the header-indicator row and BBSEG items per row, keep an error copy, post via BDC_TRANSACTION_FB01 at end of each group and write back document number, year, message and status icon.
- 테이블(파서): read - / write [GT_LOAD](/tables/GT_LOAD.md)
- 호출(파서): MAKE_BKPF, MAKE_BSEG, STATUS_BAR, BDC_TRANSACTION_FB01
- SAP 객체: BBKPF, BBSEG, FB01
- 업무 키워드: 그룹핑번호, 전표 헤더, 전표 항목, BDC 전기, 전표번호 반영, 오류 항목
- English: control break, BBKPF, BBSEG, document posting, BDC
- 정의부(복사 시 함께 필요): [`GT_LOAD`](#decl-zfic0020top-6-gt_load), [`GS_LOAD`](#decl-zfic0020top-66-gs_load), [`GT_BBKPF`](#decl-zficom-108-gt_bbkpf), [`GT_BBSEG`](#decl-zficom-109-gt_bbseg), [`GV_BELNR`](#decl-zficom-104-gv_belnr), [`GV_GJAHR`](#decl-zficom-106-gv_gjahr), [`GF_END`](#decl-zficom-140-gf_end), [`C_X`](#decl-zficom-231-c_x), [`GT_ERROR`](#decl-zfic0020top-68-gt_error), [`ZFIT0010`](#decl-zfic0020top-4-zfit0010), [`GT_Z0010`](#decl-zfic0020top-64-gt_z0010)
- 위치: `abap://ZFIC0020/ZFIC0020F01#L116-L145` · confidence 0.95 · `ZFIC0020#ZFIC0020F01#FORM#DATA_BDC#C2`
#### [db_write] 전표 업로드 처리 결과(GT_Z0010)를 이력 테이블 ZFIT0010 에 MODIFY 로 저장해 로그 조회에 사용한다.
```abap
147| MODIFY ZFIT0010 FROM TABLE GT_Z0010.
```
- **EN**: Persist the upload processing results to history table ZFIT0010 with MODIFY FROM TABLE.
- 테이블(파서): read - / write [ZFIT0010](/tables/ZFIT0010.md)
- SAP 객체: ZFIT0010
- 업무 키워드: 업로드 이력 저장, 처리 결과, 로그 테이블
- English: MODIFY, upload history, ZFIT0010
- 정의부(복사 시 함께 필요): [`ZFIT0010`](#decl-zfic0020top-4-zfit0010), [`GT_Z0010`](#decl-zfic0020top-64-gt_z0010)
- 위치: `abap://ZFIC0020/ZFIC0020F01#L147-L147` · confidence 0.95 · `ZFIC0020#ZFIC0020F01#FORM#DATA_BDC#C3`
### FORM MAKE_BKPF — `ZFIC0020F01` L223-L244 (22줄)
*엑셀 행(GS_LOAD)의 증빙일·전기일·전표유형·회사코드·기간·통화·환율·참조·헤더텍스트를 전표 헤더 구조 GT_BBKPF 에 매핑하고 T-Code(FB01/FBV1)를 정하는 FORM이다.*
> 이 unit 의 조각 1개가 20/22줄(91%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다.
#### [calculation] 실행 버튼에 따라 BBKPF-TCODE 를 FB01(전기) 또는 FBV1(임시전기)로 정하고 GS_LOAD 의 증빙일(BLDAT)·전기일(BUDAT)·전표유형(BLART)·회사코드·회계기간·통화·환율·환산일·참조번호·헤더텍스트를 GT_BBKPF 에 매핑해 APPEND 한다.
```abap
224| IF GV_UCOMM EQ 'FB01'.
225| GT_BBKPF-TCODE = C_FB01.
226| ELSE.
227| GT_BBKPF-TCODE = C_FBV1.
228| ENDIF.
229| GT_BBKPF-BLDAT = GS_LOAD-BLDAT. "Document Date in Document
230| GT_BBKPF-BUDAT = GS_LOAD-BUDAT. "Posting Date in the Document
231| GT_BBKPF-BLART = GS_LOAD-BLART. "Document type
232| GT_BBKPF-BUKRS = GS_LOAD-BUKRS. "Company Code
233| IF GS_LOAD-MONAT IS NOT INITIAL.
234| GT_BBKPF-MONAT = GS_LOAD-MONAT. "Fiscal period
235| ENDIF.
236| GT_BBKPF-WAERS = GS_LOAD-WAERS. "Currency Key
237| GT_BBKPF-KURSF = GS_LOAD-KURSF.
238| IF GS_LOAD-WWERT IS NOT INITIAL.
239| GT_BBKPF-WWERT = GS_LOAD-WWERT.
240| ENDIF.
241| GT_BBKPF-XBLNR = GS_LOAD-XBLNR.
242| GT_BBKPF-BKTXT = GS_LOAD-BKTXT. "Document Header Text
243| APPEND GT_BBKPF.
```
- **EN**: Set the BBKPF transaction code (FB01 post or FBV1 park) and map document date, posting date, document type, company code, period, currency, exchange rate, reference and header text from the uploaded row into GT_BBKPF.
- SAP 객체: BBKPF, FB01, FBV1
- 업무 키워드: 전표 헤더, 증빙일, 전기일, 전표유형, 통화, 환율, 임시전기
- English: BBKPF, document header, posting date, document type, exchange rate, park document
- 정의부(복사 시 함께 필요): [`GV_UCOMM`](#decl-zficom-71-gv_ucomm), [`GT_BBKPF`](#decl-zficom-108-gt_bbkpf), [`C_FB01`](#decl-zficom-255-c_fb01), [`C_FBV1`](#decl-zficom-254-c_fbv1), [`GT_LOAD`](#decl-zfic0020top-6-gt_load), [`GS_LOAD`](#decl-zfic0020top-66-gs_load)
- 위치: `abap://ZFIC0020/ZFIC0020F01#L224-L243` · confidence 0.95 · `ZFIC0020#ZFIC0020F01#FORM#MAKE_BKPF#C1`
### FORM MAKE_BSEG — `ZFIC0020F01` L250-L301 (52줄)
*엑셀 행(GS_LOAD)에서 전기키·계정·금액·세금·원가대상·지급조건 등을 전표 항목 구조 GT_BBSEG 에 매핑해 추가하는 FORM이다.*
> 이 unit 의 조각 1개가 50/52줄(96%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다.
#### [calculation] GS_LOAD 의 전기키(NEWBS)·계정(NEWKO/HKONT)·특별G/L·금액(WRBTR)·세금(WMWST/FWBAS)·외화 시 현지통화금액(DMBTR/MWSTS/HWBAS)·사업장·세금코드·원가센터·손익센터·WBS·오더·지급조건·참조키·텍스트·거래은행을 BBSEG 항목 구조에 매핑해 GT_BBSEG 에 APPEND 한다.
```abap
251| CLEAR GT_BBSEG.
252| GT_BBSEG-NEWBS = GS_LOAD-BSCHL. "Posting Key
253| GT_BBSEG-NEWKO = GS_LOAD-NEWKO. "Account for the Next Line Item
254| GT_BBSEG-HKONT = GS_LOAD-AKONT. "General Ledger Account
255| GT_BBSEG-NEWUM = GS_LOAD-UMSKZ. "Special G/L Indicator
256| GT_BBSEG-ANBWA = GS_LOAD-ANBWA.
257| GT_BBSEG-WRBTR = GS_LOAD-WRBTR. "Amount in document currency
258| IF GS_LOAD-WMWST IS NOT INITIAL.
259| GT_BBSEG-WMWST = GS_LOAD-WMWST. "Tax amount in document currency
260| GT_BBSEG-FWBAS = GS_LOAD-FWBAS. "Tax amount in document currency
261| ENDIF.
262| IF GS_LOAD-WAERS NE C_WAERS. "외화인 경우 현지통화금액 세팅
263| GT_BBSEG-DMBTR = GS_LOAD-DMBTR. "Amount in local currency
264| GT_BBSEG-MWSTS = GS_LOAD-MWSTS. "Tax Amount in Local Currency
265| GT_BBSEG-HWBAS = GS_LOAD-HWBAS. "Tax amount in document currency
266| ENDIF.
267| GT_BBSEG-BUPLA = GS_LOAD-BUPLA. "Business Place
268| GT_BBSEG-MWSKZ = GS_LOAD-MWSKZ. "Sales Tax Code
269| GT_BBSEG-GSBER = GS_LOAD-GSBER. "Business Area
270| GT_BBSEG-PROJK = GS_LOAD-PROJK. "WBS Element
271| GT_BBSEG-KOSTL = GS_LOAD-KOSTL. "Cost Center
272| GT_BBSEG-PRCTR = GS_LOAD-PRCTR. "Profit Center
273| GT_BBSEG-NPLNR = GS_LOAD-NPLNR. "네트워크
274| GT_BBSEG-VORNR = GS_LOAD-VORNR. "액티비티 번호
275| GT_BBSEG-FISTL = GS_LOAD-FISTL. "자금 관리 센터
276| GT_BBSEG-AUFNR = GS_LOAD-AUFNR. "오더 번호
277| IF GS_LOAD-ZFBDT IS NOT INITIAL.
278| GT_BBSEG-ZFBDT = GS_LOAD-ZFBDT. "만기계산기준일
279| ENDIF.
280| GT_BBSEG-ZTERM = GS_LOAD-ZTERM. "Terms of payment key
281| GT_BBSEG-ZBD1T = GS_LOAD-ZBD1T. "Terms of payment key
282| GT_BBSEG-ZLSCH = GS_LOAD-ZLSCH. "Payment Method
283| * GT_BBSEG-VALUT = GS_LOAD-VALUT. "Value date
284| * GT_BBSEG-WDATE = GS_LOAD-WDATE. "Issue Date
285| * GT_BBSEG-ZLSPR = GS_LOAD-ZLSPR. "Payment Block
286| GT_BBSEG-XREF1 = GS_LOAD-XREF1. "Business partner reference key1
287| GT_BBSEG-XREF2 = GS_LOAD-XREF2. "Business partner reference key2
288| GT_BBSEG-XREF3 = GS_LOAD-XREF3. "Business partner reference key3
289| GT_BBSEG-ZUONR = GS_LOAD-ZUONR. "Assignment number
290| GT_BBSEG-SGTXT = GS_LOAD-SGTXT. "Item Text
291| GT_BBSEG-HBKID = GS_LOAD-HBKID. "House bank
292| GT_BBSEG-HKTID = GS_LOAD-HKTID. "House bank
293| * GT_BBSEG-XMWST = GS_LOAD-XMWST. "Calculate tax automatically
294| * GT_BBSEG-FWBAS = GS_LOAD-FWBAS. "공급가액
295| * GT_BBSEG-HWBAS = GS_LOAD-HWBAS. "Tax Base Amount in Local Currency
296| * GT_BBSEG-PRCTR = GS_LOAD-PRCTR. "Profit Center
297| * GT_BBSEG-BVTYP = GS_LOAD-BVTYP. "Partner bank type
298| * GT_BBSEG-MENGE = GS_LOAD-MENGE. "Quantity
299| * GT_BBSEG-MEINS = GS_LOAD-MEINS. "Base Unit
300| APPEND GT_BBSEG.
```
- **EN**: Map the uploaded row into the BBSEG line-item structure (posting key, account, special G/L, amounts, tax, local-currency amounts for foreign currency, cost objects, payment terms, references, text, house bank) and append it.
- SAP 객체: BBSEG
- 업무 키워드: 전표 항목, 전기키, G/L 계정, 세금, 외화 현지통화, 원가센터, 손익센터, 지급조건
- English: BBSEG, posting key, G/L account, tax amount, local currency, cost center, profit center, payment terms
- 정의부(복사 시 함께 필요): [`GT_BBSEG`](#decl-zficom-109-gt_bbseg), [`GT_LOAD`](#decl-zfic0020top-6-gt_load), [`GS_LOAD`](#decl-zfic0020top-66-gs_load), [`C_WAERS`](#decl-zficom-199-c_waers)
- 위치: `abap://ZFIC0020/ZFIC0020F01#L251-L300` · confidence 0.95 · `ZFIC0020#ZFIC0020F01#FORM#MAKE_BSEG#C1`
### FORM BDC_TRANSACTION_FB01 — `ZFIC0020F01` L154-L217 (64줄)
*커스텀 FM Z_FI_DOCUMENT_POSTING 으로 전표 헤더/항목(BBKPF/BBSEG)을 BDC 전기하고 결과 전표번호·메시지를 GT_LOAD 아이콘·GT_BDCLOG·ZFIT0010 이력(GT_Z0010)에 기록하는 FORM이다.*
> 이 unit 의 조각 2개가 59/64줄(92%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다.
#### [fm_call] Z_FI_DOCUMENT_POSTING 을 BDC 모드(GV_MODE)로 호출해 GT_BBKPF/GT_BBSEG 로 회계전표를 전기하고, 전표번호가 생성되면 오류 테이블에서 해당 SEQNO 를 제거하고 녹색 아이콘, 실패면 적색 아이콘을 표시한다.
```abap
157| CALL FUNCTION 'Z_FI_DOCUMENT_POSTING'
158| EXPORTING
159| I_BDC_MODE = GV_MODE
160| I_MESSAGE = SPACE
161| IMPORTING
162| E_BELNR = GV_BELNR
163| E_GJAHR = GV_GJAHR
164| E_BUKRS = GV_BUKRS
165| TABLES
166| T_BBKPF = GT_BBKPF
167| T_BBSEG = GT_BBSEG
168| T_MESSTAB = GT_FIMSG.
169| * When succeed, data in error table is delete
170| IF NOT GV_BELNR IS INITIAL.
171| DELETE GT_ERROR WHERE SEQNO EQ GS_LOAD-SEQNO.
172| GT_LOAD-SICON = ICON_LED_GREEN.
173| ELSE.
174| GT_LOAD-SICON = ICON_LED_RED.
175| ENDIF.
```
- **EN**: Call Z_FI_DOCUMENT_POSTING with BBKPF/BBSEG tables to post the accounting document via BDC; on success remove the item from GT_ERROR and set a green icon, else red.
- 호출(파서): Z_FI_DOCUMENT_POSTING
- SAP 객체: Z_FI_DOCUMENT_POSTING, BBKPF, BBSEG, FB01
- 업무 키워드: 전표 전기, BDC 전기, 전표번호, 성공/실패 아이콘, 오류 테이블
- English: document posting, BDC, BBKPF, BBSEG, accounting document
- 정의부(복사 시 함께 필요): [`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_LOAD`](#decl-zfic0020top-6-gt_load), [`GT_ERROR`](#decl-zfic0020top-68-gt_error), [`GS_LOAD`](#decl-zfic0020top-66-gs_load)
- 위치: `abap://ZFIC0020/ZFIC0020F01#L157-L175` · confidence 0.95 · `ZFIC0020#ZFIC0020F01#FORM#BDC_TRANSACTION_FB01#C1`
#### [aggregation] 처리 결과를 ZFIT0010 이력 구조(GT_Z0010: 처리일시·사용자·파일명·SEQNO·회사코드·전표번호·연도·아이콘)에 채우고, 반환 메시지 GT_FIMSG 를 MESSAGE_TEXT_BUILD 로 텍스트화해 GT_BDCLOG 에 쌓으며 오류 메시지를 이력 텍스트(NATXT)로 남긴다.
```abap
177| GT_BDCLOG-SEQNO = GS_LOAD-SEQNO.
178| GT_Z0010-CPUDT = SY-DATUM.
179| GT_Z0010-CPUTM = SY-UZEIT.
180| GT_Z0010-USNAM = SY-UNAME.
181| GT_Z0010-FILENAME = P_FNAME.
182| ALPHA_INPUT GS_LOAD-SEQNO GS_LOAD-SEQNO.
183| GT_Z0010-SEQNO = GS_LOAD-SEQNO.
184| GT_Z0010-BUKRS = P_BUKRS.
185| GT_Z0010-BELNR = GV_BELNR.
186| GT_Z0010-GJAHR = GV_GJAHR.
187| GT_Z0010-SICON = GT_LOAD-SICON.
188| LOOP AT GT_FIMSG.
189| GT_BDCLOG-TCODE = GV_UCOMM.
190| GT_BDCLOG-PICK = C_X.
191| GT_BDCLOG-MSGTY = GT_FIMSG-MSGTY.
192| GT_BDCLOG-MSGID = GT_FIMSG-MSGID.
193| GT_BDCLOG-MSGNO = GT_FIMSG-MSGNO.
194| GT_BDCLOG-MSGV1 = GT_FIMSG-MSGV1.
195| GT_BDCLOG-MSGV2 = GT_FIMSG-MSGV2.
196| GT_BDCLOG-MSGV3 = GT_FIMSG-MSGV3.
197| GT_BDCLOG-MSGV4 = GT_FIMSG-MSGV4.
198| CALL FUNCTION 'MESSAGE_TEXT_BUILD'
199| EXPORTING
200| MSGID = GT_FIMSG-MSGID
201| MSGNR = GT_FIMSG-MSGNO
202| MSGV1 = GT_FIMSG-MSGV1
203| MSGV2 = GT_FIMSG-MSGV2
204| MSGV3 = GT_FIMSG-MSGV3
205| MSGV4 = GT_FIMSG-MSGV4
206| IMPORTING
207| MESSAGE_TEXT_OUTPUT = GT_BDCLOG-NATXT.
208| APPEND GT_BDCLOG.
209| IF GT_FIMSG-MSGTY EQ C_E.
210| GT_Z0010-NATXT = GT_BDCLOG-NATXT.
211| ENDIF.
212| ENDLOOP.
213| IF GT_Z0010-NATXT IS INITIAL.
214| GT_Z0010-NATXT = GT_BDCLOG-NATXT.
215| ENDIF.
216| APPEND GT_Z0010.
```
- **EN**: Fill the ZFIT0010 history record (timestamp, user, file, sequence, company code, document number, icon) and build readable BDC log messages from GT_FIMSG via MESSAGE_TEXT_BUILD, keeping the error text in NATXT.
- 호출(파서): MESSAGE_TEXT_BUILD
- SAP 객체: ZFIT0010, MESSAGE_TEXT_BUILD
- 업무 키워드: 처리 이력, BDC 로그, 메시지 텍스트, 업로드 결과
- English: upload history, BDC log, MESSAGE_TEXT_BUILD
- 정의부(복사 시 함께 필요): [`GT_BDCLOG`](#decl-zfic0020top-70-gt_bdclog), [`GT_LOAD`](#decl-zfic0020top-6-gt_load), [`GS_LOAD`](#decl-zfic0020top-66-gs_load), [`ZFIT0010`](#decl-zfic0020top-4-zfit0010), [`GT_Z0010`](#decl-zfic0020top-64-gt_z0010), [`P_FNAME`](#decl-zfic0020top-99-p_fname), [`ALPHA_INPUT`](#decl-zficom-267-alpha_input), [`P_BUKRS`](#decl-zfic0020top-98-p_bukrs), [`GV_BELNR`](#decl-zficom-104-gv_belnr), [`GV_GJAHR`](#decl-zficom-106-gv_gjahr), [`GT_FIMSG`](#decl-zficom-115-gt_fimsg), [`GV_UCOMM`](#decl-zficom-71-gv_ucomm) 외 2건
- 위치: `abap://ZFIC0020/ZFIC0020F01#L177-L216` · confidence 0.9 · `ZFIC0020#ZFIC0020F01#FORM#BDC_TRANSACTION_FB01#C2`
### FORM DATA_DOWNLOAD — `ZFIC0020F01` L307-L331 (25줄)
*오류 발생 항목(GT_ERROR)을 원본 파일명에 접미어를 붙인 파일로 GUI_DOWNLOAD 하는 FORM이다.*
> 이 unit 의 조각 1개가 17/25줄(68%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다.
#### [fm_call] 업로드 파일명의 확장자 앞에 TEXT-P06 접미어를 끼워 오류 파일명을 만들고 GUI_DOWNLOAD 로 오류 항목 GT_ERROR 를 PC 에 내려받으며 실패 시 시스템 메시지를 낸다.
```abap
314| LV_LEN = STRLEN( P_FNAME ).
315| LV_POS = LV_LEN - 4.
316|
317| CONCATENATE P_FNAME(LV_POS) TEXT-P06 P_FNAME+LV_POS(4)
318| INTO LV_FILENAME.
319|
320| CALL FUNCTION 'GUI_DOWNLOAD'
321| EXPORTING
322| FILENAME = LV_FILENAME
323| * FILETYPE = 'ASC'
324| * CODEPAGE = '8500'
325| TABLES
326| DATA_TAB = GT_ERROR.
327| IF SY-SUBRC NE 0.
328| MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
329| WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
330| ENDIF.
```
- **EN**: Build an error file name by inserting a suffix before the extension of the upload file and download GT_ERROR via GUI_DOWNLOAD.
- 호출(파서): GUI_DOWNLOAD
- SAP 객체: GUI_DOWNLOAD
- 업무 키워드: 오류 파일 다운로드, 오류 항목, 파일명 생성
- English: GUI_DOWNLOAD, error file, download
- 정의부(복사 시 함께 필요): [`LV_LEN`](#decl-zfic0020f01-311-lv_len), [`P_FNAME`](#decl-zfic0020top-99-p_fname), [`LV_POS`](#decl-zfic0020f01-312-lv_pos), [`LV_FILENAME`](#decl-zfic0020f01-309-lv_filename), [`GT_LOAD`](#decl-zfic0020top-6-gt_load), [`GT_ERROR`](#decl-zfic0020top-68-gt_error)
- 위치: `abap://ZFIC0020/ZFIC0020F01#L314-L330` · confidence 0.9 · `ZFIC0020#ZFIC0020F01#FORM#DATA_DOWNLOAD#C1`
### FORM LOG_DISPLAY — `ZFIC0020F01` L337-L345 (9줄)
*BDC 처리 로그 GT_BDCLOG 를 ZFIS0040 구조 기반 필드카탈로그(SEQNO·TCODE·T_MSG)로 로그 ALV 에 표시하는 FORM이다.*
> 이 unit 의 조각 1개가 5/9줄(56%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다.
#### [output] GT_BDCLOG 를 ZFIS0040 컨텍스트로 로그 객체를 만들고 SEQNO·TCODE·메시지 컬럼 필드카탈로그를 정의한 뒤 LOG_ALV_DISPLAY 로 BDC 로그를 출력한다.
```abap
340| PERFORM LOG_CREATE USING GS_BDCLOG 'GT_BDCLOG' LS_CONTEXT 'ZFIS0040'.
341| PERFORM LOG_FIELDCATALOG USING : 'ZFIS0040' 'SEQNO' SPACE,
342| 'ZFIS0040' 'TCODE' SPACE,
343| 'BAL_S_SHOW' 'T_MSG' SPACE.
344| PERFORM LOG_ALV_DISPLAY.
```
- **EN**: Create the log object for GT_BDCLOG with context ZFIS0040, define SEQNO/TCODE/message columns and display the BDC log ALV.
- 호출(파서): LOG_CREATE, LOG_FIELDCATALOG, LOG_FIELDCATALOG, LOG_FIELDCATALOG, LOG_ALV_DISPLAY
- SAP 객체: ZFIS0040, BAL_S_SHOW
- 업무 키워드: BDC 로그, 로그 출력, 메시지 목록
- English: BDC log, application log, ALV
- 정의부(복사 시 함께 필요): [`GT_BDCLOG`](#decl-zfic0020top-70-gt_bdclog), [`GS_BDCLOG`](#decl-zfic0020top-86-gs_bdclog), [`LS_CONTEXT`](#decl-zfic0020f01-339-ls_context)
- 위치: `abap://ZFIC0020/ZFIC0020F01#L340-L344` · confidence 0.8 · `ZFIC0020#ZFIC0020F01#FORM#LOG_DISPLAY#C1`
### FORM SET_STATUS — `ZFIC0020F01` L462-L469 (8줄)
*ALV PF 상태 PF_S1000 을 설정하되 로그 모드(P_L)나 실행 완료 후에는 FB01/FBV1 전기 버튼을 제외하는 FORM이다.*
> 이 unit 의 조각 1개가 6/8줄(75%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다.
#### [control_flow] 로그 조회 모드(P_L)이거나 이미 전기를 실행(GV_RUN)한 경우 FB01·FBV1 기능코드를 제외 목록에 넣고 PF-STATUS PF_S1000 을 설정해 중복 전기를 막는다.
```abap
463| IF P_L EQ C_X OR GV_RUN EQ C_X.
464| APPEND 'FB01' TO P_EXCL.
465| APPEND 'FBV1' TO P_EXCL.
466| ENDIF.
467|
468| SET PF-STATUS 'PF_S1000' EXCLUDING P_EXCL IMMEDIATELY.
```
- **EN**: Exclude FB01/FBV1 function codes from PF-STATUS PF_S1000 in log mode or after a posting run to prevent duplicate posting.
- 업무 키워드: PF 상태, 전기 버튼 제외, 중복 전기 방지, 로그 모드
- English: PF-STATUS, exclude function codes
- 정의부(복사 시 함께 필요): [`P_L`](#decl-zfic0020top-122-p_l), [`C_X`](#decl-zficom-231-c_x), [`GV_RUN`](#decl-zfic0020top-88-gv_run)
- 위치: `abap://ZFIC0020/ZFIC0020F01#L463-L468` · confidence 0.85 · `ZFIC0020#ZFIC0020F01#FORM#SET_STATUS#C1`
### FORM USER_COMMAND — `ZFIC0020F01` L478-L526 (49줄)
*ALV 사용자 명령 핸들러로 전기실행(FB01)/임시전기(FBV1)는 DATA_BDC 로 전표 생성, BLOG 는 BDC 로그 표시, 전표번호 더블클릭은 FB03 조회를 분기한다.*
> 이 unit 의 조각 3개가 39/49줄(80%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다.
#### [control_flow] 전기실행(FB01) 또는 임시전기(FBV1) 버튼 시 DATA_BDC 로 업로드 전표를 BDC 생성하고 ALV 를 행·열 안정 상태로 갱신하며 실행 완료 플래그(GV_RUN)를 세운다.
```abap
483| WHEN 'FB01'.
484| PERFORM DATA_BDC.
485| * PERFORM LOG_DISPLAY.
486| P_SELFIELD-REFRESH = C_X.
487| P_SELFIELD-COL_STABLE = C_X.
488| P_SELFIELD-ROW_STABLE = C_X.
489| GV_RUN = C_X.
490| * 임시전기실행
491| WHEN 'FBV1'.
492| PERFORM DATA_BDC.
493| * PERFORM LOG_DISPLAY.
494| P_SELFIELD-REFRESH = C_X.
495| P_SELFIELD-COL_STABLE = C_X.
496| P_SELFIELD-ROW_STABLE = C_X.
497| GV_RUN = C_X.
```
- **EN**: On FB01/FBV1 function codes run DATA_BDC to post the uploaded documents via BDC, then refresh the ALV and set the run flag.
- 호출(파서): DATA_BDC, DATA_BDC
- SAP 객체: FB01, FBV1
- 업무 키워드: 전기 실행, 임시 전기, 전표 생성, BDC 실행, ALV 갱신
- English: document posting, park document, BDC, FB01, FBV1
- 정의부(복사 시 함께 필요): [`C_X`](#decl-zficom-231-c_x), [`GV_RUN`](#decl-zfic0020top-88-gv_run)
- 위치: `abap://ZFIC0020/ZFIC0020F01#L483-L497` · confidence 0.9 · `ZFIC0020#ZFIC0020F01#FORM#USER_COMMAND#C1`
#### [control_flow] BLOG 버튼 시 GT_BDCLOG 에 로그가 있으면 LOG_DISPLAY 로 BDC 처리 로그를 보여주고 없으면 안내 메시지(I009)를 낸다.
```abap
499| WHEN 'BLOG'.
500| READ TABLE GT_BDCLOG INDEX 1.
501| IF SY-SUBRC EQ 0.
502| PERFORM LOG_DISPLAY.
503| ELSE.
504| MESSAGE I009.
505| ENDIF.
```
- **EN**: Show the BDC processing log via LOG_DISPLAY when entries exist, otherwise issue information message I009.
- 호출(파서): LOG_DISPLAY
- 업무 키워드: BDC 로그, 로그 조회, 메시지
- English: BDC log, log display
- 정의부(복사 시 함께 필요): [`GT_BDCLOG`](#decl-zfic0020top-70-gt_bdclog)
- 위치: `abap://ZFIC0020/ZFIC0020F01#L499-L505` · confidence 0.85 · `ZFIC0020#ZFIC0020F01#FORM#USER_COMMAND#C2`
#### [control_flow] 더블클릭한 컬럼이 GT_LOAD-BELNR 또는 GT_Z0010-BELNR(ZFIT0010 이력)이면 해당 행의 전표번호·회계연도로 CALL_TRANSACTION_FB03 을 호출해 회계전표를 조회한다.
```abap
507| WHEN '&IC1'.
508| CASE P_SELFIELD-SEL_TAB_FIELD.
509| * Accounting Document Number
510| WHEN 'GT_LOAD-BELNR'.
511| READ TABLE GT_LOAD INDEX P_SELFIELD-TABINDEX.
512| CHECK GT_LOAD-BELNR IS NOT INITIAL.
513| PERFORM CALL_TRANSACTION_FB03 USING P_BUKRS
514| GT_LOAD-BELNR
515| GT_LOAD-GJAHR.
516| * Accounting Document Number
517| WHEN 'GT_Z0010-BELNR'.
518| READ TABLE GT_Z0010 INDEX P_SELFIELD-TABINDEX.
519| CHECK GT_Z0010-BELNR IS NOT INITIAL.
520| PERFORM CALL_TRANSACTION_FB03 USING P_BUKRS
521| GT_Z0010-BELNR
522| GT_Z0010-GJAHR.
523| ENDCASE.
```
- **EN**: On double-click of the document number column read the row and call FB03 (CALL_TRANSACTION_FB03) with company code, document number and fiscal year.
- 호출(파서): CALL_TRANSACTION_FB03, CALL_TRANSACTION_FB03
- SAP 객체: FB03, ZFIT0010
- 업무 키워드: 전표 조회, 더블클릭, 전표번호, 회계연도
- English: accounting document display, FB03, hotspot
- 정의부(복사 시 함께 필요): [`GT_LOAD`](#decl-zfic0020top-6-gt_load), [`P_BUKRS`](#decl-zfic0020top-98-p_bukrs), [`ZFIT0010`](#decl-zfic0020top-4-zfit0010), [`GT_Z0010`](#decl-zfic0020top-64-gt_z0010)
- 위치: `abap://ZFIC0020/ZFIC0020F01#L507-L523` · confidence 0.9 · `ZFIC0020#ZFIC0020F01#FORM#USER_COMMAND#C3`
### 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-zfic0020top-98-p_bukrs)
- 위치: `abap://ZFIC0020/ZFICOM#L1331-L1335` · confidence 0.95 · `ZFIC0020#ZFICOM#FORM#CALL_TRANSACTION_FB03#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://ZFIC0020/ZFICOM#L380-L386` · confidence 0.9 · `ZFIC0020#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://ZFIC0020/ZFICOM#L401-L407` · confidence 0.9 · `ZFIC0020#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-zfic0020top-98-p_bukrs)
- 선언을 못 찾은 이름: J_1BBRANCH (수집 안 된 인클루드·함수 인터페이스일 수 있다)
- 위치: `abap://ZFIC0020/ZFICOM#L423-L427` · confidence 0.9 · `ZFIC0020#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://ZFIC0020/ZFICOM#L443-L463` · confidence 0.9 · `ZFIC0020#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://ZFIC0020/ZFICOM#L482-L489` · confidence 0.85 · `ZFIC0020#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://ZFIC0020/ZFICOM#L510-L518` · confidence 0.85 · `ZFIC0020#ZFICOM#FORM#CHECK_CONFIRM_STEP_2#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-zfic0020top-98-p_bukrs), [`GF_CHECK`](#decl-zficom-87-gf_check), [`C_X`](#decl-zficom-231-c_x)
- 위치: `abap://ZFIC0020/ZFICOM#L529-L535` · confidence 0.93 · `ZFIC0020#ZFICOM#FORM#AUTHORITY_BUKRS#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://ZFIC0020/ZFICOM#L547-L562` · confidence 0.9 · `ZFIC0020#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://ZFIC0020/ZFICOM#L578-L591` · confidence 0.85 · `ZFIC0020#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://ZFIC0020/ZFICOM#L613-L621` · confidence 0.85 · `ZFIC0020#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://ZFIC0020/ZFICOM#L642-L649` · confidence 0.85 · `ZFIC0020#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), [`P_FNAME`](#decl-zfic0020top-99-p_fname), [`LV_PROG`](#decl-zficom-678-lv_prog), [`LV_DNUM`](#decl-zficom-679-lv_dnum), [`C_X`](#decl-zficom-231-c_x)
- 위치: `abap://ZFIC0020/ZFICOM#L682-L702` · confidence 0.85 · `ZFIC0020#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://ZFIC0020/ZFICOM#L761-L769` · confidence 0.9 · `ZFIC0020#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://ZFIC0020/ZFICOM#L787-L806` · confidence 0.9 · `ZFIC0020#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), [`P_FNAME`](#decl-zfic0020top-99-p_fname), [`LV_POS`](#decl-zficom-859-lv_pos), [`LV_TYPE`](#decl-zficom-860-lv_type)
- 위치: `abap://ZFIC0020/ZFICOM#L864-L867` · confidence 0.85 · `ZFIC0020#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), [`P_FNAME`](#decl-zfic0020top-99-p_fname), [`C_X`](#decl-zficom-231-c_x)
- 위치: `abap://ZFIC0020/ZFICOM#L869-L885` · confidence 0.9 · `ZFIC0020#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), [`P_FNAME`](#decl-zfic0020top-99-p_fname)
- 위치: `abap://ZFIC0020/ZFICOM#L887-L907` · confidence 0.9 · `ZFIC0020#ZFICOM#FORM#DATA_UPLOAD#C3`
### 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://ZFIC0020/ZFICOM#L967-L998` · confidence 0.9 · `ZFIC0020#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://ZFIC0020/ZFICOM#L1016-L1038` · confidence 0.9 · `ZFIC0020#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://ZFIC0020/ZFICOM#L1085-L1087` · confidence 0.85 · `ZFIC0020#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://ZFIC0020/ZFICOM#L1108-L1136` · confidence 0.9 · `ZFIC0020#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://ZFIC0020/ZFICOM#L1145-L1155` · confidence 0.85 · `ZFIC0020#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://ZFIC0020/ZFICOM#L1163-L1174` · confidence 0.85 · `ZFIC0020#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://ZFIC0020/ZFICOM#L1242-L1250` · confidence 0.9 · `ZFIC0020#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://ZFIC0020/ZFICOM#L1260-L1265` · confidence 0.9 · `ZFIC0020#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://ZFIC0020/ZFICOM#L1275-L1284` · confidence 0.9 · `ZFIC0020#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-zfic0020top-98-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://ZFIC0020/ZFICOM#L1299-L1316` · confidence 0.9 · `ZFIC0020#ZFICOM#FORM#BDC_FK03#C1`
## 정의부 (306건)
로직 조각을 다른 프로그램으로 옮겨 붙일 때 **함께 가야 하는 선언**이다. 조각별로 무엇이 필요한지는 위 조각 항목의 `정의부` 줄에 있고(이름을 누르면 여기로 온다), 붙여넣기용으로 의존까지 묶은 코드는 `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'.
```
### `ZFIC0020TOP` (20건)
#### ZFIT0010 — tables · L4-L4 {#decl-zfic0020top-4-zfit0010}
```abap
TABLES : ZFIT0010. "전표생성로그
```
#### GT_LOAD — data · L6-L56 {#decl-zfic0020top-6-gt_load}
```abap
DATA : BEGIN OF GT_LOAD OCCURS 0,
SEQNO(10) TYPE N, "그룹핑번호
XHEIN(01), "헤더지시자
BELNR LIKE BKPF-BELNR, "전표번호
BLDAT LIKE BKPF-BLDAT, "Document Date
BUDAT LIKE BKPF-BUDAT, "Posting Date
MONAT LIKE BKPF-MONAT, "회계 기간
BLART LIKE BKPF-BLART, "전표 유형
BUKRS LIKE BKPF-BUKRS, "회사 코드
WAERS LIKE BKPF-WAERS, "Currency
KURSF(10), "Rate
WWERT LIKE BKPF-WWERT, "환산일
XBLNR LIKE BKPF-XBLNR, "Reference
BKTXT LIKE BKPF-BKTXT, "HeaderText
BSCHL LIKE BSEG-BSCHL, "Posting key
NEWKO LIKE BBSEG-NEWKO, "Account
UMSKZ LIKE BSEG-UMSKZ, "Special G/L Indicator
ANBWA LIKE BSEG-ANBWA, "자산 거래 유형
AKONT LIKE LFB1-AKONT, "Recon. Account
WRBTR LIKE BBSEG-WRBTR, "Amount in document currency
DMBTR LIKE BBSEG-DMBTR, "Amount in local currency
WMWST LIKE BBSEG-WMWST, "Tax amount in document currency
MWSTS LIKE BBSEG-MWSTS, "Tax Amount in Local Currency
FWBAS LIKE BBSEG-FWBAS, "Tax Amount in Local Currency
HWBAS LIKE BBSEG-HWBAS, "Tax Amount in Local Currency
BUPLA LIKE BSEG-BUPLA, "Business Place
MWSKZ LIKE BSEG-MWSKZ, "Sales Tax Code
GSBER LIKE BSEG-GSBER, "Business Area
PROJK(24), "WBS Element
KOSTL LIKE BSEG-KOSTL, "Cost Center
PRCTR LIKE BBSEG-PRCTR, "손익센터
NPLNR LIKE BSEG-NPLNR, "계정지정 네트워크번호
VORNR LIKE BBSEG-VORNR, "작업/액티비티 번호
FISTL LIKE BSEG-FISTL, "자금 관리 센터
AUFNR LIKE BSEG-AUFNR, "오더 번호
ZFBDT LIKE BSEG-ZFBDT, "Baseline date for due date calculation
ZTERM LIKE BSEG-ZTERM, "Terms of payment key
ZBD1T LIKE BBSEG-ZBD1T, "현금할인일
ZLSCH LIKE BSEG-ZLSCH, "지급 방법
XREF1 LIKE BSEG-XREF1, "참조 키1
XREF2 LIKE BSEG-XREF2, "참조 키2
XREF3 LIKE BSEG-XREF3, "참조 키3
ZUONR LIKE BSEG-ZUONR, "Assignment
SGTXT LIKE BSEG-SGTXT, "Item text
HBKID LIKE BSEG-HBKID, "House bank
HKTID LIKE BSEG-HKTID, "계정 명세에 대한 ID
GJAHR LIKE BKPF-GJAHR, "회계연도
SICON LIKE ICON-ID,
SEQNO2(10) TYPE N, "Excel Sequence 번호(Sort 용)
MSG(100) TYPE C,
END OF GT_LOAD.
```
#### GT_TBSL — data · L58-L62 {#decl-zfic0020top-58-gt_tbsl}
```abap
DATA : BEGIN OF GT_TBSL OCCURS 0,
BSCHL LIKE TBSL-BSCHL,
SHKZG LIKE TBSL-SHKZG,
KOART LIKE TBSL-KOART,
END OF GT_TBSL.
```
#### GT_Z0010 — data · L64-L64 {#decl-zfic0020top-64-gt_z0010}
```abap
DATA : GT_Z0010 LIKE ZFIT0010 OCCURS 0 WITH HEADER LINE.
```
#### GS_LOAD — data · L66-L66 {#decl-zfic0020top-66-gs_load}
```abap
DATA : GS_LOAD LIKE GT_LOAD.
```
#### GT_ERROR — data · L68-L68 {#decl-zfic0020top-68-gt_error}
```abap
DATA : GT_ERROR LIKE GT_LOAD OCCURS 0 WITH HEADER LINE.
```
#### GT_BDCLOG — data · L70-L84 {#decl-zfic0020top-70-gt_bdclog}
```abap
DATA : BEGIN OF GT_BDCLOG OCCURS 0,
SEQNO TYPE RSNRCHAR, "Sequence
TCODE LIKE SY-TCODE, "Transaction Code
MSGTY LIKE MSG_TAB_LINE-MSGTY, "Message Type
NATXT LIKE MSG_TAB_LINE-NATXT, "Message Text
MSGID LIKE MSG_TAB_LINE-MSGID, "Message Class
MSGNO LIKE MSG_TAB_LINE-MSGNO, "Message Number
MSGV1 LIKE MSG_TAB_LINE-MSGV1, "Message Variables
MSGV2 LIKE MSG_TAB_LINE-MSGV2, "Message Variables
MSGV3 LIKE MSG_TAB_LINE-MSGV3, "Message Variables
MSGV4 LIKE MSG_TAB_LINE-MSGV4, "Message Variables
PICK LIKE MSG_TAB_LINE-PICK, "Single-Character Flag
POSTED LIKE MSG_TAB_LINE-POSTED, "Checkbox
NEWKEY LIKE MSG_TAB_LINE-NEWKEY, "Checkbox
END OF GT_BDCLOG.
```
#### GS_BDCLOG — data · L86-L86 {#decl-zfic0020top-86-gs_bdclog}
```abap
DATA : GS_BDCLOG LIKE GT_BDCLOG.
```
#### GV_RUN — data · L88-L88 {#decl-zfic0020top-88-gv_run}
```abap
DATA: GV_RUN(1) TYPE C. "실행여부
```
#### C_TCODE — constants · L92-L92 {#decl-zfic0020top-92-c_tcode}
```abap
CONSTANTS : C_TCODE LIKE BKPF-TCODE VALUE 'FB01'. "T-Code
```
#### P_BUKRS — parameter · L98-L98 {#decl-zfic0020top-98-p_bukrs}
```abap
PARAMETERS : P_BUKRS LIKE BKPF-BUKRS MEMORY ID BUK OBLIGATORY.
```
#### P_FNAME — parameter · L99-L99 {#decl-zfic0020top-99-p_fname}
```abap
PARAMETERS:
P_FNAME LIKE RLGRAP-FILENAME.
```
#### P_N — parameter · L104-L104 {#decl-zfic0020top-104-p_n}
```abap
PARAMETERS : P_N RADIOBUTTON GROUP G1. "BACKGROUND
```
#### P_E — parameter · L106-L106 {#decl-zfic0020top-106-p_e}
```abap
PARAMETERS : P_E RADIOBUTTON GROUP G1. "DISPLAY ERRORS ONLY
```
#### P_A — parameter · L108-L108 {#decl-zfic0020top-108-p_a}
```abap
PARAMETERS : P_A RADIOBUTTON GROUP G1. "PROCESS/FOREGROUND
```
#### P_S — parameter · L115-L115 {#decl-zfic0020top-115-p_s}
```abap
PARAMETERS : P_S RADIOBUTTON GROUP G2 DEFAULT 'X' USER-COMMAND MODU.
```
#### P_D — parameter · L118-L118 {#decl-zfic0020top-118-p_d}
```abap
PARAMETERS : P_D RADIOBUTTON GROUP G2. "Download
```
#### P_U — parameter · L120-L120 {#decl-zfic0020top-120-p_u}
```abap
PARAMETERS : P_U RADIOBUTTON GROUP G2. "Upload
```
#### P_L — parameter · L122-L122 {#decl-zfic0020top-122-p_l}
```abap
PARAMETERS : P_L RADIOBUTTON GROUP G2. "Log
```
#### S_CPUDT — select-option · L128-L128 {#decl-zfic0020top-128-s_cpudt}
```abap
SELECT-OPTIONS : S_CPUDT FOR BKPF-CPUDT MODIF ID L.
```
### `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).
```
### `ZFIC0020F01` (9건)
#### LV_FILENAME — data · unit 로컬 · L309-L309 {#decl-zfic0020f01-309-lv_filename}
```abap
DATA : LV_FILENAME TYPE STRING.
```
#### LV_LEN — data · unit 로컬 · L311-L311 {#decl-zfic0020f01-311-lv_len}
```abap
DATA : LV_LEN TYPE I.
```
#### LV_POS — data · unit 로컬 · L312-L312 {#decl-zfic0020f01-312-lv_pos}
```abap
DATA:
LV_POS TYPE I.
```
#### LS_CONTEXT — data · unit 로컬 · L339-L339 {#decl-zfic0020f01-339-ls_context}
```abap
DATA : LS_CONTEXT TYPE ZFIS0040.
```
#### LV_KEY — data · unit 로컬 · L371-L371 {#decl-zfic0020f01-371-lv_key}
```abap
DATA : LV_KEY LIKE WWWDATATAB.
```
#### LV_SRBTR — data · unit 로컬 · L541-L541 {#decl-zfic0020f01-541-lv_srbtr}
```abap
DATA : LV_SRBTR LIKE BSEG-WRBTR.
```
#### LV_HRBTR — data · unit 로컬 · L542-L542 {#decl-zfic0020f01-542-lv_hrbtr}
```abap
DATA:
LV_HRBTR LIKE BSEG-WRBTR.
```
#### LV_WRBTR — data · unit 로컬 · L543-L543 {#decl-zfic0020f01-543-lv_wrbtr}
```abap
DATA:
LV_WRBTR LIKE BSEG-WRBTR.
```
#### LV_WMWST — data · unit 로컬 · L544-L544 {#decl-zfic0020f01-544-lv_wmwst}
```abap
DATA:
LV_WMWST LIKE BSEG-WMWST.
```
## 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 | |
| INITIALIZATION | EVENT | ZFIC0020 L29-33 | 0 | 본문이 비어 있는 INITIALIZATION 이벤트 블록이다. |
| AT SELECTION-SCREEN ON VALUE-REQUEST | EVENT | ZFIC0020 L34-39 | 0 | P_FNAME F4 이벤트에서 TMEP_SELECT(파일 선택 대화상자)를 호출하는 플러밍 블록이다. |
| AT SELECTION-SCREEN OUTPUT | EVENT | ZFIC0020 L40-45 | 0 | AT SELECTION-SCREEN OUTPUT 에서 MODIFY_SCREEN 을 호출하는 플러밍 블록이다. |
| START-OF-SELECTION | EVENT | ZFIC0020 L46-84 | 2 | START-OF-SELECTION 에서 모드별(구조조회/템플릿 다운로드/업로드/로그)로 파일 검증·엑셀 업로드·ZFIT0010 조회·ALV 준비를 분기하는 메인 흐름이다. |
| END-OF-SELECTION | EVENT | ZFIC0020 L85-98 | 1 | END-OF-SELECTION 에서 처리 모드(구조조회/업로드/로그)에 따라 GT_STRUCT·GT_LOAD·GT_Z0010 중 하나를 ALV_DISPLAY 로 출력하는 디스패치 블록이다. |
| TMEP_SELECT | FORM | ZFIC0020F01 L9-24 | 0 | WS_FILENAME_GET 으로 업로드 파일 선택 대화상자를 띄워 P_FNAME 에 파일 경로를 받는 F4 helper FORM이다. |
| STRUCTURE_DISPLAY | FORM | ZFIC0020F01 L30-39 | 0 | 구조조회 모드에서 STRUCTURE_DATA·ALV 설정·필드카탈로그·이벤트를 순서대로 호출하는 디스패치 FORM이다. |
| STRUCTURE_DATA | FORM | ZFIC0020F01 L45-94 | 1 | 업로드 엑셀이 가져야 할 컬럼 구조(항목명·타입·길이·필수여부·설명)를 DATA_WRITE 로 GT_STRUCT 에 나열하는 구조조회용 FORM이다. |
| DATA_BDC | FORM | ZFIC0020F01 L100-148 | 3 | BDC 모드를 정하고 GT_LOAD 를 SEQNO 단위로 묶어 전표 헤더/항목을 만들어 BDC 전기한 뒤 결과를 GT_LOAD 에 반영하고 ZFIT0010 이력에 저장하는 핵심 FORM이다. |
| BDC_TRANSACTION_FB01 | FORM | ZFIC0020F01 L154-217 | 2 | 커스텀 FM Z_FI_DOCUMENT_POSTING 으로 전표 헤더/항목(BBKPF/BBSEG)을 BDC 전기하고 결과 전표번호·메시지를 GT_LOAD 아이콘·GT_BDCLOG·ZFIT0010 이력(GT_Z0010)에 기록하는 FORM이다. |
| MAKE_BKPF | FORM | ZFIC0020F01 L223-244 | 1 | 엑셀 행(GS_LOAD)의 증빙일·전기일·전표유형·회사코드·기간·통화·환율·참조·헤더텍스트를 전표 헤더 구조 GT_BBKPF 에 매핑하고 T-Code(FB01/FBV1)를 정하는 FORM이다. |
| MAKE_BSEG | FORM | ZFIC0020F01 L250-301 | 1 | 엑셀 행(GS_LOAD)에서 전기키·계정·금액·세금·원가대상·지급조건 등을 전표 항목 구조 GT_BBSEG 에 매핑해 추가하는 FORM이다. |
| DATA_DOWNLOAD | FORM | ZFIC0020F01 L307-331 | 1 | 오류 발생 항목(GT_ERROR)을 원본 파일명에 접미어를 붙인 파일로 GUI_DOWNLOAD 하는 FORM이다. |
| LOG_DISPLAY | FORM | ZFIC0020F01 L337-345 | 1 | BDC 처리 로그 GT_BDCLOG 를 ZFIS0040 구조 기반 필드카탈로그(SEQNO·TCODE·T_MSG)로 로그 ALV 에 표시하는 FORM이다. |
| MODIFY_SCREEN | FORM | ZFIC0020F01 L351-364 | 0 | 로그 조회 모드(P_L)일 때만 그룹 L 의 선택화면 필드를 활성/표시하는 LOOP AT SCREEN 플러밍 FORM이다. |
| FILE_DOWNLOAD | FORM | ZFIC0020F01 L370-376 | 1 | 웹 리포지토리(SMW0) 객체 MIZFIC0020 을 DOWNLOAD_WEB_OBJECT 로 내려받아 업로드 템플릿 파일을 제공하는 FORM이다. |
| FIELDCATALOG_MERGE | FORM | ZFIC0020F01 L382-454 | 0 | 업로드 ALV(GT_LOAD)의 필드카탈로그를 생성하고 컬럼 텍스트·정렬·핫스팟·숨김을 설정하는 ALV 설정 FORM이다. |
| SET_STATUS | FORM | ZFIC0020F01 L462-469 | 1 | ALV PF 상태 PF_S1000 을 설정하되 로그 모드(P_L)나 실행 완료 후에는 FB01/FBV1 전기 버튼을 제외하는 FORM이다. |
| USER_COMMAND | FORM | ZFIC0020F01 L478-526 | 3 | ALV 사용자 명령 핸들러로 전기실행(FB01)/임시전기(FBV1)는 DATA_BDC 로 전표 생성, BLOG 는 BDC 로그 표시, 전표번호 더블클릭은 FB03 조회를 분기한다. |
| MODIFY_DATA | FORM | ZFIC0020F01 L532-582 | 2 | 업로드한 전표 행을 전표그룹별로 묶어 차·대변 합계가 맞는지 검증하고 신호등으로 표시한다. |
| GET_TBSL | FORM | ZFIC0020F01 L591-599 | 1 | 전기키 마스터 TBSL 에서 전기키·차대변지시자·계정유형을 읽어 GT_TBSL 에 적재하는 FORM이다. |
| GET_ZFIT0010 | FORM | ZFIC0020F01 L605-620 | 1 | 회사코드와 생성일자 범위로 업로드 이력 테이블 ZFIT0010 을 조회해 GT_Z0010 에 적재하고 SEQNO 로 정렬하는 FORM이다. |
| FIELDCATALOG_MERGE_LOG | FORM | ZFIC0020F01 L629-651 | 0 | ZFIT0010 로그 ALV 용 필드카탈로그를 생성하고 컬럼 정렬·키·핫스팟 속성을 조정하는 ALV 설정 FORM이다. |
| 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 상태바에 진행 상황 텍스트를 표시하는 공통 유틸리티다. |