--- type: abap-program title: "ZFIR0020 — 매입 채무 Interface 내역" description: "외부(그룹웨어·구매 시스템)에서 넘어온 매입 채무 전표 연계 내역을 조회하는 리포트다. CBO 테이블 ZFIT0050 을 전표일자·사업영역·공급업체 조건으로 읽어 편집 가능한 ALV 그리드에 띄우고, 전표번호 클릭으로 FB03 조회로 연결한다. POSTING_INTERFACE 계열 FM 을 쓰는 전기 기능도 포함되어 있어 조회에서 바로 전표 처리로 이어질 수 있는 구조다." resource: "abap://ZFIR0020" tags: ["인터페이스", "채무관리", "매입", "전표", "리포트", "FI", "매입채무", "인터페이스내역", "전표일자", "사업영역", "공급업체", "조회조건", "거래유형", "취소플래그", "도메인텍스트", "공급업체명", "처리결과", "신호등", "상태표시", "기능코드"] generated: { by: "abap-indexing/z-ai/glm-5.2:free", at: "2026-09-20T15:36:19+00:00" } status: stable x-package: x-changed-on: x-tables-read: ["AENR", "DD07T", "LFA1", "T001", "ZFIT0050"] x-tables-write: [] x-calls: ["ALSM_EXCEL_TO_INTERNAL_TABLE", "BAPI_CURRENCY_CONV_TO_INTERNAL", "CC01", "CLOI_PUT_SIGN_IN_FRONT", "CONVERSION_EXIT_ALPHA_INPUT", "CONVERSION_EXIT_ALPHA_OUTPUT", "CONVERT_OTF", "CONVERT_TO_LOCAL_CURRENCY", "DATE_CHECK_PLAUSIBILITY", "DYNP_VALUES_READ", "DYNP_VALUES_UPDATE", "F4IF_INT_TABLE_VALUE_REQUEST", "F4_DATE", "FB03", "FI_PERIOD_DETERMINE", "GUI_DOWNLOAD", "K_HIERARCHY_TABLES_READ", "LVC_FIELDCATALOG_MERGE", "LVC_FIELDCAT_COMPLETE", "LVC_TRANSFER_FROM_SLIS", "MD_CONVERT_MATERIAL_UNIT", "MESSAGE_TEXT_BUILD", "NUMBER_GET_NEXT", "POPUP_TO_CONFIRM", "POPUP_TO_CONFIRM_STEP", "POPUP_TO_SELECT_MONTH", "POSTING_INTERFACE_END", "POSTING_INTERFACE_START", "REUSE_ALV_FIELDCATALOG_MERGE", "REUSE_ALV_GRID_COMMENTARY_SET", "RP_LAST_DAY_OF_MONTHS", "SAPGUI_PROGRESS_INDICATOR", "SCPR_SV_SHOW_MESSAGE_LIST", "STRING_REPLACE", "SX_OBJECT_CONVERT_OTF_PDF"] x-code-hash: "19a030587bbca946704fd63a3af3e3e8aaea4ecca8b8a066e3060894b49047ec" x-unit-count: 121 x-chunk-count: 48 x-declaration-count: 201 --- ## 업무 목적 외부(그룹웨어·구매 시스템)에서 넘어온 매입 채무 전표 연계 내역을 조회하는 리포트다. CBO 테이블 ZFIT0050 을 전표일자·사업영역·공급업체 조건으로 읽어 편집 가능한 ALV 그리드에 띄우고, 전표번호 클릭으로 FB03 조회로 연결한다. POSTING_INTERFACE 계열 FM 을 쓰는 전기 기능도 포함되어 있어 조회에서 바로 전표 처리로 이어질 수 있는 구조다. ## 주 흐름 1. 선택화면 기본값을 세팅하고 화면 속성을 조정한다 (SET_DYNP → LOOP_AT_SCREEN) 2. 내부 데이터 구조를 초기화한다 (INITIALIZE_DATA) 3. 전표일자·사업영역·공급업체 조건으로 매입채무 연계 내역을 읽어 가공한다 (PROCESS_DATA → SELECT_DATA) 4. 편집 가능한 ALV 그리드(LCL_DEF_RECEIVER 이벤트 핸들러 등록)로 화면 100 에 출력한다 5. 셀 변경·F4·더블클릭 이벤트를 처리하고 오류는 메시지로 안내한다 (DATA_CHANGED, ON_F4, F_OUT_MESSAGE_PROC) 6. 전표번호 핫스팟으로 FB03 표준 조회를 호출한다 ## 핵심 내부테이블 - `GT_DATA` — 매입채무 연계 내역 표시·편집용 내부테이블 (채움: SELECT_DATA / 소비: DISPLAY_ALV_LIST) ## 테이블 / 외부 호출 - read: AENR, DD07T, LFA1, T001, ZFIT0050 - write: - - 외부 호출: ALSM_EXCEL_TO_INTERNAL_TABLE, BAPI_CURRENCY_CONV_TO_INTERNAL, CC01, CLOI_PUT_SIGN_IN_FRONT, CONVERSION_EXIT_ALPHA_INPUT, CONVERSION_EXIT_ALPHA_OUTPUT, CONVERT_OTF, CONVERT_TO_LOCAL_CURRENCY, DATE_CHECK_PLAUSIBILITY, DYNP_VALUES_READ, DYNP_VALUES_UPDATE, F4IF_INT_TABLE_VALUE_REQUEST, F4_DATE, FB03, FI_PERIOD_DETERMINE, GUI_DOWNLOAD, K_HIERARCHY_TABLES_READ, LVC_FIELDCATALOG_MERGE, LVC_FIELDCAT_COMPLETE, LVC_TRANSFER_FROM_SLIS, MD_CONVERT_MATERIAL_UNIT, MESSAGE_TEXT_BUILD, NUMBER_GET_NEXT, POPUP_TO_CONFIRM, POPUP_TO_CONFIRM_STEP, POPUP_TO_SELECT_MONTH, POSTING_INTERFACE_END, POSTING_INTERFACE_START, REUSE_ALV_FIELDCATALOG_MERGE, REUSE_ALV_GRID_COMMENTARY_SET ## 로직 조각 (48건 / unit 43개) LLM 이 코드에서 골라낸 업무 로직 단위다. **조각마다 소스 원문과 자연어 설명을 함께 싣는다** — 설명이 코드와 맞는지 바로 대조할 수 있어야 하기 때문이다. 테이블·호출은 LLM 이 쓴 값이 아니라 파서가 조각 범위에서 다시 뽑은 사실이다. 순서는 실행 순서다. ### FORM SET_COMPANY_BASE — `ZFI_COMMON` L209-L226 (18줄) *회사코드로 T001을 읽어 통화·계정과목표·언어·회사명·국가 전역변수를 설정하는 공통 FORM이다.* > 이 unit 의 조각 1개가 13/18줄(72%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다. #### [sql_select] T001에서 회사코드(BUKRS)를 조회해 회사 통화(WAERS), 계정과목표(KTOPL), 언어, 회사명(BUTXT), 국가(LAND1)를 전역변수에 저장해 이후 검증·금액 변환의 기준으로 쓴다. ```abap 213| SELECT SINGLE * 214| FROM T001 215| INTO L_T001 216| WHERE BUKRS = P_BUKRS. 217| 218| IF SY-SUBRC EQ 0. 219| GV_WAERS = L_T001-WAERS. 220| GV_KTOPL = L_T001-KTOPL. 221| GV_SPRAS = L_T001-SPRAS. 222| GV_WAERS = L_T001-WAERS. 223| GV_BUKRS_TXT = L_T001-BUTXT. 224| GV_LAND1 = L_T001-LAND1. 225| ENDIF. ``` - **EN**: Read company code master T001 and store company currency, chart of accounts, language, company name and country in global variables. - 테이블(파서): read [T001](/tables/T001.md) / write - - SAP 객체: T001 - 업무 키워드: 회사코드 기본정보, 회사 통화, 계정과목표 - English: Company Code, T001, Chart of Accounts, Local Currency - 정의부(복사 시 함께 필요): [`L_T001`](#decl-zfi_common-210-l_t001), [`P_BUKRS`](#decl-zfir0020top-79-p_bukrs), [`GV_WAERS`](#decl-zfi_common-52-gv_waers), [`GV_KTOPL`](#decl-zfi_common-53-gv_ktopl), [`GV_SPRAS`](#decl-zfi_common-54-gv_spras), [`GV_BUKRS_TXT`](#decl-zfi_common-50-gv_bukrs_txt), [`GV_LAND1`](#decl-zfi_common-55-gv_land1) - 위치: `abap://ZFIR0020/ZFI_COMMON#L213-L225` · confidence 0.95 · `ZFIR0020#ZFI_COMMON#FORM#SET_COMPANY_BASE#C1` ### FORM GET_FCAT_LIKE_ITAB — `ZFI_COMMON` L159-L200 (42줄) *프로그램 내부테이블 이름으로 REUSE_ALV_FIELDCATALOG_MERGE→LVC 변환→LVC_FIELDCAT_COMPLETE를 거쳐 LVC 필드카탈로그를 생성하는 공통 FORM이다.* > 이 unit 의 조각 1개가 26/42줄(62%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다. #### [fm_call] 내부테이블 정의(SY-REPID 내 P_ITAB_NAME)로 REUSE_ALV_FIELDCATALOG_MERGE를 호출해 SLIS 필드카탈로그를 얻고 LVC_TRANSFER_FROM_SLIS로 LVC 형식으로 바꾼 뒤 LVC_FIELDCAT_COMPLETE로 보완해 반환한다. ```abap 172| CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE' 173| EXPORTING 174| I_PROGRAM_NAME = SY-REPID 175| I_INTERNAL_TABNAME = P_ITAB_NAME 176| I_INCLNAME = SY-REPID 177| I_STRUCTURE_NAME = '' 178| I_BYPASSING_BUFFER = 'X' 179| CHANGING 180| CT_FIELDCAT = LT_FIELDCAT[] 181| EXCEPTIONS 182| INCONSISTENT_INTERFACE = 1 183| PROGRAM_ERROR = 2. 184| 185| CALL FUNCTION 'LVC_TRANSFER_FROM_SLIS' 186| EXPORTING 187| IT_FIELDCAT_ALV = LT_FIELDCAT 188| IMPORTING 189| ET_FIELDCAT_LVC = LT_ALV_CAT 190| TABLES 191| IT_DATA = LT_TABLE[]. 192| 193| CALL FUNCTION 'LVC_FIELDCAT_COMPLETE' 194| CHANGING 195| CT_FIELDCAT = LT_ALV_CAT. 196| 197| PT_REF_FCAT[] = LT_ALV_CAT[]. ``` - **EN**: Generate an LVC field catalog from the program internal table definition via REUSE_ALV_FIELDCATALOG_MERGE, LVC_TRANSFER_FROM_SLIS and LVC_FIELDCAT_COMPLETE. - 호출(파서): REUSE_ALV_FIELDCATALOG_MERGE, LVC_TRANSFER_FROM_SLIS, LVC_FIELDCAT_COMPLETE - SAP 객체: REUSE_ALV_FIELDCATALOG_MERGE, LVC_TRANSFER_FROM_SLIS, LVC_FIELDCAT_COMPLETE, LVC_S_FCAT - 업무 키워드: 필드카탈로그 생성, 내부테이블 구조, ALV 컬럼 정보 - English: Field Catalog, ALV, LVC - 정의부(복사 시 함께 필요): [`LT_FIELDCAT`](#decl-zfi_common-164-lt_fieldcat), [`LT_ALV_CAT`](#decl-zfi_common-165-lt_alv_cat), [`LT_TABLE`](#decl-zfi_common-163-lt_table) - 위치: `abap://ZFIR0020/ZFI_COMMON#L172-L197` · confidence 0.9 · `ZFIR0020#ZFI_COMMON#FORM#GET_FCAT_LIKE_ITAB#C1` ### FORM GET_DOM_TEXT_LIST — `ZFI_COMMON` L1244-L1255 (12줄) *도메인 고정값 텍스트를 DD07T에서 읽어 GT_DOMAIN에 누적하는 공통 FORM이다.* > 이 unit 의 조각 1개가 8/12줄(67%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다. #### [sql_select] DD07T에서 지정 도메인의 활성(AS4LOCAL='A') 고정값과 로그온 언어 텍스트를 조회해 GT_DOMAIN에 추가하고 정렬한다. ```abap 1246| SELECT DOMNAME DOMVALUE_L DDTEXT 1247| APPENDING TABLE GT_DOMAIN 1248| FROM DD07T 1249| WHERE DOMNAME = P_DOMNA 1250| AND DDLANGUAGE = SY-LANGU 1251| AND AS4LOCAL = 'A'. 1252| 1253| SORT : GT_DOMAIN. ``` - **EN**: Select active domain fixed values and their texts in the logon language from DD07T and append them to GT_DOMAIN. - 테이블(파서): read [DD07T](/tables/DD07T.md) / write - - SAP 객체: DD07T, GT_DOMAIN - 업무 키워드: 도메인 고정값, 값 텍스트 조회 - English: Domain Fixed Values, DD07T - 정의부(복사 시 함께 필요): [`GS_DOMAIN`](#decl-zfi_common-27-gs_domain), [`GT_DOMAIN`](#decl-zfi_common-32-gt_domain) - 위치: `abap://ZFIR0020/ZFI_COMMON#L1246-L1253` · confidence 0.95 · `ZFIR0020#ZFI_COMMON#FORM#GET_DOM_TEXT_LIST#C1` ### FORM SELECT_DATA — `ZFIR0020F01` L89-L133 (45줄) *매입채무 연계 내역을 조건에 맞게 읽어 도메인 텍스트·공급업체명·처리상태 아이콘을 붙여 표시용 데이터를 만든다.* > 이 unit 의 조각 2개가 38/45줄(84%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다. #### [sql_select] 회사코드·전표일자·사업영역·공급업체 조건으로 매입채무 인터페이스 테이블 ZFIT0050 을 읽고, 건이 없으면 즉시 종료한다. ```abap 93| SELECT * FROM ZFIT0050 94| INTO TABLE LT_ZFIT0050 95| WHERE BUKRS = P_BUKRS 96| AND BLDAT IN S_BLDAT 97| AND GSBER IN S_GSBER 98| AND LIFNR IN S_LIFNR. 99| 100| CHECK LT_ZFIT0050[] IS NOT INITIAL. ``` - **EN**: Reads AP interface records from ZFIT0050 by company code, document date, business area and vendor. - 테이블(파서): read [ZFIT0050](/tables/ZFIT0050.md) / write - - SAP 객체: ZFIT0050, BUKRS, BLDAT, GSBER, LIFNR - 업무 키워드: 매입채무, 인터페이스내역, 전표일자, 사업영역, 공급업체, 조회조건 - English: accounts payable, AP interface, document date, business area, vendor - 정의부(복사 시 함께 필요): [`LT_ZFIT0050`](#decl-zfir0020f01-90-lt_zfit0050), [`P_BUKRS`](#decl-zfir0020top-79-p_bukrs), [`S_BLDAT`](#decl-zfir0020top-85-s_bldat), [`S_GSBER`](#decl-zfir0020top-86-s_gsber), [`S_LIFNR`](#decl-zfir0020top-88-s_lifnr) - 위치: `abap://ZFIR0020/ZFIR0020F01#L93-L100` · confidence 0.9 · `ZFIR0020#ZFIR0020F01#FORM#SELECT_DATA#C1` #### [aggregation] 건별로 거래유형(ZDBTYPE)·취소플래그(ZDCANCELFLAG) 도메인 코드를 한글 텍스트로 바꾸고, 공급업체명(LFA1)을 붙이고, 처리결과 코드(S/E)에 따라 녹색·적색 신호등 아이콘을 세워 ALV 표시용 행을 만든다. ```abap 102| LOOP AT LT_ZFIT0050. 103| MOVE-CORRESPONDING LT_ZFIT0050 TO GT_DATA. 104| 105| READ TABLE GT_DOMAIN INTO GS_DOMAIN WITH KEY DOMAIN = 'ZDBTYPE' 106| VALUE = GT_DATA-BTYPE BINARY SEARCH. 107| 108| IF SY-SUBRC EQ 0. 109| GT_DATA-BTYPE_T = GS_DOMAIN-DDTEXT. 110| ENDIF. 111| 112| READ TABLE GT_DOMAIN INTO GS_DOMAIN WITH KEY DOMAIN = 'ZDCANCELFLAG' 113| VALUE = GT_DATA-CANCELFLAG BINARY SEARCH. 114| 115| IF SY-SUBRC EQ 0. 116| GT_DATA-CANCELFLAG_T = GS_DOMAIN-DDTEXT. 117| ENDIF. 118| 119| SELECT SINGLE NAME1 FROM LFA1 120| INTO GT_DATA-LIFNR_T 121| WHERE LIFNR = GT_DATA-LIFNR. 122| 123| IF GT_DATA-RESULTCODE = 'S'. 124| GT_DATA-STATUS = GC_STATUS_GREEN. 125| ELSEIF GT_DATA-RESULTCODE = 'E'.. 126| GT_DATA-STATUS = GC_STATUS_RED. 127| ENDIF. 128| 129| APPEND GT_DATA. 130| CLEAR : GT_DATA. 131| ENDLOOP. ``` - **EN**: Per record: resolves domain texts for transaction type and cancel flag, adds the vendor name and sets a green/red status icon from the result code. - 테이블(파서): read [LFA1](/tables/LFA1.md) / write - - SAP 객체: LFA1, DD07T, ZDBTYPE, ZDCANCELFLAG - 업무 키워드: 거래유형, 취소플래그, 도메인텍스트, 공급업체명, 처리결과, 신호등, 상태표시 - English: transaction type, cancel flag, domain text, vendor name, result code, status icon - 정의부(복사 시 함께 필요): [`LT_ZFIT0050`](#decl-zfir0020f01-90-lt_zfit0050), [`GT_DATA`](#decl-zfir0020top-43-gt_data), [`GS_DOMAIN`](#decl-zfi_common-27-gs_domain), [`GT_DOMAIN`](#decl-zfi_common-32-gt_domain), [`LFA1`](#decl-zfir0020top-4-lfa1), [`GC_STATUS_GREEN`](#decl-zfi_alv-128-gc_status_green), [`GC_STATUS_RED`](#decl-zfi_alv-130-gc_status_red) - 위치: `abap://ZFIR0020/ZFIR0020F01#L102-L131` · confidence 0.88 · `ZFIR0020#ZFIR0020F01#FORM#SELECT_DATA#C2` ### FORM GET_SELECTED_ROW2 — `ZFI_ALV` L369-L397 (29줄) *ALV 그리드에서 선택된 행 인덱스를 GT_ROWS 로 가져오고 미선택/복수 선택 시 오류 메시지를 표시하는 유틸리티다.* > 이 unit 의 조각 1개가 16/29줄(55%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다. #### [validation] GET_SELECTED_ROWS 로 선택 행을 GT_ROWS 에 받아 소계행을 제거하고, 선택이 없거나 단일 선택 모드에서 2건 이상이면 오류성 메시지를 띄운다. ```abap 381| CALL METHOD PV_GRID->GET_SELECTED_ROWS 382| IMPORTING 383| ET_INDEX_ROWS = GT_ROWS. 384| 385| DELETE GT_ROWS WHERE ROWTYPE IS NOT INITIAL. 386| 387| *-- 선택된 LINE이 없고 에러출력 설정 시.. 388| IF LINES( GT_ROWS ) EQ 0. 389| MESSAGE '선택된 라인이 없습니다.' 390| TYPE 'S' DISPLAY LIKE 'E'. 391| 392| ELSEIF LINES( GT_ROWS ) GT 1 AND LV_ONE_SEL EQ 'X'. 393| MESSAGE '하나의 라인만 선택하셔야 합니다.' 394| TYPE 'S' DISPLAY LIKE 'E'. 395| 396| ENDIF. ``` - **EN**: Retrieve selected ALV rows via GET_SELECTED_ROWS, drop subtotal rows, and issue an error-style message when no row or more than one row (in single-select mode) is selected. - 호출(파서): PV_GRID->GET_SELECTED_ROWS - SAP 객체: CL_GUI_ALV_GRID, LVC_T_ROW - 업무 키워드: 선택 행 조회, 행 선택 검증, 단일 선택, ALV 그리드 - English: Selected Rows, ALV Grid, Row Selection Validation - 정의부(복사 시 함께 필요): [`GT_ROWS`](#decl-zfi_alv-103-gt_rows), [`LV_ONE_SEL`](#decl-zfi_alv-374-lv_one_sel) - 위치: `abap://ZFIR0020/ZFI_ALV#L381-L396` · confidence 0.85 · `ZFIR0020#ZFI_ALV#FORM#GET_SELECTED_ROW2#C1` ### FORM CHECK_SORT_PARAMETER — `ZFI_ALV` L472-L493 (22줄) *ALV 정렬 설정(LVC_T_SORT)의 필드가 필드카탈로그에 존재하는지 검사해 누락 필드명을 돌려주는 검증 루틴이다.* > 이 unit 의 조각 1개가 10/22줄(46%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다. #### [validation] ALV 정렬 테이블의 각 필드명을 필드카탈로그(LVC_T_FCAT)에서 READ 해 없는 필드가 있으면 SUBRC 와 필드명을 반환하고 종료한다. ```abap 483| LOOP AT PT_SORT ASSIGNING . 484| READ TABLE PT_FIELDCAT ASSIGNING 485| WITH KEY FIELDNAME = -FIELDNAME. 486| 487| IF SY-SUBRC NE 0. 488| P_SUBRC = SY-SUBRC. 489| P_FIELDNAME = -FIELDNAME. 490| EXIT. 491| ENDIF. 492| ENDLOOP. ``` - **EN**: Verify that every sort field in LVC_T_SORT exists in the ALV field catalog and return the first missing field name. - SAP 객체: LVC_T_SORT, LVC_T_FCAT - 업무 키워드: ALV 정렬 검증, 필드카탈로그, 정렬 필드 - English: ALV Sort, Field Catalog, LVC_T_SORT - 정의부(복사 시 함께 필요): [``](#decl-zfi_alv-478--fs_sort-), [``](#decl-zfi_alv-479--fs_fcat-) - 위치: `abap://ZFIR0020/ZFI_ALV#L483-L492` · confidence 0.85 · `ZFIR0020#ZFI_ALV#FORM#CHECK_SORT_PARAMETER#C1` ### FORM GET_SETLEAF_VALUES — `ZFI_COMMON` L232-L295 (64줄) *세트 클래스(코스트센터/원가요소/오더/손익센터/계정과목 그룹)와 세트명으로 K_HIERARCHY_TABLES_READ 를 호출해 세트 값 목록(GT_VALUE_SET)을 읽는 공통 루틴이다.* > 이 unit 의 조각 1개가 45/64줄(70%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다. #### [fm_call] 세트 클래스(0101 코스트센터, 0102 원가요소, 0103 오더, 0106 손익센터, 0109 계정과목)에 따라 관리회계영역(GC_KOKRS) 또는 계정과목표(GV_KTOPL)를 붙여 SETID 를 만들고 K_HIERARCHY_TABLES_READ 로 세트 값 범위를 GT_VALUE_SET 에 읽으며, 세트를 못 찾으면 GS004 오류로 중단한다. ```abap 250| CASE PV_CLASS. 251| WHEN '0101'. " 코스트센터 252| CONCATENATE PV_CLASS GC_KOKRS P_SETNAME INTO L_SETID. 253| WHEN '0102'. " 원가요소 254| CONCATENATE PV_CLASS GV_KTOPL P_SETNAME INTO L_SETID. 255| WHEN '0103'. " 오더 256| CONCATENATE PV_CLASS GC_KOKRS P_SETNAME INTO L_SETID. 257| WHEN '0106'. " 손익센터 258| CONCATENATE PV_CLASS GC_KOKRS P_SETNAME INTO L_SETID. 259| WHEN '0109'. " 계정과목 260| CONCATENATE PV_CLASS GV_KTOPL P_SETNAME INTO L_SETID. 261| ENDCASE. 262| 263| CALL FUNCTION 'K_HIERARCHY_TABLES_READ' 264| EXPORTING 265| E_CLASS = L_CLASS 266| E_SETID = L_SETID 267| E_KOKRS = GC_KOKRS 268| E_MANDT = SY-MANDT 269| TABLES 270| T_NODES = LT_NODE 271| T_VALUES = GT_VALUE_SET 272| CHANGING 273| C_INFO = LT_GRPHINFO 274| C_OVERWRITE = SY-DATAR 275| EXCEPTIONS 276| NO_CONTROLLING_AREA = 1 277| NO_CHART_OF_ACCOUNT = 2 278| DIFFERENT_CONTROLLING_AREAS = 3 279| DIFFERENT_CHART_OF_ACCOUNTS = 4 280| SET_NOT_FOUND = 5 281| ILLEGAL_FIELD_REPLACEMENT = 6 282| ILLEGAL_TABLE_REPLACEMENT = 7 283| FM_RAISE = 8 284| CONVERT_ERROR = 9 285| NO_OVERWRITE_STANDARD_HIER = 10 286| NO_BUKRS_FOR_KOKRS = 11 287| OTHERS = 12. 288| 289| IF SY-SUBRC <> 0. 290| MESSAGE ID 'GS' TYPE 'E' NUMBER '004' 291| WITH P_SETNAME INTO L_MESSAGE. 292| MESSAGE S000(ZCOM) DISPLAY LIKE 'E' WITH L_MESSAGE. 293| LEAVE LIST-PROCESSING. 294| ENDIF. ``` - **EN**: Compose the set ID from set class plus controlling area or chart of accounts and read the set value ranges via K_HIERARCHY_TABLES_READ into GT_VALUE_SET, aborting with error GS004 when the set is not found. - 호출(파서): K_HIERARCHY_TABLES_READ - SAP 객체: K_HIERARCHY_TABLES_READ, SETHEADER, SETLEAF, SETHIER - 업무 키워드: 세트 값 조회, 코스트센터 그룹, 계정과목 그룹, 원가요소 그룹, 관리회계영역, 계정과목표 - English: Set Hierarchy, Cost Center Group, G/L Account Group, K_HIERARCHY_TABLES_READ, Controlling Area - 정의부(복사 시 함께 필요): [`GC_KOKRS`](#decl-zfi_common-58-gc_kokrs), [`L_SETID`](#decl-zfi_common-238-l_setid), [`GV_KTOPL`](#decl-zfi_common-53-gv_ktopl), [`L_CLASS`](#decl-zfi_common-237-l_class), [`LT_NODE`](#decl-zfi_common-236-lt_node), [`GT_VALUE_SET`](#decl-zfi_common-21-gt_value_set), [`LT_GRPHINFO`](#decl-zfi_common-239-lt_grphinfo), [`L_MESSAGE`](#decl-zfi_common-240-l_message) - 위치: `abap://ZFIR0020/ZFI_COMMON#L250-L294` · confidence 0.9 · `ZFIR0020#ZFI_COMMON#FORM#GET_SETLEAF_VALUES#C1` ### FORM DYNPRO — `ZFI_COMMON` L307-L333 (27줄) *BDCDATA 한 줄(화면 시작 또는 필드/값)을 생성해 BDC 테이블에 추가하되, 예외 등록 필드가 초기값이면 건너뛰는 공통 FORM이다.* > 이 unit 의 조각 1개가 19/27줄(70%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다. #### [interface] DYNBEGIN='X'면 프로그램·화면번호로 BDC 화면 시작 레코드를, 아니면 필드명·값 레코드를 BDCDATA에 추가하며, GT_EXCP_INIT_FIELD에 등록된 필드는 값이 없을 때 추가하지 않는다. ```abap 313| IF PV_DYNBEGIN = 'X'. 314| WRITE : PV_INPUT TO LS_BDCTAB-PROGRAM LEFT-JUSTIFIED. 315| WRITE : PV_VALUE TO LS_BDCTAB-DYNPRO LEFT-JUSTIFIED. 316| WRITE : 'X' TO LS_BDCTAB-DYNBEGIN LEFT-JUSTIFIED. 317| 318| APPEND LS_BDCTAB TO PT_BDCTAB. 319| ELSE. 320| READ TABLE GT_EXCP_INIT_FIELD TRANSPORTING NO FIELDS 321| WITH KEY FNAME = PV_INPUT BINARY SEARCH. 322| 323| IF SY-SUBRC EQ 0 AND PV_VALUE IS INITIAL. 324| EXIT. 325| ENDIF. 326| 327| WRITE : PV_INPUT TO LS_BDCTAB-FNAM LEFT-JUSTIFIED. 328| WRITE : PV_VALUE TO LS_BDCTAB-FVAL LEFT-JUSTIFIED. 329| 330| APPEND LS_BDCTAB TO PT_BDCTAB. 331| ENDIF. ``` - **EN**: Append a BDCDATA screen-start record or a field/value record, skipping fields registered in GT_EXCP_INIT_FIELD when their value is initial. - SAP 객체: BDCDATA, GT_EXCP_INIT_FIELD - 업무 키워드: BDC 데이터 생성, 화면 필드 입력, 초기값 예외 필드 - English: BDCDATA, Batch Input, Call Transaction - 정의부(복사 시 함께 필요): [`LS_BDCTAB`](#decl-zfi_common-309-ls_bdctab), [`GT_EXCP_INIT_FIELD`](#decl-zfi_common-91-gt_excp_init_field) - 위치: `abap://ZFIR0020/ZFI_COMMON#L313-L331` · confidence 0.9 · `ZFIR0020#ZFI_COMMON#FORM#DYNPRO#C1` ### FORM DATE_CHK — `ZFI_COMMON` L444-L453 (10줄) *DATE_CHECK_PLAUSIBILITY로 날짜의 유효성을 검사해 결과 코드를 돌려주는 공통 FORM이다.* > 이 unit 의 조각 1개가 8/10줄(80%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다. #### [validation] 입력 날짜를 DATE_CHECK_PLAUSIBILITY로 검증하고 SY-SUBRC를 P_SUBRC로 반환해 호출자가 잘못된 날짜를 판단하게 한다. ```abap 445| CALL FUNCTION 'DATE_CHECK_PLAUSIBILITY' 446| EXPORTING 447| DATE = P_IN_DATE 448| EXCEPTIONS 449| PLAUSIBILITY_CHECK_FAILED = 1 450| OTHERS = 2. 451| 452| P_SUBRC = SY-SUBRC. ``` - **EN**: Validate the date with DATE_CHECK_PLAUSIBILITY and return the result code to the caller. - 호출(파서): DATE_CHECK_PLAUSIBILITY - SAP 객체: DATE_CHECK_PLAUSIBILITY - 업무 키워드: 날짜 유효성 검사 - English: Date Validation, Plausibility Check - 위치: `abap://ZFIR0020/ZFI_COMMON#L445-L452` · confidence 0.9 · `ZFIR0020#ZFI_COMMON#FORM#DATE_CHK#C1` ### FORM BAR_MSG_PER — `ZFI_COMMON` L479-L503 (25줄) *처리 건수 비율(%)을 계산해 SAPGUI_PROGRESS_INDICATOR로 진행률 메시지를 표시하는 공통 FORM이다.* > 이 unit 의 조각 1개가 18/25줄(72%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다. #### [output] 현재 건수/전체 건수로 진행률(%)을 계산해 텍스트에 붙이고 SAPGUI_PROGRESS_INDICATOR로 상태바에 진행 상황을 표시한다. ```abap 485| L_NCNT1 = P_CNT1. 486| L_NCNT2 = P_CNT2. 487| 488| GV_CALC_I = P_CNT1 * 100 / P_CNT2. 489| GV_CALC_C0 = GV_CALC_I. 490| 491| IF L_NCNT1 IS INITIAL AND L_NCNT2 IS INITIAL. 492| GV_PROGRESS_MSG = P_TEXT. 493| ELSE. 494| CONCATENATE P_TEXT '(' GV_CALC_C0 '% )' 495| INTO GV_PROGRESS_MSG SEPARATED BY SPACE. 496| CONDENSE GV_PROGRESS_MSG. 497| ENDIF. 498| 499| CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR' 500| EXPORTING 501| PERCENTAGE = GV_CALC_I 502| TEXT = GV_PROGRESS_MSG. ``` - **EN**: Compute the percentage of processed lines and show it with the text in the status bar via SAPGUI_PROGRESS_INDICATOR. - 호출(파서): SAPGUI_PROGRESS_INDICATOR - SAP 객체: SAPGUI_PROGRESS_INDICATOR - 업무 키워드: 진행률 표시, 처리 건수 - English: Progress Indicator, Status Bar - 정의부(복사 시 함께 필요): [`L_NCNT1`](#decl-zfi_common-480-l_ncnt1), [`L_NCNT2`](#decl-zfi_common-481-l_ncnt2), [`GV_CALC_I`](#decl-zfi_common-14-gv_calc_i), [`GV_CALC_C0`](#decl-zfi_common-16-gv_calc_c0), [`GV_PROGRESS_MSG`](#decl-zfi_common-15-gv_progress_msg) - 위치: `abap://ZFIR0020/ZFI_COMMON#L485-L502` · confidence 0.85 · `ZFIR0020#ZFI_COMMON#FORM#BAR_MSG_PER#C1` ### FORM DISPLAY_SPOOL_BY_SALV — `ZFI_COMMON` L512-L522 (11줄) *CL_SALV_TABLE=>FACTORY로 전달받은 내부테이블을 SALV(ALV) 리스트로 표시하는 공통 FORM(배치 스풀 출력용)이다.* > 이 unit 의 조각 1개가 7/11줄(64%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다. #### [output] CL_SALV_TABLE=>FACTORY로 SALV 객체를 생성하고 DISPLAY로 내부테이블 내용을 ALV 리스트(스풀)로 출력한다. ```abap 515| CL_SALV_TABLE=>FACTORY( 516| IMPORTING 517| R_SALV_TABLE = GR_TABLE 518| CHANGING 519| T_TABLE = PT_TABLE[] ). 520| 521| GR_TABLE->DISPLAY( ). ``` - **EN**: Create a SALV table object with CL_SALV_TABLE=>FACTORY and display the internal table as an ALV list for spool output. - 호출(파서): CL_SALV_TABLE=>FACTORY, GR_TABLE->DISPLAY - SAP 객체: CL_SALV_TABLE - 업무 키워드: ALV 리스트 출력, 스풀 출력 - English: SALV, ALV List, Spool - 정의부(복사 시 함께 필요): [`GR_TABLE`](#decl-zfi_common-513-gr_table) - 위치: `abap://ZFIR0020/ZFI_COMMON#L515-L521` · confidence 0.85 · `ZFIR0020#ZFI_COMMON#FORM#DISPLAY_SPOOL_BY_SALV#C1` ### FORM UPLOAD_DATA — `ZFI_COMMON` L582-L639 (58줄) *엑셀 파일을 ALSM_EXCEL_TO_INTERNAL_TABLE로 읽어 동적으로 지정된 내부테이블·구조체에 행/열 단위로 적재하는 공통 업로드 FORM이다.* > 이 unit 의 조각 2개가 43/58줄(74%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다. #### [fm_call] 대상 테이블·구조체를 동적 ASSIGN한 뒤 지정 행/열 범위로 ALSM_EXCEL_TO_INTERNAL_TABLE을 호출해 엑셀 셀 데이터를 LT_INTERN에 읽고, 실패 시 파일 없음/경로 오류 메시지 또는 시스템 메시지를 낸다. ```abap 594| ASSIGN: (PT_EXCEL_TABLE) TO , 595| (PS_EXCEL_STRUC) TO . 596| 597| CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE' 598| EXPORTING 599| FILENAME = PV_EXCEL_FILENAME 600| I_BEGIN_COL = PV_BEGIN_COL 601| I_BEGIN_ROW = PV_BEGIN_ROW 602| I_END_COL = PV_END_COL 603| I_END_ROW = PV_END_ROW 604| TABLES 605| INTERN = LT_INTERN 606| EXCEPTIONS 607| INCONSISTENT_PARAMETERS = 1 608| UPLOAD_OLE = 2 609| OTHERS = 3. 610| 611| IF SY-SUBRC <> 0. 612| IF SY-MSGID IS INITIAL. 613| MESSAGE I000 WITH 'No Selected File Exists or Too Long File path'. 614| LEAVE LIST-PROCESSING. 615| ELSE. 616| MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO 617| WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. 618| ENDIF. 619| ENDIF. ``` - **EN**: Dynamically assign the target table and structure, read the Excel cell range with ALSM_EXCEL_TO_INTERNAL_TABLE and report file/path errors on failure. - 호출(파서): ALSM_EXCEL_TO_INTERNAL_TABLE - SAP 객체: ALSM_EXCEL_TO_INTERNAL_TABLE, ALSMEX_TABLINE - 업무 키워드: 엑셀 업로드, 파일 읽기, 업로드 오류 메시지 - English: Excel Upload, ALSM_EXCEL_TO_INTERNAL_TABLE, OLE - 정의부(복사 시 함께 필요): [``](#decl-zfi_common-592--l_fs02-), [``](#decl-zfi_common-593--l_fs03-), [`ALSMEX_TABLINE`](#decl-zfi_common-5-alsmex_tabline), [`LT_INTERN`](#decl-zfi_common-590-lt_intern) - 위치: `abap://ZFIR0020/ZFI_COMMON#L594-L619` · confidence 0.95 · `ZFIR0020#ZFI_COMMON#FORM#UPLOAD_DATA#C1` #### [calculation] 셀 데이터를 순회하며 열 번호에 해당하는 구조체 컴포넌트에 값을 넣고(숫자는 콤마 제거) 행이 끝날 때마다 대상 내부테이블(GT_UPLOAD)에 APPEND한다. ```abap 621| LOOP AT LT_INTERN. 622| AT NEW ROW. 623| CLEAR : . 624| ENDAT. 625| 626| ASSIGN COMPONENT LT_INTERN-COL OF STRUCTURE TO . 627| 628| IF LT_INTERN-VALUE CO '0123456789,.- '. 629| REPLACE ALL OCCURRENCES OF ',' IN LT_INTERN-VALUE WITH ''. 630| ENDIF. 631| 632| MOVE LT_INTERN-VALUE TO . 633| 634| AT END OF ROW. 635| APPEND TO . 636| ENDAT. 637| ENDLOOP. ``` - **EN**: Map each cell value to the structure component by column (removing thousand separators) and append one line per Excel row to the target table. - SAP 객체: ALSMEX_TABLINE, GT_UPLOAD - 업무 키워드: 셀 값 매핑, 행 단위 적재, 콤마 제거 - English: Cell Mapping, ASSIGN COMPONENT, Internal Table - 정의부(복사 시 함께 필요): [`ALSMEX_TABLINE`](#decl-zfi_common-5-alsmex_tabline), [`LT_INTERN`](#decl-zfi_common-590-lt_intern), [``](#decl-zfi_common-593--l_fs03-), [``](#decl-zfi_common-591--l_fs01-), [``](#decl-zfi_common-592--l_fs02-) - 위치: `abap://ZFIR0020/ZFI_COMMON#L621-L637` · confidence 0.9 · `ZFIR0020#ZFI_COMMON#FORM#UPLOAD_DATA#C2` ### FORM BUILD_MESSAGE — `ZFI_COMMON` L688-L709 (22줄) *BDC 메시지(BDCMSGCOLL)를 MESSAGE_TEXT_BUILD로 텍스트화하고 '&' 치환문자를 제거하는 공통 FORM이다.* > 이 unit 의 조각 1개가 12/22줄(55%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다. #### [fm_call] BDCMSGCOLL의 MSGID/MSGNR/MSGV1~4를 MESSAGE_TEXT_BUILD에 넘겨 Call Transaction 결과 메시지 텍스트를 만들고 남은 '&'를 제거한다. ```abap 693| CALL FUNCTION 'MESSAGE_TEXT_BUILD' 694| EXPORTING 695| MSGID = PS_MESSAGE-MSGID 696| MSGNR = PS_MESSAGE-MSGNR 697| MSGV1 = PS_MESSAGE-MSGV1 698| MSGV2 = PS_MESSAGE-MSGV2 699| MSGV3 = PS_MESSAGE-MSGV3 700| MSGV4 = PS_MESSAGE-MSGV4 701| IMPORTING 702| MESSAGE_TEXT_OUTPUT = PV_TEXT. 703| 704| REPLACE ALL OCCURRENCES OF '&' IN PV_TEXT WITH ''. ``` - **EN**: Build the readable message text from a BDCMSGCOLL entry via MESSAGE_TEXT_BUILD and remove leftover ampersand placeholders. - 호출(파서): MESSAGE_TEXT_BUILD - SAP 객체: MESSAGE_TEXT_BUILD, BDCMSGCOLL - 업무 키워드: BDC 메시지 텍스트, 메시지 조립 - English: BDCMSGCOLL, Message Text, Call Transaction - 위치: `abap://ZFIR0020/ZFI_COMMON#L693-L704` · confidence 0.9 · `ZFIR0020#ZFI_COMMON#FORM#BUILD_MESSAGE#C1` ### FORM EXCEL_FORM_DOWNLOAD — `ZFI_COMMON` L716-L846 (131줄) *엑셀 컬럼 제목 목록으로 동적 테이블을 만들어 헤더 1행만 담은 업로드 양식(xls)을 저장 대화상자를 통해 PC에 다운로드하는 공통 FORM이다.* > 이 unit 의 조각 2개가 85/131줄(65%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다. #### [calculation] 전달받은 엑셀 컬럼 제목마다 필드카탈로그(COLnn)를 만들고 CL_ALV_TABLE_CREATE=>CREATE_DYNAMIC_TABLE로 동적 테이블을 생성한 뒤 컬럼 제목을 값으로 한 헤더 1행을 APPEND해 업로드 양식 데이터를 구성한다. ```abap 758| CHECK PT_EXCEL_EXPORT[] IS NOT INITIAL. 759| 760| LOOP AT PT_EXCEL_EXPORT. 761| ADD_EXCEL_COL : PT_EXCEL_EXPORT-EXCEL_COL. 762| ENDLOOP. 763| 764| " 동적 테이블 생성 765| CALL METHOD CL_ALV_TABLE_CREATE=>CREATE_DYNAMIC_TABLE 766| EXPORTING 767| IT_FIELDCATALOG = LT_FCAT 768| IMPORTING 769| EP_TABLE = LF_DATA. 770| 771| ASSIGN LF_DATA->* TO . 772| 773| " 테이블 라인 생성 774| CREATE DATA LL_DATA LIKE LINE OF . 775| ASSIGN LL_DATA->* TO . 776| 777| " 템플릿 내용 단 한라인만 등록 778| LOOP AT LT_FCAT INTO LS_FCAT. 779| ASSIGN COMPONENT LS_FCAT-COL_POS 780| OF STRUCTURE TO . 781| 782| IF SY-SUBRC EQ 0. 783| = LS_FCAT-COLTEXT. " COLTEXT 의 내용을 그대로. 784| ENDIF. 785| ENDLOOP. 786| 787| " 테이블에 담기. 788| APPEND TO . ``` - **EN**: Build a field catalog from the Excel column titles, create a dynamic table with CL_ALV_TABLE_CREATE and append one header row containing the titles as the upload template. - 호출(파서): CL_ALV_TABLE_CREATE=>CREATE_DYNAMIC_TABLE - SAP 객체: CL_ALV_TABLE_CREATE=>CREATE_DYNAMIC_TABLE, LVC_S_FCAT, GT_EXCEL_EXPORT - 업무 키워드: 업로드 양식 생성, 동적 테이블, 엑셀 헤더 - English: Dynamic Table, Field Catalog, Upload Template - 정의부(복사 시 함께 필요): [`LT_FCAT`](#decl-zfi_common-718-lt_fcat), [`LF_DATA`](#decl-zfi_common-723-lf_data), [``](#decl-zfi_common-732--fs_table-), [`LL_DATA`](#decl-zfi_common-724-ll_data), [``](#decl-zfi_common-733--fs_line-), [`LS_FCAT`](#decl-zfi_common-719-ls_fcat), [``](#decl-zfi_common-734--fs_col-) - 위치: `abap://ZFIR0020/ZFI_COMMON#L758-L788` · confidence 0.85 · `ZFIR0020#ZFI_COMMON#FORM#EXCEL_FORM_DOWNLOAD#C1` #### [fm_call] '<프로그램명>_UploadForm.xls' 기본 파일명으로 FILE_SAVE_DIALOG를 열고 사용자가 확인하면 CL_GUI_FRONTEND_SERVICES=>GUI_DOWNLOAD(탭 구분)로 양식 테이블을 저장한 뒤 성공/실패/취소 메시지를 낸다. ```abap 792| CONCATENATE SY-REPID '_UploadForm.xls' INTO L_FNAME. 793| 794| CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_SAVE_DIALOG 795| EXPORTING 796| DEFAULT_EXTENSION = 'XLS' 797| DEFAULT_FILE_NAME = L_FNAME 798| FILE_FILTER = '*.XLS' 799| CHANGING 800| FILENAME = L_EXT_FILENAME 801| PATH = L_PATH 802| FULLPATH = L_FULLPATH 803| USER_ACTION = L_USR_ACT. 804| 805| IF L_USR_ACT = '0'. 806| CALL METHOD CL_GUI_FRONTEND_SERVICES=>GUI_DOWNLOAD 807| EXPORTING 808| FILENAME = L_FULLPATH 809| WRITE_FIELD_SEPARATOR = 'X' 810| IMPORTING 811| FILELENGTH = L_FILE_LEN 812| CHANGING 813| DATA_TAB = 814| EXCEPTIONS 815| FILE_WRITE_ERROR = 1 816| NO_BATCH = 2 817| GUI_REFUSE_FILETRANSFER = 3 818| INVALID_TYPE = 4 819| NO_AUTHORITY = 5 820| UNKNOWN_ERROR = 6 821| HEADER_NOT_ALLOWED = 7 822| SEPARATOR_NOT_ALLOWED = 8 823| FILESIZE_NOT_ALLOWED = 9 824| HEADER_TOO_LONG = 10 825| DP_ERROR_CREATE = 11 826| DP_ERROR_SEND = 12 827| DP_ERROR_WRITE = 13 828| UNKNOWN_DP_ERROR = 14 829| ACCESS_DENIED = 15 830| DP_OUT_OF_MEMORY = 16 831| DISK_FULL = 17 832| DP_TIMEOUT = 18 833| FILE_NOT_FOUND = 19 834| DATAPROVIDER_EXCEPTION = 20 835| CONTROL_FLUSH_ERROR = 21 836| OTHERS = 22. 837| 838| IF SY-SUBRC = 0. 839| MESSAGE S000 WITH 'Success.'. 840| ELSE. 841| MESSAGE I000 WITH 'Failure'. 842| ENDIF. 843| ELSE. 844| MESSAGE I000 WITH 'Cancled'. 845| ENDIF. ``` - **EN**: Open a save dialog with a default template filename and download the template table via CL_GUI_FRONTEND_SERVICES=>GUI_DOWNLOAD, reporting success, failure or cancel. - 호출(파서): CL_GUI_FRONTEND_SERVICES=>FILE_SAVE_DIALOG, CL_GUI_FRONTEND_SERVICES=>GUI_DOWNLOAD - SAP 객체: CL_GUI_FRONTEND_SERVICES=>FILE_SAVE_DIALOG, CL_GUI_FRONTEND_SERVICES=>GUI_DOWNLOAD - 업무 키워드: 엑셀 양식 다운로드, 파일 저장, 결과 메시지 - English: GUI_DOWNLOAD, File Save Dialog, Excel Template - 정의부(복사 시 함께 필요): [`L_FNAME`](#decl-zfi_common-727-l_fname), [`L_EXT_FILENAME`](#decl-zfi_common-728-l_ext_filename), [`L_PATH`](#decl-zfi_common-730-l_path), [`L_FULLPATH`](#decl-zfi_common-729-l_fullpath), [`L_USR_ACT`](#decl-zfi_common-725-l_usr_act), [`L_FILE_LEN`](#decl-zfi_common-726-l_file_len), [``](#decl-zfi_common-732--fs_table-) - 위치: `abap://ZFIR0020/ZFI_COMMON#L792-L845` · confidence 0.9 · `ZFIR0020#ZFI_COMMON#FORM#EXCEL_FORM_DOWNLOAD#C2` ### FORM CONVERT_CURRENCY — `ZFI_COMMON` L859-L878 (20줄) *전기일 환율로 외화 금액을 현지통화 금액으로 CONVERT_TO_LOCAL_CURRENCY를 이용해 환산하는 공통 FORM이다.* > 이 unit 의 조각 1개가 15/20줄(75%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다. #### [fm_call] 외화와 현지통화가 같으면 금액을 그대로 쓰고, 다르면 전기일 기준 환율로 CONVERT_TO_LOCAL_CURRENCY를 호출해 현지통화 금액(P_LAMT)을 구한다. ```abap 862| IF P_FCURR = P_LCURR. 863| P_LAMT = P_FAMT. 864| ELSE. 865| CALL FUNCTION 'CONVERT_TO_LOCAL_CURRENCY' 866| EXPORTING 867| CLIENT = SY-MANDT 868| DATE = P_BUDAT 869| FOREIGN_CURRENCY = P_FCURR 870| FOREIGN_AMOUNT = P_FAMT 871| LOCAL_CURRENCY = P_LCURR 872| IMPORTING 873| LOCAL_AMOUNT = P_LAMT 874| EXCEPTIONS 875| NO_RATE_FOUND = 01. 876| ENDIF. ``` - **EN**: Convert the foreign amount to local currency at the posting-date exchange rate using CONVERT_TO_LOCAL_CURRENCY unless both currencies are identical. - 호출(파서): CONVERT_TO_LOCAL_CURRENCY - SAP 객체: CONVERT_TO_LOCAL_CURRENCY, TCURR - 업무 키워드: 환율 환산, 현지통화 금액, 외화 - English: Exchange Rate, Local Currency, Foreign Currency - 위치: `abap://ZFIR0020/ZFI_COMMON#L862-L876` · confidence 0.9 · `ZFIR0020#ZFI_COMMON#FORM#CONVERT_CURRENCY#C1` ### FORM CONVERT_CHAR_TO_AMT — `ZFI_COMMON` L888-L915 (28줄) *콤마가 포함된 문자형 금액을 콤마 제거 후 BAPI_CURRENCY_CONV_TO_INTERNAL로 통화 내부 금액으로 변환하는 공통 FORM이다.* > 이 unit 의 조각 1개가 22/28줄(79%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다. #### [calculation] STRING_REPLACE로 문자 금액의 콤마를 제거한 뒤 BAPI_CURRENCY_CONV_TO_INTERNAL로 통화(P_WAERS)에 맞는 내부 금액으로 변환해 P_AMT에 넣는다(엑셀 업로드 금액 정리용). ```abap 892| CALL FUNCTION 'STRING_REPLACE' 893| EXPORTING 894| PATTERN = ',' 895| SUBSTITUTE = '' 896| CHANGING 897| TEXT = P_VALUE. 898| 899| IF SY-SUBRC NE 0. 900| 901| ENDIF. 902| 903| LV_EXT = P_VALUE. 904| 905| CALL FUNCTION 'BAPI_CURRENCY_CONV_TO_INTERNAL' 906| EXPORTING 907| CURRENCY = P_WAERS 908| AMOUNT_EXTERNAL = LV_EXT 909| MAX_NUMBER_OF_DIGITS = '11' 910| IMPORTING 911| AMOUNT_INTERNAL = LV_AMT. 912| 913| P_AMT = LV_AMT. ``` - **EN**: Strip thousand separators from the character amount and convert it to internal currency amount via BAPI_CURRENCY_CONV_TO_INTERNAL for uploaded Excel values. - 호출(파서): STRING_REPLACE, BAPI_CURRENCY_CONV_TO_INTERNAL - SAP 객체: STRING_REPLACE, BAPI_CURRENCY_CONV_TO_INTERNAL - 업무 키워드: 문자 금액 변환, 콤마 제거, 통화 내부형식 - English: Currency Conversion, Internal Amount, Excel Upload - 정의부(복사 시 함께 필요): [`LV_EXT`](#decl-zfi_common-890-lv_ext), [`LV_AMT`](#decl-zfi_common-889-lv_amt) - 위치: `abap://ZFIR0020/ZFI_COMMON#L892-L913` · confidence 0.9 · `ZFIR0020#ZFI_COMMON#FORM#CONVERT_CHAR_TO_AMT#C1` ### FORM POPUP_TO_CONFIRM_02 — `ZFI_COMMON` L966-L979 (14줄) *POPUP_TO_CONFIRM_STEP으로 두 줄 질문의 확인 팝업(J/N/A)을 띄워 응답을 돌려주는 공통 FORM이다.* > 이 unit 의 조각 1개가 7/14줄(50%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다. #### [fm_call] 제목과 두 줄 질문으로 POPUP_TO_CONFIRM_STEP을 호출해 예(J)/아니오(N)/취소(A) 응답을 PV_ANSWER로 받는다(예산 전기 전 확인에 사용). ```abap 971| CALL FUNCTION 'POPUP_TO_CONFIRM_STEP' 972| EXPORTING 973| TEXTLINE1 = PV_QUESTION1 974| TEXTLINE2 = PV_QUESTION2 975| TITEL = PV_TITLE 976| IMPORTING 977| ANSWER = PV_ANSWER. " J:예 N:아니오 A:취소 ``` - **EN**: Show a confirmation popup via POPUP_TO_CONFIRM_STEP and return J/N/A answer, used before posting the plan budget. - 호출(파서): POPUP_TO_CONFIRM_STEP - SAP 객체: POPUP_TO_CONFIRM_STEP - 업무 키워드: 확인 팝업, 전기 전 확인 - English: Confirmation Popup, POPUP_TO_CONFIRM_STEP - 위치: `abap://ZFIR0020/ZFI_COMMON#L971-L977` · confidence 0.9 · `ZFIR0020#ZFI_COMMON#FORM#POPUP_TO_CONFIRM_02#C1` ### FORM POPUP_TO_CONFIRM — `ZFI_COMMON` L991-L1016 (26줄) *POPUP_TO_CONFIRM으로 Yes/No 확인 팝업을 띄워 사용자 응답을 돌려주는 공통 FORM이다.* > 이 unit 의 조각 1개가 18/26줄(69%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다. #### [fm_call] 제목·질문·기본 버튼·취소 버튼 표시 여부로 POPUP_TO_CONFIRM(Yes/No)을 호출해 응답(P_ANSWER)을 받고 예외 시 시스템 메시지 후 응답을 비운다. ```abap 997| CALL FUNCTION 'POPUP_TO_CONFIRM' 998| EXPORTING 999| TITLEBAR = P_TITLE 1000| TEXT_QUESTION = P_TEXT 1001| TEXT_BUTTON_1 = 'Yes' 1002| TEXT_BUTTON_2 = 'No' 1003| DEFAULT_BUTTON = P_DEFAULT 1004| DISPLAY_CANCEL_BUTTON = P_CANC 1005| IMPORTING 1006| ANSWER = P_ANSWER 1007| EXCEPTIONS 1008| TEXT_NOT_FOUND = 1 1009| OTHERS = 2. 1010| IF SY-SUBRC <> 0. 1011| MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO 1012| WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. 1013| CLEAR P_ANSWER. 1014| ENDIF. ``` - **EN**: Show a Yes/No confirmation popup with POPUP_TO_CONFIRM and return the user answer, clearing it on exception. - 호출(파서): POPUP_TO_CONFIRM - SAP 객체: POPUP_TO_CONFIRM - 업무 키워드: 확인 팝업, 사용자 확인 - English: Confirmation Popup, POPUP_TO_CONFIRM - 위치: `abap://ZFIR0020/ZFI_COMMON#L997-L1014` · confidence 0.9 · `ZFIR0020#ZFI_COMMON#FORM#POPUP_TO_CONFIRM#C1` ### FORM GET_LAST_DAY — `ZFI_COMMON` L1025-L1035 (11줄) *입력 날짜가 속한 월의 마지막 날짜를 RP_LAST_DAY_OF_MONTHS 로 구하는 날짜 유틸리티다.* > 이 unit 의 조각 1개가 5/11줄(46%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다. #### [fm_call] RP_LAST_DAY_OF_MONTHS FM 으로 기준일이 속한 월의 말일을 계산해 반환한다(기간 종료일·결산일 계산용). ```abap 1030| CALL FUNCTION 'RP_LAST_DAY_OF_MONTHS' 1031| EXPORTING 1032| DAY_IN = P_DATE 1033| IMPORTING 1034| LAST_DAY_OF_MONTH = P_LAST_DATE. ``` - **EN**: Compute the last day of the month for the given date using RP_LAST_DAY_OF_MONTHS. - 호출(파서): RP_LAST_DAY_OF_MONTHS - SAP 객체: RP_LAST_DAY_OF_MONTHS - 업무 키워드: 월말일, 말일 계산, 기간 종료일 - English: Last Day of Month, Period End Date - 위치: `abap://ZFIR0020/ZFI_COMMON#L1030-L1034` · confidence 0.9 · `ZFIR0020#ZFI_COMMON#FORM#GET_LAST_DAY#C1` ### FORM SET_DSMOD — `ZFI_COMMON` L1043-L1052 (10줄) *BDC 처리 모드 입력값이 A/E/N 중 하나인지 검사하고 아니면 오류 메시지로 중단하는 공통 FORM이다.* > 이 unit 의 조각 1개가 6/10줄(60%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다. #### [validation] BDC 표시 모드를 대문자로 바꾼 뒤 'A','E','N'이 아니면 'BDC Mode Fail' 메시지를 내고 LEAVE LIST-PROCESSING으로 종료한다. ```abap 1045| TRANSLATE PA_DSMOD TO UPPER CASE. 1046| 1047| IF PA_DSMOD NA 'AEN'. 1048| MESSAGE S000 DISPLAY LIKE 'E' WITH 'BDC Mode Fail'. 1049| LEAVE LIST-PROCESSING. 1050| ENDIF. ``` - **EN**: Validate the BDC display mode is one of A/E/N after uppercasing, otherwise show an error and leave processing. - 업무 키워드: BDC 모드 검증, 입력값 검사 - English: BDC Mode, Validation - 위치: `abap://ZFIR0020/ZFI_COMMON#L1045-L1050` · confidence 0.85 · `ZFIR0020#ZFI_COMMON#FORM#SET_DSMOD#C1` ### FORM FILE_EXISTS — `ZFI_COMMON` L1061-L1092 (32줄) *CL_GUI_FRONTEND_SERVICES=>FILE_EXIST로 프론트엔드 파일 존재 여부를 확인해 참/거짓을 돌려주는 공통 FORM이다.* > 이 unit 의 조각 1개가 21/32줄(66%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다. #### [validation] 파일명이 있을 때 CL_GUI_FRONTEND_SERVICES=>FILE_EXIST로 로컬 파일 존재 여부를 조회해 P_EXISTS에 반환하고 호출 예외 시 시스템 메시지를 낸다. ```abap 1070| CHECK P_FNAME IS NOT INITIAL. 1071| 1072| L_FILENM = P_FNAME. 1073| 1074| CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_EXIST 1075| EXPORTING 1076| FILE = L_FILENM 1077| RECEIVING 1078| RESULT = L_RESULT 1079| EXCEPTIONS 1080| CNTL_ERROR = 1 1081| ERROR_NO_GUI = 2 1082| WRONG_PARAMETER = 3 1083| NOT_SUPPORTED_BY_GUI = 4 1084| OTHERS = 5. 1085| IF SY-SUBRC <> 0. 1086| MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO 1087| WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. 1088| ENDIF. 1089| 1090| P_EXISTS = L_RESULT. ``` - **EN**: Check whether the local file exists via CL_GUI_FRONTEND_SERVICES=>FILE_EXIST and return the boolean result. - 호출(파서): CL_GUI_FRONTEND_SERVICES=>FILE_EXIST - SAP 객체: CL_GUI_FRONTEND_SERVICES=>FILE_EXIST - 업무 키워드: 파일 존재 확인, 업로드 파일 검증 - English: File Exist Check, Frontend Services - 정의부(복사 시 함께 필요): [`L_FILENM`](#decl-zfi_common-1064-l_filenm), [`L_RESULT`](#decl-zfi_common-1063-l_result) - 위치: `abap://ZFIR0020/ZFI_COMMON#L1070-L1090` · confidence 0.9 · `ZFIR0020#ZFI_COMMON#FORM#FILE_EXISTS#C1` ### FORM AMT_CONV_TO_INTERNAL — `ZFI_COMMON` L1101-L1118 (18줄) *외부 형식 금액을 통화별 소수점에 맞는 SAP 내부 금액으로 BAPI_CURRENCY_CONV_TO_INTERNAL로 변환하는 공통 FORM이다.* > 이 unit 의 조각 1개가 11/18줄(61%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다. #### [fm_call] 통화(P_WAERS)에 따라 외부 표시 금액을 BAPI_CURRENCY_CONV_TO_INTERNAL로 내부 저장 형식 금액으로 변환해 P_AMOUNT에 되돌려준다. ```abap 1106| L_INTERNAL = P_AMOUNT. 1107| 1108| CALL FUNCTION 'BAPI_CURRENCY_CONV_TO_INTERNAL' 1109| EXPORTING 1110| CURRENCY = P_WAERS 1111| AMOUNT_EXTERNAL = L_INTERNAL 1112| MAX_NUMBER_OF_DIGITS = 22 1113| IMPORTING 1114| AMOUNT_INTERNAL = L_INTERNAL. 1115| 1116| P_AMOUNT = L_INTERNAL. ``` - **EN**: Convert an externally formatted amount to SAP internal format for the currency using BAPI_CURRENCY_CONV_TO_INTERNAL. - 호출(파서): BAPI_CURRENCY_CONV_TO_INTERNAL - SAP 객체: BAPI_CURRENCY_CONV_TO_INTERNAL, BAPICURR - 업무 키워드: 금액 내부형식 변환, 통화 소수점 - English: Currency Conversion, Internal Amount - 정의부(복사 시 함께 필요): [`L_INTERNAL`](#decl-zfi_common-1104-l_internal) - 위치: `abap://ZFIR0020/ZFI_COMMON#L1106-L1116` · confidence 0.9 · `ZFIR0020#ZFI_COMMON#FORM#AMT_CONV_TO_INTERNAL#C1` ### FORM GET_NEXT_NUMBER — `ZFI_COMMON` L1129-L1160 (32줄) *번호범위 객체·구간으로 NUMBER_GET_NEXT를 호출해 다음 채번 번호를 가져오는 공통 FORM이다.* > 이 unit 의 조각 1개가 23/32줄(72%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다. #### [fm_call] 번호범위 객체와 구간 번호로 NUMBER_GET_NEXT를 호출해 다음 번호를 채번하고 예외 발생 시 결과를 비운다. ```abap 1136| LV_NRRANG = P_NRRANG. 1137| LV_OBJECT = P_OBJECT. 1138| 1139| CALL FUNCTION 'NUMBER_GET_NEXT' 1140| EXPORTING 1141| NR_RANGE_NR = LV_NRRANG 1142| OBJECT = LV_OBJECT 1143| IMPORTING 1144| NUMBER = P_DOCNO 1145| EXCEPTIONS 1146| INTERVAL_NOT_FOUND = 1 1147| NUMBER_RANGE_NOT_INTERN = 2 1148| OBJECT_NOT_FOUND = 3 1149| QUANTITY_IS_0 = 4 1150| QUANTITY_IS_NOT_1 = 5 1151| INTERVAL_OVERFLOW = 6 1152| BUFFER_OVERFLOW = 7 1153| OTHERS = 8. 1154| IF SY-SUBRC <> 0. 1155| * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO 1156| * WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. 1157| CLEAR P_DOCNO. 1158| ENDIF. ``` - **EN**: Draw the next number from the number range object and interval via NUMBER_GET_NEXT and clear it on exception. - 호출(파서): NUMBER_GET_NEXT - SAP 객체: NUMBER_GET_NEXT, NRIV - 업무 키워드: 채번, 번호범위 - English: Number Range, NUMBER_GET_NEXT - 정의부(복사 시 함께 필요): [`LV_NRRANG`](#decl-zfi_common-1133-lv_nrrang), [`LV_OBJECT`](#decl-zfi_common-1134-lv_object) - 위치: `abap://ZFIR0020/ZFI_COMMON#L1136-L1158` · confidence 0.95 · `ZFIR0020#ZFI_COMMON#FORM#GET_NEXT_NUMBER#C1` ### FORM GET_NEXT_NUMBER_YEAR — `ZFI_COMMON` L1172-L1211 (40줄) *번호범위 객체·구간·연도로 NUMBER_GET_NEXT를 호출해 연도별 다음 채번 번호를 가져오는 공통 FORM이다.* > 이 unit 의 조각 1개가 30/40줄(75%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다. #### [fm_call] 번호범위 객체(NRIV-OBJECT)와 구간 번호, 연도(없으면 '0000')를 지정해 NUMBER_GET_NEXT로 다음 번호를 채번하고 실패 시 번호를 비운다. ```abap 1180| LV_NRRANG = P_NRRANG. 1181| LV_OBJECT = P_OBJECT. 1182| IF P_YEAR IS NOT INITIAL. 1183| LV_YEAR = P_YEAR. 1184| ELSE. 1185| LV_YEAR = '0000'. 1186| 1187| ENDIF. 1188| 1189| CALL FUNCTION 'NUMBER_GET_NEXT' 1190| EXPORTING 1191| NR_RANGE_NR = LV_NRRANG 1192| OBJECT = LV_OBJECT 1193| TOYEAR = LV_YEAR 1194| IMPORTING 1195| NUMBER = P_DOCNO 1196| EXCEPTIONS 1197| INTERVAL_NOT_FOUND = 1 1198| NUMBER_RANGE_NOT_INTERN = 2 1199| OBJECT_NOT_FOUND = 3 1200| QUANTITY_IS_0 = 4 1201| QUANTITY_IS_NOT_1 = 5 1202| INTERVAL_OVERFLOW = 6 1203| BUFFER_OVERFLOW = 7 1204| OTHERS = 8. 1205| IF SY-SUBRC <> 0. 1206| * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO 1207| * WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. 1208| CLEAR P_DOCNO. 1209| ENDIF. ``` - **EN**: Draw the next number from the number range object and interval for the given year (or 0000) via NUMBER_GET_NEXT, clearing the result on error. - 호출(파서): NUMBER_GET_NEXT - SAP 객체: NUMBER_GET_NEXT, NRIV - 업무 키워드: 채번, 번호범위, 연도별 번호 - English: Number Range, NUMBER_GET_NEXT, Fiscal Year - 정의부(복사 시 함께 필요): [`LV_NRRANG`](#decl-zfi_common-1176-lv_nrrang), [`LV_OBJECT`](#decl-zfi_common-1177-lv_object), [`LV_YEAR`](#decl-zfi_common-1178-lv_year) - 위치: `abap://ZFIR0020/ZFI_COMMON#L1180-L1209` · confidence 0.95 · `ZFIR0020#ZFI_COMMON#FORM#GET_NEXT_NUMBER_YEAR#C1` ### FORM GET_VALUE_LIST_DOM — `ZFI_COMMON` L1220-L1235 (16줄) *도메인 고정값과 텍스트를 DD07T에서 읽어 전달받은 테이블에 채우는 공통 FORM(F4/드롭다운용)이다.* > 이 unit 의 조각 1개가 11/16줄(69%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다. #### [sql_select] DD07T에서 지정 도메인의 활성 고정값(DOMVALUE_L)과 텍스트(DDTEXT)를 로그온 언어로 조회해 P_TAB에 넣고 정렬하며, 없으면 테이블을 비운다. ```abap 1223| SELECT DOMVALUE_L DDTEXT 1224| INTO TABLE P_TAB 1225| FROM DD07T 1226| WHERE DOMNAME EQ P_DOMAIN 1227| AND DDLANGUAGE EQ SY-LANGU 1228| AND AS4LOCAL EQ 'A'. 1229| IF SY-SUBRC EQ 0. 1230| SORT P_TAB. 1231| ELSE. 1232| REFRESH P_TAB. 1233| ENDIF. ``` - **EN**: Read active domain fixed values and texts from DD07T for the logon language into the given table, sorting it or clearing it when nothing is found. - 테이블(파서): read [DD07T](/tables/DD07T.md) / write - - SAP 객체: DD07T - 업무 키워드: 도메인 값 목록, 드롭다운 값, F4 값 목록 - English: Domain Fixed Values, DD07T, Value List - 위치: `abap://ZFIR0020/ZFI_COMMON#L1223-L1233` · confidence 0.95 · `ZFIR0020#ZFI_COMMON#FORM#GET_VALUE_LIST_DOM#C1` ### FORM MD_CONVER_MAT_UNIT — `ZFI_COMMON` L1268-L1298 (31줄) *자재의 수량을 입력 단위에서 출력 단위로 MD_CONVERT_MATERIAL_UNIT을 이용해 환산하는 공통 FORM이다.* > 이 unit 의 조각 1개가 23/31줄(74%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다. #### [fm_call] 수량이 0이거나 단위가 같으면 그대로 반환하고, 그 외에는 MD_CONVERT_MATERIAL_UNIT으로 자재(MATNR)의 단위 환산 비율에 따라 수량을 변환하며 오류 시 0으로 처리한다. ```abap 1274| IF P_MENGE IS INITIAL. 1275| CLEAR PV_MENGE. 1276| EXIT. 1277| ELSEIF P_IN_ME EQ P_OUT_ME. 1278| PV_MENGE = P_MENGE. 1279| EXIT. 1280| ENDIF. 1281| 1282| CALL FUNCTION 'MD_CONVERT_MATERIAL_UNIT' 1283| EXPORTING 1284| I_MATNR = P_MATNR 1285| I_IN_ME = P_IN_ME 1286| I_OUT_ME = P_OUT_ME 1287| I_MENGE = P_MENGE 1288| IMPORTING 1289| E_MENGE = PV_MENGE 1290| EXCEPTIONS 1291| ERROR_IN_APPLICATION = 1 1292| ERROR = 2 1293| OTHERS = 3. 1294| IF SY-SUBRC <> 0. 1295| CLEAR PV_MENGE. 1296| ENDIF. ``` - **EN**: Return the quantity unchanged for zero or identical units, otherwise convert it between units of measure for the material via MD_CONVERT_MATERIAL_UNIT. - 호출(파서): MD_CONVERT_MATERIAL_UNIT - SAP 객체: MD_CONVERT_MATERIAL_UNIT, EKPO - 업무 키워드: 자재 단위 환산, 수량 변환, 기본단위 - English: Unit of Measure Conversion, Material, Quantity - 위치: `abap://ZFIR0020/ZFI_COMMON#L1274-L1296` · confidence 0.9 · `ZFIR0020#ZFI_COMMON#FORM#MD_CONVER_MAT_UNIT#C1` ### FORM SHOW_MESSAGE_LIST — `ZFI_COMMON` L1306-L1316 (11줄) *누적된 헤더/상세 메시지 테이블(GT_HEAMSG/GT_DETMSG)을 SCPR_SV_SHOW_MESSAGE_LIST로 팝업 표시하는 공통 FORM이다.* > 이 unit 의 조각 1개가 7/11줄(64%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다. #### [output] 제목과 함께 GT_HEAMSG(메시지 목록)·GT_DETMSG(상세)를 SCPR_SV_SHOW_MESSAGE_LIST에 넘겨 처리 결과 메시지 목록을 팝업으로 보여준다. ```abap 1308| CALL FUNCTION 'SCPR_SV_SHOW_MESSAGE_LIST' 1309| EXPORTING 1310| TITLE_TEXT = P_TITLE 1311| SORT_BY_LEVEL = ' ' 1312| SHOW_IDS = 'X' 1313| MESSAGE_LIST = GT_HEAMSG 1314| DETAILS_LIST = GT_DETMSG. ``` - **EN**: Display the collected message list and details in a popup via SCPR_SV_SHOW_MESSAGE_LIST. - 호출(파서): SCPR_SV_SHOW_MESSAGE_LIST - SAP 객체: SCPR_SV_SHOW_MESSAGE_LIST, GT_HEAMSG, GT_DETMSG - 업무 키워드: 메시지 목록 팝업, 처리 결과 표시 - English: Message List, Popup - 정의부(복사 시 함께 필요): [`GT_HEAMSG`](#decl-zfi_common-24-gt_heamsg), [`GT_DETMSG`](#decl-zfi_common-23-gt_detmsg) - 위치: `abap://ZFIR0020/ZFI_COMMON#L1308-L1314` · confidence 0.85 · `ZFIR0020#ZFI_COMMON#FORM#SHOW_MESSAGE_LIST#C1` ### FORM GET_FILE_PATH — `ZFI_COMMON` L1325-L1356 (32줄) *파일 열기 대화상자(FILE_OPEN_DIALOG)로 업로드할 XLS 파일을 선택받아 파일 경로를 반환하는 공통 FORM이다.* > 이 unit 의 조각 1개가 22/32줄(69%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다. #### [fm_call] XLS 필터로 CL_GUI_FRONTEND_SERVICES=>FILE_OPEN_DIALOG를 열어 사용자가 OK를 누르면 첫 번째 선택 파일 경로를 P_FILENM에 반환한다. ```abap 1333| CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_OPEN_DIALOG 1334| EXPORTING 1335| WINDOW_TITLE = 'Upload' 1336| MULTISELECTION = ' ' 1337| DEFAULT_EXTENSION = 'XLS' 1338| DEFAULT_FILENAME = ' ' 1339| FILE_FILTER = '*.XLS' 1340| CHANGING 1341| FILE_TABLE = LT_FILETABLE 1342| RC = RTN_CODE 1343| USER_ACTION = USER_ACTION. 1344| 1345| CALL METHOD CL_GUI_CFW=>FLUSH. 1346| 1347| CASE USER_ACTION. 1348| WHEN CL_GUI_FRONTEND_SERVICES=>ACTION_OK. 1349| READ TABLE LT_FILETABLE INTO LS_FILETABLE INDEX 1. 1350| CHECK SY-SUBRC IS INITIAL. 1351| MOVE: LS_FILETABLE-FILENAME TO P_FILENM. 1352| 1353| WHEN CL_GUI_FRONTEND_SERVICES=>ACTION_CANCEL. 1354| ENDCASE. ``` - **EN**: Open a file-open dialog filtered to XLS and return the first selected file path when the user confirms. - 호출(파서): CL_GUI_FRONTEND_SERVICES=>FILE_OPEN_DIALOG, CL_GUI_CFW=>FLUSH, CL_GUI_FRONTEND_SERVICES=>ACTION_OK, CL_GUI_FRONTEND_SERVICES=>ACTION_CANCEL - SAP 객체: CL_GUI_FRONTEND_SERVICES=>FILE_OPEN_DIALOG, CL_GUI_CFW=>FLUSH - 업무 키워드: 파일 선택 대화상자, 엑셀 업로드 경로 - English: File Open Dialog, Frontend Services, Excel Upload - 정의부(복사 시 함께 필요): [`LT_FILETABLE`](#decl-zfi_common-1330-lt_filetable), [`RTN_CODE`](#decl-zfi_common-1329-rtn_code), [`USER_ACTION`](#decl-zfi_common-1328-user_action), [`LS_FILETABLE`](#decl-zfi_common-1331-ls_filetable) - 위치: `abap://ZFIR0020/ZFI_COMMON#L1333-L1354` · confidence 0.9 · `ZFIR0020#ZFI_COMMON#FORM#GET_FILE_PATH#C1` ### FORM CHK_FILE_PATH — `ZFI_COMMON` L1365-L1390 (26줄) *CL_GUI_FRONTEND_SERVICES=>FILE_EXIST로 업로드 파일 경로의 존재를 확인하고 없으면 메시지 후 처리를 중단하는 공통 FORM이다.* > 이 unit 의 조각 1개가 17/26줄(65%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다. #### [validation] 프론트엔드 파일 존재 여부를 FILE_EXIST로 검사해 호출 오류 시 시스템 메시지를, 파일이 없으면 'Please check your file path' 메시지 후 LEAVE LIST-PROCESSING으로 중단한다. ```abap 1372| CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_EXIST 1373| EXPORTING 1374| FILE = LV_FILE 1375| RECEIVING 1376| RESULT = LV_RESULT. 1377| 1378| IF NOT SY-SUBRC IS INITIAL. 1379| 1380| MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO 1381| WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. 1382| 1383| ELSEIF LV_RESULT IS INITIAL. 1384| 1385| MESSAGE S001(00) WITH 'Please check your file path'. 1386| LEAVE LIST-PROCESSING. 1387| 1388| ENDIF. ``` - **EN**: Verify the local file exists with CL_GUI_FRONTEND_SERVICES=>FILE_EXIST and stop processing with a message when it is missing. - 호출(파서): CL_GUI_FRONTEND_SERVICES=>FILE_EXIST - SAP 객체: CL_GUI_FRONTEND_SERVICES=>FILE_EXIST - 업무 키워드: 파일 존재 확인, 업로드 경로 검증 - English: File Exist Check, Frontend Services - 정의부(복사 시 함께 필요): [`LV_FILE`](#decl-zfi_common-1368-lv_file), [`LV_RESULT`](#decl-zfi_common-1367-lv_result) - 위치: `abap://ZFIR0020/ZFI_COMMON#L1372-L1388` · confidence 0.9 · `ZFIR0020#ZFI_COMMON#FORM#CHK_FILE_PATH#C1` ### FORM BDC_CREATE_AENNR — `ZFI_COMMON` L1502-L1569 (68줄) *변경번호(AENNR) 존재 여부를 AENR에서 확인한 뒤 없으면 BDC로 CC01(변경마스터 생성)을 실행하고 결과 메시지를 반환하는 공통 FORM이다.* > 이 unit 의 조각 2개가 60/68줄(88%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다. #### [sql_select] AENR 테이블에서 변경번호(AENNR)가 이미 존재하는지 조회하여 있으면 성공(S)으로 종료해 중복 생성을 막는다. ```abap 1507| SELECT SINGLE AENNR 1508| INTO P_AENNR 1509| FROM AENR 1510| WHERE AENNR EQ P_AENNR. 1511| IF SY-SUBRC EQ 0. 1512| P_MSGTY = 'S'. 1513| EXIT. 1514| ENDIF. ``` - **EN**: Check AENR for an existing change number and exit with success if it already exists to avoid duplicate creation. - 테이블(파서): read [AENR](/tables/AENR.md) / write - - SAP 객체: AENR - 업무 키워드: 변경번호 존재 확인, 중복 생성 방지, 설계변경관리 - English: Change Number, AENR, Engineering Change Management - 위치: `abap://ZFIR0020/ZFI_COMMON#L1507-L1514` · confidence 0.95 · `ZFIR0020#ZFI_COMMON#FORM#BDC_CREATE_AENNR#C1` #### [fm_call] SAPMC29C 화면(0100/0010/0020)에 변경번호·내역·효력시작일·변경사유·상태 등을 채운 BDC 데이터를 구성해 CALL TRANSACTION 'CC01'(N 모드, 동기 업데이트)로 변경마스터를 생성하고, 메시지 CC001 성공 여부로 P_MSGTY를 정하며 실패 시 BUILD_MESSAGE로 오류 텍스트를 만든다. ```abap 1516| REFRESH : GT_BDCDATA, GT_MESSTAB. 1517| CLEAR : GS_BDC_OPTION. 1518| 1519| GS_BDC_OPTION-DISMODE = 'N'. 1520| GS_BDC_OPTION-UPDMODE = 'S'. 1521| 1522| PERFORM DYNPRO TABLES PT_TABLES USING: 1523| 'X' 'SAPMC29C' '0100', "설계변경관리: 초기화면 1524| ' ' 'BDC_OKCODE' '/00', 1525| ' ' 'RC29A-AENNR' P_AENNR, 1526| 1527| 'X' 'SAPMC29C' '0010', "ECM: Basic Screen 1528| ' ' 'BDC_OKCODE' '/00', 1529| ' ' 'RC29A-AETXT' P_TEXT, "내역 1530| ' ' 'RC29A-DATUV' P_DATUV, "효력 시작일 1531| ' ' 'RC29A-AEGRU' P_AEGRU, "변경사유 1532| ' ' 'RC29A-AENST' '01', "변경 번호 상태 1533| 1534| 'X' 'SAPMC29C' '0020', "ECM: Basic Screen 1535| ' ' 'BDC_OKCODE' '=ENT1', 1536| ' ' 'RC29A-AEERL(01)' 'X', "Obj. 유형 활성 1537| 1538| 'X' 'SAPMC29C' '0020', "ECM: Basic Screen 1539| ' ' 'BDC_OKCODE' '=ENT1', 1540| ' ' 'RC29A-INDFL(01)' 'X', "오브젝트 1541| 1542| 'X' 'SAPMC29C' '0020', "ECM: Basic Screen 1543| ' ' 'BDC_OKCODE' '=ENT1', 1544| ' ' 'RC29A-OIGEN(01)' 'X', "관리레코드생성 1545| 1546| 'X' 'SAPMC29C' '0020', "ECM: Basic Screen 1547| ' ' 'BDC_OKCODE' '/00', 1548| 1549| 'X' 'SAPMC29C' '0020', "ECM: Basic Screen 1550| ' ' 'BDC_OKCODE' '=FCBU'. 1551| 1552| CALL TRANSACTION 'CC01' 1553| USING GT_BDCDATA[] 1554| OPTIONS FROM GS_BDC_OPTION 1555| MESSAGES INTO GT_MESSTAB[]. 1556| 1557| *-- 메시지 처리 1558| READ TABLE GT_MESSTAB WITH KEY MSGTYP = 'S' 1559| MSGID = 'CC' 1560| MSGNR = '001'. 1561| IF SY-SUBRC EQ 0. 1562| P_MSGTY = 'S'. 1563| ELSE. 1564| P_MSGTY = 'E'. 1565| PERFORM BUILD_MESSAGE USING GT_MESSTAB 1566| CHANGING P_MSGTX. 1567| ENDIF. ``` - **EN**: Build BDC screens for SAPMC29C with change number, description, valid-from date, reason and status, run CALL TRANSACTION CC01, and derive success/error message from BDC messages (CC 001). - 호출(파서): DYNPRO, DYNPRO, DYNPRO, DYNPRO, DYNPRO, DYNPRO, DYNPRO, DYNPRO, DYNPRO, DYNPRO, DYNPRO, DYNPRO, DYNPRO, DYNPRO, DYNPRO, DYNPRO, DYNPRO, DYNPRO, DYNPRO, DYNPRO - SAP 객체: CC01, SAPMC29C, GT_BDCDATA, GT_MESSTAB, BUILD_MESSAGE, DYNPRO - 업무 키워드: 변경마스터 생성, BDC 배치입력, CC01, 효력 시작일, 변경사유, 메시지 처리 - English: Change Master, BDC, Call Transaction, CC01, ECM - 정의부(복사 시 함께 필요): [`GT_BDCDATA`](#decl-zfi_common-63-gt_bdcdata), [`BDCMSGCOLL`](#decl-zfi_common-4-bdcmsgcoll), [`GT_MESSTAB`](#decl-zfi_common-64-gt_messtab), [`GS_BDC_OPTION`](#decl-zfi_common-62-gs_bdc_option) - 위치: `abap://ZFIR0020/ZFI_COMMON#L1516-L1567` · confidence 0.9 · `ZFIR0020#ZFI_COMMON#FORM#BDC_CREATE_AENNR#C2` ### FORM GET_DYNP_VALUES_READ — `ZFI_COMMON` L1577-L1626 (50줄) *DYNP_VALUES_READ로 현재 화면의 필드 값을 읽어 같은 이름의 프로그램 변수에 넣는 공통 FORM이다.* > 이 unit 의 조각 1개가 35/50줄(70%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다. #### [fm_call] DYNP_VALUES_READ로 현재 화면(SY-REPID/SY-DYNNR)의 지정 필드 값을 읽고, 성공하면 동적 ASSIGN한 동일 이름의 ABAP 변수에 값을 대입한다(F4/PAI 전 값 취득용). ```abap 1589| LS_DYNPFIELDS-FIELDNAME = P_FIELD. 1590| APPEND LS_DYNPFIELDS TO LT_DYNPFIELDS. 1591| 1592| CALL FUNCTION 'DYNP_VALUES_READ' 1593| EXPORTING 1594| DYNAME = LV_DYNAME 1595| DYNUMB = LV_DYNUM 1596| TABLES 1597| DYNPFIELDS = LT_DYNPFIELDS 1598| EXCEPTIONS 1599| INVALID_ABAPWORKAREA = 1 1600| INVALID_DYNPROFIELD = 2 1601| INVALID_DYNPRONAME = 3 1602| INVALID_DYNPRONUMMER = 4 1603| INVALID_REQUEST = 5 1604| NO_FIELDDESCRIPTION = 6 1605| INVALID_PARAMETER = 7 1606| UNDEFIND_ERROR = 8 1607| DOUBLE_CONVERSION = 9 1608| STEPL_NOT_FOUND = 10 1609| OTHERS = 11. 1610| 1611| IF SY-SUBRC <> 0. 1612| EXIT. 1613| 1614| ELSE. 1615| READ TABLE LT_DYNPFIELDS INTO LS_DYNPFIELDS 1616| WITH KEY FIELDNAME = P_FIELD. 1617| IF SY-SUBRC EQ 0. 1618| ASSIGN (P_FIELD) TO . 1619| IF IS ASSIGNED. 1620| = LS_DYNPFIELDS-FIELDVALUE. 1621| ENDIF. 1622| ENDIF. 1623| ``` - **EN**: Read the current screen field value with DYNP_VALUES_READ and move it into the ABAP variable of the same name via dynamic assignment. - 호출(파서): DYNP_VALUES_READ - SAP 객체: DYNP_VALUES_READ, DYNPREAD - 업무 키워드: 화면 필드 값 읽기, F4 도움말 전 값 취득 - English: Dynpro, DYNP_VALUES_READ, Screen Field - 정의부(복사 시 함께 필요): [`LS_DYNPFIELDS`](#decl-zfi_common-1580-ls_dynpfields), [`LT_DYNPFIELDS`](#decl-zfi_common-1579-lt_dynpfields), [`LV_DYNAME`](#decl-zfi_common-1581-lv_dyname), [`LV_DYNUM`](#decl-zfi_common-1582-lv_dynum), [``](#decl-zfi_common-1584--fs_field-) - 위치: `abap://ZFIR0020/ZFI_COMMON#L1589-L1623` · confidence 0.85 · `ZFIR0020#ZFI_COMMON#FORM#GET_DYNP_VALUES_READ#C1` ### FORM SET_DYNP_VALUES — `ZFI_COMMON` L1635-L1676 (42줄) *프로그램 변수 값을 DYNP_VALUES_UPDATE로 현재 화면 필드에 반영하는 공통 FORM이다.* > 이 unit 의 조각 1개가 23/42줄(55%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다. #### [fm_call] 필드명으로 ABAP 변수를 동적 ASSIGN하여 값을 DYNPREAD에 담고 DYNP_VALUES_UPDATE로 현재 화면(SY-REPID/SY-DYNNR)의 해당 필드 값을 갱신한다. ```abap 1647| LS_DYNPFIELDS-FIELDNAME = P_FIELD. 1648| 1649| ASSIGN (P_FIELD) TO . 1650| IF IS ASSIGNED. 1651| LS_DYNPFIELDS-FIELDVALUE = . 1652| ENDIF. 1653| APPEND LS_DYNPFIELDS TO LT_DYNPFIELDS. 1654| 1655| CALL FUNCTION 'DYNP_VALUES_UPDATE' 1656| EXPORTING 1657| DYNAME = LV_DYNAME 1658| DYNUMB = LV_DYNUM 1659| TABLES 1660| DYNPFIELDS = LT_DYNPFIELDS 1661| EXCEPTIONS 1662| INVALID_ABAPWORKAREA = 1 1663| INVALID_DYNPROFIELD = 2 1664| INVALID_DYNPRONAME = 3 1665| INVALID_DYNPRONUMMER = 4 1666| INVALID_REQUEST = 5 1667| NO_FIELDDESCRIPTION = 6 1668| UNDEFIND_ERROR = 7 1669| OTHERS = 8. ``` - **EN**: Read the ABAP variable by dynamic assignment and push its value to the current screen field via DYNP_VALUES_UPDATE. - 호출(파서): DYNP_VALUES_UPDATE - SAP 객체: DYNP_VALUES_UPDATE, DYNPREAD - 업무 키워드: 화면 필드 값 갱신, 선택화면 동적 값 설정 - English: Dynpro, DYNP_VALUES_UPDATE, Screen Field - 정의부(복사 시 함께 필요): [`LS_DYNPFIELDS`](#decl-zfi_common-1638-ls_dynpfields), [``](#decl-zfi_common-1642--fs_field-), [`LT_DYNPFIELDS`](#decl-zfi_common-1637-lt_dynpfields), [`LV_DYNAME`](#decl-zfi_common-1639-lv_dyname), [`LV_DYNUM`](#decl-zfi_common-1640-lv_dynum) - 위치: `abap://ZFIR0020/ZFI_COMMON#L1647-L1669` · confidence 0.85 · `ZFIR0020#ZFI_COMMON#FORM#SET_DYNP_VALUES#C1` ### FORM AUTHORITY_CHECK_TCODE — `ZFI_COMMON` L1682-L1695 (14줄) *S_TCODE 권한 객체로 현재 T-Code 실행 권한을 검사하고 T-Code 끝자리가 1이면 조회 모드(GV_DIP_MOD)로 설정하는 공통 FORM이다.* > 이 unit 의 조각 1개가 8/14줄(57%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다. #### [validation] AUTHORITY-CHECK OBJECT 'S_TCODE'로 SY-TCODE 실행 권한을 검사해 없으면 E077(S#) 오류로 중단하고, T-Code가 '*1' 패턴이면 조회 전용 모드 플래그를 켠다. ```abap 1686| AUTHORITY-CHECK OBJECT 'S_TCODE' 1687| ID 'TCD' FIELD SY-TCODE. 1688| 1689| IF SY-SUBRC NE 0. 1690| MESSAGE E077(S#) WITH SY-TCODE. 1691| ELSEIF SY-TCODE CP '*1'. 1692| GV_DIP_MOD = 'X'. 1693| ENDIF. ``` - **EN**: Check transaction authorization via S_TCODE; raise error E077(S#) if missing, and set display-only mode when the T-Code ends with 1. - SAP 객체: S_TCODE - 업무 키워드: 트랜잭션 권한 검사, 조회 모드 설정 - English: Authorization Check, S_TCODE, Display Mode - 정의부(복사 시 함께 필요): [`GV_DIP_MOD`](#decl-zfi_common-43-gv_dip_mod) - 위치: `abap://ZFIR0020/ZFI_COMMON#L1686-L1693` · confidence 0.95 · `ZFIR0020#ZFI_COMMON#FORM#AUTHORITY_CHECK_TCODE#C1` ### FORM F_PDF_DOWNLOAD — `ZFI_COMMON` L1734-L1799 (66줄) *Smart Forms 출력 결과(OTF)를 PDF로 변환하고 저장 대화상자를 거쳐 PC에 다운로드하는 공통 FORM이다.* > 이 unit 의 조각 2개가 47/66줄(71%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다. #### [fm_call] Smart Forms 잡 결과(SSFCRESCL-OTFDATA)의 OTF 데이터를 CONVERT_OTF로 PDF 바이너리로 변환하고, OTF 라인을 텍스트 테이블로 만들어 SX_OBJECT_CONVERT_OTF_PDF로 PDF 바이너리 컨텐츠(LT_CONTENT_BIN)와 길이를 얻는다. ```abap 1749| LT_OTF[] = P_JOB-OTFDATA. 1750| 1751| CALL FUNCTION 'CONVERT_OTF' 1752| EXPORTING 1753| FORMAT = 'PDF' 1754| IMPORTING 1755| BIN_FILESIZE = LV_BIN_FILESIZE 1756| BIN_FILE = LV_BIN_FILE 1757| TABLES 1758| OTF = LT_OTF 1759| LINES = LT_LINES 1760| EXCEPTIONS 1761| ERR_MAX_LINEWIDTH = 1 1762| ERR_FORMAT = 2 1763| ERR_CONV_NOT_POSSIBLE = 3 1764| ERR_BAD_OTF = 4 1765| OTHERS = 5. 1766| 1767| LOOP AT LT_OTF. 1768| CONCATENATE LT_OTF-TDPRINTCOM LT_OTF-TDPRINTPAR INTO LS_OTF. 1769| APPEND LS_OTF TO LT_CONTENT_TXT. 1770| ENDLOOP. 1771| 1772| CALL FUNCTION 'SX_OBJECT_CONVERT_OTF_PDF' 1773| EXPORTING 1774| FORMAT_SRC = 'OTF' 1775| FORMAT_DST = 'PDF' 1776| DEVTYPE = 'PRINTER' 1777| CHANGING 1778| TRANSFER_BIN = LV_TRANSFER_BIN 1779| CONTENT_TXT = LT_CONTENT_TXT 1780| CONTENT_BIN = LT_CONTENT_BIN 1781| OBJHEAD = LT_OBJHEAD 1782| LEN = LV_LEN_IN 1783| EXCEPTIONS 1784| ERR_CONV_FAILED = 1 1785| OTHERS = 2. ``` - **EN**: Convert Smart Forms OTF output to PDF using CONVERT_OTF and SX_OBJECT_CONVERT_OTF_PDF, producing binary PDF content and its length. - 호출(파서): CONVERT_OTF, SX_OBJECT_CONVERT_OTF_PDF - SAP 객체: CONVERT_OTF, SX_OBJECT_CONVERT_OTF_PDF, SSFCRESCL, ITCOO - 업무 키워드: OTF PDF 변환, Smart Forms 출력, 양식 다운로드 - English: Smart Forms, OTF, PDF Conversion - 정의부(복사 시 함께 필요): [`LT_OTF`](#decl-zfi_common-1747-lt_otf), [`LV_BIN_FILESIZE`](#decl-zfi_common-1742-lv_bin_filesize), [`LV_BIN_FILE`](#decl-zfi_common-1743-lv_bin_file), [`LT_LINES`](#decl-zfi_common-1744-lt_lines), [`LS_OTF`](#decl-zfi_common-1741-ls_otf), [`LT_CONTENT_TXT`](#decl-zfi_common-1737-lt_content_txt), [`LV_TRANSFER_BIN`](#decl-zfi_common-1736-lv_transfer_bin), [`LT_CONTENT_BIN`](#decl-zfi_common-1738-lt_content_bin), [`LT_OBJHEAD`](#decl-zfi_common-1739-lt_objhead), [`LV_LEN_IN`](#decl-zfi_common-1740-lv_len_in) - 위치: `abap://ZFIR0020/ZFI_COMMON#L1749-L1785` · confidence 0.9 · `ZFIR0020#ZFI_COMMON#FORM#F_PDF_DOWNLOAD#C1` #### [fm_call] OPEN_SAVE_FILE_SEL로 pdf 저장 경로를 받은 뒤 GUI_DOWNLOAD(FILETYPE='BIN')로 PDF 바이너리를 로컬 PC에 저장한다. ```abap 1788| LV_FILESIZE = LV_LEN_IN. 1789| PERFORM OPEN_SAVE_FILE_SEL USING 'pdf' CHANGING LV_FILENAME. 1790| 1791| CALL FUNCTION 'GUI_DOWNLOAD' 1792| EXPORTING 1793| BIN_FILESIZE = LV_FILESIZE 1794| FILENAME = LV_FILENAME 1795| FILETYPE = 'BIN' 1796| TABLES 1797| DATA_TAB = LT_CONTENT_BIN. ``` - **EN**: Ask for a PDF save path via OPEN_SAVE_FILE_SEL and download the binary PDF content to the frontend with GUI_DOWNLOAD. - 호출(파서): OPEN_SAVE_FILE_SEL, GUI_DOWNLOAD - SAP 객체: GUI_DOWNLOAD, OPEN_SAVE_FILE_SEL - 업무 키워드: PDF 다운로드, 로컬 저장 - English: GUI_DOWNLOAD, PDF, Frontend Download - 정의부(복사 시 함께 필요): [`LV_FILESIZE`](#decl-zfi_common-1745-lv_filesize), [`LV_LEN_IN`](#decl-zfi_common-1740-lv_len_in), [`LV_FILENAME`](#decl-zfi_common-1746-lv_filename), [`LT_CONTENT_BIN`](#decl-zfi_common-1738-lt_content_bin) - 위치: `abap://ZFIR0020/ZFI_COMMON#L1788-L1797` · confidence 0.9 · `ZFIR0020#ZFI_COMMON#FORM#F_PDF_DOWNLOAD#C2` ### FORM OPEN_SAVE_FILE_SEL — `ZFI_COMMON` L1808-L1864 (57줄) *파일 저장 대화상자(FILE_SAVE_DIALOG)를 열어 사용자가 지정한 저장 파일명을 돌려주는 공통 FORM이다.* > 이 unit 의 조각 1개가 36/57줄(63%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다. #### [fm_call] 확장자·기본 파일명·필터(전체/엑셀)·초기 디렉토리를 설정한 뒤 CL_GUI_FRONTEND_SERVICES=>FILE_SAVE_DIALOG를 호출하고, 오류 시 메시지, 취소 시 종료, 확인 시 파일명을 P_FILENAME에 반환한다. ```abap 1825| LV_DEFAULT_EXTENSION = P_EXT. 1826| CONCATENATE '*.' P_EXT INTO LV_DEFAULT_FILE_NAME. 1827| LV_INITIAL_DIRECTORY = 'C:\'. 1828| CONCATENATE CL_GUI_FRONTEND_SERVICES=>FILETYPE_ALL 1829| * CL_GUI_FRONTEND_SERVICES=>FILETYPE_TEXT 1830| CL_GUI_FRONTEND_SERVICES=>FILETYPE_EXCEL 1831| INTO LV_FILE_FILTER. 1832| 1833| CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_SAVE_DIALOG 1834| EXPORTING 1835| * WINDOW_TITLE 1836| DEFAULT_EXTENSION = LV_DEFAULT_EXTENSION 1837| DEFAULT_FILE_NAME = LV_DEFAULT_FILE_NAME 1838| * WITH_ENCODING = ABAP_TRUE 1839| FILE_FILTER = LV_FILE_FILTER 1840| INITIAL_DIRECTORY = LV_INITIAL_DIRECTORY 1841| CHANGING 1842| FILENAME = LV_FILENAME 1843| PATH = LV_PATH 1844| FULLPATH = LV_FULLPATH 1845| USER_ACTION = LV_USER_ACTION 1846| EXCEPTIONS 1847| CNTL_ERROR = 2 1848| ERROR_NO_GUI = 3 1849| NOT_SUPPORTED_BY_GUI = 4 1850| OTHERS = 5. 1851| IF SY-SUBRC <> 0. 1852| MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO 1853| WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. 1854| EXIT. 1855| ELSE. 1856| IF LV_USER_ACTION NE CL_GUI_FRONTEND_SERVICES=>ACTION_OK. 1857| EXIT. 1858| ENDIF. 1859| 1860| P_FILENAME = LV_FILENAME. ``` - **EN**: Prepare extension, default name, file filter and initial directory, call CL_GUI_FRONTEND_SERVICES=>FILE_SAVE_DIALOG and return the chosen filename when the user confirms. - 호출(파서): CL_GUI_FRONTEND_SERVICES=>FILETYPE_ALL, CL_GUI_FRONTEND_SERVICES=>FILETYPE_EXCEL, CL_GUI_FRONTEND_SERVICES=>FILE_SAVE_DIALOG, CL_GUI_FRONTEND_SERVICES=>ACTION_OK - SAP 객체: CL_GUI_FRONTEND_SERVICES=>FILE_SAVE_DIALOG - 업무 키워드: 파일 저장 대화상자, 다운로드 경로 선택 - English: File Save Dialog, Frontend Services - 정의부(복사 시 함께 필요): [`LV_DEFAULT_EXTENSION`](#decl-zfi_common-1815-lv_default_extension), [`LV_DEFAULT_FILE_NAME`](#decl-zfi_common-1818-lv_default_file_name), [`LV_INITIAL_DIRECTORY`](#decl-zfi_common-1817-lv_initial_directory), [`LV_FILE_FILTER`](#decl-zfi_common-1816-lv_file_filter), [`LV_FILENAME`](#decl-zfi_common-1812-lv_filename), [`LV_PATH`](#decl-zfi_common-1813-lv_path), [`LV_FULLPATH`](#decl-zfi_common-1814-lv_fullpath), [`LV_USER_ACTION`](#decl-zfi_common-1821-lv_user_action) - 위치: `abap://ZFIR0020/ZFI_COMMON#L1825-L1860` · confidence 0.9 · `ZFIR0020#ZFI_COMMON#FORM#OPEN_SAVE_FILE_SEL#C1` ### FORM ALSMEX_TAB_TO_ITAB — `ZFI_COMMON` L1874-L1902 (29줄) *ALSM_EXCEL_TO_INTERNAL_TABLE 결과(ALSMEX_TABLINE)를 동적으로 지정한 내부테이블·구조체에 행/열 매핑하여 적재하는 공통 FORM이다.* > 이 unit 의 조각 1개가 20/29줄(69%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다. #### [calculation] 엑셀 셀 데이터(ROW/COL/VALUE)를 순회하며 열 번호에 해당하는 구조체 컴포넌트에 값을 넣고(숫자는 콤마 제거), 행이 바뀔 때마다 대상 내부테이블에 APPEND한다. ```abap 1881| ASSIGN : (PT_EXCEL_TABLE) TO . 1882| ASSIGN : (PS_EXCEL_STRUC) TO . 1883| 1884| LOOP AT PT_INTERN. 1885| AT NEW ROW. 1886| CLEAR : . 1887| ENDAT. 1888| 1889| ASSIGN COMPONENT PT_INTERN-COL OF STRUCTURE TO . 1890| 1891| IF PT_INTERN-VALUE CO '0123456789,.- '. 1892| REPLACE ALL OCCURRENCES OF ',' IN PT_INTERN-VALUE WITH ''. 1893| ENDIF. 1894| 1895| MOVE PT_INTERN-VALUE TO . 1896| 1897| AT END OF ROW. 1898| APPEND TO . 1899| ENDAT. 1900| ENDLOOP. ``` - **EN**: Iterate Excel cell lines, move each value into the structure component matching the column (removing thousand separators from numerics) and append one line per row to the dynamically assigned target table. - SAP 객체: ALSMEX_TABLINE, ALSM_EXCEL_TO_INTERNAL_TABLE - 업무 키워드: 엑셀 셀 매핑, 동적 내부테이블, 콤마 제거 - English: Excel Upload, ALSMEX_TABLINE, Dynamic Assign - 정의부(복사 시 함께 필요): [``](#decl-zfi_common-1878--itab-), [``](#decl-zfi_common-1879--iline-), [``](#decl-zfi_common-1877--field-) - 위치: `abap://ZFIR0020/ZFI_COMMON#L1881-L1900` · confidence 0.9 · `ZFIR0020#ZFI_COMMON#FORM#ALSMEX_TAB_TO_ITAB#C1` ### FORM START_INTERFACE_BDC — `ZFI_COMMON` L1910-L1930 (21줄) *FTPOST 작업 테이블을 초기화하고 POSTING_INTERFACE_START로 FI Posting Interface(Call Transaction 방식)를 시작하는 공통 FORM이다.* > 이 unit 의 조각 1개가 13/21줄(62%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다. #### [fm_call] POSTING_INTERFACE_START를 I_FUNCTION='C'(Call Transaction), 지정 모드(P_MODE), 동기 업데이트('S')로 호출해 FI 전표 전기 인터페이스를 연다. ```abap 1917| CALL FUNCTION 'POSTING_INTERFACE_START' 1918| EXPORTING 1919| I_FUNCTION = 'C' " Using Call Transaction 1920| I_KEEP = 'Y' 1921| I_MODE = P_MODE 1922| I_UPDATE = 'S' 1923| EXCEPTIONS 1924| CLIENT_INCORRECT = 1 1925| FUNCTION_INVALID = 2 1926| GROUP_NAME_MISSING = 3 1927| MODE_INVALID = 4 1928| UPDATE_INVALID = 5 1929| OTHERS = 6. ``` - **EN**: Open the FI posting interface with POSTING_INTERFACE_START in call-transaction mode, given display mode and synchronous update. - 호출(파서): POSTING_INTERFACE_START - SAP 객체: POSTING_INTERFACE_START - 업무 키워드: 전기 인터페이스 시작, Call Transaction, 전표 전기 - English: Posting Interface, Call Transaction, FI Document - 위치: `abap://ZFIR0020/ZFI_COMMON#L1917-L1929` · confidence 0.9 · `ZFIR0020#ZFI_COMMON#FORM#START_INTERFACE_BDC#C1` ### FORM END_INTERFACE_BDC — `ZFI_COMMON` L1937-L1947 (11줄) *POSTING_INTERFACE_END를 호출해 FI Posting Interface 세션을 종료하고 FTPOST/FTTAX/BLNTAB 작업 테이블을 초기화하는 공통 FORM이다.* > 이 unit 의 조각 1개가 3/11줄(27%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다. #### [fm_call] FI Posting Interface 처리를 POSTING_INTERFACE_END(I_BDCIMMED='X')로 종료해 BDC 세션을 즉시 처리한다. ```abap 1938| CALL FUNCTION 'POSTING_INTERFACE_END' 1939| EXPORTING 1940| I_BDCIMMED = 'X'. ``` - **EN**: Close the FI posting interface session via POSTING_INTERFACE_END with immediate BDC processing. - 호출(파서): POSTING_INTERFACE_END - SAP 객체: POSTING_INTERFACE_END - 업무 키워드: 전기 인터페이스 종료, BDC 세션 - English: Posting Interface, BDC Session - 위치: `abap://ZFIR0020/ZFI_COMMON#L1938-L1940` · confidence 0.9 · `ZFIR0020#ZFI_COMMON#FORM#END_INTERFACE_BDC#C1` ### FORM FILL_FIELD — `ZFI_COMMON` L1957-L1980 (24줄) *Posting Interface(FTPOST)용 필드명·값을 한 건 채우며 금액 필드는 통화 형식으로 편집하여 FTPOST 테이블에 추가하는 공통 FORM이다.* > 이 unit 의 조각 1개가 18/24줄(75%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다. #### [interface] 값이 있는 경우에만 FTPOST에 STYPE/COUNT와 필드명을 설정하고, 금액 필드(FCURR_X='X')는 통화(GV_FTPOST_WAERS) 기준으로 WRITE 편집 후 FTPOST-FVAL에 넣어 Posting Interface 전표 필드로 APPEND한다. ```abap 1961| CHECK FVAL NE SPACE. 1962| 1963| FTPOST-FNAM = FNAM. 1964| FTPOST-STYPE = GV_FTPOST_TYPE. 1965| FTPOST-COUNT = GV_FTPOST_CNT. 1966| 1967| " 금액 필드일 경우. 1968| IF FCURR_X = 'X'. 1969| WRITE FVAL TO LV_CURR CURRENCY 1970| GV_FTPOST_WAERS LEFT-JUSTIFIED. 1971| CONDENSE LV_CURR NO-GAPS. 1972| WRITE LV_CURR TO FTPOST-FVAL. 1973| ELSE. 1974| WRITE FVAL TO FTPOST-FVAL. 1975| ENDIF. 1976| 1977| APPEND FTPOST. 1978| CLEAR FTPOST. ``` - **EN**: Populate one FTPOST entry for the FI posting interface: set field name, segment type and count, format amount fields with currency and append. - SAP 객체: FTPOST, POSTING_INTERFACE_DOCUMENT - 업무 키워드: 전기 인터페이스, FTPOST 필드 구성, 금액 통화 편집 - English: Posting Interface, FTPOST, Currency Format - 정의부(복사 시 함께 필요): [`FTPOST`](#decl-zfi_common-70-ftpost), [`GV_FTPOST_TYPE`](#decl-zfi_common-73-gv_ftpost_type), [`GV_FTPOST_CNT`](#decl-zfi_common-74-gv_ftpost_cnt), [`LV_CURR`](#decl-zfi_common-1959-lv_curr), [`GV_FTPOST_WAERS`](#decl-zfi_common-75-gv_ftpost_waers) - 위치: `abap://ZFIR0020/ZFI_COMMON#L1961-L1978` · confidence 0.85 · `ZFIR0020#ZFI_COMMON#FORM#FILL_FIELD#C1` ### FORM BUILD_MESSGE_IF — `ZFI_COMMON` L1989-L2004 (16줄) *인터페이스 메시지 구조(MSGID/MSGNO/MSGV1~4)를 MESSAGE_TEXT_BUILD로 메시지 텍스트로 조립하는 공통 FORM이다.* > 이 unit 의 조각 1개가 10/16줄(62%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다. #### [fm_call] 메시지 클래스·번호·변수 1~4를 MESSAGE_TEXT_BUILD에 넘겨 사용자에게 보여줄 메시지 문장을 생성한다. ```abap 1994| CALL FUNCTION 'MESSAGE_TEXT_BUILD' 1995| EXPORTING 1996| MSGID = PS_MESSAGE-MSGID 1997| MSGNR = PS_MESSAGE-MSGNO 1998| MSGV1 = PS_MESSAGE-MSGV1 1999| MSGV2 = PS_MESSAGE-MSGV2 2000| MSGV3 = PS_MESSAGE-MSGV3 2001| MSGV4 = PS_MESSAGE-MSGV4 2002| IMPORTING 2003| MESSAGE_TEXT_OUTPUT = PV_TEXT. ``` - **EN**: Build the readable message text from message ID, number and variables using MESSAGE_TEXT_BUILD. - 호출(파서): MESSAGE_TEXT_BUILD - SAP 객체: MESSAGE_TEXT_BUILD, GT_IF_MSG - 업무 키워드: 메시지 텍스트 생성, 인터페이스 메시지 - English: Message Text, Message Class - 위치: `abap://ZFIR0020/ZFI_COMMON#L1994-L2003` · confidence 0.9 · `ZFIR0020#ZFI_COMMON#FORM#BUILD_MESSGE_IF#C1` ### FORM GET_POST_PERIOD — `ZFI_COMMON` L2014-L2041 (28줄) *회사코드와 전기일로 FI_PERIOD_DETERMINE을 호출해 회계연도·전기기간을 구하고 실패 시 날짜에서 직접 추출하는 공통 FORM이다.* > 이 unit 의 조각 1개가 21/28줄(75%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다. #### [fm_call] 회사코드(BUKRS)와 전기일(BUDAT)로 FI_PERIOD_DETERMINE을 호출해 회계연도(GJAHR)와 전기기간(MONAT)을 구하고, 예외 발생 시 달력 연도·월을 대신 사용한다. ```abap 2019| CALL FUNCTION 'FI_PERIOD_DETERMINE' 2020| EXPORTING 2021| I_BUKRS = PV_BUKRS 2022| I_BUDAT = PV_DATE 2023| IMPORTING 2024| E_GJAHR = P_LFGJA 2025| E_MONAT = P_LFMON 2026| EXCEPTIONS 2027| FISCAL_YEAR = 1 2028| PERIOD = 2 2029| PERIOD_VERSION = 3 2030| POSTING_PERIOD = 4 2031| SPECIAL_PERIOD = 5 2032| VERSION = 6 2033| POSTING_DATE = 7 2034| OTHERS = 8. 2035| 2036| IF SY-SUBRC NE 0. 2037| P_LFGJA = PV_DATE(4). 2038| P_LFMON = PV_DATE+4(2). 2039| ENDIF. ``` - **EN**: Determine fiscal year and posting period from company code and posting date via FI_PERIOD_DETERMINE, falling back to calendar year/month on exception. - 호출(파서): FI_PERIOD_DETERMINE - SAP 객체: FI_PERIOD_DETERMINE - 업무 키워드: 회계연도 결정, 전기기간, 회사코드, 전기일 - English: Fiscal Year, Posting Period, Company Code, Posting Date - 위치: `abap://ZFIR0020/ZFI_COMMON#L2019-L2039` · confidence 0.95 · `ZFIR0020#ZFI_COMMON#FORM#GET_POST_PERIOD#C1` ### FORM CALL_FB03 — `ZFIR0020F01` L142-L157 (16줄) *ALV 행의 전표번호를 파라미터(BLN/BUK/GJR)로 세팅해 FB03 전표 조회 트랜잭션을 호출하는 FORM 이다.* > 이 unit 의 조각 1개가 10/16줄(62%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다. #### [interface] 행 번호가 숫자인지 확인 후 GT_DATA 의 해당 행에 전표번호(BELNR)가 있으면 SET PARAMETER ID BLN/BUK/GJR 로 전표번호·회사코드·회계연도를 넘겨 FB03 을 SKIP FIRST SCREEN 으로 호출한다. ```abap 144| CHECK P_ROW CO '0123456789 '. 145| READ TABLE GT_DATA INDEX P_ROW. 146| CHECK SY-SUBRC EQ 0. 147| 148| CHECK GT_DATA-BELNR IS NOT INITIAL. 149| 150| SET PARAMETER ID 'BLN' FIELD GT_DATA-BELNR. 151| SET PARAMETER ID 'BUK' FIELD P_BUKRS. 152| SET PARAMETER ID 'GJR' FIELD GT_DATA-GJAHR. 153| CALL TRANSACTION 'FB03' AND SKIP FIRST SCREEN. ``` - **EN**: Validates the row index, and if the row has a document number sets BLN/BUK/GJR parameters and calls FB03 to display the FI document. - 호출(파서): FB03 - SAP 객체: FB03, GT_DATA - 업무 키워드: 전표 조회, 핫스팟, 전표번호, 회계연도 - English: Display Document, FB03, Navigation - 정의부(복사 시 함께 필요): [`GT_DATA`](#decl-zfir0020top-43-gt_data), [`P_BUKRS`](#decl-zfir0020top-79-p_bukrs) - 위치: `abap://ZFIR0020/ZFIR0020F01#L144-L153` · confidence 0.95 · `ZFIR0020#ZFIR0020F01#FORM#CALL_FB03#C1` ### MODULE USER_COMMAND_0100 INPUT — `ZFIR0020I01` L6-L28 (23줄) *화면 100의 PAI에서 BACK/CANC/EXIT 기능코드를 받아 ALV 컨테이너를 정리하고 화면을 빠져나가는 USER_COMMAND 모듈이다.* > 이 unit 의 조각 1개가 18/23줄(78%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다. #### [control_flow] BACK/CANC/EXIT 기능코드 시 CLEAR_CONTAINER_PROC로 ALV·도킹 컨테이너를 해제하고 EXIT면 LEAVE PROGRAM, 아니면 LEAVE TO SCREEN 0으로 복귀한다. ```abap 9| CASE GV_T_OK_CODE. 10| WHEN 'BACK' OR 'CANC' OR 'EXIT'. 11| PERFORM CLEAR_CONTAINER_PROC USING 12| GO_ALV1 GO_DOCKING_CONT1 GO_SPLITTER1 13| GO_CONTAINER_TOP1 GO_CONTAINER_ALV1 14| GO_HTML_VIEW1 15| GO_EVENT_RECEIVER1. 16| 17| IF GV_T_OK_CODE = 'EXIT'. 18| LEAVE PROGRAM. 19| ELSE. 20| LEAVE TO SCREEN 0. 21| ENDIF. 22| "Function Code 맵핑 23| 24| WHEN OTHERS. 25| * LEAVE PROGRAM. 26| ENDCASE. ``` - **EN**: On BACK/CANC/EXIT free the ALV and docking containers via CLEAR_CONTAINER_PROC and leave the program or return to screen 0. - 호출(파서): CLEAR_CONTAINER_PROC - SAP 객체: CLEAR_CONTAINER_PROC - 업무 키워드: 기능코드, 화면 종료, 컨테이너 해제, 뒤로가기 - English: OK code, PAI, ALV container, LEAVE TO SCREEN - 정의부(복사 시 함께 필요): [`GV_T_OK_CODE`](#decl-zfir0020top-15-gv_t_ok_code), [`LCL_DEF_GRID`](#decl-zfi_alv-202-lcl_def_grid), [`GO_ALV1`](#decl-zfi_alv-160-go_alv1), [`GO_DOCKING_CONT1`](#decl-zfi_alv-182-go_docking_cont1), [`GO_SPLITTER1`](#decl-zfi_alv-166-go_splitter1), [`GO_CONTAINER_TOP1`](#decl-zfi_alv-148-go_container_top1), [`GO_CONTAINER_ALV1`](#decl-zfi_alv-149-go_container_alv1), [`GO_HTML_VIEW1`](#decl-zfi_alv-192-go_html_view1), [`LCL_DEF_RECEIVER`](#decl-zfir0020c01-5-lcl_def_receiver), [`GO_EVENT_RECEIVER1`](#decl-zfi_alv-178-go_event_receiver1) - 위치: `abap://ZFIR0020/ZFIR0020I01#L9-L26` · confidence 0.85 · `ZFIR0020#ZFIR0020I01#MODULE#USER_COMMAND_0100_INPUT#C1` ## 정의부 (285건) 로직 조각을 다른 프로그램으로 옮겨 붙일 때 **함께 가야 하는 선언**이다. 조각별로 무엇이 필요한지는 위 조각 항목의 `정의부` 줄에 있고(이름을 누르면 여기로 온다), 붙여넣기용으로 의존까지 묶은 코드는 `GET /chunks/` 의 `declaration_code` 로 받는다. ### `ZFIR0020C01` (1건) #### LCL_DEF_RECEIVER — class · L5-L56 {#decl-zfir0020c01-5-lcl_def_receiver} ```abap CLASS LCL_DEF_RECEIVER DEFINITION. PUBLIC SECTION. METHODS: HANDLE_TOP_OF_PAGE FOR EVENT TOP_OF_PAGE OF CL_GUI_ALV_GRID IMPORTING E_DYNDOC_ID TABLE_INDEX. METHODS : HANDLE_TOOLBAR FOR EVENT TOOLBAR OF CL_GUI_ALV_GRID IMPORTING SENDER E_OBJECT E_INTERACTIVE. METHODS : HANDLE_USER_COMMAND FOR EVENT USER_COMMAND OF CL_GUI_ALV_GRID IMPORTING SENDER E_UCOMM. METHODS : HANDLE_DATA_CHANGED FOR EVENT DATA_CHANGED OF CL_GUI_ALV_GRID IMPORTING SENDER ER_DATA_CHANGED. METHODS : HANDLE_DATA_CHANGED_FINISHED FOR EVENT DATA_CHANGED_FINISHED OF CL_GUI_ALV_GRID IMPORTING SENDER E_MODIFIED ET_GOOD_CELLS. METHODS : HANDLE_HOTSPOT_CLICK FOR EVENT HOTSPOT_CLICK OF CL_GUI_ALV_GRID IMPORTING SENDER E_ROW_ID E_COLUMN_ID. METHODS : HANDLE_DOUBLE_CLICK FOR EVENT DOUBLE_CLICK OF CL_GUI_ALV_GRID IMPORTING SENDER E_ROW E_COLUMN ES_ROW_NO. METHODS: HANDLE_ON_F4 FOR EVENT ONF4 OF CL_GUI_ALV_GRID IMPORTING SENDER E_FIELDNAME E_FIELDVALUE ES_ROW_NO ER_EVENT_DATA ET_BAD_CELLS E_DISPLAY. METHODS : HANDLE_CONTEXT_MENU_REQ FOR EVENT CONTEXT_MENU_REQUEST OF CL_GUI_ALV_GRID IMPORTING E_OBJECT. ENDCLASS. " LCL_DEF_RECEIVER ``` ### `ZFIR0020TOP` (29건) #### IBRTT — type-pool · L1-L1 {#decl-zfir0020top-1-ibrtt} ```abap TYPE-POOLS : IBRTT, VRM, ICON. ``` #### ICON — type-pool · L1-L1 {#decl-zfir0020top-1-icon} ```abap TYPE-POOLS : IBRTT, VRM, ICON. ``` #### VRM — type-pool · L1-L1 {#decl-zfir0020top-1-vrm} ```abap TYPE-POOLS : IBRTT, VRM, ICON. ``` #### ICON — tables · L2-L2 {#decl-zfir0020top-2-icon} ```abap TABLES : ICON, SSCRFIELDS. ``` #### SSCRFIELDS — tables · L2-L2 {#decl-zfir0020top-2-sscrfields} ```abap TABLES : ICON, SSCRFIELDS. ``` #### ISELLIST — tables · L3-L3 {#decl-zfir0020top-3-isellist} ```abap TABLES : ISELLIST. " 선택한 달력 조회 ``` #### BKPF — tables · L4-L4 {#decl-zfir0020top-4-bkpf} ```abap TABLES : DD03L, BKPF, LFA1, BSEG. ``` #### BSEG — tables · L4-L4 {#decl-zfir0020top-4-bseg} ```abap TABLES : DD03L, BKPF, LFA1, BSEG. ``` #### DD03L — tables · L4-L4 {#decl-zfir0020top-4-dd03l} ```abap TABLES : DD03L, BKPF, LFA1, BSEG. ``` #### LFA1 — tables · L4-L4 {#decl-zfir0020top-4-lfa1} ```abap TABLES : DD03L, BKPF, LFA1, BSEG. ``` #### GV_OK_CODE — data · L14-L14 {#decl-zfir0020top-14-gv_ok_code} ```abap DATA : GV_OK_CODE LIKE SY-UCOMM. ``` #### GV_T_OK_CODE — data · L15-L15 {#decl-zfir0020top-15-gv_t_ok_code} ```abap DATA : GV_T_OK_CODE LIKE SY-UCOMM. ``` #### GT_UCOMM — data · L17-L17 {#decl-zfir0020top-17-gt_ucomm} ```abap DATA : GT_UCOMM TYPE TABLE OF SY-UCOMM. ``` #### GV_LOCK — data · L21-L21 {#decl-zfir0020top-21-gv_lock} ```abap DATA : GV_LOCK(1) TYPE C. " Locking ``` #### GV_UPLOAD_ERROR — data · L22-L22 {#decl-zfir0020top-22-gv_upload_error} ```abap DATA : GV_UPLOAD_ERROR(1) TYPE C. " 업로드 오류 ``` #### GV_ALREADY_POST — data · L23-L23 {#decl-zfir0020top-23-gv_already_post} ```abap DATA : GV_ALREADY_POST(1) TYPE C. " 실행 여부 ``` #### GV_POST_ERROR — data · L24-L24 {#decl-zfir0020top-24-gv_post_error} ```abap DATA : GV_POST_ERROR(1) TYPE C. " 전기 오류 ``` #### GV_BUKRS_O — data · L26-L26 {#decl-zfir0020top-26-gv_bukrs_o} ```abap DATA : GV_BUKRS_O(1) TYPE C. ``` #### GC_MAIN_ITAB_NAME — constants · L31-L32 {#decl-zfir0020top-31-gc_main_itab_name} ```abap CONSTANTS : GC_MAIN_ITAB_NAME TYPE DD03L-TABNAME VALUE 'GT_DATA'. ``` #### GT_MAIN_FIELDCAT — data · L38-L38 {#decl-zfir0020top-38-gt_main_fieldcat} ```abap DATA : GT_MAIN_FIELDCAT TYPE LVC_T_FCAT. ``` #### GT_DATA — data · L43-L56 {#decl-zfir0020top-43-gt_data} ```abap DATA : BEGIN OF GT_DATA OCCURS 0. INCLUDE STRUCTURE ZFIT0050. DATA : BTYPE_T LIKE DD07T-DDTEXT, CANCELFLAG_T LIKE DD07T-DDTEXT, LIFNR_T LIKE LFA1-NAME1, EXCEL_LINE TYPE I, MARK TYPE C , STATUS LIKE ICON-ID, F_COL TYPE LVC_T_SCOL, MESSAGE LIKE BDCMSGCOLL-MSGV1, END OF GT_DATA. ``` #### GS_DATA — data · L58-L58 {#decl-zfir0020top-58-gs_data} ```abap DATA : GS_DATA LIKE GT_DATA. ``` #### GT_ERROR_LOG_POPUP — data · L60-L66 {#decl-zfir0020top-60-gt_error_log_popup} ```abap DATA : BEGIN OF GT_ERROR_LOG_POPUP OCCURS 0, EXCEL_LINE TYPE I, SCRTEXT_L LIKE DD03VT-SCRTEXT_L, STATUS LIKE ICON-ID, F_COL TYPE LVC_T_SCOL, MESSAGE LIKE BDCMSGCOLL-MSGV1, END OF GT_ERROR_LOG_POPUP. ``` #### GS_POPUP — data · L69-L69 {#decl-zfir0020top-69-gs_popup} ```abap DATA : GS_POPUP LIKE GT_ERROR_LOG_POPUP. ``` #### W_POPUP_GRID — data · L70-L70 {#decl-zfir0020top-70-w_popup_grid} ```abap DATA : W_POPUP_GRID TYPE REF TO CL_RS_ALV_GRID_POPUP. ``` #### P_BUKRS — parameter · L79-L80 {#decl-zfir0020top-79-p_bukrs} ```abap PARAMETERS : P_BUKRS LIKE T001-BUKRS OBLIGATORY DEFAULT 'KR01' MODIF ID MG1. ``` #### S_BLDAT — select-option · L85-L85 {#decl-zfir0020top-85-s_bldat} ```abap SELECT-OPTIONS : S_BLDAT FOR BKPF-BLDAT OBLIGATORY. ``` #### S_GSBER — select-option · L86-L87 {#decl-zfir0020top-86-s_gsber} ```abap SELECT-OPTIONS : S_GSBER FOR BSEG-GSBER NO-EXTENSION NO INTERVALS . ``` #### S_LIFNR — select-option · L88-L88 {#decl-zfir0020top-88-s_lifnr} ```abap SELECT-OPTIONS : S_LIFNR FOR LFA1-LIFNR. ``` ### `ZFI_ALV` (125건) #### F4TYP — type-pool · L9-L9 {#decl-zfi_alv-9-f4typ} ```abap TYPE-POOLS : SLIS, F4TYP, SDYDO. ``` #### SDYDO — type-pool · L9-L9 {#decl-zfi_alv-9-sdydo} ```abap TYPE-POOLS : SLIS, F4TYP, SDYDO. ``` #### SLIS — type-pool · L9-L9 {#decl-zfi_alv-9-slis} ```abap TYPE-POOLS : SLIS, F4TYP, SDYDO. ``` #### T_MSG — types · L11-L19 {#decl-zfi_alv-11-t_msg} ```abap TYPES : BEGIN OF T_MSG, MSGID TYPE SYMSGID, MSGNO TYPE SYMSGNO, MSGTY, MSG1(50), MSG2(50), MSG3(50), MSG4(50), END OF T_MSG. ``` #### GS_MSG — data · L20-L20 {#decl-zfi_alv-20-gs_msg} ```abap DATA : GS_MSG TYPE T_MSG. ``` #### GT_TOP_OF_PAGE_TXT — data · L22-L26 {#decl-zfi_alv-22-gt_top_of_page_txt} ```abap DATA : BEGIN OF GT_TOP_OF_PAGE_TXT OCCURS 0, TOP_TEXT TYPE SDYDO_TEXT_ELEMENT, FONTSIZE TYPE SDYDO_ATTRIBUTE, COLOR TYPE SDYDO_ATTRIBUTE, END OF GT_TOP_OF_PAGE_TXT. ``` #### GC_STATUS_SET — constants · L28-L28 {#decl-zfi_alv-28-gc_status_set} ```abap CONSTANTS : GC_STATUS_SET TYPE SLIS_FORMNAME VALUE 'PF_STATUS_SET'. ``` #### GC_USER_COMMAND — constants · L29-L29 {#decl-zfi_alv-29-gc_user_command} ```abap CONSTANTS : GC_USER_COMMAND TYPE SLIS_FORMNAME VALUE 'USER_COMMAND'. ``` #### GC_TOP_OF_PAGE — constants · L30-L30 {#decl-zfi_alv-30-gc_top_of_page} ```abap CONSTANTS : GC_TOP_OF_PAGE TYPE SLIS_FORMNAME VALUE 'TOP_OF_PAGE'. ``` #### GC_TOP_OF_LIST — constants · L31-L31 {#decl-zfi_alv-31-gc_top_of_list} ```abap CONSTANTS : GC_TOP_OF_LIST TYPE SLIS_FORMNAME VALUE 'TOP_OF_LIST'. ``` #### GC_END_OF_LIST — constants · L32-L32 {#decl-zfi_alv-32-gc_end_of_list} ```abap CONSTANTS : GC_END_OF_LIST TYPE SLIS_FORMNAME VALUE 'END_OF_LIST'. ``` #### GC_DATA_CHANGED — constants · L33-L33 {#decl-zfi_alv-33-gc_data_changed} ```abap CONSTANTS : GC_DATA_CHANGED TYPE SLIS_FORMNAME VALUE 'DATA_CHANGED'. ``` #### GC_HTML_TOP_OF_PAGE — constants · L34-L35 {#decl-zfi_alv-34-gc_html_top_of_page} ```abap CONSTANTS : GC_HTML_TOP_OF_PAGE TYPE SLIS_FORMNAME VALUE 'HTML_TOP_OF_PAGE'. ``` #### GC_PRT_TOP_OF_PAGE — constants · L36-L37 {#decl-zfi_alv-36-gc_prt_top_of_page} ```abap CONSTANTS : GC_PRT_TOP_OF_PAGE TYPE SLIS_FORMNAME VALUE 'PRT_TOP_OF_PAGE'. ``` #### GV_SAVE — data · L40-L40 {#decl-zfi_alv-40-gv_save} ```abap DATA : GV_SAVE. ``` #### GV_TABIX — data · L41-L41 {#decl-zfi_alv-41-gv_tabix} ```abap DATA : GV_TABIX LIKE SY-TABIX. ``` #### GV_FLD_NAME — data · L42-L42 {#decl-zfi_alv-42-gv_fld_name} ```abap DATA : GV_FLD_NAME(30). ``` #### GV_EXGT_CAUSED_BY_CALLER — data · L43-L43 {#decl-zfi_alv-43-gv_exgt_caused_by_caller} ```abap DATA : GV_EXGT_CAUSED_BY_CALLER. ``` #### GV_REPID — data · L44-L44 {#decl-zfi_alv-44-gv_repid} ```abap DATA : GV_REPID TYPE SY-REPID. ``` #### GV_DYNNR — data · L45-L45 {#decl-zfi_alv-45-gv_dynnr} ```abap DATA : GV_DYNNR TYPE SY-DYNNR. ``` #### GV_PROGRAM_NAME — data · L46-L46 {#decl-zfi_alv-46-gv_program_name} ```abap DATA : GV_PROGRAM_NAME LIKE SY-REPID. ``` #### GV_INCLNAME — data · L47-L47 {#decl-zfi_alv-47-gv_inclname} ```abap DATA : GV_INCLNAME LIKE TRDIR-NAME. ``` #### GV_EXTENSION — data · L48-L48 {#decl-zfi_alv-48-gv_extension} ```abap DATA : GV_EXTENSION TYPE I. ``` #### GS_LAYOUT — data · L51-L51 {#decl-zfi_alv-51-gs_layout} ```abap DATA : GS_LAYOUT TYPE SLIS_LAYOUT_ALV. ``` #### GS_EXGT_CAUSED_BY_USER — data · L52-L52 {#decl-zfi_alv-52-gs_exgt_caused_by_user} ```abap DATA: GS_EXGT_CAUSED_BY_USER TYPE SLIS_EXIT_BY_USER. ``` #### GS_FIELDCAT — data · L53-L53 {#decl-zfi_alv-53-gs_fieldcat} ```abap DATA: GS_FIELDCAT TYPE SLIS_FIELDCAT_ALV. ``` #### GS_SORT — data · L54-L54 {#decl-zfi_alv-54-gs_sort} ```abap DATA: GS_SORT TYPE SLIS_SORTINFO_ALV. ``` #### GS_KEYINFO — data · L55-L55 {#decl-zfi_alv-55-gs_keyinfo} ```abap DATA: GS_KEYINFO TYPE SLIS_KEYINFO_ALV. ``` #### GS_VARIANT — data · L56-L56 {#decl-zfi_alv-56-gs_variant} ```abap DATA: GS_VARIANT TYPE DISVARIANT. ``` #### GS_SCROLL — data · L57-L57 {#decl-zfi_alv-57-gs_scroll} ```abap DATA: GS_SCROLL TYPE SLIS_LIST_SCROLL. ``` #### GS_DETAIL_FUNC — data · L58-L58 {#decl-zfi_alv-58-gs_detail_func} ```abap DATA: GS_DETAIL_FUNC LIKE DD02L-TABNAME. ``` #### GS_LVC_LAYO1 — data · L60-L60 {#decl-zfi_alv-60-gs_lvc_layo1} ```abap DATA : GS_LVC_LAYO1 TYPE LVC_S_LAYO. " LAYOUT\ ``` #### GS_LVC_LAYO2 — data · L61-L61 {#decl-zfi_alv-61-gs_lvc_layo2} ```abap DATA: GS_LVC_LAYO2 TYPE LVC_S_LAYO. ``` #### GS_LVC_LAYO3 — data · L62-L62 {#decl-zfi_alv-62-gs_lvc_layo3} ```abap DATA: GS_LVC_LAYO3 TYPE LVC_S_LAYO. ``` #### GS_LVC_LAYO4 — data · L63-L63 {#decl-zfi_alv-63-gs_lvc_layo4} ```abap DATA: GS_LVC_LAYO4 TYPE LVC_S_LAYO. ``` #### GS_LVC_FCAT — data · L65-L65 {#decl-zfi_alv-65-gs_lvc_fcat} ```abap DATA : GS_LVC_FCAT TYPE LVC_S_FCAT. " FIELDCATALOG ``` #### GS_ROW — data · L67-L67 {#decl-zfi_alv-67-gs_row} ```abap DATA : GS_ROW LIKE LVC_S_ROW. ``` #### GS_COL — data · L68-L68 {#decl-zfi_alv-68-gs_col} ```abap DATA: GS_COL LIKE LVC_S_COL. ``` #### GS_STABLE — data · L69-L69 {#decl-zfi_alv-69-gs_stable} ```abap DATA : GS_STABLE TYPE LVC_S_STBL. ``` #### GT_EVENTS — data · L72-L72 {#decl-zfi_alv-72-gt_events} ```abap DATA : GT_EVENTS TYPE SLIS_T_EVENT. ``` #### GT_LISTHEADER — data · L73-L73 {#decl-zfi_alv-73-gt_listheader} ```abap DATA: GT_LISTHEADER TYPE SLIS_T_LISTHEADER. ``` #### GT_FIELDCAT — data · L74-L74 {#decl-zfi_alv-74-gt_fieldcat} ```abap DATA: GT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV. ``` #### GT_SORT — data · L75-L75 {#decl-zfi_alv-75-gt_sort} ```abap DATA: GT_SORT TYPE SLIS_T_SORTINFO_ALV. ``` #### GT_EXIT — data · L76-L76 {#decl-zfi_alv-76-gt_exit} ```abap DATA: GT_EXIT TYPE SLIS_EVENT_EXIT OCCURS 0. ``` #### GT_PRINT — data · L77-L77 {#decl-zfi_alv-77-gt_print} ```abap DATA: GT_PRINT TYPE SLIS_PRINT_ALV. ``` #### GT_UI_FUNCTIONS1 — data · L79-L79 {#decl-zfi_alv-79-gt_ui_functions1} ```abap DATA : GT_UI_FUNCTIONS1 TYPE UI_FUNCTIONS. " TOOLBAR ``` #### GT_UI_FUNCTIONS2 — data · L80-L80 {#decl-zfi_alv-80-gt_ui_functions2} ```abap DATA: GT_UI_FUNCTIONS2 TYPE UI_FUNCTIONS. ``` #### GT_UI_FUNCTIONS3 — data · L81-L81 {#decl-zfi_alv-81-gt_ui_functions3} ```abap DATA: GT_UI_FUNCTIONS3 TYPE UI_FUNCTIONS. ``` #### GT_UI_FUNCTIONS4 — data · L82-L82 {#decl-zfi_alv-82-gt_ui_functions4} ```abap DATA: GT_UI_FUNCTIONS4 TYPE UI_FUNCTIONS. ``` #### GT_LVC_SORT1 — data · L84-L84 {#decl-zfi_alv-84-gt_lvc_sort1} ```abap DATA : GT_LVC_SORT1 TYPE LVC_T_SORT. " SORT ``` #### GT_LVC_SORT2 — data · L85-L85 {#decl-zfi_alv-85-gt_lvc_sort2} ```abap DATA: GT_LVC_SORT2 TYPE LVC_T_SORT. ``` #### GT_LVC_SORT3 — data · L86-L86 {#decl-zfi_alv-86-gt_lvc_sort3} ```abap DATA: GT_LVC_SORT3 TYPE LVC_T_SORT. ``` #### GT_LVC_SORT4 — data · L87-L87 {#decl-zfi_alv-87-gt_lvc_sort4} ```abap DATA: GT_LVC_SORT4 TYPE LVC_T_SORT. ``` #### GT_LVC_FCAT1 — data · L89-L89 {#decl-zfi_alv-89-gt_lvc_fcat1} ```abap DATA : GT_LVC_FCAT1 TYPE LVC_T_FCAT. " FIELDCATALOG ``` #### GT_LVC_FCAT2 — data · L90-L90 {#decl-zfi_alv-90-gt_lvc_fcat2} ```abap DATA: GT_LVC_FCAT2 TYPE LVC_T_FCAT. ``` #### GT_LVC_FCAT3 — data · L91-L91 {#decl-zfi_alv-91-gt_lvc_fcat3} ```abap DATA: GT_LVC_FCAT3 TYPE LVC_T_FCAT. ``` #### GT_LVC_FCAT4 — data · L92-L92 {#decl-zfi_alv-92-gt_lvc_fcat4} ```abap DATA: GT_LVC_FCAT4 TYPE LVC_T_FCAT. ``` #### GT_LVC_DROP — data · L95-L95 {#decl-zfi_alv-95-gt_lvc_drop} ```abap DATA : GT_LVC_DROP TYPE LVC_T_DROP. ``` #### GS_LVC_DROP — data · L96-L96 {#decl-zfi_alv-96-gs_lvc_drop} ```abap DATA: GS_LVC_DROP TYPE LVC_S_DROP. ``` #### GT_ALV_COLOR — data · L99-L99 {#decl-zfi_alv-99-gt_alv_color} ```abap DATA : GT_ALV_COLOR TYPE LVC_T_SCOL WITH HEADER LINE. ``` #### GS_ALV_COLOR — data · L100-L100 {#decl-zfi_alv-100-gs_alv_color} ```abap DATA: GS_ALV_COLOR TYPE LVC_S_COLO. ``` #### GT_ROWS — data · L103-L103 {#decl-zfi_alv-103-gt_rows} ```abap DATA : GT_ROWS TYPE LVC_T_ROW. ``` #### GS_ROWS — data · L104-L104 {#decl-zfi_alv-104-gs_rows} ```abap DATA: GS_ROWS TYPE LVC_S_ROW. ``` #### GV_FUN — data · L105-L105 {#decl-zfi_alv-105-gv_fun} ```abap DATA: GV_FUN(1) VALUE 'D'. ``` #### GS_F4_VALUE — data · L109-L109 {#decl-zfi_alv-109-gs_f4_value} ```abap DATA : GS_F4_VALUE TYPE SEAHLPRES. ``` #### GS_F4_FIELD — data · L110-L110 {#decl-zfi_alv-110-gs_f4_field} ```abap DATA: GS_F4_FIELD TYPE DFIES. ``` #### GS_F4 — data · L111-L111 {#decl-zfi_alv-111-gs_f4} ```abap DATA: GS_F4 TYPE DDSHRETVAL. ``` #### GS_LVC_MODI — data · L112-L112 {#decl-zfi_alv-112-gs_lvc_modi} ```abap DATA: GS_LVC_MODI TYPE LVC_S_MODI. ``` #### GS_LVC_F4 — data · L113-L113 {#decl-zfi_alv-113-gs_lvc_f4} ```abap DATA: GS_LVC_F4 TYPE LVC_S_F4. ``` #### GT_F4_VALUES — data · L116-L116 {#decl-zfi_alv-116-gt_f4_values} ```abap DATA : GT_F4_VALUES TYPE TABLE OF SEAHLPRES. ``` #### GT_F4_FIELDS — data · L117-L117 {#decl-zfi_alv-117-gt_f4_fields} ```abap DATA: GT_F4_FIELDS TYPE TABLE OF DFIES. ``` #### GT_LVC_F4 — data · L118-L118 {#decl-zfi_alv-118-gt_lvc_f4} ```abap DATA: GT_LVC_F4 TYPE LVC_T_F4. ``` #### — field-symbol · L121-L121 {#decl-zfi_alv-121--fs_f4tab-} ```abap FIELD-SYMBOLS : TYPE LVC_T_MODI. ``` #### GV_CONSISTENCY_CHECK — data · L123-L123 {#decl-zfi_alv-123-gv_consistency_check} ```abap DATA : GV_CONSISTENCY_CHECK(1) TYPE C. ``` #### GV_ALV_COLPOS — data · L125-L125 {#decl-zfi_alv-125-gv_alv_colpos} ```abap DATA : GV_ALV_COLPOS TYPE I. ``` #### GC_STATUS_GREEN — constants · L128-L128 {#decl-zfi_alv-128-gc_status_green} ```abap CONSTANTS : GC_STATUS_GREEN LIKE ICON-ID VALUE ICON_GREEN_LIGHT. ``` #### GC_STATUS_YELLOW — constants · L129-L129 {#decl-zfi_alv-129-gc_status_yellow} ```abap CONSTANTS : GC_STATUS_YELLOW LIKE ICON-ID VALUE ICON_YELLOW_LIGHT. ``` #### GC_STATUS_RED — constants · L130-L130 {#decl-zfi_alv-130-gc_status_red} ```abap CONSTANTS : GC_STATUS_RED LIKE ICON-ID VALUE ICON_RED_LIGHT. ``` #### GV_TOP_OF_PAGE — data · L132-L132 {#decl-zfi_alv-132-gv_top_of_page} ```abap DATA : GV_TOP_OF_PAGE(255) TYPE C. ``` #### GC_ALV1_CONTNAME — constants · L142-L142 {#decl-zfi_alv-142-gc_alv1_contname} ```abap CONSTANTS : GC_ALV1_CONTNAME TYPE SCRFNAME VALUE 'ALV1_CONT'. ``` #### GC_ALV2_CONTNAME — constants · L143-L143 {#decl-zfi_alv-143-gc_alv2_contname} ```abap CONSTANTS : GC_ALV2_CONTNAME TYPE SCRFNAME VALUE 'ALV2_CONT'. ``` #### GC_ALV3_CONTNAME — constants · L144-L144 {#decl-zfi_alv-144-gc_alv3_contname} ```abap CONSTANTS : GC_ALV3_CONTNAME TYPE SCRFNAME VALUE 'ALV3_CONT'. ``` #### GC_ALV4_CONTNAME — constants · L145-L145 {#decl-zfi_alv-145-gc_alv4_contname} ```abap CONSTANTS : GC_ALV4_CONTNAME TYPE SCRFNAME VALUE 'ALV4_CONT'. ``` #### GO_CONTAINER_TOP1 — data · L148-L148 {#decl-zfi_alv-148-go_container_top1} ```abap DATA: GO_CONTAINER_TOP1 TYPE REF TO CL_GUI_CONTAINER. ``` #### GO_CONTAINER_ALV1 — data · L149-L149 {#decl-zfi_alv-149-go_container_alv1} ```abap DATA: GO_CONTAINER_ALV1 TYPE REF TO CL_GUI_CONTAINER. ``` #### GO_CONTAINER_TOP2 — data · L151-L151 {#decl-zfi_alv-151-go_container_top2} ```abap DATA: GO_CONTAINER_TOP2 TYPE REF TO CL_GUI_CONTAINER. ``` #### GO_CONTAINER_ALV2 — data · L152-L152 {#decl-zfi_alv-152-go_container_alv2} ```abap DATA: GO_CONTAINER_ALV2 TYPE REF TO CL_GUI_CONTAINER. ``` #### GO_CONTAINER_TOP3 — data · L154-L154 {#decl-zfi_alv-154-go_container_top3} ```abap DATA: GO_CONTAINER_TOP3 TYPE REF TO CL_GUI_CONTAINER. ``` #### GO_CONTAINER_ALV3 — data · L155-L155 {#decl-zfi_alv-155-go_container_alv3} ```abap DATA: GO_CONTAINER_ALV3 TYPE REF TO CL_GUI_CONTAINER. ``` #### GO_CONTAINER_TOP4 — data · L157-L157 {#decl-zfi_alv-157-go_container_top4} ```abap DATA: GO_CONTAINER_TOP4 TYPE REF TO CL_GUI_CONTAINER. ``` #### GO_CONTAINER_ALV4 — data · L158-L158 {#decl-zfi_alv-158-go_container_alv4} ```abap DATA: GO_CONTAINER_ALV4 TYPE REF TO CL_GUI_CONTAINER. ``` #### GO_ALV1 — data · L160-L160 {#decl-zfi_alv-160-go_alv1} ```abap DATA: GO_ALV1 TYPE REF TO LCL_DEF_GRID. ``` #### GO_ALV2 — data · L161-L161 {#decl-zfi_alv-161-go_alv2} ```abap DATA: GO_ALV2 TYPE REF TO LCL_DEF_GRID. ``` #### GO_ALV3 — data · L162-L162 {#decl-zfi_alv-162-go_alv3} ```abap DATA: GO_ALV3 TYPE REF TO LCL_DEF_GRID. ``` #### GO_ALV4 — data · L163-L163 {#decl-zfi_alv-163-go_alv4} ```abap DATA: GO_ALV4 TYPE REF TO LCL_DEF_GRID. ``` #### GO_SPLITTER0 — data · L165-L165 {#decl-zfi_alv-165-go_splitter0} ```abap DATA: GO_SPLITTER0 TYPE REF TO CL_GUI_EASY_SPLITTER_CONTAINER. ``` #### GO_SPLITTER1 — data · L166-L166 {#decl-zfi_alv-166-go_splitter1} ```abap DATA: GO_SPLITTER1 TYPE REF TO CL_GUI_SPLITTER_CONTAINER. ``` #### GO_SPLITTER2 — data · L167-L167 {#decl-zfi_alv-167-go_splitter2} ```abap DATA: GO_SPLITTER2 TYPE REF TO CL_GUI_SPLITTER_CONTAINER. ``` #### GO_SPLITTER3 — data · L168-L168 {#decl-zfi_alv-168-go_splitter3} ```abap DATA: GO_SPLITTER3 TYPE REF TO CL_GUI_SPLITTER_CONTAINER. ``` #### GO_SPLITTER4 — data · L169-L169 {#decl-zfi_alv-169-go_splitter4} ```abap DATA: GO_SPLITTER4 TYPE REF TO CL_GUI_SPLITTER_CONTAINER. ``` #### GO_DOCKING — data · L171-L171 {#decl-zfi_alv-171-go_docking} ```abap DATA: GO_DOCKING TYPE REF TO CL_GUI_CONTAINER. ``` #### GO_COLUMN_TREE — data · L173-L173 {#decl-zfi_alv-173-go_column_tree} ```abap DATA: GO_COLUMN_TREE TYPE REF TO CL_GUI_COLUMN_TREE. ``` #### GO_TREE — data · L174-L174 {#decl-zfi_alv-174-go_tree} ```abap DATA: GO_TREE TYPE REF TO CL_GUI_ALV_TREE. ``` #### GO_TOOLBAR — data · L175-L175 {#decl-zfi_alv-175-go_toolbar} ```abap DATA: GO_TOOLBAR TYPE REF TO CL_GUI_TOOLBAR. ``` #### GO_TEXTEDIT — data · L176-L176 {#decl-zfi_alv-176-go_textedit} ```abap DATA: GO_TEXTEDIT TYPE REF TO CL_GUI_TEXTEDIT. ``` #### GO_EVENT_RECEIVER1 — data · L178-L178 {#decl-zfi_alv-178-go_event_receiver1} ```abap DATA: GO_EVENT_RECEIVER1 TYPE REF TO LCL_DEF_RECEIVER. ``` #### GO_EVENT_RECEIVER2 — data · L179-L179 {#decl-zfi_alv-179-go_event_receiver2} ```abap DATA: GO_EVENT_RECEIVER2 TYPE REF TO LCL_DEF_RECEIVER. ``` #### GO_EVENT_RECEIVER3 — data · L180-L180 {#decl-zfi_alv-180-go_event_receiver3} ```abap DATA: GO_EVENT_RECEIVER3 TYPE REF TO LCL_DEF_RECEIVER. ``` #### GO_DOCKING_CONT1 — data · L182-L182 {#decl-zfi_alv-182-go_docking_cont1} ```abap DATA : GO_DOCKING_CONT1 TYPE REF TO CL_GUI_DOCKING_CONTAINER. ``` #### GO_DOCKING_CONT2 — data · L183-L183 {#decl-zfi_alv-183-go_docking_cont2} ```abap DATA : GO_DOCKING_CONT2 TYPE REF TO CL_GUI_DOCKING_CONTAINER. ``` #### GO_DOCKING_CONT3 — data · L184-L184 {#decl-zfi_alv-184-go_docking_cont3} ```abap DATA : GO_DOCKING_CONT3 TYPE REF TO CL_GUI_DOCKING_CONTAINER. ``` #### GO_DOCKING_CONT4 — data · L185-L185 {#decl-zfi_alv-185-go_docking_cont4} ```abap DATA : GO_DOCKING_CONT4 TYPE REF TO CL_GUI_DOCKING_CONTAINER. ``` #### GO_DD_DOCUMENT1 — data · L187-L187 {#decl-zfi_alv-187-go_dd_document1} ```abap DATA : GO_DD_DOCUMENT1 TYPE REF TO CL_DD_DOCUMENT. ``` #### GO_DD_DOCUMENT2 — data · L188-L188 {#decl-zfi_alv-188-go_dd_document2} ```abap DATA : GO_DD_DOCUMENT2 TYPE REF TO CL_DD_DOCUMENT. ``` #### GO_DD_DOCUMENT3 — data · L189-L189 {#decl-zfi_alv-189-go_dd_document3} ```abap DATA : GO_DD_DOCUMENT3 TYPE REF TO CL_DD_DOCUMENT. ``` #### GO_DD_DOCUMENT4 — data · L190-L190 {#decl-zfi_alv-190-go_dd_document4} ```abap DATA : GO_DD_DOCUMENT4 TYPE REF TO CL_DD_DOCUMENT. ``` #### GO_HTML_VIEW1 — data · L192-L192 {#decl-zfi_alv-192-go_html_view1} ```abap DATA : GO_HTML_VIEW1 TYPE REF TO CL_GUI_HTML_VIEWER. ``` #### GO_HTML_VIEW2 — data · L193-L193 {#decl-zfi_alv-193-go_html_view2} ```abap DATA : GO_HTML_VIEW2 TYPE REF TO CL_GUI_HTML_VIEWER. ``` #### GO_HTML_VIEW3 — data · L194-L194 {#decl-zfi_alv-194-go_html_view3} ```abap DATA : GO_HTML_VIEW3 TYPE REF TO CL_GUI_HTML_VIEWER. ``` #### GO_HTML_VIEW4 — data · L195-L195 {#decl-zfi_alv-195-go_html_view4} ```abap DATA : GO_HTML_VIEW4 TYPE REF TO CL_GUI_HTML_VIEWER. ``` #### GO_DDIC_FCAT — data · L197-L197 {#decl-zfi_alv-197-go_ddic_fcat} ```abap DATA : GO_DDIC_FCAT TYPE LVC_T_FCAT. ``` #### LCL_DEF_GRID — class · L202-L214 {#decl-zfi_alv-202-lcl_def_grid} ```abap CLASS LCL_DEF_GRID DEFINITION INHERITING FROM CL_GUI_ALV_GRID. PUBLIC SECTION. METHODS : U_SET_FIXED_ROWS, U_SET_RESIZE_COLS, U_SCROLL_TO_BOTTOM, U_SET_OPTIMIZE, U_SET_CURRENT_CELL_BASE IMPORTING ROW TYPE I COL TYPE I. ENDCLASS. "LCL_DEF_GRID DEFINITION ``` #### LV_ONE_SEL — data · unit 로컬 · L374-L374 {#decl-zfi_alv-374-lv_one_sel} ```abap DATA : LV_ONE_SEL TYPE C. ``` #### — field-symbol · unit 로컬 · L478-L478 {#decl-zfi_alv-478--fs_sort-} ```abap FIELD-SYMBOLS : TYPE LVC_S_SORT. ``` #### — field-symbol · unit 로컬 · L479-L479 {#decl-zfi_alv-479--fs_fcat-} ```abap FIELD-SYMBOLS : TYPE LVC_S_FCAT. ``` ### `ZFI_COMMON` (129건) #### BDCMSGCOLL — tables · L4-L4 {#decl-zfi_common-4-bdcmsgcoll} ```abap TABLES: BDCMSGCOLL. " * Collecting messages in the SAP System ``` #### ALSMEX_TABLINE — tables · L5-L5 {#decl-zfi_common-5-alsmex_tabline} ```abap TABLES: ALSMEX_TABLINE. " * Rows for Table with Excel Data ``` #### TBTCO — tables · L6-L6 {#decl-zfi_common-6-tbtco} ```abap TABLES: TBTCO. " * Job status overview table ``` #### RFCDOC — tables · L7-L7 {#decl-zfi_common-7-rfcdoc} ```abap TABLES: RFCDOC. ``` #### RFCDES — tables · L8-L8 {#decl-zfi_common-8-rfcdes} ```abap TABLES: RFCDES. ``` #### DBCON — tables · L9-L9 {#decl-zfi_common-9-dbcon} ```abap TABLES: DBCON. ``` #### STXH — tables · L10-L10 {#decl-zfi_common-10-stxh} ```abap TABLES: STXH. ``` #### GSETH — type-pool · L11-L11 {#decl-zfi_common-11-gseth} ```abap TYPE-POOLS: KCDE, VRM, ICON, SCP1, GSETH, SLIS. ``` #### ICON — type-pool · L11-L11 {#decl-zfi_common-11-icon} ```abap TYPE-POOLS: KCDE, VRM, ICON, SCP1, GSETH, SLIS. ``` #### KCDE — type-pool · L11-L11 {#decl-zfi_common-11-kcde} ```abap TYPE-POOLS: KCDE, VRM, ICON, SCP1, GSETH, SLIS. ``` #### SCP1 — type-pool · L11-L11 {#decl-zfi_common-11-scp1} ```abap TYPE-POOLS: KCDE, VRM, ICON, SCP1, GSETH, SLIS. ``` #### SLIS — type-pool · L11-L11 {#decl-zfi_common-11-slis} ```abap TYPE-POOLS: KCDE, VRM, ICON, SCP1, GSETH, SLIS. ``` #### VRM — type-pool · L11-L11 {#decl-zfi_common-11-vrm} ```abap TYPE-POOLS: KCDE, VRM, ICON, SCP1, GSETH, SLIS. ``` #### GV_CALC_I — data · L14-L14 {#decl-zfi_common-14-gv_calc_i} ```abap DATA : GV_CALC_I TYPE I. "* % ``` #### GV_PROGRESS_MSG — data · L15-L15 {#decl-zfi_common-15-gv_progress_msg} ```abap DATA : GV_PROGRESS_MSG(100). "* Display ``` #### GV_CALC_C0 — data · L16-L16 {#decl-zfi_common-16-gv_calc_c0} ```abap DATA : GV_CALC_C0(5). ``` #### GV_CALC_C1 — data · L17-L17 {#decl-zfi_common-17-gv_calc_c1} ```abap DATA : GV_CALC_C1(5). ``` #### GV_VALUE_SET — data · L20-L20 {#decl-zfi_common-20-gv_value_set} ```abap DATA : GV_VALUE_SET TYPE GSETH_VAL_LINE. ``` #### GT_VALUE_SET — data · L21-L21 {#decl-zfi_common-21-gt_value_set} ```abap DATA : GT_VALUE_SET TYPE GSETH_VAL_TAB. ``` #### GT_DETMSG — data · L23-L23 {#decl-zfi_common-23-gt_detmsg} ```abap DATA : GT_DETMSG TYPE TABLE OF SCP1_GENERAL_ERROR. ``` #### GT_HEAMSG — data · L24-L24 {#decl-zfi_common-24-gt_heamsg} ```abap DATA : GT_HEAMSG TYPE TABLE OF SCP1_GENERAL_ERROR. ``` #### GS_DOMAIN — data · L27-L31 {#decl-zfi_common-27-gs_domain} ```abap DATA : BEGIN OF GS_DOMAIN, DOMAIN LIKE DD07T-DOMNAME, VALUE LIKE DD07T-DOMVALUE_L, DDTEXT LIKE DD07T-DDTEXT, END OF GS_DOMAIN. ``` #### GT_DOMAIN — data · L32-L32 {#decl-zfi_common-32-gt_domain} ```abap DATA : GT_DOMAIN LIKE TABLE OF GS_DOMAIN. ``` #### T_EXCEL_EXPORT — types · L35-L37 {#decl-zfi_common-35-t_excel_export} ```abap TYPES : BEGIN OF T_EXCEL_EXPORT, EXCEL_COL TYPE STRING, END OF T_EXCEL_EXPORT. ``` #### GT_EXCEL_EXPORT — data · L39-L39 {#decl-zfi_common-39-gt_excel_export} ```abap DATA : GT_EXCEL_EXPORT TYPE T_EXCEL_EXPORT OCCURS 0 WITH HEADER LINE. ``` #### GV_DIP_MOD — data · L43-L43 {#decl-zfi_common-43-gv_dip_mod} ```abap DATA : GV_DIP_MOD TYPE C. ``` #### GV_REFRESH — data · L45-L45 {#decl-zfi_common-45-gv_refresh} ```abap DATA : GV_REFRESH TYPE C. ``` #### GV_BUKRS_TXT — data · L50-L50 {#decl-zfi_common-50-gv_bukrs_txt} ```abap DATA : GV_BUKRS_TXT TYPE T001-BUTXT VALUE ''. ``` #### GV_KOKRS_TXT — data · L51-L51 {#decl-zfi_common-51-gv_kokrs_txt} ```abap DATA : GV_KOKRS_TXT TYPE TKT09-TXT VALUE ''. ``` #### GV_WAERS — data · L52-L52 {#decl-zfi_common-52-gv_waers} ```abap DATA : GV_WAERS TYPE T001-WAERS VALUE 'KRW'. ``` #### GV_KTOPL — data · L53-L53 {#decl-zfi_common-53-gv_ktopl} ```abap DATA : GV_KTOPL TYPE T001-KTOPL VALUE '1000'. ``` #### GV_SPRAS — data · L54-L54 {#decl-zfi_common-54-gv_spras} ```abap DATA : GV_SPRAS TYPE T001-SPRAS VALUE '3'. " KO ``` #### GV_LAND1 — data · L55-L55 {#decl-zfi_common-55-gv_land1} ```abap DATA : GV_LAND1 TYPE T001-LAND1 VALUE 'KR'. ``` #### GC_BUKRS — constants · L57-L57 {#decl-zfi_common-57-gc_bukrs} ```abap CONSTANTS : GC_BUKRS TYPE T001-BUKRS VALUE '1000'. ``` #### GC_KOKRS — constants · L58-L58 {#decl-zfi_common-58-gc_kokrs} ```abap CONSTANTS : GC_KOKRS TYPE TKA02-KOKRS VALUE '1000'. ``` #### GS_BDC_OPTION — data · L62-L62 {#decl-zfi_common-62-gs_bdc_option} ```abap DATA: GS_BDC_OPTION TYPE CTU_PARAMS. ``` #### GT_BDCDATA — data · L63-L63 {#decl-zfi_common-63-gt_bdcdata} ```abap DATA: GT_BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE. ``` #### GT_MESSTAB — data · L64-L64 {#decl-zfi_common-64-gt_messtab} ```abap DATA: GT_MESSTAB LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE. ``` #### FTPOST — data · L70-L70 {#decl-zfi_common-70-ftpost} ```abap DATA: FTPOST LIKE FTPOST OCCURS 0 WITH HEADER LINE. ``` #### FTTAX — data · L71-L71 {#decl-zfi_common-71-fttax} ```abap DATA : FTTAX LIKE FTTAX OCCURS 0 WITH HEADER LINE. ``` #### BLNTAB — data · L72-L72 {#decl-zfi_common-72-blntab} ```abap DATA : BLNTAB LIKE BLNTAB OCCURS 0 WITH HEADER LINE. ``` #### GV_FTPOST_TYPE — data · L73-L73 {#decl-zfi_common-73-gv_ftpost_type} ```abap DATA : GV_FTPOST_TYPE TYPE C. ``` #### GV_FTPOST_CNT — data · L74-L74 {#decl-zfi_common-74-gv_ftpost_cnt} ```abap DATA : GV_FTPOST_CNT TYPE I. ``` #### GV_FTPOST_WAERS — data · L75-L75 {#decl-zfi_common-75-gv_ftpost_waers} ```abap DATA : GV_FTPOST_WAERS LIKE T001-WAERS. ``` #### GT_IF_MSG — data · L77-L87 {#decl-zfi_common-77-gt_if_msg} ```abap DATA : BEGIN OF GT_IF_MSG OCCURS 0, MSGID LIKE SY-MSGID, MSGNO LIKE SY-MSGNO, MSGTY LIKE SY-MSGTY, MSGV1 LIKE SY-MSGV1, MSGV2 LIKE SY-MSGV2, MSGV3 LIKE SY-MSGV3, MSGV4 LIKE SY-MSGV4, SUBRC LIKE SY-SUBRC, MESSAGE LIKE BDCMSGCOLL-MSGV1, END OF GT_IF_MSG. ``` #### GT_EXCP_INIT_FIELD — data · L91-L93 {#decl-zfi_common-91-gt_excp_init_field} ```abap DATA : BEGIN OF GT_EXCP_INIT_FIELD OCCURS 0, FNAME TYPE FNAM_____4, END OF GT_EXCP_INIT_FIELD. ``` #### MACRO_VALUE_TO_RANGE — macro · L102-L120 {#decl-zfi_common-102-macro_value_to_range} ```abap DEFINE MACRO_VALUE_TO_RANGE. CLEAR : GV_VALUE_SET. CLEAR : &1. REFRESH : &1. LOOP AT &2 INTO GV_VALUE_SET. &1-LOW = GV_VALUE_SET-VFROM. &1-SIGN = 'I'. IF GV_VALUE_SET-VFROM NE GV_VALUE_SET-VTO. &1-OPTION = 'BT'. &1-HIGH = GV_VALUE_SET-VTO. ELSE. &1-OPTION = 'EQ'. ENDIF. APPEND &1. CLEAR : &1. ENDLOOP. CLEAR : &2. REFRESH : &2. END-OF-DEFINITION. ``` #### ADD_RANGE_EQ — macro · L122-L128 {#decl-zfi_common-122-add_range_eq} ```abap DEFINE ADD_RANGE_EQ. CLEAR &1. &1-SIGN = 'I'. &1-OPTION = 'EQ'. &1-LOW = &2. APPEND &1. END-OF-DEFINITION. ``` #### ADD_RANGE_FULL — macro · L130-L137 {#decl-zfi_common-130-add_range_full} ```abap DEFINE ADD_RANGE_FULL. CLEAR &1. &1-SIGN = &2. &1-OPTION = &3. &1-LOW = &4. &1-HIGH = &5. APPEND &1. END-OF-DEFINITION. ``` #### LT_TABLE — data · unit 로컬 · L163-L163 {#decl-zfi_common-163-lt_table} ```abap DATA : LT_TABLE LIKE DD02L-TABNAME OCCURS 0 WITH HEADER LINE. ``` #### LT_FIELDCAT — data · unit 로컬 · L164-L164 {#decl-zfi_common-164-lt_fieldcat} ```abap DATA : LT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV. ``` #### LT_ALV_CAT — data · unit 로컬 · L165-L165 {#decl-zfi_common-165-lt_alv_cat} ```abap DATA : LT_ALV_CAT TYPE TABLE OF LVC_S_FCAT. ``` #### L_T001 — data · unit 로컬 · L210-L210 {#decl-zfi_common-210-l_t001} ```abap DATA : L_T001 LIKE T001. ``` #### LT_NODE — data · unit 로컬 · L236-L236 {#decl-zfi_common-236-lt_node} ```abap DATA : LT_NODE TYPE GSETH_NODE_TAB. ``` #### L_CLASS — data · unit 로컬 · L237-L237 {#decl-zfi_common-237-l_class} ```abap DATA : L_CLASS TYPE SETHIER-SETCLASS. ``` #### L_SETID — data · unit 로컬 · L238-L238 {#decl-zfi_common-238-l_setid} ```abap DATA : L_SETID TYPE SETHIER-SETID. ``` #### LT_GRPHINFO — data · unit 로컬 · L239-L239 {#decl-zfi_common-239-lt_grphinfo} ```abap DATA : LT_GRPHINFO TYPE GRPHINFO OCCURS 0 WITH HEADER LINE. ``` #### L_MESSAGE — data · unit 로컬 · L240-L240 {#decl-zfi_common-240-l_message} ```abap DATA : L_MESSAGE TYPE STRING. ``` #### LS_BDCTAB — data · unit 로컬 · L309-L309 {#decl-zfi_common-309-ls_bdctab} ```abap DATA : LS_BDCTAB TYPE BDCDATA. ``` #### L_NCNT1 — data · unit 로컬 · L480-L480 {#decl-zfi_common-480-l_ncnt1} ```abap DATA : L_NCNT1(5) TYPE N. ``` #### L_NCNT2 — data · unit 로컬 · L481-L481 {#decl-zfi_common-481-l_ncnt2} ```abap DATA : L_NCNT2(5) TYPE N. ``` #### GR_TABLE — data · unit 로컬 · L513-L513 {#decl-zfi_common-513-gr_table} ```abap DATA : GR_TABLE TYPE REF TO CL_SALV_TABLE. ``` #### LT_INTERN — data · unit 로컬 · L590-L590 {#decl-zfi_common-590-lt_intern} ```abap DATA : LT_INTERN LIKE ALSMEX_TABLINE OCCURS 0 WITH HEADER LINE. ``` #### — field-symbol · unit 로컬 · L591-L591 {#decl-zfi_common-591--l_fs01-} ```abap FIELD-SYMBOLS : . ``` #### — field-symbol · unit 로컬 · L592-L592 {#decl-zfi_common-592--l_fs02-} ```abap FIELD-SYMBOLS: TYPE STANDARD TABLE. ``` #### — field-symbol · unit 로컬 · L593-L593 {#decl-zfi_common-593--l_fs03-} ```abap FIELD-SYMBOLS: . ``` #### LT_FCAT — data · unit 로컬 · L718-L718 {#decl-zfi_common-718-lt_fcat} ```abap DATA : LT_FCAT TYPE TABLE OF LVC_S_FCAT. ``` #### LS_FCAT — data · unit 로컬 · L719-L719 {#decl-zfi_common-719-ls_fcat} ```abap DATA : LS_FCAT TYPE LVC_S_FCAT. ``` #### LF_DATA — data · unit 로컬 · L723-L723 {#decl-zfi_common-723-lf_data} ```abap DATA : LF_DATA TYPE REF TO DATA. ``` #### LL_DATA — data · unit 로컬 · L724-L724 {#decl-zfi_common-724-ll_data} ```abap DATA : LL_DATA TYPE REF TO DATA. ``` #### L_USR_ACT — data · unit 로컬 · L725-L725 {#decl-zfi_common-725-l_usr_act} ```abap DATA : L_USR_ACT TYPE I. ``` #### L_FILE_LEN — data · unit 로컬 · L726-L726 {#decl-zfi_common-726-l_file_len} ```abap DATA : L_FILE_LEN TYPE I. ``` #### L_FNAME — data · unit 로컬 · L727-L727 {#decl-zfi_common-727-l_fname} ```abap DATA : L_FNAME TYPE STRING. ``` #### L_EXT_FILENAME — data · unit 로컬 · L728-L728 {#decl-zfi_common-728-l_ext_filename} ```abap DATA : L_EXT_FILENAME TYPE STRING. ``` #### L_FULLPATH — data · unit 로컬 · L729-L729 {#decl-zfi_common-729-l_fullpath} ```abap DATA : L_FULLPATH TYPE STRING. ``` #### L_PATH — data · unit 로컬 · L730-L730 {#decl-zfi_common-730-l_path} ```abap DATA : L_PATH TYPE STRING. ``` #### — field-symbol · unit 로컬 · L732-L732 {#decl-zfi_common-732--fs_table-} ```abap FIELD-SYMBOLS : TYPE STANDARD TABLE. ``` #### — field-symbol · unit 로컬 · L733-L733 {#decl-zfi_common-733--fs_line-} ```abap FIELD-SYMBOLS : TYPE ANY. ``` #### — field-symbol · unit 로컬 · L734-L734 {#decl-zfi_common-734--fs_col-} ```abap FIELD-SYMBOLS : TYPE ANY. ``` #### LV_AMT — data · unit 로컬 · L889-L889 {#decl-zfi_common-889-lv_amt} ```abap DATA : LV_AMT(20) TYPE C. ``` #### LV_EXT — data · unit 로컬 · L890-L890 {#decl-zfi_common-890-lv_ext} ```abap DATA : LV_EXT TYPE BAPICURR-BAPICURR. ``` #### L_RESULT — data · unit 로컬 · L1063-L1063 {#decl-zfi_common-1063-l_result} ```abap DATA : L_RESULT TYPE ABAP_BOOL. ``` #### L_FILENM — data · unit 로컬 · L1064-L1064 {#decl-zfi_common-1064-l_filenm} ```abap DATA : L_FILENM TYPE STRING. ``` #### L_INTERNAL — data · unit 로컬 · L1104-L1104 {#decl-zfi_common-1104-l_internal} ```abap DATA: L_INTERNAL TYPE BAPICURR-BAPICURR. ``` #### LV_NRRANG — data · unit 로컬 · L1133-L1133 {#decl-zfi_common-1133-lv_nrrang} ```abap DATA: LV_NRRANG LIKE INRDP-NRRANGENR. ``` #### LV_OBJECT — data · unit 로컬 · L1134-L1134 {#decl-zfi_common-1134-lv_object} ```abap DATA: LV_OBJECT LIKE NRIV-OBJECT. ``` #### LV_NRRANG — data · unit 로컬 · L1176-L1176 {#decl-zfi_common-1176-lv_nrrang} ```abap DATA: LV_NRRANG LIKE INRDP-NRRANGENR. ``` #### LV_OBJECT — data · unit 로컬 · L1177-L1177 {#decl-zfi_common-1177-lv_object} ```abap DATA: LV_OBJECT LIKE NRIV-OBJECT. ``` #### LV_YEAR — data · unit 로컬 · L1178-L1178 {#decl-zfi_common-1178-lv_year} ```abap DATA: LV_YEAR LIKE INRI-TOYEAR. ``` #### USER_ACTION — data · unit 로컬 · L1328-L1328 {#decl-zfi_common-1328-user_action} ```abap DATA: USER_ACTION TYPE I. ``` #### RTN_CODE — data · unit 로컬 · L1329-L1329 {#decl-zfi_common-1329-rtn_code} ```abap DATA: RTN_CODE LIKE SY-SUBRC. ``` #### LT_FILETABLE — data · unit 로컬 · L1330-L1330 {#decl-zfi_common-1330-lt_filetable} ```abap DATA: LT_FILETABLE TYPE FILETABLE. ``` #### LS_FILETABLE — data · unit 로컬 · L1331-L1331 {#decl-zfi_common-1331-ls_filetable} ```abap DATA: LS_FILETABLE TYPE FILE_TABLE. ``` #### LV_RESULT — data · unit 로컬 · L1367-L1367 {#decl-zfi_common-1367-lv_result} ```abap DATA: LV_RESULT TYPE CHAR1. ``` #### LV_FILE — data · unit 로컬 · L1368-L1368 {#decl-zfi_common-1368-lv_file} ```abap DATA: LV_FILE TYPE STRING. ``` #### LT_DYNPFIELDS — data · unit 로컬 · L1579-L1579 {#decl-zfi_common-1579-lt_dynpfields} ```abap DATA : LT_DYNPFIELDS TYPE TABLE OF DYNPREAD. ``` #### LS_DYNPFIELDS — data · unit 로컬 · L1580-L1580 {#decl-zfi_common-1580-ls_dynpfields} ```abap DATA: LS_DYNPFIELDS TYPE DYNPREAD. ``` #### LV_DYNAME — data · unit 로컬 · L1581-L1581 {#decl-zfi_common-1581-lv_dyname} ```abap DATA: LV_DYNAME TYPE SY-REPID. ``` #### LV_DYNUM — data · unit 로컬 · L1582-L1582 {#decl-zfi_common-1582-lv_dynum} ```abap DATA: LV_DYNUM TYPE SY-DYNNR. ``` #### — field-symbol · unit 로컬 · L1584-L1584 {#decl-zfi_common-1584--fs_field-} ```abap FIELD-SYMBOLS TYPE ANY. ``` #### LT_DYNPFIELDS — data · unit 로컬 · L1637-L1637 {#decl-zfi_common-1637-lt_dynpfields} ```abap DATA : LT_DYNPFIELDS TYPE TABLE OF DYNPREAD. ``` #### LS_DYNPFIELDS — data · unit 로컬 · L1638-L1638 {#decl-zfi_common-1638-ls_dynpfields} ```abap DATA: LS_DYNPFIELDS TYPE DYNPREAD. ``` #### LV_DYNAME — data · unit 로컬 · L1639-L1639 {#decl-zfi_common-1639-lv_dyname} ```abap DATA: LV_DYNAME TYPE SY-REPID. ``` #### LV_DYNUM — data · unit 로컬 · L1640-L1640 {#decl-zfi_common-1640-lv_dynum} ```abap DATA: LV_DYNUM TYPE SY-DYNNR. ``` #### — field-symbol · unit 로컬 · L1642-L1642 {#decl-zfi_common-1642--fs_field-} ```abap FIELD-SYMBOLS TYPE ANY. ``` #### LV_TRANSFER_BIN — data · unit 로컬 · L1736-L1736 {#decl-zfi_common-1736-lv_transfer_bin} ```abap DATA : LV_TRANSFER_BIN TYPE SX_BOOLEAN. ``` #### LT_CONTENT_TXT — data · unit 로컬 · L1737-L1737 {#decl-zfi_common-1737-lt_content_txt} ```abap DATA: LT_CONTENT_TXT TYPE SOLI_TAB. ``` #### LT_CONTENT_BIN — data · unit 로컬 · L1738-L1738 {#decl-zfi_common-1738-lt_content_bin} ```abap DATA: LT_CONTENT_BIN TYPE SOLIX_TAB. ``` #### LT_OBJHEAD — data · unit 로컬 · L1739-L1739 {#decl-zfi_common-1739-lt_objhead} ```abap DATA: LT_OBJHEAD TYPE SOLI_TAB. ``` #### LV_LEN_IN — data · unit 로컬 · L1740-L1740 {#decl-zfi_common-1740-lv_len_in} ```abap DATA: LV_LEN_IN LIKE SOOD-OBJLEN. ``` #### LS_OTF — data · unit 로컬 · L1741-L1741 {#decl-zfi_common-1741-ls_otf} ```abap DATA: LS_OTF TYPE SOLISTI1. ``` #### LV_BIN_FILESIZE — data · unit 로컬 · L1742-L1742 {#decl-zfi_common-1742-lv_bin_filesize} ```abap DATA: LV_BIN_FILESIZE TYPE I. ``` #### LV_BIN_FILE — data · unit 로컬 · L1743-L1743 {#decl-zfi_common-1743-lv_bin_file} ```abap DATA: LV_BIN_FILE TYPE XSTRING. ``` #### LT_LINES — data · unit 로컬 · L1744-L1744 {#decl-zfi_common-1744-lt_lines} ```abap DATA: LT_LINES LIKE TLINE OCCURS 0 WITH HEADER LINE. ``` #### LV_FILESIZE — data · unit 로컬 · L1745-L1745 {#decl-zfi_common-1745-lv_filesize} ```abap DATA : LV_FILESIZE TYPE I. ``` #### LV_FILENAME — data · unit 로컬 · L1746-L1746 {#decl-zfi_common-1746-lv_filename} ```abap DATA: LV_FILENAME TYPE STRING. ``` #### LT_OTF — data · unit 로컬 · L1747-L1747 {#decl-zfi_common-1747-lt_otf} ```abap DATA : LT_OTF TYPE TABLE OF ITCOO WITH HEADER LINE. ``` #### LV_FILENAME — data · unit 로컬 · L1812-L1812 {#decl-zfi_common-1812-lv_filename} ```abap DATA: LV_FILENAME TYPE STRING. ``` #### LV_PATH — data · unit 로컬 · L1813-L1813 {#decl-zfi_common-1813-lv_path} ```abap DATA: LV_PATH TYPE STRING. ``` #### LV_FULLPATH — data · unit 로컬 · L1814-L1814 {#decl-zfi_common-1814-lv_fullpath} ```abap DATA: LV_FULLPATH TYPE STRING. ``` #### LV_DEFAULT_EXTENSION — data · unit 로컬 · L1815-L1815 {#decl-zfi_common-1815-lv_default_extension} ```abap DATA: LV_DEFAULT_EXTENSION TYPE STRING. ``` #### LV_FILE_FILTER — data · unit 로컬 · L1816-L1816 {#decl-zfi_common-1816-lv_file_filter} ```abap DATA: LV_FILE_FILTER TYPE STRING. ``` #### LV_INITIAL_DIRECTORY — data · unit 로컬 · L1817-L1817 {#decl-zfi_common-1817-lv_initial_directory} ```abap DATA: LV_INITIAL_DIRECTORY TYPE STRING. ``` #### LV_DEFAULT_FILE_NAME — data · unit 로컬 · L1818-L1818 {#decl-zfi_common-1818-lv_default_file_name} ```abap DATA: LV_DEFAULT_FILE_NAME TYPE STRING. ``` #### LV_USER_ACTION — data · unit 로컬 · L1821-L1821 {#decl-zfi_common-1821-lv_user_action} ```abap DATA: LV_USER_ACTION TYPE I. ``` #### — field-symbol · unit 로컬 · L1877-L1877 {#decl-zfi_common-1877--field-} ```abap FIELD-SYMBOLS : TYPE ANY. ``` #### — field-symbol · unit 로컬 · L1878-L1878 {#decl-zfi_common-1878--itab-} ```abap FIELD-SYMBOLS : TYPE STANDARD TABLE. ``` #### — field-symbol · unit 로컬 · L1879-L1879 {#decl-zfi_common-1879--iline-} ```abap FIELD-SYMBOLS : TYPE ANY. ``` #### LV_CURR — data · unit 로컬 · L1959-L1959 {#decl-zfi_common-1959-lv_curr} ```abap DATA : LV_CURR(15) TYPE C. ``` ### `ZFIR0020F01` (1건) #### LT_ZFIT0050 — data · unit 로컬 · L90-L90 {#decl-zfir0020f01-90-lt_zfit0050} ```abap DATA : LT_ZFIT0050 LIKE ZFIT0050 OCCURS 0 WITH HEADER LINE. ``` ## Unit 목록 (컨테이너) | unit | 유형 | 위치 | 조각 | 한 줄 요약 | |---|---|---|---|---| | INITIALIZATION | EVENT | ZFIR0020 L27-32 | 0 | INITIALIZATION 에서 SET_DYNP 를 호출하는 이벤트 블록이다. | | AT SELECTION-SCREEN OUTPUT | EVENT | ZFIR0020 L33-42 | 0 | 선택화면 출력 시 LOOP_AT_SCREEN 으로 화면 속성을 조정하는 이벤트 블록이다. | | START-OF-SELECTION | EVENT | ZFIR0020 L43-49 | 0 | INITIALIZE_DATA 후 PROCESS_DATA 로 매입채무 연계 내역을 조회하는 START-OF-SELECTION 이벤트 블록이다. | | END-OF-SELECTION | EVENT | ZFIR0020 L50-61 | 0 | 온라인 실행 시 조회 결과가 있으면 ALV 화면 100 을 호출하고 없으면 'No Data Found' 메시지를 내는 END-OF-SELECTION 이벤트 블록이다. | | LCL_DEF_RECEIVER~HANDLE_TOP_OF_PAGE | METHOD | ZFIR0020C01 L63-65 | 0 | | | LCL_DEF_RECEIVER~HANDLE_TOOLBAR | METHOD | ZFIR0020C01 L67-71 | 0 | | | LCL_DEF_RECEIVER~HANDLE_USER_COMMAND | METHOD | ZFIR0020C01 L73-77 | 0 | | | LCL_DEF_RECEIVER~HANDLE_DATA_CHANGED | METHOD | ZFIR0020C01 L79-83 | 0 | | | LCL_DEF_RECEIVER~HANDLE_DATA_CHANGED_FINISHED | METHOD | ZFIR0020C01 L85-89 | 0 | | | LCL_DEF_RECEIVER~HANDLE_HOTSPOT_CLICK | METHOD | ZFIR0020C01 L91-95 | 0 | | | LCL_DEF_RECEIVER~HANDLE_DOUBLE_CLICK | METHOD | ZFIR0020C01 L97-101 | 0 | | | LCL_DEF_RECEIVER~HANDLE_ON_F4 | METHOD | ZFIR0020C01 L103-111 | 0 | | | LCL_DEF_RECEIVER~HANDLE_CONTEXT_MENU_REQ | METHOD | ZFIR0020C01 L113-115 | 0 | | | TOOBAR_PART | FORM | ZFIR0020C01 L123-127 | 0 | | | USER_COMMAND_PART | FORM | ZFIR0020C01 L135-141 | 0 | | | DATA_CHANGED | FORM | ZFIR0020C01 L149-151 | 0 | | | F_OUT_MESSAGE_PROC | FORM | ZFIR0020C01 L160-176 | 0 | | | DATA_CHANGED_FINISHED | FORM | ZFIR0020C01 L185-188 | 0 | | | HOTSPOT_CLICK | FORM | ZFIR0020C01 L197-200 | 0 | | | DOUBLE_CLICK | FORM | ZFIR0020C01 L210-216 | 0 | | | ON_F4 | FORM | ZFIR0020C01 L230-246 | 0 | | | ON_F4_100 | FORM | ZFIR0020C01 L260-278 | 0 | | | DISPLAY_ALV_LIST | FORM | ZFIR0020C01 L288-358 | 0 | | | SET_FCAT_DDIC_X01 | FORM | ZFIR0020C01 L368-433 | 0 | | | FILL_FIELD_CATALOGS | FORM | ZFIR0020C01 L445-463 | 0 | | | FILL_FCAT | FORM | ZFIR0020C01 L477-558 | 0 | | | GET_LIKEITAB_FACT | FORM | ZFIR0020C01 L569-619 | 0 | | | SET_TOP_OF_PAGE | FORM | ZFIR0020C01 L631-689 | 0 | | | SET_TOP_OF_PAGE_TEXT | FORM | ZFIR0020C01 L699-709 | 0 | | | LOOP_AT_SCREEN | FORM | ZFIR0020F01 L6-17 | 0 | 회사코드 권한(GV_BUKRS_O)이 없으면 선택화면 그룹 MG1 필드를 입력 불가로 바꾸는 화면 속성 FORM 이다. | | SET_DYNP | FORM | ZFIR0020F01 L24-35 | 0 | 회사코드 기본정보와 텍스트를 세팅하고 전표일자 선택조건 기본값을 오늘로 초기화하는 선택화면 초기화 FORM 이다. | | INITIALIZE_DATA | FORM | ZFIR0020F01 L41-72 | 0 | 회사코드 기본정보·필드카탈로그·오류로그·플래그를 초기화하고 도메인 ZDBTYPE/ZDCANCELFLAG 텍스트를 준비하는 초기화 FORM 이다. | | PROCESS_DATA | FORM | ZFIR0020F01 L78-80 | 0 | SELECT_DATA 를 호출하는 단순 디스패치 FORM 이다. | | SELECT_DATA | FORM | ZFIR0020F01 L89-133 | 2 | 매입채무 연계 내역을 조건에 맞게 읽어 도메인 텍스트·공급업체명·처리상태 아이콘을 붙여 표시용 데이터를 만든다. | | CALL_FB03 | FORM | ZFIR0020F01 L142-157 | 1 | ALV 행의 전표번호를 파라미터(BLN/BUK/GJR)로 세팅해 FB03 전표 조회 트랜잭션을 호출하는 FORM 이다. | | USER_COMMAND_0100 INPUT | MODULE | ZFIR0020I01 L6-28 | 1 | 화면 100의 PAI에서 BACK/CANC/EXIT 기능코드를 받아 ALV 컨테이너를 정리하고 화면을 빠져나가는 USER_COMMAND 모듈이다. | | STATUS_0100 OUTPUT | MODULE | ZFIR0020O01 L6-20 | 0 | | | CREATE_AND_INIT_CONTROLS_0100 OUTPUT | MODULE | ZFIR0020O01 L26-65 | 0 | | | CREATE_CUSTOM_OBJECT_0100 | FORM | ZFIR0020O01 L75-119 | 0 | | | SET_ALV_LAYOUT_0100 | FORM | ZFIR0020O01 L127-147 | 0 | | | SET_ALV_LAYOUT_POP | FORM | ZFIR0020O01 L155-164 | 0 | | | SET_ALV_TOOLBAR_0100 | FORM | ZFIR0020O01 L172-194 | 0 | | | SET_ALV_EVENT_REGISTER_0100 | FORM | ZFIR0020O01 L203-231 | 0 | | | SET_TOP_OF_PAGE_TEXT_0100 | FORM | ZFIR0020O01 L304-319 | 0 | | | SET_FCAT_LIKETAB_0100 | FORM | ZFIR0020O01 L329-461 | 0 | | | SET_ALV_SORT_0100 | FORM | ZFIR0020O01 L469-497 | 0 | | | LCL_DEF_GRID~U_SET_FIXED_ROWS | METHOD | ZFI_ALV L221-225 | 0 | ALV 그리드 첫 행을 고정하는 SET_FIXED_ROWS 래퍼 메서드다. | | LCL_DEF_GRID~U_SET_RESIZE_COLS | METHOD | ZFI_ALV L227-231 | 0 | ALV 컬럼 폭 조정 가능 여부를 설정하는 SET_RESIZE_COLS 래퍼 메서드다. | | LCL_DEF_GRID~U_SCROLL_TO_BOTTOM | METHOD | ZFI_ALV L233-235 | 0 | ALV 그리드를 맨 아래로 스크롤하는 SCROLL_TO_BOTTOM 래퍼 메서드다. | | LCL_DEF_GRID~U_SET_CURRENT_CELL_BASE | METHOD | ZFI_ALV L237-242 | 0 | ALV 그리드의 현재 셀 위치를 지정하는 SET_CURRENT_CELL_BASE 래퍼 메서드다. | | LCL_DEF_GRID~U_SET_OPTIMIZE | METHOD | ZFI_ALV L244-248 | 0 | ALV 모든 컬럼 폭을 헤더 포함 최적화하는 OPTIMIZE_ALL_COLS 래퍼 메서드다. | | CLEAR_CONTAINER_PROC | FORM | ZFI_ALV L262-310 | 0 | HTML 뷰어·ALV 그리드·컨테이너·스플리터 객체를 순서대로 FREE 하고 CFW FLUSH 하는 화면 정리 루틴이다. | | UCOMM_PROC | FORM | ZFI_ALV L319-342 | 0 | 화면 PAI 에서 ALV 변경 데이터를 확정(CHECK_CHANGED_DATA)하고 CL_GUI_CFW=>DISPATCH 로 컨트롤 이벤트를 분배한 뒤 OK 코드를 정리하는 ALV PAI 공통 처리다. | | GET_SELECTED_ROW | FORM | ZFI_ALV L351-360 | 0 | ALV 그리드의 선택 행 인덱스를 GET_SELECTED_ROWS 로 GT_ROWS 에 가져오는 유틸리티다. | | GET_SELECTED_ROW2 | FORM | ZFI_ALV L369-397 | 1 | ALV 그리드에서 선택된 행 인덱스를 GT_ROWS 로 가져오고 미선택/복수 선택 시 오류 메시지를 표시하는 유틸리티다. | | REFRESH_CONTAINER | FORM | ZFI_ALV L406-436 | 0 | ALV 그리드의 프런트엔드 레이아웃을 재설정하고 REFRESH_TABLE_DISPLAY(안정 스크롤/소프트 리프레시)로 화면을 갱신하는 ALV 유틸리티다. | | APPEND_EXCLUDE_FUNCTIONS | FORM | ZFI_ALV L445-453 | 0 | ALV 툴바 제외 기능 코드(UI_FUNC)를 제외 목록 테이블에 추가하는 유틸리티다. | | REGISTER_ALV_EVENT | FORM | ZFI_ALV L462-465 | 0 | ALV 이벤트 등록용 빈 FORM(구현 없음)이다. | | CHECK_SORT_PARAMETER | FORM | ZFI_ALV L472-493 | 1 | ALV 정렬 설정(LVC_T_SORT)의 필드가 필드카탈로그에 존재하는지 검사해 누락 필드명을 돌려주는 검증 루틴이다. | | ADD_EXCP_FIELD_WHEN_INITIAL | FORM | ZFI_COMMON L145-150 | 0 | BDC 생성 시 값이 비어 있으면 제외할 필드명을 GT_EXCP_INIT_FIELD 목록에 등록하는 유틸리티다. | | GET_FCAT_LIKE_ITAB | FORM | ZFI_COMMON L159-200 | 1 | 프로그램 내부테이블 이름으로 REUSE_ALV_FIELDCATALOG_MERGE→LVC 변환→LVC_FIELDCAT_COMPLETE를 거쳐 LVC 필드카탈로그를 생성하는 공통 FORM이다. | | SET_COMPANY_BASE | FORM | ZFI_COMMON L209-226 | 1 | 회사코드로 T001을 읽어 통화·계정과목표·언어·회사명·국가 전역변수를 설정하는 공통 FORM이다. | | GET_SETLEAF_VALUES | FORM | ZFI_COMMON L232-295 | 1 | 세트 클래스(코스트센터/원가요소/오더/손익센터/계정과목 그룹)와 세트명으로 K_HIERARCHY_TABLES_READ 를 호출해 세트 값 목록(GT_VALUE_SET)을 읽는 공통 루틴이다. | | DYNPRO | FORM | ZFI_COMMON L307-333 | 1 | BDCDATA 한 줄(화면 시작 또는 필드/값)을 생성해 BDC 테이블에 추가하되, 예외 등록 필드가 초기값이면 건너뛰는 공통 FORM이다. | | SET_BDC_OPTION | FORM | ZFI_COMMON L347-364 | 0 | CALL TRANSACTION 옵션 구조(CTU_PARAMS)에 표시모드·업데이트모드·커밋 등 BDC 실행 옵션을 채우는 유틸리티다. | | ZERO_O | FORM | ZFI_COMMON L373-379 | 0 | CONVERSION_EXIT_ALPHA_OUTPUT 로 선행 0을 제거해 출력 형식으로 바꾸는 유틸리티다. | | ZERO_I | FORM | ZFI_COMMON L388-394 | 0 | CONVERSION_EXIT_ALPHA_INPUT 로 선행 0을 채워 내부 형식으로 바꾸는 유틸리티다. | | F4_DATE_FORMAT_YYYYMM | FORM | ZFI_COMMON L403-419 | 0 | POPUP_TO_SELECT_MONTH 로 YYYYMM 월을 선택받는 F4 유틸리티(기본값은 현재 월)다. | | F4_DATE_FORMAT_YYYYMMDD | FORM | ZFI_COMMON L428-434 | 0 | F4_DATE 달력 팝업으로 YYYYMMDD 날짜를 선택받는 F4 유틸리티다. | | DATE_CHK | FORM | ZFI_COMMON L444-453 | 1 | DATE_CHECK_PLAUSIBILITY로 날짜의 유효성을 검사해 결과 코드를 돌려주는 공통 FORM이다. | | BAR_MSG | FORM | ZFI_COMMON L463-468 | 0 | 백분율과 텍스트로 SAPGUI_PROGRESS_INDICATOR 진행 표시줄을 갱신하는 한 줄 유틸리티다. | | BAR_MSG_PER | FORM | ZFI_COMMON L479-503 | 1 | 처리 건수 비율(%)을 계산해 SAPGUI_PROGRESS_INDICATOR로 진행률 메시지를 표시하는 공통 FORM이다. | | DISPLAY_SPOOL_BY_SALV | FORM | ZFI_COMMON L512-522 | 1 | CL_SALV_TABLE=>FACTORY로 전달받은 내부테이블을 SALV(ALV) 리스트로 표시하는 공통 FORM(배치 스풀 출력용)이다. | | SET_MINUS_FRONT | FORM | ZFI_COMMON L531-537 | 0 | CLOI_PUT_SIGN_IN_FRONT 로 숫자 문자열의 음수 부호를 앞으로 옮기는 표시 유틸리티다. | | F4_FNAME | FORM | ZFI_COMMON L545-568 | 0 | 파일 열기 대화상자로 업로드 파일명을 선택받는 F4 유틸리티다. | | UPLOAD_DATA | FORM | ZFI_COMMON L582-639 | 2 | 엑셀 파일을 ALSM_EXCEL_TO_INTERNAL_TABLE로 읽어 동적으로 지정된 내부테이블·구조체에 행/열 단위로 적재하는 공통 업로드 FORM이다. | | BDC_DATE | FORM | ZFI_COMMON L648-654 | 0 | BDC 전송용 날짜 문자열에서 '.', '-', '/' 구분자를 제거해 YYYYMMDD 형식으로 만드는 유틸리티다. | | BDC_CURR | FORM | ZFI_COMMON L663-667 | 0 | BDC 전송용 금액 문자열에서 천단위 콤마를 제거하는 한 줄 유틸리티다. | | BDC_CHECKBOX | FORM | ZFI_COMMON L676-678 | 0 | BDC 체크박스 입력값을 대문자로 변환하는 한 줄 유틸리티다. | | BUILD_MESSAGE | FORM | ZFI_COMMON L688-709 | 1 | BDC 메시지(BDCMSGCOLL)를 MESSAGE_TEXT_BUILD로 텍스트화하고 '&' 치환문자를 제거하는 공통 FORM이다. | | EXCEL_FORM_DOWNLOAD | FORM | ZFI_COMMON L716-846 | 2 | 엑셀 컬럼 제목 목록으로 동적 테이블을 만들어 헤더 1행만 담은 업로드 양식(xls)을 저장 대화상자를 통해 PC에 다운로드하는 공통 FORM이다. | | CONVERT_CURRENCY | FORM | ZFI_COMMON L859-878 | 1 | 전기일 환율로 외화 금액을 현지통화 금액으로 CONVERT_TO_LOCAL_CURRENCY를 이용해 환산하는 공통 FORM이다. | | CONVERT_CHAR_TO_AMT | FORM | ZFI_COMMON L888-915 | 1 | 콤마가 포함된 문자형 금액을 콤마 제거 후 BAPI_CURRENCY_CONV_TO_INTERNAL로 통화 내부 금액으로 변환하는 공통 FORM이다. | | F4IF_INT_TABLE_VALUE_REQUEST | FORM | ZFI_COMMON L927-955 | 0 | 내부테이블 값 목록으로 F4 검색도움(F4IF_INT_TABLE_VALUE_REQUEST)을 띄워 선택값을 화면 필드에 돌려주는 F4 공통 루틴이다. | | POPUP_TO_CONFIRM_02 | FORM | ZFI_COMMON L966-979 | 1 | POPUP_TO_CONFIRM_STEP으로 두 줄 질문의 확인 팝업(J/N/A)을 띄워 응답을 돌려주는 공통 FORM이다. | | POPUP_TO_CONFIRM | FORM | ZFI_COMMON L991-1016 | 1 | POPUP_TO_CONFIRM으로 Yes/No 확인 팝업을 띄워 사용자 응답을 돌려주는 공통 FORM이다. | | GET_LAST_DAY | FORM | ZFI_COMMON L1025-1035 | 1 | 입력 날짜가 속한 월의 마지막 날짜를 RP_LAST_DAY_OF_MONTHS 로 구하는 날짜 유틸리티다. | | SET_DSMOD | FORM | ZFI_COMMON L1043-1052 | 1 | BDC 처리 모드 입력값이 A/E/N 중 하나인지 검사하고 아니면 오류 메시지로 중단하는 공통 FORM이다. | | FILE_EXISTS | FORM | ZFI_COMMON L1061-1092 | 1 | CL_GUI_FRONTEND_SERVICES=>FILE_EXIST로 프론트엔드 파일 존재 여부를 확인해 참/거짓을 돌려주는 공통 FORM이다. | | AMT_CONV_TO_INTERNAL | FORM | ZFI_COMMON L1101-1118 | 1 | 외부 형식 금액을 통화별 소수점에 맞는 SAP 내부 금액으로 BAPI_CURRENCY_CONV_TO_INTERNAL로 변환하는 공통 FORM이다. | | GET_NEXT_NUMBER | FORM | ZFI_COMMON L1129-1160 | 1 | 번호범위 객체·구간으로 NUMBER_GET_NEXT를 호출해 다음 채번 번호를 가져오는 공통 FORM이다. | | GET_NEXT_NUMBER_YEAR | FORM | ZFI_COMMON L1172-1211 | 1 | 번호범위 객체·구간·연도로 NUMBER_GET_NEXT를 호출해 연도별 다음 채번 번호를 가져오는 공통 FORM이다. | | GET_VALUE_LIST_DOM | FORM | ZFI_COMMON L1220-1235 | 1 | 도메인 고정값과 텍스트를 DD07T에서 읽어 전달받은 테이블에 채우는 공통 FORM(F4/드롭다운용)이다. | | GET_DOM_TEXT_LIST | FORM | ZFI_COMMON L1244-1255 | 1 | 도메인 고정값 텍스트를 DD07T에서 읽어 GT_DOMAIN에 누적하는 공통 FORM이다. | | MD_CONVER_MAT_UNIT | FORM | ZFI_COMMON L1268-1298 | 1 | 자재의 수량을 입력 단위에서 출력 단위로 MD_CONVERT_MATERIAL_UNIT을 이용해 환산하는 공통 FORM이다. | | SHOW_MESSAGE_LIST | FORM | ZFI_COMMON L1306-1316 | 1 | 누적된 헤더/상세 메시지 테이블(GT_HEAMSG/GT_DETMSG)을 SCPR_SV_SHOW_MESSAGE_LIST로 팝업 표시하는 공통 FORM이다. | | GET_FILE_PATH | FORM | ZFI_COMMON L1325-1356 | 1 | 파일 열기 대화상자(FILE_OPEN_DIALOG)로 업로드할 XLS 파일을 선택받아 파일 경로를 반환하는 공통 FORM이다. | | CHK_FILE_PATH | FORM | ZFI_COMMON L1365-1390 | 1 | CL_GUI_FRONTEND_SERVICES=>FILE_EXIST로 업로드 파일 경로의 존재를 확인하고 없으면 메시지 후 처리를 중단하는 공통 FORM이다. | | SET_BUTTON_100 | FORM | ZFI_COMMON L1401-1423 | 0 | 선택화면 기능 버튼(SSCRFIELDS-FUNCTXT_nn)에 아이콘과 텍스트를 동적으로 설정하는 UI 유틸리티다. | | BDC_CREATE_AENNR | FORM | ZFI_COMMON L1502-1569 | 2 | 변경번호(AENNR) 존재 여부를 AENR에서 확인한 뒤 없으면 BDC로 CC01(변경마스터 생성)을 실행하고 결과 메시지를 반환하는 공통 FORM이다. | | GET_DYNP_VALUES_READ | FORM | ZFI_COMMON L1577-1626 | 1 | DYNP_VALUES_READ로 현재 화면의 필드 값을 읽어 같은 이름의 프로그램 변수에 넣는 공통 FORM이다. | | SET_DYNP_VALUES | FORM | ZFI_COMMON L1635-1676 | 1 | 프로그램 변수 값을 DYNP_VALUES_UPDATE로 현재 화면 필드에 반영하는 공통 FORM이다. | | AUTHORITY_CHECK_TCODE | FORM | ZFI_COMMON L1682-1695 | 1 | S_TCODE 권한 객체로 현재 T-Code 실행 권한을 검사하고 T-Code 끝자리가 1이면 조회 모드(GV_DIP_MOD)로 설정하는 공통 FORM이다. | | SET_BTN_1000 | FORM | ZFI_COMMON L1705-1725 | 0 | 선택화면(1000)의 기능 버튼(SSCRFIELDS-FUNCTXT_nn)에 아이콘과 텍스트를 동적으로 설정하는 UI 유틸리티다. | | F_PDF_DOWNLOAD | FORM | ZFI_COMMON L1734-1799 | 2 | Smart Forms 출력 결과(OTF)를 PDF로 변환하고 저장 대화상자를 거쳐 PC에 다운로드하는 공통 FORM이다. | | OPEN_SAVE_FILE_SEL | FORM | ZFI_COMMON L1808-1864 | 1 | 파일 저장 대화상자(FILE_SAVE_DIALOG)를 열어 사용자가 지정한 저장 파일명을 돌려주는 공통 FORM이다. | | ALSMEX_TAB_TO_ITAB | FORM | ZFI_COMMON L1874-1902 | 1 | ALSM_EXCEL_TO_INTERNAL_TABLE 결과(ALSMEX_TABLINE)를 동적으로 지정한 내부테이블·구조체에 행/열 매핑하여 적재하는 공통 FORM이다. | | START_INTERFACE_BDC | FORM | ZFI_COMMON L1910-1930 | 1 | FTPOST 작업 테이블을 초기화하고 POSTING_INTERFACE_START로 FI Posting Interface(Call Transaction 방식)를 시작하는 공통 FORM이다. | | END_INTERFACE_BDC | FORM | ZFI_COMMON L1937-1947 | 1 | POSTING_INTERFACE_END를 호출해 FI Posting Interface 세션을 종료하고 FTPOST/FTTAX/BLNTAB 작업 테이블을 초기화하는 공통 FORM이다. | | FILL_FIELD | FORM | ZFI_COMMON L1957-1980 | 1 | Posting Interface(FTPOST)용 필드명·값을 한 건 채우며 금액 필드는 통화 형식으로 편집하여 FTPOST 테이블에 추가하는 공통 FORM이다. | | BUILD_MESSGE_IF | FORM | ZFI_COMMON L1989-2004 | 1 | 인터페이스 메시지 구조(MSGID/MSGNO/MSGV1~4)를 MESSAGE_TEXT_BUILD로 메시지 텍스트로 조립하는 공통 FORM이다. | | GET_POST_PERIOD | FORM | ZFI_COMMON L2014-2041 | 1 | 회사코드와 전기일로 FI_PERIOD_DETERMINE을 호출해 회계연도·전기기간을 구하고 실패 시 날짜에서 직접 추출하는 공통 FORM이다. |