--- type: abap-program title: "ZFIC0020 — 전표 대량 UPLOAD" description: "엑셀로 받은 회계전표를 대량으로 업로드해 전표를 생성하는 유틸리티다. 구조조회(어떤 컬럼을 채워야 하는지)·템플릿 다운로드·업로드 실행·BDC 로그 조회의 네 모드를 한 화면에서 제공하고, 업로드 결과는 ZFIT0010 에 적재해 이력으로 남긴다. BDC 처리 모드(백그라운드/오류만표시/포그라운드)를 선택할 수 있어 대량 처리와 오류 디버깅을 겸한다." resource: "abap://ZFIC0020" tags: ["전표", "대량업로드", "배치작업", "결산작업", "FI", "전표그룹", "엑셀순서", "정렬", "라인순서", "업로드", "대차검증", "차변", "대변", "전기키", "계정유형", "세액", "대차일치", "신호등", "업로드검증", "번호범위"] generated: { by: "abap-indexing/z-ai/glm-5.2:free", at: "2026-09-20T15:36:18+00:00" } status: stable x-package: x-changed-on: x-tables-read: ["CSKT", "J_1BBRANCH", "LTDX", "SKAT", "T007S", "TBSL", "USR01", "V_USERNAME", "ZFIT0010", "ZFIT0160"] x-tables-write: ["GT_LOAD", "ZFIT0010"] x-calls: ["BAL_DSP_LOG_DISPLAY", "BAL_LOG_CREATE", "BAL_LOG_MSG_ADD", "CLOI_PUT_SIGN_IN_FRONT", "CONVERSION_EXIT_ALPHA_INPUT", "CONVERSION_EXIT_ALPHA_OUTPUT", "CONVERT_TO_FOREIGN_CURRENCY", "CONVERT_TO_LOCAL_CURRENCY", "CURRENCY_AMOUNT_IDOC_TO_SAP", "CURRENCY_AMOUNT_SAP_TO_IDOC", "DOMAIN_VALUE_GET", "DOWNLOAD_WEB_OBJECT", "DYNP_VALUES_READ", "F4IF_INT_TABLE_VALUE_REQUEST", "FB03", "FK03", "GUI_DOWNLOAD", "GUI_UPLOAD", "HELP_VALUES_GET_NO_DD_NAME", "HRVE_GET_TIME_BETWEEN_DATES", "ICON_CREATE", "KCD_EXCEL_OLE_TO_INT_CONVERT", "LVC_VARIANT_DEFAULT_GET", "LVC_VARIANT_EXISTENCE_CHECK", "LVC_VARIANT_F4", "MESSAGE_TEXT_BUILD", "NUMBER_GET_NEXT", "NUMERIC_CHECK", "POPUP_TO_CONFIRM_STEP", "P_TCODE", "REUSE_ALV_EVENTS_GET", "REUSE_ALV_FIELDCATALOG_MERGE", "REUSE_ALV_GRID_DISPLAY", "REUSE_ALV_GRID_DISPLAY_LVC", "REUSE_ALV_HIERSEQ_LIST_DISPLAY", "RP_CALC_DATE_IN_INTERVAL", "RP_LAST_DAY_OF_MONTHS", "SAPGUI_PROGRESS_INDICATOR", "SSF_CLOSE", "SSF_FUNCTION_MODULE_NAME"] x-code-hash: "679d87a72c21ec5ad830f402eac88c0fdd426bbbf10502c27b0b1dbc15c79206" x-unit-count: 102 x-chunk-count: 53 x-declaration-count: 285 --- ## 업무 목적 엑셀로 받은 회계전표를 대량으로 업로드해 전표를 생성하는 유틸리티다. 구조조회(어떤 컬럼을 채워야 하는지)·템플릿 다운로드·업로드 실행·BDC 로그 조회의 네 모드를 한 화면에서 제공하고, 업로드 결과는 ZFIT0010 에 적재해 이력으로 남긴다. BDC 처리 모드(백그라운드/오류만표시/포그라운드)를 선택할 수 있어 대량 처리와 오류 디버깅을 겸한다. ## 주 흐름 1. 회사코드와 처리 모드(구조조회/다운로드/업로드/로그)를 선택한다 2. 구조조회 모드: 업로드 파일이 가져야 할 구조를 화면에 보여준다 (STRUCTURE_DISPLAY) 3. 다운로드 모드: 입력 템플릿 파일을 내려준다 (FILE_DOWNLOAD) 4. 업로드 모드: 파일 경로 필수 확인 후 엑셀을 읽어 전표 항목을 정리한다 (DATA_UPLOAD_2 → MODIFY_DATA) 5. ALV 로 업로드 내용을 검토시키고 BDC 로 전표를 생성한다 6. 처리 결과를 ZFIT0010 에 적재하고, 로그 모드에서 생성일자 기준으로 조회한다 (GET_ZFIT0010) ## 핵심 내부테이블 - `GT_LOAD` — 엑셀 원본 행 (채움: DATA_UPLOAD_2 / 소비: MODIFY_DATA) - `GT_DATA` — 전표 생성 대상 항목 (채움: MODIFY_DATA / 소비: ALV_DISPLAY) ## 테이블 / 외부 호출 - read: CSKT, J_1BBRANCH, LTDX, SKAT, T007S, TBSL, USR01, V_USERNAME, ZFIT0010, ZFIT0160 - write: GT_LOAD, ZFIT0010 - 외부 호출: BAL_DSP_LOG_DISPLAY, BAL_LOG_CREATE, BAL_LOG_MSG_ADD, CLOI_PUT_SIGN_IN_FRONT, CONVERSION_EXIT_ALPHA_INPUT, CONVERSION_EXIT_ALPHA_OUTPUT, CONVERT_TO_FOREIGN_CURRENCY, CONVERT_TO_LOCAL_CURRENCY, CURRENCY_AMOUNT_IDOC_TO_SAP, CURRENCY_AMOUNT_SAP_TO_IDOC, DOMAIN_VALUE_GET, DOWNLOAD_WEB_OBJECT, DYNP_VALUES_READ, F4IF_INT_TABLE_VALUE_REQUEST, FB03, FK03, GUI_DOWNLOAD, GUI_UPLOAD, HELP_VALUES_GET_NO_DD_NAME, HRVE_GET_TIME_BETWEEN_DATES, ICON_CREATE, KCD_EXCEL_OLE_TO_INT_CONVERT, LVC_VARIANT_DEFAULT_GET, LVC_VARIANT_EXISTENCE_CHECK, LVC_VARIANT_F4, MESSAGE_TEXT_BUILD, NUMBER_GET_NEXT, NUMERIC_CHECK, POPUP_TO_CONFIRM_STEP, P_TCODE ## 로직 조각 (53건 / unit 43개) LLM 이 코드에서 골라낸 업무 로직 단위다. **조각마다 소스 원문과 자연어 설명을 함께 싣는다** — 설명이 코드와 맞는지 바로 대조할 수 있어야 하기 때문이다. 테이블·호출은 LLM 이 쓴 값이 아니라 파서가 조각 범위에서 다시 뽑은 사실이다. 순서는 실행 순서다. ### EVENT START-OF-SELECTION — `ZFIC0020` L46-L84 (39줄) *START-OF-SELECTION 에서 모드별(구조조회/템플릿 다운로드/업로드/로그)로 파일 검증·엑셀 업로드·ZFIT0010 조회·ALV 준비를 분기하는 메인 흐름이다.* > 이 unit 의 조각 2개가 24/39줄(62%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다. #### [control_flow] 업로드 모드에서 파일 경로(P_FNAME) 필수 검증 후 DATA_UPLOAD_2 로 엑셀을 GT_LOAD 에 읽고 MODIFY_DATA 로 정리한 뒤 ALV 설정·필드카탈로그·이벤트(PF_T1000)를 준비한다. ```abap 55| WHEN P_U. 56| CLEAR GV_RUN. 57| * 필수입력값 체크 58| IF P_FNAME IS INITIAL. 59| MESSAGE S000 WITH TEXT-001 DISPLAY LIKE C_E. 60| "파일경로필드는 필수입력입니다!!! 61| LEAVE LIST-PROCESSING. 62| ENDIF. 63| PERFORM DATA_UPLOAD_2 TABLES GT_LOAD USING P_FNAME. 64| PERFORM MODIFY_DATA. 65| * ALV setting 66| PERFORM ALV_SETTING. 67| * ALV FIELD Define 68| PERFORM FIELDCATALOG_MERGE. 69| * ALV EVENT Define 70| PERFORM EVENT_BUILD USING 'PF_T1000' SPACE SPACE C_X C_X GV_DBCNT. ``` - **EN**: In upload mode validate the mandatory file path, read the Excel file into GT_LOAD (DATA_UPLOAD_2), post-process it (MODIFY_DATA) and prepare ALV settings, field catalog and events. - 호출(파서): DATA_UPLOAD_2, MODIFY_DATA, ALV_SETTING, FIELDCATALOG_MERGE, EVENT_BUILD - 업무 키워드: 파일 경로 필수, 엑셀 업로드, 전표 항목 정리, ALV 준비 - English: file upload, validation, ALV - 정의부(복사 시 함께 필요): [`P_U`](#decl-zfic0020top-120-p_u), [`GV_RUN`](#decl-zfic0020top-88-gv_run), [`P_FNAME`](#decl-zfic0020top-99-p_fname), [`C_E`](#decl-zficom-212-c_e), [`GT_LOAD`](#decl-zfic0020top-6-gt_load), [`C_X`](#decl-zficom-231-c_x), [`GV_DBCNT`](#decl-zficom-68-gv_dbcnt) - 위치: `abap://ZFIC0020/ZFIC0020#L55-L70` · confidence 0.85 · `ZFIC0020#ZFIC0020#EVENT#START-OF-SELECTION#C1` #### [control_flow] 로그 모드에서 GET_ZFIT0010 으로 업로드 이력을 조회하고 로그용 ALV 설정·필드카탈로그·이벤트를 준비한다. ```abap 72| WHEN P_L. 73| PERFORM GET_ZFIT0010. 74| * ALV setting 75| PERFORM ALV_SETTING. 76| * ALV FIELD Define 77| PERFORM FIELDCATALOG_MERGE_LOG. 78| * ALV EVENT Define 79| PERFORM EVENT_BUILD USING 'PF_T1000' SPACE SPACE C_X C_X GV_DBCNT. ``` - **EN**: In log mode read upload history via GET_ZFIT0010 and prepare the log ALV. - 호출(파서): GET_ZFIT0010, ALV_SETTING, FIELDCATALOG_MERGE_LOG, EVENT_BUILD - SAP 객체: ZFIT0010 - 업무 키워드: 로그 조회, 업로드 이력, ALV 준비 - English: upload log, ZFIT0010 - 정의부(복사 시 함께 필요): [`P_L`](#decl-zfic0020top-122-p_l), [`C_X`](#decl-zficom-231-c_x), [`GV_DBCNT`](#decl-zficom-68-gv_dbcnt) - 위치: `abap://ZFIC0020/ZFIC0020#L72-L79` · confidence 0.8 · `ZFIC0020#ZFIC0020#EVENT#START-OF-SELECTION#C2` ### FORM STRUCTURE_DATA — `ZFIC0020F01` L45-L94 (50줄) *업로드 엑셀이 가져야 할 컬럼 구조(항목명·타입·길이·필수여부·설명)를 DATA_WRITE 로 GT_STRUCT 에 나열하는 구조조회용 FORM이다.* > 이 unit 의 조각 1개가 47/50줄(94%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다. #### [output] 그룹핑번호·헤더지시자·전표일자·전표유형·회사코드·통화·전기키·계정·금액·세액·사업장·원가대상·지급조건·참조·텍스트·거래은행 등 업로드 파일 컬럼 정의(타입·길이·필수·설명)를 DATA_WRITE 로 GT_STRUCT 에 적재하고 건수를 GV_DBCNT 에 둔다. ```abap 47| PERFORM DATA_WRITE USING : 48| TEXT-T01 'CHAR' '010' TEXT-T99 TEXT-T51, "그룹핑번호 49| TEXT-T02 'CHAR' '001' TEXT-T99 TEXT-T52, "헤더지시자 50| TEXT-T03 'CHAR' '010' SPACE TEXT-T53, "전표번호 51| TEXT-T04 'CHAR' '008' TEXT-T99 TEXT-T54, "전표 증빙일 52| TEXT-T05 'CHAR' '008' TEXT-T99 TEXT-T55, "전표의 전기일 53| TEXT-T06 'CHAR' '002' TEXT-T99 TEXT-T56, "회계 기간 54| TEXT-T07 'CHAR' '002' TEXT-T99 TEXT-T57, "전표 유형 55| TEXT-T38 'CHAR' '004' TEXT-T99 TEXT-T88, "회사 코드 56| TEXT-T08 'CHAR' '005' TEXT-T99 TEXT-T58, "통화 키 57| TEXT-T09 'CHAR' '010' SPACE TEXT-T59, "환율 58| TEXT-T10 'CHAR' '008' SPACE TEXT-T60, "환산일 59| TEXT-T11 'CHAR' '016' SPACE TEXT-T61, "참조 전표 번호 60| TEXT-T12 'CHAR' '025' SPACE TEXT-T62, "전표 헤더 텍스트 61| TEXT-T13 'CHAR' '002' TEXT-T99 TEXT-T63, "전기 키 62| TEXT-T14 'CHAR' '010' TEXT-T99 TEXT-T64, "개별항목의 계정 63| TEXT-T15 'CHAR' '001' SPACE TEXT-T65, "특별 G/L 지시자 64| TEXT-T16 'CHAR' '003' SPACE TEXT-T66, "자산 거래 유형 65| TEXT-T17 'CHAR' '010' SPACE TEXT-T67, "조정 계정 66| TEXT-T18 'CHAR' '016' TEXT-T99 TEXT-T68, "전표 통화 금액 67| TEXT-T19 'CHAR' '016' SPACE TEXT-T69, "현지 통화 금액 68| TEXT-T20 'CHAR' '016' SPACE TEXT-T70, "전표 통화 세액 69| TEXT-T21 'CHAR' '016' SPACE TEXT-T71, "현지 통화 세액 70| TEXT-T39 'CHAR' '016' SPACE TEXT-T70, "전표 통화 세액 71| TEXT-T40 'CHAR' '016' SPACE TEXT-T71, "현지 통화 세액 72| TEXT-T22 'CHAR' '004' SPACE TEXT-T72, "사업장 73| TEXT-T23 'CHAR' '002' SPACE TEXT-T73, "세금코드 74| TEXT-T24 'CHAR' '004' SPACE TEXT-T74, "사업 영역 75| TEXT-T25 'CHAR' '024' SPACE TEXT-T75, "WBS Element 76| TEXT-T26 'CHAR' '010' SPACE TEXT-T76, "코스트 센터 77| TEXT-T78 'CHAR' '010' SPACE TEXT-T77, "손익센터 78| TEXT-T43 'CHAR' '012' SPACE TEXT-T90, "네트워크번호 79| TEXT-T44 'CHAR' '004' SPACE TEXT-T91, "작업/액티비티 번호 80| TEXT-T27 'CHAR' '016' SPACE TEXT-T77, "자금 관리 센터 81| TEXT-T28 'CHAR' '012' SPACE TEXT-T78, "오더 번호 82| TEXT-T29 'CHAR' '008' SPACE TEXT-T79, "만기 계산 기준일 83| TEXT-T30 'CHAR' '004' SPACE TEXT-T80, "지급 조건 키 84| TEXT-T41 'CHAR' '003' SPACE TEXT-T88, "현금할인일 85| TEXT-T42 'CHAR' '001' SPACE TEXT-T88, "지급 방법 86| TEXT-T31 'CHAR' '012' SPACE TEXT-T81, "참조 1 87| TEXT-T32 'CHAR' '012' SPACE TEXT-T82, "참조 2 88| TEXT-T33 'CHAR' '020' SPACE TEXT-T83, "참조 3 89| TEXT-T34 'CHAR' '018' SPACE TEXT-T84, "지정 번호 90| TEXT-T35 'CHAR' '050' SPACE TEXT-T85, "품목텍스트 91| TEXT-T36 'CHAR' '005' SPACE TEXT-T86, "고유은행 92| TEXT-T37 'CHAR' '005' SPACE TEXT-T87. "은행거래처 93| GV_DBCNT = GV_SEQNO. ``` - **EN**: List the required upload file column definitions (name, type, length, mandatory flag, description) for header and line-item fields into GT_STRUCT via DATA_WRITE. - 호출(파서): DATA_WRITE, DATA_WRITE, DATA_WRITE, DATA_WRITE, DATA_WRITE, DATA_WRITE, DATA_WRITE, DATA_WRITE, DATA_WRITE, DATA_WRITE, DATA_WRITE, DATA_WRITE, DATA_WRITE, DATA_WRITE, DATA_WRITE, DATA_WRITE, DATA_WRITE, DATA_WRITE, DATA_WRITE, DATA_WRITE - 업무 키워드: 업로드 구조, 컬럼 정의, 필수 항목, 템플릿 레이아웃 - English: upload layout, structure inquiry, file format - 정의부(복사 시 함께 필요): [`GV_DBCNT`](#decl-zficom-68-gv_dbcnt), [`GV_SEQNO`](#decl-zficom-75-gv_seqno) - 위치: `abap://ZFIC0020/ZFIC0020F01#L47-L93` · confidence 0.85 · `ZFIC0020#ZFIC0020F01#FORM#STRUCTURE_DATA#C1` ### FORM FILE_DOWNLOAD — `ZFIC0020F01` L370-L376 (7줄) *웹 리포지토리(SMW0) 객체 MIZFIC0020 을 DOWNLOAD_WEB_OBJECT 로 내려받아 업로드 템플릿 파일을 제공하는 FORM이다.* > 이 unit 의 조각 1개가 4/7줄(57%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다. #### [fm_call] SMW0 웹 오브젝트 키 MIZFIC0020 으로 DOWNLOAD_WEB_OBJECT 를 호출해 전표 업로드용 엑셀 템플릿을 PC 로 다운로드한다. ```abap 372| LV_KEY = 'MIZFIC0020'. 373| CALL FUNCTION 'DOWNLOAD_WEB_OBJECT' 374| EXPORTING 375| KEY = LV_KEY. ``` - **EN**: Call DOWNLOAD_WEB_OBJECT with web repository key MIZFIC0020 to download the upload template file. - 호출(파서): DOWNLOAD_WEB_OBJECT - SAP 객체: DOWNLOAD_WEB_OBJECT, WWWDATATAB, SMW0 - 업무 키워드: 템플릿 다운로드, 웹 오브젝트, 업로드 양식 - English: DOWNLOAD_WEB_OBJECT, SMW0, template - 정의부(복사 시 함께 필요): [`LV_KEY`](#decl-zfic0020f01-371-lv_key) - 위치: `abap://ZFIC0020/ZFIC0020F01#L372-L375` · confidence 0.85 · `ZFIC0020#ZFIC0020F01#FORM#FILE_DOWNLOAD#C1` ### FORM DATA_UPLOAD_2 — `ZFICOM` L917-L950 (34줄) *엑셀 파일을 KCD_EXCEL_OLE_TO_INT_CONVERT 로 셀 단위로 읽어 행별로 T_LOAD 내부테이블 구조에 매핑하는 공통 업로드 FORM 이다.* > 이 unit 의 조각 2개가 26/34줄(76%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다. #### [fm_call] KCD_EXCEL_OLE_TO_INT_CONVERT 로 엑셀 파일을 2행부터(헤더 제외) 셀 단위 내부테이블 GT_XLS 로 읽고 실패 시 '업로드 실패' 메시지 후 종료한다. ```abap 922| CALL FUNCTION 'KCD_EXCEL_OLE_TO_INT_CONVERT' 923| EXPORTING 924| FILENAME = P_FNAME 925| I_BEGIN_COL = 1 926| I_BEGIN_ROW = 2 927| I_END_COL = 256 928| I_END_ROW = 65536 929| TABLES 930| INTERN = GT_XLS 931| EXCEPTIONS 932| INCONSISTENT_PARAMETERS = 1 933| UPLOAD_OLE = 2 934| OTHERS = 3. 935| 936| IF SY-SUBRC <> 0. 937| MESSAGE I000 WITH '업로드 실패!! 담당자에게 문의하세요.'. 938| LEAVE LIST-PROCESSING. 939| ENDIF. ``` - **EN**: Reads the Excel file cell by cell (from row 2, skipping the header) into GT_XLS with KCD_EXCEL_OLE_TO_INT_CONVERT and stops with an upload-failed message on error. - 호출(파서): KCD_EXCEL_OLE_TO_INT_CONVERT - SAP 객체: KCD_EXCEL_OLE_TO_INT_CONVERT, KCDE_INTERN_STRUC - 업무 키워드: 엑셀 업로드, OLE, 헤더 제외, 셀 데이터 - English: Excel Upload, KCD_EXCEL_OLE_TO_INT_CONVERT, OLE - 정의부(복사 시 함께 필요): [`P_FNAME`](#decl-zfic0020top-99-p_fname), [`GT_XLS`](#decl-zficom-919-gt_xls) - 위치: `abap://ZFIC0020/ZFICOM#L922-L939` · confidence 0.9 · `ZFIC0020#ZFICOM#FORM#DATA_UPLOAD_2#C1` #### [calculation] 셀 데이터를 행·열 순으로 정렬한 뒤 열 번호를 T_LOAD 구조의 컴포넌트에 ASSIGN 해 값을 채우고 행이 끝날 때마다 T_LOAD 에 한 줄씩 추가한다. ```abap 941| SORT GT_XLS BY ROW COL. 942| LOOP AT GT_XLS. 943| ASSIGN COMPONENT GT_XLS-COL OF STRUCTURE T_LOAD TO . 944| = GT_XLS-VALUE. 945| AT END OF ROW. 946| APPEND T_LOAD. CLEAR: T_LOAD. 947| ENDAT. 948| ENDLOOP. ``` - **EN**: Sorts cells by row/column, assigns each cell value to the corresponding component of T_LOAD by column index and appends a line at the end of each row. - 업무 키워드: 행 변환, 컬럼 매핑, 업로드 내역, 필드심볼 - English: Row Mapping, Field Symbol, Internal Table - 정의부(복사 시 함께 필요): [`GT_XLS`](#decl-zficom-919-gt_xls), [``](#decl-zficom-920--fs-) - 위치: `abap://ZFIC0020/ZFICOM#L941-L948` · confidence 0.9 · `ZFIC0020#ZFICOM#FORM#DATA_UPLOAD_2#C2` ### FORM MODIFY_DATA — `ZFIC0020F01` L532-L582 (51줄) *업로드한 전표 행을 전표그룹별로 묶어 차·대변 합계가 맞는지 검증하고 신호등으로 표시한다.* > 이 unit 의 조각 2개가 45/51줄(88%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다. #### [aggregation] 엑셀에서 읽은 순서를 SEQNO2 에 보존한 뒤 전표그룹번호(SEQNO)와 엑셀 순서로 정렬한다 — 한 전표 안 라인 순서가 업로드 시트 순서와 같아야 하기 때문이다. ```abap 536| LOOP AT GT_LOAD. 537| GT_LOAD-SEQNO2 = SY-TABIX. "현재 SEQUNECE 대로 값입력 538| MODIFY GT_LOAD. 539| ENDLOOP. 540| 541| DATA : LV_SRBTR LIKE BSEG-WRBTR, 542| LV_HRBTR LIKE BSEG-WRBTR, 543| LV_WRBTR LIKE BSEG-WRBTR, 544| LV_WMWST LIKE BSEG-WMWST. 545| 546| SORT GT_LOAD BY SEQNO SEQNO2. "전표그룹 번호와 엑셀시트 순서대로 소팅 ``` - **EN**: Preserves the original Excel row order in SEQNO2 and sorts by document group and that order so line sequence within a document matches the sheet. - 테이블(파서): read - / write [GT_LOAD](/tables/GT_LOAD.md) - SAP 객체: SEQNO, SEQNO2 - 업무 키워드: 전표그룹, 엑셀순서, 정렬, 라인순서, 업로드 - English: document group, Excel row order, sort, line sequence, upload - 정의부(복사 시 함께 필요): [`GT_LOAD`](#decl-zfic0020top-6-gt_load) - 위치: `abap://ZFIC0020/ZFIC0020F01#L536-L546` · confidence 0.85 · `ZFIC0020#ZFIC0020F01#FORM#MODIFY_DATA#C1` #### [validation] 행마다 전기키 마스터(TBSL)에서 계정유형·차대구분을 읽어 차변·대변 금액을 누적한다. 고객(D)·공급업체(K) 계정이면 세액을 빼고, 그 외 계정은 세액을 더해 합산한다. 전표그룹이 끝나는 지점(AT END OF SEQNO)에서 차변 합계와 대변 합계가 같으면 녹색, 다르면 적색 LED 를 세워 대차 불일치 전표를 업로드 전에 걸러낸다. ```abap 548| LOOP AT GT_LOAD. 549| ALPHA_OUTPUT GT_LOAD-SEQNO GT_LOAD-SEQNO. 550| READ TABLE GT_TBSL WITH KEY BSCHL = GT_LOAD-BSCHL. 551| CHANGE_CURRENCY_SAP GT_LOAD-WRBTR LV_WRBTR C_WAERS. 552| CHANGE_CURRENCY_SAP GT_LOAD-WMWST LV_WMWST C_WAERS. 553| IF GT_TBSL-KOART EQ C_D OR GT_TBSL-KOART EQ C_K. 554| IF GT_TBSL-SHKZG EQ C_S. 555| LV_SRBTR = LV_SRBTR + LV_WRBTR - LV_WMWST. 556| ELSE. 557| LV_HRBTR = LV_HRBTR + LV_WRBTR - LV_WMWST. 558| ENDIF. 559| ELSE. 560| IF GT_TBSL-SHKZG EQ C_S. 561| LV_SRBTR = LV_SRBTR + LV_WRBTR + LV_WMWST. 562| ELSE. 563| LV_HRBTR = LV_HRBTR + LV_WRBTR + LV_WMWST. 564| ENDIF. 565| ENDIF. 566| AT END OF SEQNO. 567| GF_END = C_X. 568| ENDAT. 569| 570| IF GF_END EQ C_X. 571| ALPHA_OUTPUT GT_LOAD-SEQNO GT_LOAD-SEQNO. 572| IF LV_SRBTR EQ LV_HRBTR. 573| GT_LOAD-SICON = ICON_LED_GREEN. 574| ELSE. 575| GT_LOAD-SICON = ICON_LED_RED. 576| ENDIF. 577| GV_DBCNT = GV_DBCNT + 1. 578| CLEAR : LV_SRBTR, LV_HRBTR, GF_END, LV_WRBTR, LV_WMWST. 579| ENDIF. 580| MODIFY GT_LOAD. 581| ENDLOOP. ``` - **EN**: Per row: reads posting-key attributes from TBSL and accumulates debit/credit totals (tax excluded for customer/vendor accounts, included otherwise); at each document-group break, flags balanced documents green and unbalanced ones red. - 테이블(파서): read - / write [GT_LOAD](/tables/GT_LOAD.md) - SAP 객체: TBSL, BSEG, BSCHL, KOART, SHKZG, WRBTR, WMWST - 업무 키워드: 대차검증, 차변, 대변, 전기키, 계정유형, 세액, 전표그룹, 대차일치, 신호등, 업로드검증 - English: balance check, debit, credit, posting key, account type, tax amount, document group, balanced document, upload validation - 정의부(복사 시 함께 필요): [`GT_LOAD`](#decl-zfic0020top-6-gt_load), [`ALPHA_OUTPUT`](#decl-zficom-282-alpha_output), [`GT_TBSL`](#decl-zfic0020top-58-gt_tbsl), [`CHANGE_CURRENCY_SAP`](#decl-zficom-346-change_currency_sap), [`LV_WRBTR`](#decl-zfic0020f01-543-lv_wrbtr), [`C_WAERS`](#decl-zficom-199-c_waers), [`LV_WMWST`](#decl-zfic0020f01-544-lv_wmwst), [`C_D`](#decl-zficom-211-c_d), [`C_K`](#decl-zficom-218-c_k), [`C_S`](#decl-zficom-226-c_s), [`LV_SRBTR`](#decl-zfic0020f01-541-lv_srbtr), [`LV_HRBTR`](#decl-zfic0020f01-542-lv_hrbtr) 외 3건 - 위치: `abap://ZFIC0020/ZFIC0020F01#L548-L581` · confidence 0.87 · `ZFIC0020#ZFIC0020F01#FORM#MODIFY_DATA#C2` ### FORM GET_TBSL — `ZFIC0020F01` L591-L599 (9줄) *전기키 마스터 TBSL 에서 전기키·차대변지시자·계정유형을 읽어 GT_TBSL 에 적재하는 FORM이다.* > 이 unit 의 조각 1개가 6/9줄(67%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다. #### [sql_select] TBSL 에서 전기키(BSCHL), 차/대변 지시자(SHKZG), 계정유형(KOART)을 모두 읽어 GT_TBSL 에 저장해 업로드 항목의 전기키 해석에 사용한다. ```abap 593| SELECT TBSL~BSCHL 594| TBSL~SHKZG 595| TBSL~KOART 596| INTO CORRESPONDING FIELDS OF TABLE GT_TBSL 597| FROM TBSL 598| WHERE BSCHL NE SPACE. ``` - **EN**: Select posting key, debit/credit indicator and account type from TBSL into GT_TBSL for interpreting uploaded posting keys. - 테이블(파서): read [TBSL](/tables/TBSL.md) / write - - SAP 객체: TBSL - 업무 키워드: 전기키, 차대변 지시자, 계정유형, 마스터 조회 - English: posting key, TBSL, debit/credit indicator, account type - 정의부(복사 시 함께 필요): [`GT_TBSL`](#decl-zfic0020top-58-gt_tbsl) - 위치: `abap://ZFIC0020/ZFIC0020F01#L593-L598` · confidence 0.9 · `ZFIC0020#ZFIC0020F01#FORM#GET_TBSL#C1` ### FORM STATUS_BAR — `ZFICOM` L1345-L1366 (22줄) *처리 진행률을 계산해 SAPGUI 상태바에 진행 상황 텍스트를 표시하는 공통 유틸리티다.* > 이 unit 의 조각 1개가 16/22줄(73%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다. #### [fm_call] 텍스트가 없으면 GV_INDEX/GV_TABIN 으로 진행률(%)을 계산해 SAPGUI_PROGRESS_INDICATOR 로 상태바에 처리 진행 상황을 표시한다. ```abap 1350| IF P_TXT EQ SPACE. 1351| GV_INDEX = GV_INDEX + 1. 1352| GV_KBETR = GV_INDEX / GV_TABIN * 100. 1353| CONCATENATE GV_INDEX '/' GV_TABIN '=====>' GV_KBETR '% Processing...' 1354| INTO LV_TEXT SEPARATED BY SPACE. 1355| CONDENSE GV_KBETR. 1356| LV_PCEN = GV_KBETR. 1357| ELSE. 1358| LV_TEXT = P_TXT. 1359| LV_PCEN = P_PCT. 1360| ENDIF. 1361| 1362| CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR' 1363| EXPORTING 1364| PERCENTAGE = LV_PCEN 1365| TEXT = LV_TEXT. ``` - **EN**: Calculates the processing percentage from GV_INDEX/GV_TABIN and shows a progress indicator via SAPGUI_PROGRESS_INDICATOR. - 호출(파서): SAPGUI_PROGRESS_INDICATOR - SAP 객체: SAPGUI_PROGRESS_INDICATOR - 업무 키워드: 진행률, 상태바, 처리건수, 진행표시 - English: Progress Indicator, Status Bar - 정의부(복사 시 함께 필요): [`GV_INDEX`](#decl-zficom-82-gv_index), [`GV_KBETR`](#decl-zficom-83-gv_kbetr), [`GV_TABIN`](#decl-zficom-81-gv_tabin), [`LV_TEXT`](#decl-zficom-1347-lv_text), [`LV_PCEN`](#decl-zficom-1348-lv_pcen) - 위치: `abap://ZFIC0020/ZFICOM#L1350-L1365` · confidence 0.9 · `ZFIC0020#ZFICOM#FORM#STATUS_BAR#C1` ### FORM GET_ZFIT0010 — `ZFIC0020F01` L605-L620 (16줄) *회사코드와 생성일자 범위로 업로드 이력 테이블 ZFIT0010 을 조회해 GT_Z0010 에 적재하고 SEQNO 로 정렬하는 FORM이다.* > 이 unit 의 조각 1개가 12/16줄(75%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다. #### [sql_select] ZFIT0010 에서 회사코드(P_BUKRS)와 생성일자(S_CPUDT) 조건으로 전표 업로드 이력을 읽어 GT_Z0010 에 적재하고, 없으면 메시지 I003 후 종료하며 있으면 건수를 저장하고 SEQNO 로 정렬한다. ```abap 607| SELECT * 608| INTO TABLE GT_Z0010 609| FROM ZFIT0010 610| WHERE BUKRS EQ P_BUKRS 611| AND CPUDT IN S_CPUDT. 612| IF SY-DBCNT EQ 0. 613| MESSAGE I003. 614| LEAVE LIST-PROCESSING. 615| ELSE. 616| GV_DBCNT = SY-DBCNT. 617| ENDIF. 618| SORT GT_Z0010 BY SEQNO. ``` - **EN**: Select upload history from ZFIT0010 by company code and creation date range into GT_Z0010; exit with message I003 if none, else store the count and sort by SEQNO. - 테이블(파서): read [ZFIT0010](/tables/ZFIT0010.md) / write - - SAP 객체: ZFIT0010 - 업무 키워드: 업로드 이력, 로그 조회, 회사코드, 생성일자 - English: upload log, SELECT, history table - 정의부(복사 시 함께 필요): [`ZFIT0010`](#decl-zfic0020top-4-zfit0010), [`GT_Z0010`](#decl-zfic0020top-64-gt_z0010), [`P_BUKRS`](#decl-zfic0020top-98-p_bukrs), [`S_CPUDT`](#decl-zfic0020top-128-s_cpudt), [`GV_DBCNT`](#decl-zficom-68-gv_dbcnt) - 위치: `abap://ZFIC0020/ZFIC0020F01#L607-L618` · confidence 0.95 · `ZFIC0020#ZFIC0020F01#FORM#GET_ZFIT0010#C1` ### EVENT END-OF-SELECTION — `ZFIC0020` L85-L98 (14줄) *END-OF-SELECTION 에서 처리 모드(구조조회/업로드/로그)에 따라 GT_STRUCT·GT_LOAD·GT_Z0010 중 하나를 ALV_DISPLAY 로 출력하는 디스패치 블록이다.* > 이 unit 의 조각 1개가 13/14줄(93%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다. #### [control_flow] 구조조회(P_S)면 GT_STRUCT, 업로드(P_U)면 GT_LOAD(전기 버튼 포함 PF 상태), 로그(P_L)면 ZFIT0010 이력 GT_Z0010 을 ALV_DISPLAY 로 출력하며 조회/로그 모드는 PF 상태·커맨드 핸들러를 비운다. ```abap 86| CASE C_X. 87| * Structure : Layout Display 88| WHEN P_S. 89| CLEAR : GV_PF_STATUS, GV_USER_COMMAND. 90| PERFORM ALV_DISPLAY TABLES GT_STRUCT. 91| * Upload 92| WHEN P_U. 93| PERFORM ALV_DISPLAY TABLES GT_LOAD. 94| * BDC : Log Display 95| WHEN P_L. 96| CLEAR : GV_PF_STATUS, GV_USER_COMMAND. 97| PERFORM ALV_DISPLAY TABLES GT_Z0010. 98| ENDCASE. ``` - **EN**: Depending on the selected mode display the structure table, uploaded documents or ZFIT0010 log via ALV_DISPLAY, clearing custom PF-status/user-command for structure and log modes. - 호출(파서): ALV_DISPLAY, ALV_DISPLAY, ALV_DISPLAY - SAP 객체: ZFIT0010 - 업무 키워드: 처리 모드, 구조 조회, 업로드 결과, 로그 조회, ALV 출력 - English: ALV display, mode dispatch - 정의부(복사 시 함께 필요): [`C_X`](#decl-zficom-231-c_x), [`P_S`](#decl-zfic0020top-115-p_s), [`GV_PF_STATUS`](#decl-zfialv-75-gv_pf_status), [`GV_USER_COMMAND`](#decl-zfialv-76-gv_user_command), [`GT_STRUCT`](#decl-zficom-185-gt_struct), [`P_U`](#decl-zfic0020top-120-p_u), [`GT_LOAD`](#decl-zfic0020top-6-gt_load), [`P_L`](#decl-zfic0020top-122-p_l), [`ZFIT0010`](#decl-zfic0020top-4-zfit0010), [`GT_Z0010`](#decl-zfic0020top-64-gt_z0010) - 위치: `abap://ZFIC0020/ZFIC0020#L86-L98` · confidence 0.8 · `ZFIC0020#ZFIC0020#EVENT#END-OF-SELECTION#C1` ### FORM DATA_BDC — `ZFIC0020F01` L100-L148 (49줄) *BDC 모드를 정하고 GT_LOAD 를 SEQNO 단위로 묶어 전표 헤더/항목을 만들어 BDC 전기한 뒤 결과를 GT_LOAD 에 반영하고 ZFIT0010 이력에 저장하는 핵심 FORM이다.* > 이 unit 의 조각 3개가 41/49줄(84%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다. #### [control_flow] 선택화면 라디오버튼(P_A/P_E/P_N)에 따라 BDC 처리 모드(A 포그라운드/E 오류만/N 백그라운드)를 GV_MODE 에 설정하고 업로드 건수를 저장한다. ```abap 102| CASE C_X. 103| WHEN P_A. 104| GV_MODE = C_A. 105| WHEN P_E. 106| GV_MODE = C_E. 107| WHEN P_N. 108| GV_MODE = C_N. 109| ENDCASE. 110| * Upload number of item save 111| DESCRIBE TABLE GT_LOAD LINES GV_TABIN. ``` - **EN**: Set the BDC processing mode (A/E/N) from the selection radio buttons and record the number of uploaded lines. - 업무 키워드: BDC 모드, 포그라운드, 백그라운드, 오류만 표시 - English: BDC mode, call transaction mode - 정의부(복사 시 함께 필요): [`C_X`](#decl-zficom-231-c_x), [`P_A`](#decl-zfic0020top-108-p_a), [`GV_MODE`](#decl-zficom-174-gv_mode), [`C_A`](#decl-zficom-208-c_a), [`P_E`](#decl-zfic0020top-106-p_e), [`C_E`](#decl-zficom-212-c_e), [`P_N`](#decl-zfic0020top-104-p_n), [`C_N`](#decl-zficom-221-c_n), [`GT_LOAD`](#decl-zfic0020top-6-gt_load), [`GV_TABIN`](#decl-zficom-81-gv_tabin) - 위치: `abap://ZFIC0020/ZFIC0020F01#L102-L111` · confidence 0.85 · `ZFIC0020#ZFIC0020F01#FORM#DATA_BDC#C1` #### [control_flow] GT_LOAD 를 순회하며 SEQNO(그룹핑번호)가 바뀔 때 BBKPF/BBSEG 를 초기화하고 헤더지시자(XHEIN) 행은 MAKE_BKPF 로 헤더를, 각 행은 MAKE_BSEG 로 항목을 만들며 오류 대비용 GT_ERROR 에 복사한 뒤 SEQNO 끝에서 BDC_TRANSACTION_FB01 로 전기하고 전표번호·연도·메시지·아이콘을 GT_LOAD 에 반영한다. ```abap 116| LOOP AT GT_LOAD. 117| MOVE-CORRESPONDING GT_LOAD TO GS_LOAD. 118| AT NEW SEQNO. 119| CLEAR : GT_BBKPF[], GT_BBKPF, GT_BBSEG[], GT_BBSEG, 120| GV_BELNR, GV_GJAHR, GF_END. 121| ENDAT. 122| IF GS_LOAD-XHEIN EQ C_X. 123| * Accounting Document Header 124| PERFORM MAKE_BKPF. 125| ENDIF. 126| 127| MOVE-CORRESPONDING GT_LOAD TO GT_ERROR. 128| APPEND GT_ERROR. 129| * Accounting Document Item 130| PERFORM MAKE_BSEG. 131| * The progress rate 132| PERFORM STATUS_BAR USING 0 SPACE. 133| AT END OF SEQNO. 134| * Document Posting 135| PERFORM BDC_TRANSACTION_FB01. 136| GF_END = C_X. 137| ENDAT. 138| IF GF_END EQ C_X. 139| GT_LOAD-BELNR = GV_BELNR. 140| GT_LOAD-GJAHR = GV_GJAHR. 141| GT_LOAD-MSG = GT_Z0010-NATXT. 142| GT_LOAD-SICON = GT_Z0010-SICON. 143| ENDIF. 144| MODIFY GT_LOAD. 145| ENDLOOP. ``` - **EN**: Loop over GT_LOAD grouped by SEQNO: build BBKPF header on the header-indicator row and BBSEG items per row, keep an error copy, post via BDC_TRANSACTION_FB01 at end of each group and write back document number, year, message and status icon. - 테이블(파서): read - / write [GT_LOAD](/tables/GT_LOAD.md) - 호출(파서): MAKE_BKPF, MAKE_BSEG, STATUS_BAR, BDC_TRANSACTION_FB01 - SAP 객체: BBKPF, BBSEG, FB01 - 업무 키워드: 그룹핑번호, 전표 헤더, 전표 항목, BDC 전기, 전표번호 반영, 오류 항목 - English: control break, BBKPF, BBSEG, document posting, BDC - 정의부(복사 시 함께 필요): [`GT_LOAD`](#decl-zfic0020top-6-gt_load), [`GS_LOAD`](#decl-zfic0020top-66-gs_load), [`GT_BBKPF`](#decl-zficom-108-gt_bbkpf), [`GT_BBSEG`](#decl-zficom-109-gt_bbseg), [`GV_BELNR`](#decl-zficom-104-gv_belnr), [`GV_GJAHR`](#decl-zficom-106-gv_gjahr), [`GF_END`](#decl-zficom-140-gf_end), [`C_X`](#decl-zficom-231-c_x), [`GT_ERROR`](#decl-zfic0020top-68-gt_error), [`ZFIT0010`](#decl-zfic0020top-4-zfit0010), [`GT_Z0010`](#decl-zfic0020top-64-gt_z0010) - 위치: `abap://ZFIC0020/ZFIC0020F01#L116-L145` · confidence 0.95 · `ZFIC0020#ZFIC0020F01#FORM#DATA_BDC#C2` #### [db_write] 전표 업로드 처리 결과(GT_Z0010)를 이력 테이블 ZFIT0010 에 MODIFY 로 저장해 로그 조회에 사용한다. ```abap 147| MODIFY ZFIT0010 FROM TABLE GT_Z0010. ``` - **EN**: Persist the upload processing results to history table ZFIT0010 with MODIFY FROM TABLE. - 테이블(파서): read - / write [ZFIT0010](/tables/ZFIT0010.md) - SAP 객체: ZFIT0010 - 업무 키워드: 업로드 이력 저장, 처리 결과, 로그 테이블 - English: MODIFY, upload history, ZFIT0010 - 정의부(복사 시 함께 필요): [`ZFIT0010`](#decl-zfic0020top-4-zfit0010), [`GT_Z0010`](#decl-zfic0020top-64-gt_z0010) - 위치: `abap://ZFIC0020/ZFIC0020F01#L147-L147` · confidence 0.95 · `ZFIC0020#ZFIC0020F01#FORM#DATA_BDC#C3` ### FORM MAKE_BKPF — `ZFIC0020F01` L223-L244 (22줄) *엑셀 행(GS_LOAD)의 증빙일·전기일·전표유형·회사코드·기간·통화·환율·참조·헤더텍스트를 전표 헤더 구조 GT_BBKPF 에 매핑하고 T-Code(FB01/FBV1)를 정하는 FORM이다.* > 이 unit 의 조각 1개가 20/22줄(91%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다. #### [calculation] 실행 버튼에 따라 BBKPF-TCODE 를 FB01(전기) 또는 FBV1(임시전기)로 정하고 GS_LOAD 의 증빙일(BLDAT)·전기일(BUDAT)·전표유형(BLART)·회사코드·회계기간·통화·환율·환산일·참조번호·헤더텍스트를 GT_BBKPF 에 매핑해 APPEND 한다. ```abap 224| IF GV_UCOMM EQ 'FB01'. 225| GT_BBKPF-TCODE = C_FB01. 226| ELSE. 227| GT_BBKPF-TCODE = C_FBV1. 228| ENDIF. 229| GT_BBKPF-BLDAT = GS_LOAD-BLDAT. "Document Date in Document 230| GT_BBKPF-BUDAT = GS_LOAD-BUDAT. "Posting Date in the Document 231| GT_BBKPF-BLART = GS_LOAD-BLART. "Document type 232| GT_BBKPF-BUKRS = GS_LOAD-BUKRS. "Company Code 233| IF GS_LOAD-MONAT IS NOT INITIAL. 234| GT_BBKPF-MONAT = GS_LOAD-MONAT. "Fiscal period 235| ENDIF. 236| GT_BBKPF-WAERS = GS_LOAD-WAERS. "Currency Key 237| GT_BBKPF-KURSF = GS_LOAD-KURSF. 238| IF GS_LOAD-WWERT IS NOT INITIAL. 239| GT_BBKPF-WWERT = GS_LOAD-WWERT. 240| ENDIF. 241| GT_BBKPF-XBLNR = GS_LOAD-XBLNR. 242| GT_BBKPF-BKTXT = GS_LOAD-BKTXT. "Document Header Text 243| APPEND GT_BBKPF. ``` - **EN**: Set the BBKPF transaction code (FB01 post or FBV1 park) and map document date, posting date, document type, company code, period, currency, exchange rate, reference and header text from the uploaded row into GT_BBKPF. - SAP 객체: BBKPF, FB01, FBV1 - 업무 키워드: 전표 헤더, 증빙일, 전기일, 전표유형, 통화, 환율, 임시전기 - English: BBKPF, document header, posting date, document type, exchange rate, park document - 정의부(복사 시 함께 필요): [`GV_UCOMM`](#decl-zficom-71-gv_ucomm), [`GT_BBKPF`](#decl-zficom-108-gt_bbkpf), [`C_FB01`](#decl-zficom-255-c_fb01), [`C_FBV1`](#decl-zficom-254-c_fbv1), [`GT_LOAD`](#decl-zfic0020top-6-gt_load), [`GS_LOAD`](#decl-zfic0020top-66-gs_load) - 위치: `abap://ZFIC0020/ZFIC0020F01#L224-L243` · confidence 0.95 · `ZFIC0020#ZFIC0020F01#FORM#MAKE_BKPF#C1` ### FORM MAKE_BSEG — `ZFIC0020F01` L250-L301 (52줄) *엑셀 행(GS_LOAD)에서 전기키·계정·금액·세금·원가대상·지급조건 등을 전표 항목 구조 GT_BBSEG 에 매핑해 추가하는 FORM이다.* > 이 unit 의 조각 1개가 50/52줄(96%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다. #### [calculation] GS_LOAD 의 전기키(NEWBS)·계정(NEWKO/HKONT)·특별G/L·금액(WRBTR)·세금(WMWST/FWBAS)·외화 시 현지통화금액(DMBTR/MWSTS/HWBAS)·사업장·세금코드·원가센터·손익센터·WBS·오더·지급조건·참조키·텍스트·거래은행을 BBSEG 항목 구조에 매핑해 GT_BBSEG 에 APPEND 한다. ```abap 251| CLEAR GT_BBSEG. 252| GT_BBSEG-NEWBS = GS_LOAD-BSCHL. "Posting Key 253| GT_BBSEG-NEWKO = GS_LOAD-NEWKO. "Account for the Next Line Item 254| GT_BBSEG-HKONT = GS_LOAD-AKONT. "General Ledger Account 255| GT_BBSEG-NEWUM = GS_LOAD-UMSKZ. "Special G/L Indicator 256| GT_BBSEG-ANBWA = GS_LOAD-ANBWA. 257| GT_BBSEG-WRBTR = GS_LOAD-WRBTR. "Amount in document currency 258| IF GS_LOAD-WMWST IS NOT INITIAL. 259| GT_BBSEG-WMWST = GS_LOAD-WMWST. "Tax amount in document currency 260| GT_BBSEG-FWBAS = GS_LOAD-FWBAS. "Tax amount in document currency 261| ENDIF. 262| IF GS_LOAD-WAERS NE C_WAERS. "외화인 경우 현지통화금액 세팅 263| GT_BBSEG-DMBTR = GS_LOAD-DMBTR. "Amount in local currency 264| GT_BBSEG-MWSTS = GS_LOAD-MWSTS. "Tax Amount in Local Currency 265| GT_BBSEG-HWBAS = GS_LOAD-HWBAS. "Tax amount in document currency 266| ENDIF. 267| GT_BBSEG-BUPLA = GS_LOAD-BUPLA. "Business Place 268| GT_BBSEG-MWSKZ = GS_LOAD-MWSKZ. "Sales Tax Code 269| GT_BBSEG-GSBER = GS_LOAD-GSBER. "Business Area 270| GT_BBSEG-PROJK = GS_LOAD-PROJK. "WBS Element 271| GT_BBSEG-KOSTL = GS_LOAD-KOSTL. "Cost Center 272| GT_BBSEG-PRCTR = GS_LOAD-PRCTR. "Profit Center 273| GT_BBSEG-NPLNR = GS_LOAD-NPLNR. "네트워크 274| GT_BBSEG-VORNR = GS_LOAD-VORNR. "액티비티 번호 275| GT_BBSEG-FISTL = GS_LOAD-FISTL. "자금 관리 센터 276| GT_BBSEG-AUFNR = GS_LOAD-AUFNR. "오더 번호 277| IF GS_LOAD-ZFBDT IS NOT INITIAL. 278| GT_BBSEG-ZFBDT = GS_LOAD-ZFBDT. "만기계산기준일 279| ENDIF. 280| GT_BBSEG-ZTERM = GS_LOAD-ZTERM. "Terms of payment key 281| GT_BBSEG-ZBD1T = GS_LOAD-ZBD1T. "Terms of payment key 282| GT_BBSEG-ZLSCH = GS_LOAD-ZLSCH. "Payment Method 283| * GT_BBSEG-VALUT = GS_LOAD-VALUT. "Value date 284| * GT_BBSEG-WDATE = GS_LOAD-WDATE. "Issue Date 285| * GT_BBSEG-ZLSPR = GS_LOAD-ZLSPR. "Payment Block 286| GT_BBSEG-XREF1 = GS_LOAD-XREF1. "Business partner reference key1 287| GT_BBSEG-XREF2 = GS_LOAD-XREF2. "Business partner reference key2 288| GT_BBSEG-XREF3 = GS_LOAD-XREF3. "Business partner reference key3 289| GT_BBSEG-ZUONR = GS_LOAD-ZUONR. "Assignment number 290| GT_BBSEG-SGTXT = GS_LOAD-SGTXT. "Item Text 291| GT_BBSEG-HBKID = GS_LOAD-HBKID. "House bank 292| GT_BBSEG-HKTID = GS_LOAD-HKTID. "House bank 293| * GT_BBSEG-XMWST = GS_LOAD-XMWST. "Calculate tax automatically 294| * GT_BBSEG-FWBAS = GS_LOAD-FWBAS. "공급가액 295| * GT_BBSEG-HWBAS = GS_LOAD-HWBAS. "Tax Base Amount in Local Currency 296| * GT_BBSEG-PRCTR = GS_LOAD-PRCTR. "Profit Center 297| * GT_BBSEG-BVTYP = GS_LOAD-BVTYP. "Partner bank type 298| * GT_BBSEG-MENGE = GS_LOAD-MENGE. "Quantity 299| * GT_BBSEG-MEINS = GS_LOAD-MEINS. "Base Unit 300| APPEND GT_BBSEG. ``` - **EN**: Map the uploaded row into the BBSEG line-item structure (posting key, account, special G/L, amounts, tax, local-currency amounts for foreign currency, cost objects, payment terms, references, text, house bank) and append it. - SAP 객체: BBSEG - 업무 키워드: 전표 항목, 전기키, G/L 계정, 세금, 외화 현지통화, 원가센터, 손익센터, 지급조건 - English: BBSEG, posting key, G/L account, tax amount, local currency, cost center, profit center, payment terms - 정의부(복사 시 함께 필요): [`GT_BBSEG`](#decl-zficom-109-gt_bbseg), [`GT_LOAD`](#decl-zfic0020top-6-gt_load), [`GS_LOAD`](#decl-zfic0020top-66-gs_load), [`C_WAERS`](#decl-zficom-199-c_waers) - 위치: `abap://ZFIC0020/ZFIC0020F01#L251-L300` · confidence 0.95 · `ZFIC0020#ZFIC0020F01#FORM#MAKE_BSEG#C1` ### FORM BDC_TRANSACTION_FB01 — `ZFIC0020F01` L154-L217 (64줄) *커스텀 FM Z_FI_DOCUMENT_POSTING 으로 전표 헤더/항목(BBKPF/BBSEG)을 BDC 전기하고 결과 전표번호·메시지를 GT_LOAD 아이콘·GT_BDCLOG·ZFIT0010 이력(GT_Z0010)에 기록하는 FORM이다.* > 이 unit 의 조각 2개가 59/64줄(92%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다. #### [fm_call] Z_FI_DOCUMENT_POSTING 을 BDC 모드(GV_MODE)로 호출해 GT_BBKPF/GT_BBSEG 로 회계전표를 전기하고, 전표번호가 생성되면 오류 테이블에서 해당 SEQNO 를 제거하고 녹색 아이콘, 실패면 적색 아이콘을 표시한다. ```abap 157| CALL FUNCTION 'Z_FI_DOCUMENT_POSTING' 158| EXPORTING 159| I_BDC_MODE = GV_MODE 160| I_MESSAGE = SPACE 161| IMPORTING 162| E_BELNR = GV_BELNR 163| E_GJAHR = GV_GJAHR 164| E_BUKRS = GV_BUKRS 165| TABLES 166| T_BBKPF = GT_BBKPF 167| T_BBSEG = GT_BBSEG 168| T_MESSTAB = GT_FIMSG. 169| * When succeed, data in error table is delete 170| IF NOT GV_BELNR IS INITIAL. 171| DELETE GT_ERROR WHERE SEQNO EQ GS_LOAD-SEQNO. 172| GT_LOAD-SICON = ICON_LED_GREEN. 173| ELSE. 174| GT_LOAD-SICON = ICON_LED_RED. 175| ENDIF. ``` - **EN**: Call Z_FI_DOCUMENT_POSTING with BBKPF/BBSEG tables to post the accounting document via BDC; on success remove the item from GT_ERROR and set a green icon, else red. - 호출(파서): Z_FI_DOCUMENT_POSTING - SAP 객체: Z_FI_DOCUMENT_POSTING, BBKPF, BBSEG, FB01 - 업무 키워드: 전표 전기, BDC 전기, 전표번호, 성공/실패 아이콘, 오류 테이블 - English: document posting, BDC, BBKPF, BBSEG, accounting document - 정의부(복사 시 함께 필요): [`GV_MODE`](#decl-zficom-174-gv_mode), [`GV_BELNR`](#decl-zficom-104-gv_belnr), [`GV_GJAHR`](#decl-zficom-106-gv_gjahr), [`GV_BUKRS`](#decl-zficom-105-gv_bukrs), [`GT_BBKPF`](#decl-zficom-108-gt_bbkpf), [`GT_BBSEG`](#decl-zficom-109-gt_bbseg), [`GT_FIMSG`](#decl-zficom-115-gt_fimsg), [`GT_LOAD`](#decl-zfic0020top-6-gt_load), [`GT_ERROR`](#decl-zfic0020top-68-gt_error), [`GS_LOAD`](#decl-zfic0020top-66-gs_load) - 위치: `abap://ZFIC0020/ZFIC0020F01#L157-L175` · confidence 0.95 · `ZFIC0020#ZFIC0020F01#FORM#BDC_TRANSACTION_FB01#C1` #### [aggregation] 처리 결과를 ZFIT0010 이력 구조(GT_Z0010: 처리일시·사용자·파일명·SEQNO·회사코드·전표번호·연도·아이콘)에 채우고, 반환 메시지 GT_FIMSG 를 MESSAGE_TEXT_BUILD 로 텍스트화해 GT_BDCLOG 에 쌓으며 오류 메시지를 이력 텍스트(NATXT)로 남긴다. ```abap 177| GT_BDCLOG-SEQNO = GS_LOAD-SEQNO. 178| GT_Z0010-CPUDT = SY-DATUM. 179| GT_Z0010-CPUTM = SY-UZEIT. 180| GT_Z0010-USNAM = SY-UNAME. 181| GT_Z0010-FILENAME = P_FNAME. 182| ALPHA_INPUT GS_LOAD-SEQNO GS_LOAD-SEQNO. 183| GT_Z0010-SEQNO = GS_LOAD-SEQNO. 184| GT_Z0010-BUKRS = P_BUKRS. 185| GT_Z0010-BELNR = GV_BELNR. 186| GT_Z0010-GJAHR = GV_GJAHR. 187| GT_Z0010-SICON = GT_LOAD-SICON. 188| LOOP AT GT_FIMSG. 189| GT_BDCLOG-TCODE = GV_UCOMM. 190| GT_BDCLOG-PICK = C_X. 191| GT_BDCLOG-MSGTY = GT_FIMSG-MSGTY. 192| GT_BDCLOG-MSGID = GT_FIMSG-MSGID. 193| GT_BDCLOG-MSGNO = GT_FIMSG-MSGNO. 194| GT_BDCLOG-MSGV1 = GT_FIMSG-MSGV1. 195| GT_BDCLOG-MSGV2 = GT_FIMSG-MSGV2. 196| GT_BDCLOG-MSGV3 = GT_FIMSG-MSGV3. 197| GT_BDCLOG-MSGV4 = GT_FIMSG-MSGV4. 198| CALL FUNCTION 'MESSAGE_TEXT_BUILD' 199| EXPORTING 200| MSGID = GT_FIMSG-MSGID 201| MSGNR = GT_FIMSG-MSGNO 202| MSGV1 = GT_FIMSG-MSGV1 203| MSGV2 = GT_FIMSG-MSGV2 204| MSGV3 = GT_FIMSG-MSGV3 205| MSGV4 = GT_FIMSG-MSGV4 206| IMPORTING 207| MESSAGE_TEXT_OUTPUT = GT_BDCLOG-NATXT. 208| APPEND GT_BDCLOG. 209| IF GT_FIMSG-MSGTY EQ C_E. 210| GT_Z0010-NATXT = GT_BDCLOG-NATXT. 211| ENDIF. 212| ENDLOOP. 213| IF GT_Z0010-NATXT IS INITIAL. 214| GT_Z0010-NATXT = GT_BDCLOG-NATXT. 215| ENDIF. 216| APPEND GT_Z0010. ``` - **EN**: Fill the ZFIT0010 history record (timestamp, user, file, sequence, company code, document number, icon) and build readable BDC log messages from GT_FIMSG via MESSAGE_TEXT_BUILD, keeping the error text in NATXT. - 호출(파서): MESSAGE_TEXT_BUILD - SAP 객체: ZFIT0010, MESSAGE_TEXT_BUILD - 업무 키워드: 처리 이력, BDC 로그, 메시지 텍스트, 업로드 결과 - English: upload history, BDC log, MESSAGE_TEXT_BUILD - 정의부(복사 시 함께 필요): [`GT_BDCLOG`](#decl-zfic0020top-70-gt_bdclog), [`GT_LOAD`](#decl-zfic0020top-6-gt_load), [`GS_LOAD`](#decl-zfic0020top-66-gs_load), [`ZFIT0010`](#decl-zfic0020top-4-zfit0010), [`GT_Z0010`](#decl-zfic0020top-64-gt_z0010), [`P_FNAME`](#decl-zfic0020top-99-p_fname), [`ALPHA_INPUT`](#decl-zficom-267-alpha_input), [`P_BUKRS`](#decl-zfic0020top-98-p_bukrs), [`GV_BELNR`](#decl-zficom-104-gv_belnr), [`GV_GJAHR`](#decl-zficom-106-gv_gjahr), [`GT_FIMSG`](#decl-zficom-115-gt_fimsg), [`GV_UCOMM`](#decl-zficom-71-gv_ucomm) 외 2건 - 위치: `abap://ZFIC0020/ZFIC0020F01#L177-L216` · confidence 0.9 · `ZFIC0020#ZFIC0020F01#FORM#BDC_TRANSACTION_FB01#C2` ### FORM DATA_DOWNLOAD — `ZFIC0020F01` L307-L331 (25줄) *오류 발생 항목(GT_ERROR)을 원본 파일명에 접미어를 붙인 파일로 GUI_DOWNLOAD 하는 FORM이다.* > 이 unit 의 조각 1개가 17/25줄(68%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다. #### [fm_call] 업로드 파일명의 확장자 앞에 TEXT-P06 접미어를 끼워 오류 파일명을 만들고 GUI_DOWNLOAD 로 오류 항목 GT_ERROR 를 PC 에 내려받으며 실패 시 시스템 메시지를 낸다. ```abap 314| LV_LEN = STRLEN( P_FNAME ). 315| LV_POS = LV_LEN - 4. 316| 317| CONCATENATE P_FNAME(LV_POS) TEXT-P06 P_FNAME+LV_POS(4) 318| INTO LV_FILENAME. 319| 320| CALL FUNCTION 'GUI_DOWNLOAD' 321| EXPORTING 322| FILENAME = LV_FILENAME 323| * FILETYPE = 'ASC' 324| * CODEPAGE = '8500' 325| TABLES 326| DATA_TAB = GT_ERROR. 327| IF SY-SUBRC NE 0. 328| MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO 329| WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. 330| ENDIF. ``` - **EN**: Build an error file name by inserting a suffix before the extension of the upload file and download GT_ERROR via GUI_DOWNLOAD. - 호출(파서): GUI_DOWNLOAD - SAP 객체: GUI_DOWNLOAD - 업무 키워드: 오류 파일 다운로드, 오류 항목, 파일명 생성 - English: GUI_DOWNLOAD, error file, download - 정의부(복사 시 함께 필요): [`LV_LEN`](#decl-zfic0020f01-311-lv_len), [`P_FNAME`](#decl-zfic0020top-99-p_fname), [`LV_POS`](#decl-zfic0020f01-312-lv_pos), [`LV_FILENAME`](#decl-zfic0020f01-309-lv_filename), [`GT_LOAD`](#decl-zfic0020top-6-gt_load), [`GT_ERROR`](#decl-zfic0020top-68-gt_error) - 위치: `abap://ZFIC0020/ZFIC0020F01#L314-L330` · confidence 0.9 · `ZFIC0020#ZFIC0020F01#FORM#DATA_DOWNLOAD#C1` ### FORM LOG_DISPLAY — `ZFIC0020F01` L337-L345 (9줄) *BDC 처리 로그 GT_BDCLOG 를 ZFIS0040 구조 기반 필드카탈로그(SEQNO·TCODE·T_MSG)로 로그 ALV 에 표시하는 FORM이다.* > 이 unit 의 조각 1개가 5/9줄(56%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다. #### [output] GT_BDCLOG 를 ZFIS0040 컨텍스트로 로그 객체를 만들고 SEQNO·TCODE·메시지 컬럼 필드카탈로그를 정의한 뒤 LOG_ALV_DISPLAY 로 BDC 로그를 출력한다. ```abap 340| PERFORM LOG_CREATE USING GS_BDCLOG 'GT_BDCLOG' LS_CONTEXT 'ZFIS0040'. 341| PERFORM LOG_FIELDCATALOG USING : 'ZFIS0040' 'SEQNO' SPACE, 342| 'ZFIS0040' 'TCODE' SPACE, 343| 'BAL_S_SHOW' 'T_MSG' SPACE. 344| PERFORM LOG_ALV_DISPLAY. ``` - **EN**: Create the log object for GT_BDCLOG with context ZFIS0040, define SEQNO/TCODE/message columns and display the BDC log ALV. - 호출(파서): LOG_CREATE, LOG_FIELDCATALOG, LOG_FIELDCATALOG, LOG_FIELDCATALOG, LOG_ALV_DISPLAY - SAP 객체: ZFIS0040, BAL_S_SHOW - 업무 키워드: BDC 로그, 로그 출력, 메시지 목록 - English: BDC log, application log, ALV - 정의부(복사 시 함께 필요): [`GT_BDCLOG`](#decl-zfic0020top-70-gt_bdclog), [`GS_BDCLOG`](#decl-zfic0020top-86-gs_bdclog), [`LS_CONTEXT`](#decl-zfic0020f01-339-ls_context) - 위치: `abap://ZFIC0020/ZFIC0020F01#L340-L344` · confidence 0.8 · `ZFIC0020#ZFIC0020F01#FORM#LOG_DISPLAY#C1` ### FORM SET_STATUS — `ZFIC0020F01` L462-L469 (8줄) *ALV PF 상태 PF_S1000 을 설정하되 로그 모드(P_L)나 실행 완료 후에는 FB01/FBV1 전기 버튼을 제외하는 FORM이다.* > 이 unit 의 조각 1개가 6/8줄(75%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다. #### [control_flow] 로그 조회 모드(P_L)이거나 이미 전기를 실행(GV_RUN)한 경우 FB01·FBV1 기능코드를 제외 목록에 넣고 PF-STATUS PF_S1000 을 설정해 중복 전기를 막는다. ```abap 463| IF P_L EQ C_X OR GV_RUN EQ C_X. 464| APPEND 'FB01' TO P_EXCL. 465| APPEND 'FBV1' TO P_EXCL. 466| ENDIF. 467| 468| SET PF-STATUS 'PF_S1000' EXCLUDING P_EXCL IMMEDIATELY. ``` - **EN**: Exclude FB01/FBV1 function codes from PF-STATUS PF_S1000 in log mode or after a posting run to prevent duplicate posting. - 업무 키워드: PF 상태, 전기 버튼 제외, 중복 전기 방지, 로그 모드 - English: PF-STATUS, exclude function codes - 정의부(복사 시 함께 필요): [`P_L`](#decl-zfic0020top-122-p_l), [`C_X`](#decl-zficom-231-c_x), [`GV_RUN`](#decl-zfic0020top-88-gv_run) - 위치: `abap://ZFIC0020/ZFIC0020F01#L463-L468` · confidence 0.85 · `ZFIC0020#ZFIC0020F01#FORM#SET_STATUS#C1` ### FORM USER_COMMAND — `ZFIC0020F01` L478-L526 (49줄) *ALV 사용자 명령 핸들러로 전기실행(FB01)/임시전기(FBV1)는 DATA_BDC 로 전표 생성, BLOG 는 BDC 로그 표시, 전표번호 더블클릭은 FB03 조회를 분기한다.* > 이 unit 의 조각 3개가 39/49줄(80%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다. #### [control_flow] 전기실행(FB01) 또는 임시전기(FBV1) 버튼 시 DATA_BDC 로 업로드 전표를 BDC 생성하고 ALV 를 행·열 안정 상태로 갱신하며 실행 완료 플래그(GV_RUN)를 세운다. ```abap 483| WHEN 'FB01'. 484| PERFORM DATA_BDC. 485| * PERFORM LOG_DISPLAY. 486| P_SELFIELD-REFRESH = C_X. 487| P_SELFIELD-COL_STABLE = C_X. 488| P_SELFIELD-ROW_STABLE = C_X. 489| GV_RUN = C_X. 490| * 임시전기실행 491| WHEN 'FBV1'. 492| PERFORM DATA_BDC. 493| * PERFORM LOG_DISPLAY. 494| P_SELFIELD-REFRESH = C_X. 495| P_SELFIELD-COL_STABLE = C_X. 496| P_SELFIELD-ROW_STABLE = C_X. 497| GV_RUN = C_X. ``` - **EN**: On FB01/FBV1 function codes run DATA_BDC to post the uploaded documents via BDC, then refresh the ALV and set the run flag. - 호출(파서): DATA_BDC, DATA_BDC - SAP 객체: FB01, FBV1 - 업무 키워드: 전기 실행, 임시 전기, 전표 생성, BDC 실행, ALV 갱신 - English: document posting, park document, BDC, FB01, FBV1 - 정의부(복사 시 함께 필요): [`C_X`](#decl-zficom-231-c_x), [`GV_RUN`](#decl-zfic0020top-88-gv_run) - 위치: `abap://ZFIC0020/ZFIC0020F01#L483-L497` · confidence 0.9 · `ZFIC0020#ZFIC0020F01#FORM#USER_COMMAND#C1` #### [control_flow] BLOG 버튼 시 GT_BDCLOG 에 로그가 있으면 LOG_DISPLAY 로 BDC 처리 로그를 보여주고 없으면 안내 메시지(I009)를 낸다. ```abap 499| WHEN 'BLOG'. 500| READ TABLE GT_BDCLOG INDEX 1. 501| IF SY-SUBRC EQ 0. 502| PERFORM LOG_DISPLAY. 503| ELSE. 504| MESSAGE I009. 505| ENDIF. ``` - **EN**: Show the BDC processing log via LOG_DISPLAY when entries exist, otherwise issue information message I009. - 호출(파서): LOG_DISPLAY - 업무 키워드: BDC 로그, 로그 조회, 메시지 - English: BDC log, log display - 정의부(복사 시 함께 필요): [`GT_BDCLOG`](#decl-zfic0020top-70-gt_bdclog) - 위치: `abap://ZFIC0020/ZFIC0020F01#L499-L505` · confidence 0.85 · `ZFIC0020#ZFIC0020F01#FORM#USER_COMMAND#C2` #### [control_flow] 더블클릭한 컬럼이 GT_LOAD-BELNR 또는 GT_Z0010-BELNR(ZFIT0010 이력)이면 해당 행의 전표번호·회계연도로 CALL_TRANSACTION_FB03 을 호출해 회계전표를 조회한다. ```abap 507| WHEN '&IC1'. 508| CASE P_SELFIELD-SEL_TAB_FIELD. 509| * Accounting Document Number 510| WHEN 'GT_LOAD-BELNR'. 511| READ TABLE GT_LOAD INDEX P_SELFIELD-TABINDEX. 512| CHECK GT_LOAD-BELNR IS NOT INITIAL. 513| PERFORM CALL_TRANSACTION_FB03 USING P_BUKRS 514| GT_LOAD-BELNR 515| GT_LOAD-GJAHR. 516| * Accounting Document Number 517| WHEN 'GT_Z0010-BELNR'. 518| READ TABLE GT_Z0010 INDEX P_SELFIELD-TABINDEX. 519| CHECK GT_Z0010-BELNR IS NOT INITIAL. 520| PERFORM CALL_TRANSACTION_FB03 USING P_BUKRS 521| GT_Z0010-BELNR 522| GT_Z0010-GJAHR. 523| ENDCASE. ``` - **EN**: On double-click of the document number column read the row and call FB03 (CALL_TRANSACTION_FB03) with company code, document number and fiscal year. - 호출(파서): CALL_TRANSACTION_FB03, CALL_TRANSACTION_FB03 - SAP 객체: FB03, ZFIT0010 - 업무 키워드: 전표 조회, 더블클릭, 전표번호, 회계연도 - English: accounting document display, FB03, hotspot - 정의부(복사 시 함께 필요): [`GT_LOAD`](#decl-zfic0020top-6-gt_load), [`P_BUKRS`](#decl-zfic0020top-98-p_bukrs), [`ZFIT0010`](#decl-zfic0020top-4-zfit0010), [`GT_Z0010`](#decl-zfic0020top-64-gt_z0010) - 위치: `abap://ZFIC0020/ZFIC0020F01#L507-L523` · confidence 0.9 · `ZFIC0020#ZFIC0020F01#FORM#USER_COMMAND#C3` ### FORM CALL_TRANSACTION_FB03 — `ZFICOM` L1328-L1336 (9줄) *회사코드·전표번호·회계연도를 파라미터 ID 로 넘겨 FB03 회계전표 조회 화면을 호출한다.* > 이 unit 의 조각 1개가 5/9줄(56%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다. #### [control_flow] 전표번호가 있으면 SET PARAMETER ID(BLN/BUK/GJR) 로 키를 넘기고 FB03 트랜잭션을 첫 화면 건너뛰기로 호출해 회계전표를 조회한다. ```abap 1331| CHECK P_BELNR IS NOT INITIAL. 1332| SET PARAMETER ID 'BLN' FIELD P_BELNR. 1333| SET PARAMETER ID 'BUK' FIELD P_BUKRS. 1334| SET PARAMETER ID 'GJR' FIELD P_GJAHR. 1335| CALL TRANSACTION 'FB03' AND SKIP FIRST SCREEN. ``` - **EN**: Sets parameter IDs BLN/BUK/GJR and calls transaction FB03 with SKIP FIRST SCREEN to display the accounting document. - 호출(파서): FB03 - SAP 객체: FB03, BKPF - 업무 키워드: 회계전표 조회, 전표번호, 회사코드, 회계연도 - English: Accounting Document, Display Document, FB03 - 정의부(복사 시 함께 필요): [`P_BUKRS`](#decl-zfic0020top-98-p_bukrs) - 위치: `abap://ZFIC0020/ZFICOM#L1331-L1335` · confidence 0.95 · `ZFIC0020#ZFICOM#FORM#CALL_TRANSACTION_FB03#C1` ### FORM NAME_SELECT — `ZFICOM` L378-L387 (10줄) *사용자 ID 로 V_USERNAME 뷰에서 사용자 이름을 조회하는 공통 FORM 이다.* > 이 unit 의 조각 1개가 7/10줄(70%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다. #### [sql_select] V_USERNAME 뷰에서 사용자 ID 의 이름(NAME_TEXT)을 조회하고 이름이 비어 있으면 사용자 ID 를 그대로 돌려준다. ```abap 380| SELECT SINGLE V_USERNAME~NAME_TEXT 381| INTO P_NAMET 382| FROM V_USERNAME 383| WHERE V_USERNAME~BNAME EQ P_UNAME. 384| IF SY-DBCNT GT 0 AND P_NAMET IS INITIAL. 385| P_NAMET = P_UNAME. 386| ENDIF. ``` - **EN**: Reads the user's full name from view V_USERNAME by user ID, falling back to the user ID when the name is empty. - 테이블(파서): read [V_USERNAME](/tables/V_USERNAME.md) / write - - SAP 객체: V_USERNAME, USR21, ADRP - 업무 키워드: 사용자 이름, 사용자 ID, 담당자명 - English: User Name, V_USERNAME, User Master - 선언을 못 찾은 이름: V_USERNAME (수집 안 된 인클루드·함수 인터페이스일 수 있다) - 위치: `abap://ZFIC0020/ZFICOM#L380-L386` · confidence 0.9 · `ZFIC0020#ZFICOM#FORM#NAME_SELECT#C1` ### FORM SELECT_CSKT — `ZFICOM` L397-L408 (12줄) *관리회계영역·코스트센터로 CSKT 에서 유효한 코스트센터명을 조회하는 공통 FORM 이다.* > 이 unit 의 조각 1개가 7/12줄(58%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다. #### [sql_select] CSKT 에서 영어 언어 기준 관리회계영역(KOKRS)·코스트센터(KOSTL)의 현재 유효(DATBI ≥ 오늘)한 명칭 KTEXT 를 단건 조회한다. ```abap 401| SELECT SINGLE CSKT~KTEXT 402| INTO P_KTEXT 403| FROM CSKT 404| WHERE CSKT~SPRAS EQ 'E' "SY-LANGU 405| AND CSKT~KOKRS EQ P_KOKRS 406| AND CSKT~KOSTL EQ P_KOSTL 407| AND CSKT~DATBI GE SY-DATLO. ``` - **EN**: Reads the currently valid cost center name KTEXT from CSKT for the controlling area and cost center (language 'E', DATBI >= today). - 테이블(파서): read [CSKT](/tables/CSKT.md) / write - - SAP 객체: CSKT - 업무 키워드: 코스트센터, 코스트센터명, 관리회계영역, 유효기간 - English: Cost Center, Controlling Area, CSKT - 위치: `abap://ZFIC0020/ZFICOM#L401-L407` · confidence 0.9 · `ZFIC0020#ZFICOM#FORM#SELECT_CSKT#C1` ### FORM SELECT_J_1BBRANCH — `ZFICOM` L419-L428 (10줄) *회사코드·사업장(Business Place)으로 J_1BBRANCH 사업장명을 조회하는 공통 FORM 이다.* > 이 unit 의 조각 1개가 5/10줄(50%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다. #### [sql_select] 회사코드와 사업장 코드로 J_1BBRANCH 에서 사업장명(NAME)을 단건 조회한다. ```abap 423| SELECT SINGLE J_1BBRANCH~NAME 424| INTO P_NAME 425| FROM J_1BBRANCH 426| WHERE J_1BBRANCH~BUKRS EQ P_BUKRS 427| AND J_1BBRANCH~BRANCH EQ P_BRANCH. ``` - **EN**: Reads the business place name from J_1BBRANCH for the company code and branch. - 테이블(파서): read [J_1BBRANCH](/tables/J_1BBRANCH.md) / write - - SAP 객체: J_1BBRANCH - 업무 키워드: 사업장, 사업장명, 회사코드, 세금계산서 - English: Business Place, Branch, Company Code - 정의부(복사 시 함께 필요): [`P_BUKRS`](#decl-zfic0020top-98-p_bukrs) - 선언을 못 찾은 이름: J_1BBRANCH (수집 안 된 인클루드·함수 인터페이스일 수 있다) - 위치: `abap://ZFIC0020/ZFICOM#L423-L427` · confidence 0.9 · `ZFIC0020#ZFICOM#FORM#SELECT_J_1BBRANCH#C1` ### FORM SELECT_SKAT — `ZFICOM` L438-L464 (27줄) *G/L 계정번호로 SKAT 계정과목 텍스트(장문 50/단문 20)를 언어별로 조회하는 공통 FORM 이다.* > 이 unit 의 조각 1개가 21/27줄(78%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다. #### [sql_select] 파라미터 ID ZSP 또는 로그온 언어로 언어를 정한 뒤 텍스트 유형(L/S)에 따라 SKAT 에서 계정과목 장문(TXT50) 또는 단문(TXT20)을 계정표(C_KTOPL) 기준으로 단건 조회한다. ```abap 443| GET PARAMETER ID 'ZSP' FIELD L_LANG. 444| IF L_LANG IS INITIAL. 445| L_LANG = SY-LANGU. 446| ENDIF. 447| * Long text 448| IF P_TYPE EQ C_L. 449| SELECT SINGLE SKAT~TXT50 450| INTO P_TXT20 451| FROM SKAT 452| WHERE SKAT~SPRAS EQ L_LANG 453| AND SKAT~KTOPL EQ C_KTOPL 454| AND SKAT~SAKNR EQ P_SAKNR. 455| * Short text 456| ELSE. 457| SELECT SINGLE SKAT~TXT20 458| INTO P_TXT20 459| FROM SKAT 460| WHERE SKAT~SPRAS EQ L_LANG 461| AND SKAT~KTOPL EQ C_KTOPL 462| AND SKAT~SAKNR EQ P_SAKNR. 463| ENDIF. ``` - **EN**: Determines the language (parameter ZSP or SY-LANGU) and reads the G/L account long text TXT50 or short text TXT20 from SKAT for the chart of accounts. - 테이블(파서): read [SKAT](/tables/SKAT.md) / write - - SAP 객체: SKAT - 업무 키워드: 계정과목 텍스트, G/L 계정, 계정표, 언어 - English: G/L Account, Chart of Accounts, Account Text, SKAT - 정의부(복사 시 함께 필요): [`L_LANG`](#decl-zficom-441-l_lang), [`C_L`](#decl-zficom-219-c_l), [`C_KTOPL`](#decl-zficom-202-c_ktopl) - 위치: `abap://ZFIC0020/ZFICOM#L443-L463` · confidence 0.9 · `ZFIC0020#ZFICOM#FORM#SELECT_SKAT#C1` ### FORM CHECK_CONFIRM_STEP — `ZFICOM` L476-L491 (16줄) *제목·메시지 1줄로 POPUP_TO_CONFIRM_STEP 확인 팝업을 띄우고 응답(GF_ANSWER)을 받는 공통 헬퍼다.* > 이 unit 의 조각 1개가 8/16줄(50%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다. #### [fm_call] POPUP_TO_CONFIRM_STEP 으로 제목·메시지·취소버튼 여부·기본버튼을 지정한 확인 팝업을 띄우고 사용자의 응답을 GF_ANSWER 에 받는다. ```abap 482| CALL FUNCTION 'POPUP_TO_CONFIRM_STEP' 483| EXPORTING 484| DEFAULTOPTION = P_BUTTON 485| TEXTLINE1 = P_MESS1 486| TITEL = P_TITLE 487| CANCEL_DISPLAY = P_CANCEL 488| IMPORTING 489| ANSWER = GF_ANSWER. ``` - **EN**: Shows a confirmation popup via POPUP_TO_CONFIRM_STEP and returns the user's answer in GF_ANSWER. - 호출(파서): POPUP_TO_CONFIRM_STEP - SAP 객체: POPUP_TO_CONFIRM_STEP - 업무 키워드: 확인 팝업, 사용자 확인, 실행 확인 - English: Confirmation Popup, POPUP_TO_CONFIRM_STEP - 정의부(복사 시 함께 필요): [`GF_ANSWER`](#decl-zficom-90-gf_answer) - 위치: `abap://ZFIC0020/ZFICOM#L482-L489` · confidence 0.85 · `ZFIC0020#ZFICOM#FORM#CHECK_CONFIRM_STEP#C1` ### FORM CHECK_CONFIRM_STEP_2 — `ZFICOM` L503-L520 (18줄) *제목·메시지 2줄로 POPUP_TO_CONFIRM_STEP 확인 팝업을 띄우고 응답(GF_ANSWER)을 받는 공통 헬퍼다.* > 이 unit 의 조각 1개가 9/18줄(50%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다. #### [fm_call] POPUP_TO_CONFIRM_STEP 으로 제목·메시지 2줄·취소버튼 여부·기본버튼을 지정한 확인 팝업을 띄우고 사용자의 응답을 GF_ANSWER 에 받는다. ```abap 510| CALL FUNCTION 'POPUP_TO_CONFIRM_STEP' 511| EXPORTING 512| DEFAULTOPTION = P_BUTTON 513| TEXTLINE1 = P_MESS1 514| TEXTLINE2 = P_MESS2 515| TITEL = P_TITLE 516| CANCEL_DISPLAY = P_CANCEL 517| IMPORTING 518| ANSWER = GF_ANSWER. ``` - **EN**: Shows a confirmation popup via POPUP_TO_CONFIRM_STEP with two text lines and returns the user's answer in GF_ANSWER. - 호출(파서): POPUP_TO_CONFIRM_STEP - SAP 객체: POPUP_TO_CONFIRM_STEP - 업무 키워드: 확인 팝업, 사용자 확인, 실행 확인 - English: Confirmation Popup, POPUP_TO_CONFIRM_STEP - 정의부(복사 시 함께 필요): [`GF_ANSWER`](#decl-zficom-90-gf_answer) - 위치: `abap://ZFIC0020/ZFICOM#L510-L518` · confidence 0.85 · `ZFIC0020#ZFICOM#FORM#CHECK_CONFIRM_STEP_2#C1` ### FORM AUTHORITY_BUKRS — `ZFICOM` L528-L536 (9줄) *회사코드에 대한 SAP 표준 권한(F_BKPF_BUK)을 검사하고 권한이 없으면 처리를 중단한다.* > 이 unit 의 조각 1개가 7/9줄(78%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다. #### [validation] 전표 권한 오브젝트 F_BKPF_BUK 로 해당 회사코드 접근 권한을 검사하고, 권한이 없으면 메시지를 띄운 뒤 리스트 처리를 즉시 중단한다. ```abap 529| AUTHORITY-CHECK OBJECT 'F_BKPF_BUK' 530| ID 'BUKRS' FIELD P_BUKRS. 531| IF SY-SUBRC NE 0. 532| MESSAGE I240(FZ) WITH P_BUKRS. 533| GF_CHECK = C_X. 534| LEAVE LIST-PROCESSING. 535| ENDIF. ``` - **EN**: Checks company-code authorization via F_BKPF_BUK and aborts list processing when the user lacks it. - SAP 객체: F_BKPF_BUK, T001, BUKRS - 업무 키워드: 권한체크, 회사코드권한, 권한오브젝트, 접근제어, 처리중단 - English: authority check, company code authorization, F_BKPF_BUK, access control - 정의부(복사 시 함께 필요): [`P_BUKRS`](#decl-zfic0020top-98-p_bukrs), [`GF_CHECK`](#decl-zficom-87-gf_check), [`C_X`](#decl-zficom-231-c_x) - 위치: `abap://ZFIC0020/ZFICOM#L529-L535` · confidence 0.93 · `ZFIC0020#ZFICOM#FORM#AUTHORITY_BUKRS#C1` ### FORM AUTHORITY_PG — `ZFICOM` L545-L563 (19줄) *사용자 ID 로 커스텀 권한테이블 ZFIT0160 을 조회해 프로그램(T-Code)별 실행 권한을 검증하는 공통 FORM 이다.* > 이 unit 의 조각 1개가 16/19줄(84%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다. #### [validation] ZFIT0160 에서 사용자 ID 의 프로그램 권한 행을 조회하고, 미등록이거나 ZFIR0090 권한 플래그가 비어 있으면 '프로그램 권한이 없습니다' 메시지 후 GF_CHECK 를 세우고 처리를 중단한다. ```abap 547| SELECT SINGLE * FROM ZFIT0160 548| WHERE USERID = P_UNAME. 549| 550| IF SY-SUBRC = 0. 551| IF P_TCODE = 'ZFIR0090'. 552| IF ZFIT0160-ZFIR0090 = ''. 553| MESSAGE I000 WITH '프로그램 권한이 없습니다 (ZFIR0160) 미등록'. 554| GF_CHECK = C_X. 555| LEAVE LIST-PROCESSING. 556| ENDIF. 557| ENDIF. 558| ELSE. 559| MESSAGE I000 WITH '프로그램 권한이 없습니다 (ZFIR0160) 미등록'. 560| GF_CHECK = C_X. 561| LEAVE LIST-PROCESSING. 562| ENDIF. ``` - **EN**: Reads the custom program authorization table ZFIT0160 by user ID and stops with an 'no program authorization' message (GF_CHECK = X) when the user is not registered or the ZFIR0090 flag is empty. - 테이블(파서): read [ZFIT0160](/tables/ZFIT0160.md) / write - - SAP 객체: ZFIT0160, ZFIR0090 - 업무 키워드: 프로그램 권한, 권한 체크, 사용자 ID, 권한 테이블 - English: Authorization Check, Custom Authorization Table, User ID - 정의부(복사 시 함께 필요): [`ZFIT0160`](#decl-zficom-45-zfit0160), [`GF_CHECK`](#decl-zficom-87-gf_check), [`C_X`](#decl-zficom-231-c_x) - 위치: `abap://ZFIC0020/ZFICOM#L547-L562` · confidence 0.9 · `ZFIC0020#ZFICOM#FORM#AUTHORITY_PG#C1` ### FORM GET_DOMAIN_VALUE — `ZFICOM` L574-L593 (20줄) *DOMAIN_VALUE_GET 으로 도메인 고정값의 텍스트를 조회하는 공통 헬퍼다.* > 이 unit 의 조각 1개가 14/20줄(70%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다. #### [fm_call] 도메인명·값으로 DOMAIN_VALUE_GET 을 호출해 고정값 텍스트(DDTEXT)를 얻고 미존재 시 시스템 메시지를 표시한다. ```abap 578| CALL FUNCTION 'DOMAIN_VALUE_GET' 579| EXPORTING 580| I_DOMNAME = P_DOMNAME 581| I_DOMVALUE = P_DOMVALUE 582| IMPORTING 583| E_DDTEXT = P_DDTEXT 584| EXCEPTIONS 585| NOT_EXIST = 1 586| OTHERS = 2. 587| 588| IF SY-SUBRC NE 0. 589| MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO 590| WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. 591| ENDIF. ``` - **EN**: Calls DOMAIN_VALUE_GET to get the fixed-value text of a domain value and raises the system message if not found. - 호출(파서): DOMAIN_VALUE_GET - SAP 객체: DOMAIN_VALUE_GET - 업무 키워드: 도메인, 고정값 텍스트, 코드 설명 - English: Domain, Fixed Value, DDTEXT - 위치: `abap://ZFIC0020/ZFICOM#L578-L591` · confidence 0.85 · `ZFIC0020#ZFICOM#FORM#GET_DOMAIN_VALUE#C1` ### FORM CALC_DATE_IN_INTERVAL — `ZFICOM` L606-L623 (18줄) *기준일에 일·월·년을 가감한 날짜를 RP_CALC_DATE_IN_INTERVAL 로 계산하는 공통 헬퍼다.* > 이 unit 의 조각 1개가 9/18줄(50%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다. #### [fm_call] 기준일에 일·월·년 값을 부호(SIGNUM)에 따라 더하거나 빼서 결과 날짜를 RP_CALC_DATE_IN_INTERVAL 로 계산한다. ```abap 613| CALL FUNCTION 'RP_CALC_DATE_IN_INTERVAL' 614| EXPORTING 615| DATE = P_DATE 616| DAYS = P_DAYS 617| MONTHS = P_MONTHS 618| SIGNUM = P_SIGNUM 619| YEARS = P_YEARS 620| IMPORTING 621| CALC_DATE = P_CALC_DATE. ``` - **EN**: Adds or subtracts days/months/years to a base date with RP_CALC_DATE_IN_INTERVAL according to SIGNUM. - 호출(파서): RP_CALC_DATE_IN_INTERVAL - SAP 객체: RP_CALC_DATE_IN_INTERVAL - 업무 키워드: 날짜 계산, 기준일, 일자 가감 - English: Date Calculation, RP_CALC_DATE_IN_INTERVAL - 위치: `abap://ZFIC0020/ZFICOM#L613-L621` · confidence 0.85 · `ZFIC0020#ZFICOM#FORM#CALC_DATE_IN_INTERVAL#C1` ### FORM CALC_BETWEEN_DATES — `ZFICOM` L635-L651 (17줄) *두 날짜 사이의 일·월·년 차이를 HRVE_GET_TIME_BETWEEN_DATES 로 계산하는 공통 헬퍼다.* > 이 unit 의 조각 1개가 8/17줄(47%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다. #### [fm_call] 시작일·종료일을 넘겨 HRVE_GET_TIME_BETWEEN_DATES 로 경과 일수·개월·연수를 계산한다. ```abap 642| CALL FUNCTION 'HRVE_GET_TIME_BETWEEN_DATES' 643| EXPORTING 644| BEG_DATE = P_BDATE 645| END_DATE = P_EDATE 646| IMPORTING 647| DAYS = P_DAYS 648| MONTHS = P_MONTHS 649| YEARS = P_YEARS. ``` - **EN**: Calculates days, months and years between two dates via HRVE_GET_TIME_BETWEEN_DATES. - 호출(파서): HRVE_GET_TIME_BETWEEN_DATES - SAP 객체: HRVE_GET_TIME_BETWEEN_DATES - 업무 키워드: 기간 계산, 일수, 개월수, 경과기간 - English: Date Difference, Period Calculation - 위치: `abap://ZFIC0020/ZFICOM#L642-L649` · confidence 0.85 · `ZFIC0020#ZFICOM#FORM#CALC_BETWEEN_DATES#C1` ### FORM DYNP_VALUES_READ — `ZFICOM` L674-L703 (30줄) *DYNP_VALUES_READ 로 현재 화면 필드의 입력값을 PAI 전에 읽어오는 공통 헬퍼다.* > 이 unit 의 조각 1개가 21/30줄(70%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다. #### [fm_call] 읽을 화면 필드명·STEPL 을 GT_DYNFIELDS 에 담고 DYNP_VALUES_READ 로 현재 프로그램·화면의 필드 값을 읽어 P_VALUE 로 돌려준다. ```abap 682| CLEAR : GT_DYNFIELDS, GT_DYNFIELDS[]. 683| GT_DYNFIELDS-FIELDNAME = P_FNAME. 684| GT_DYNFIELDS-STEPL = P_STEPL. 685| APPEND GT_DYNFIELDS. 686| 687| LV_PROG = SY-CPROG. 688| LV_DNUM = SY-DYNNR. 689| * To read Field Value on screen 690| CALL FUNCTION 'DYNP_VALUES_READ' 691| EXPORTING 692| DYNAME = LV_PROG 693| DYNUMB = LV_DNUM 694| DETERMINE_LOOP_INDEX = C_X 695| TABLES 696| DYNPFIELDS = GT_DYNFIELDS 697| EXCEPTIONS 698| OTHERS = 01. 699| IF SY-SUBRC EQ 0. 700| READ TABLE GT_DYNFIELDS INDEX 1. 701| P_VALUE = GT_DYNFIELDS-FIELDVALUE. 702| ENDIF. ``` - **EN**: Fills GT_DYNFIELDS with the screen field name/STEPL and reads its current value from the active dynpro with DYNP_VALUES_READ. - 호출(파서): DYNP_VALUES_READ - SAP 객체: DYNP_VALUES_READ - 업무 키워드: 화면 필드값 읽기, 다이나프로, 입력값 - English: DYNP_VALUES_READ, Dynpro Field, Screen Value - 정의부(복사 시 함께 필요): [`GT_DYNFIELDS`](#decl-zficom-63-gt_dynfields), [`P_FNAME`](#decl-zfic0020top-99-p_fname), [`LV_PROG`](#decl-zficom-678-lv_prog), [`LV_DNUM`](#decl-zficom-679-lv_dnum), [`C_X`](#decl-zficom-231-c_x) - 위치: `abap://ZFIC0020/ZFICOM#L682-L702` · confidence 0.85 · `ZFIC0020#ZFICOM#FORM#DYNP_VALUES_READ#C1` ### FORM SELECT_T007S — `ZFICOM` L758-L770 (13줄) *세금코드(MWSKZ)의 부가세 텍스트를 T007S 에서 조회하는 공통 FORM 이다.* > 이 unit 의 조각 1개가 9/13줄(69%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다. #### [sql_select] 세금계산절차(KALSM) 기본값을 세팅하고 T007S 에서 영어 언어 기준 세금코드(MWSKZ)의 설명 TEXT1 을 단건 조회한다. ```abap 761| IF GV_KALSM IS INITIAL. 762| GV_KALSM = C_KALSM. 763| ENDIF. 764| SELECT SINGLE T007S~TEXT1 765| INTO P_TEXT1 766| FROM T007S 767| WHERE T007S~SPRAS EQ 'E' " SY-LANGU 768| AND T007S~KALSM EQ GV_KALSM 769| AND T007S~MWSKZ EQ P_MWSKZ. ``` - **EN**: Defaults the tax procedure KALSM and reads the tax code description TEXT1 from T007S (language 'E'). - 테이블(파서): read [T007S](/tables/T007S.md) / write - - SAP 객체: T007S - 업무 키워드: 세금코드, 부가세, 세금계산절차, 텍스트 조회 - English: Tax Code, Tax Procedure, Sales Tax - 정의부(복사 시 함께 필요): [`GV_KALSM`](#decl-zficom-146-gv_kalsm), [`C_KALSM`](#decl-zficom-204-c_kalsm) - 위치: `abap://ZFIC0020/ZFICOM#L761-L769` · confidence 0.9 · `ZFIC0020#ZFICOM#FORM#SELECT_T007S#C1` ### FORM GET_NEXT_NUMBER — `ZFICOM` L781-L819 (39줄) *번호범위 오브젝트에서 다음 일련번호를 받아온다 (CBO 테이블의 키 생성용).* > 이 unit 의 조각 1개가 20/39줄(51%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다. #### [fm_call] 표준 FM NUMBER_GET_NEXT 로 지정한 번호범위·오브젝트·서브오브젝트의 다음 일련번호를 채번하고, 구간 미존재·오버플로 등 예외는 시스템 메시지로 그대로 올린다. ```abap 787| CALL FUNCTION 'NUMBER_GET_NEXT' 788| EXPORTING 789| NR_RANGE_NR = P_NRRNG 790| OBJECT = P_OBJCT 791| SUBOBJECT = P_SBJCT 792| IMPORTING 793| NUMBER = P_NUMBR 794| EXCEPTIONS 795| INTERVAL_NOT_FOUND = 1 796| NUMBER_RANGE_NOT_INTERN = 2 797| OBJECT_NOT_FOUND = 3 798| QUANTITY_IS_0 = 4 799| QUANTITY_IS_NOT_1 = 5 800| INTERVAL_OVERFLOW = 6 801| BUFFER_OVERFLOW = 7 802| OTHERS = 8. 803| IF SY-SUBRC <> 0. 804| MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO 805| WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. 806| ENDIF. ``` - **EN**: Draws the next sequence number from a number-range object via NUMBER_GET_NEXT, surfacing interval/overflow exceptions as system messages. - 호출(파서): NUMBER_GET_NEXT - SAP 객체: NUMBER_GET_NEXT, INRI, NROBJ - 업무 키워드: 번호범위, 채번, 일련번호, 키생성, 번호오브젝트 - English: number range, number assignment, sequence number, NUMBER_GET_NEXT, NROBJ - 위치: `abap://ZFIC0020/ZFICOM#L787-L806` · confidence 0.9 · `ZFIC0020#ZFICOM#FORM#GET_NEXT_NUMBER#C1` ### FORM DATA_UPLOAD — `ZFICOM` L853-L908 (56줄) *파일 확장자(TXT/XLS)에 따라 GUI_UPLOAD 또는 TEXT_CONVERT_XLS_TO_SAP 으로 로컬 파일을 내부테이블로 업로드하는 공통 FORM 이다.* > 이 unit 의 조각 3개가 42/56줄(75%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다. #### [validation] 파일명의 마지막 3자리로 확장자(TXT/XLS)를 판별해 업로드 방식을 결정한다. ```abap 864| LV_LEN = STRLEN( P_FNAME ). 865| LV_POS = LV_LEN - 3. 866| LV_TYPE = P_FNAME+LV_POS(3). 867| TRANSLATE LV_TYPE TO UPPER CASE. ``` - **EN**: Extracts the file extension (last 3 characters) to decide the upload method. - 업무 키워드: 파일 확장자, 업로드 방식, 파일명 - English: File Extension, File Upload - 정의부(복사 시 함께 필요): [`LV_LEN`](#decl-zficom-858-lv_len), [`P_FNAME`](#decl-zfic0020top-99-p_fname), [`LV_POS`](#decl-zficom-859-lv_pos), [`LV_TYPE`](#decl-zficom-860-lv_type) - 위치: `abap://ZFIC0020/ZFICOM#L864-L867` · confidence 0.85 · `ZFIC0020#ZFICOM#FORM#DATA_UPLOAD#C1` #### [fm_call] TXT 파일이면 GUI_UPLOAD(탭 구분자)로 로컬 파일을 T_LOAD 내부테이블로 읽고 실패 시 메시지 I106 후 종료한다. ```abap 869| IF LV_TYPE EQ 'TXT'. 870| CLEAR : T_LOAD[], T_LOAD. 871| LV_FILENAME = P_FNAME. 872| CALL FUNCTION 'GUI_UPLOAD' 873| EXPORTING 874| FILENAME = LV_FILENAME 875| * FILETYPE = 'ASC' 876| * tab 877| HAS_FIELD_SEPARATOR = C_X 878| * CODEPAGE = '8000' 879| TABLES 880| DATA_TAB = T_LOAD. 881| 882| IF SY-SUBRC NE 0. 883| MESSAGE I106. 884| LEAVE LIST-PROCESSING. 885| ENDIF. ``` - **EN**: For TXT files uploads the tab-separated local file into T_LOAD with GUI_UPLOAD and stops with message I106 on failure. - 호출(파서): GUI_UPLOAD - SAP 객체: GUI_UPLOAD - 업무 키워드: 텍스트 파일 업로드, 탭 구분, 로컬 파일 - English: GUI_UPLOAD, Text File, Local File - 정의부(복사 시 함께 필요): [`LV_TYPE`](#decl-zficom-860-lv_type), [`LV_FILENAME`](#decl-zficom-861-lv_filename), [`P_FNAME`](#decl-zfic0020top-99-p_fname), [`C_X`](#decl-zficom-231-c_x) - 위치: `abap://ZFIC0020/ZFICOM#L869-L885` · confidence 0.9 · `ZFIC0020#ZFICOM#FORM#DATA_UPLOAD#C2` #### [fm_call] XLS 파일이면 TEXT_CONVERT_XLS_TO_SAP 으로 엑셀을 T_LOAD 로 변환(헤더행 옵션)하고, 실패·미지원 확장자면 메시지 I006/I007 로 종료한다. ```abap 887| ELSEIF LV_TYPE EQ 'XLS'. 888| CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP' 889| EXPORTING 890| * I_FIELD_SEPERATOR = 891| I_LINE_HEADER = P_HLINE 892| I_TAB_RAW_DATA = LV_RAW_DATA 893| I_FILENAME = P_FNAME 894| TABLES 895| I_TAB_CONVERTED_DATA = T_LOAD 896| EXCEPTIONS 897| CONVERSION_FAILED = 1 898| OTHERS = 2. 899| 900| IF SY-SUBRC NE 0. 901| MESSAGE I006. "업로드 실패!! 담당자에게 문의하세요. 902| LEAVE LIST-PROCESSING. 903| ENDIF. 904| ELSE. 905| MESSAGE I007. "지원하지 않는 확장자입니다. 파일형식을 확인하세요. 906| LEAVE LIST-PROCESSING. 907| ENDIF. ``` - **EN**: For XLS files converts the Excel sheet into T_LOAD with TEXT_CONVERT_XLS_TO_SAP (header line option); unsupported extensions or failures stop with messages I006/I007. - 호출(파서): TEXT_CONVERT_XLS_TO_SAP - SAP 객체: TEXT_CONVERT_XLS_TO_SAP - 업무 키워드: 엑셀 업로드, 헤더행, 파일 변환, 미지원 확장자 - English: Excel Upload, TEXT_CONVERT_XLS_TO_SAP, Conversion - 정의부(복사 시 함께 필요): [`LV_TYPE`](#decl-zficom-860-lv_type), [`LV_RAW_DATA`](#decl-zficom-862-lv_raw_data), [`P_FNAME`](#decl-zfic0020top-99-p_fname) - 위치: `abap://ZFIC0020/ZFICOM#L887-L907` · confidence 0.9 · `ZFIC0020#ZFICOM#FORM#DATA_UPLOAD#C3` ### FORM CONVERT_TO_FOREIGN_CURRENCY — `ZFICOM` L962-L999 (38줄) *현지통화 금액을 환율·기준일로 외화 금액으로 환산하는 공통 FORM 이다.* > 이 unit 의 조각 1개가 32/38줄(84%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다. #### [fm_call] 현지통화 기본값을 설정한 뒤 CONVERT_TO_FOREIGN_CURRENCY 로 현지통화금액(DMBTR)을 환율(KURSF)·기준일 기준 외화금액(WRBTR)으로 환산하고 오류 시 시스템 메시지를 표시한다. ```abap 967| IF T001-WAERS IS INITIAL. 968| T001-WAERS = C_WAERS. 969| ENDIF. 970| CALL FUNCTION 'CONVERT_TO_FOREIGN_CURRENCY' 971| EXPORTING 972| * CLIENT = SY-MANDT 973| DATE = P_DATUM 974| FOREIGN_CURRENCY = P_WAERS 975| LOCAL_AMOUNT = P_DMBTR 976| LOCAL_CURRENCY = T001-WAERS 977| RATE = P_KURSF 978| * TYPE_OF_RATE = 'M' 979| * READ_TCURR = 'X' 980| IMPORTING 981| * EXCHANGE_RATE = 982| FOREIGN_AMOUNT = P_WRBTR 983| * FOREIGN_FACTOR = 984| * LOCAL_FACTOR = 985| * EXCHANGE_RATEX = 986| * DERIVED_RATE_TYPE = 987| * FIXED_RATE = 988| EXCEPTIONS 989| NO_RATE_FOUND = 1 990| OVERFLOW = 2 991| NO_FACTORS_FOUND = 3 992| NO_SPREAD_FOUND = 4 993| DERIVED_2_TIMES = 5 994| OTHERS = 6. 995| IF SY-SUBRC NE 0. 996| MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO 997| WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. 998| ENDIF. ``` - **EN**: Converts the local currency amount (DMBTR) to the foreign currency amount (WRBTR) via CONVERT_TO_FOREIGN_CURRENCY using rate and date, raising the system message on error. - 호출(파서): CONVERT_TO_FOREIGN_CURRENCY - SAP 객체: CONVERT_TO_FOREIGN_CURRENCY, T001, TCURR - 업무 키워드: 환율, 외화 환산, 현지통화, 전표금액 - English: Foreign Currency, Exchange Rate, Currency Conversion - 정의부(복사 시 함께 필요): [`T001`](#decl-zficom-11-t001), [`C_WAERS`](#decl-zficom-199-c_waers) - 위치: `abap://ZFIC0020/ZFICOM#L967-L998` · confidence 0.9 · `ZFIC0020#ZFICOM#FORM#CONVERT_TO_FOREIGN_CURRENCY#C1` ### FORM CONVERT_TO_LOCAL_CURRENCY — `ZFICOM` L1011-L1039 (29줄) *외화 금액을 환율·기준일로 회사코드 현지통화(T001-WAERS) 금액으로 환산하는 공통 FORM 이다.* > 이 unit 의 조각 1개가 23/29줄(79%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다. #### [fm_call] 현지통화가 없으면 기본통화(C_WAERS)를 쓰고 CONVERT_TO_LOCAL_CURRENCY 로 외화금액(WRBTR)·환율(KURSF)·기준일로 현지통화금액(DMBTR)을 계산하며 환율 미존재 등 오류 시 메시지를 띄운다. ```abap 1016| IF T001-WAERS IS INITIAL. 1017| T001-WAERS = C_WAERS. 1018| ENDIF. 1019| CALL FUNCTION 'CONVERT_TO_LOCAL_CURRENCY' 1020| EXPORTING 1021| DATE = P_DATUM 1022| FOREIGN_AMOUNT = P_WRBTR 1023| FOREIGN_CURRENCY = P_WAERS 1024| LOCAL_CURRENCY = T001-WAERS 1025| RATE = P_KURSF 1026| IMPORTING 1027| LOCAL_AMOUNT = P_DMBTR 1028| EXCEPTIONS 1029| NO_RATE_FOUND = 1 1030| OVERFLOW = 2 1031| NO_FACTORS_FOUND = 3 1032| NO_SPREAD_FOUND = 4 1033| DERIVED_2_TIMES = 5 1034| OTHERS = 6. 1035| IF SY-SUBRC NE 0. 1036| MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO 1037| WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. 1038| ENDIF. ``` - **EN**: Converts the foreign amount to local currency amount (DMBTR) with CONVERT_TO_LOCAL_CURRENCY using the rate and date, defaulting the local currency, and raises the system message on error. - 호출(파서): CONVERT_TO_LOCAL_CURRENCY - SAP 객체: CONVERT_TO_LOCAL_CURRENCY, T001, TCURR - 업무 키워드: 환율, 외화 환산, 현지통화, 전표금액 - English: Local Currency, Exchange Rate, Currency Conversion - 정의부(복사 시 함께 필요): [`T001`](#decl-zficom-11-t001), [`C_WAERS`](#decl-zficom-199-c_waers) - 위치: `abap://ZFIC0020/ZFICOM#L1016-L1038` · confidence 0.9 · `ZFIC0020#ZFICOM#FORM#CONVERT_TO_LOCAL_CURRENCY#C1` ### FORM SELECT_USR01 — `ZFICOM` L1084-L1088 (5줄) *사용자명으로 USR01(사용자 마스터 기본값)을 단건 조회하는 공통 FORM 이다.* > 이 unit 의 조각 1개가 3/5줄(60%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다. #### [sql_select] 사용자 ID(P_UNAME)로 USR01 을 단건 조회해 사용자 기본 설정(날짜/숫자 형식 등)을 읽는다. ```abap 1085| SELECT SINGLE * 1086| FROM USR01 1087| WHERE USR01~BNAME EQ P_UNAME. ``` - **EN**: Reads the user master defaults from USR01 for the given user name. - 테이블(파서): read [USR01](/tables/USR01.md) / write - - SAP 객체: USR01 - 업무 키워드: 사용자 마스터, 사용자 기본값, 사용자 ID - English: User Master, USR01 - 정의부(복사 시 함께 필요): [`USR01`](#decl-zficom-41-usr01) - 위치: `abap://ZFIC0020/ZFICOM#L1085-L1087` · confidence 0.85 · `ZFIC0020#ZFICOM#FORM#SELECT_USR01#C1` ### FORM SMARTFORM_CONTROL — `ZFICOM` L1101-L1138 (38줄) *Smartform 이름으로 생성 FM 이름을 구하고 미리보기·다이얼로그·프린터 등 출력 옵션(GS_DEVICE/GS_OPTIONS)을 설정한다.* > 이 unit 의 조각 1개가 29/38줄(76%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다. #### [fm_call] SSF_FUNCTION_MODULE_NAME 으로 Smartform 의 실행 FM 이름(GV_FNAME)을 구한 뒤 미리보기·NO_DIALOG·OTF·프린터(TDDEST)·즉시출력 등 출력 옵션을 GS_DEVICE/GS_OPTIONS 에 설정한다. ```abap 1108| CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME' 1109| EXPORTING 1110| FORMNAME = P_FORMNAME 1111| IMPORTING 1112| FM_NAME = GV_FNAME 1113| EXCEPTIONS 1114| NO_FORM = 1 1115| NO_FUNCTION_MODULE = 2 1116| OTHERS = 3. 1117| 1118| IF SY-SUBRC EQ 0. 1119| * Output option appointment (preview screen exception) 1120| GS_DEVICE-PREVIEW = P_PREVIEW. 1121| GS_DEVICE-NO_DIALOG = P_DIALOG. 1122| GS_DEVICE-GETOTF = P_GETOTF. 1123| GS_DEVICE-LANGU = SY-LANGU. 1124| GS_DEVICE-DEVICE = 'PRINTER'. 1125| GS_DEVICE-NO_OPEN = C_X. 1126| GS_DEVICE-NO_CLOSE = C_X. 1127| GS_OPTIONS-TDDEST = P_TDDEST. 1128| GS_OPTIONS-TDIMMED = C_X. 1129| GS_OPTIONS-TDDELETE = C_X. 1130| GS_OPTIONS-TDNEWID = C_X. 1131| * 미리보기버튼 1132| GS_OPTIONS-TDNOPREV = SPACE. 1133| GS_OPTIONS-TDCOVER = SPACE. "C_S. 1134| GS_OPTIONS-TDNOPRINT = P_TDNOPRINT. 1135| * GS_OPTIONS-TDRECEIVER = SY-UNAME. 1136| ENDIF. ``` - **EN**: Gets the generated function module name of the Smart Form via SSF_FUNCTION_MODULE_NAME and fills control parameters (preview, no dialog, OTF) and output options (TDDEST, immediate print). - 호출(파서): SSF_FUNCTION_MODULE_NAME - SAP 객체: SSF_FUNCTION_MODULE_NAME, SSFCTRLOP, SSFCOMPOP - 업무 키워드: 스마트폼, 출력 옵션, 미리보기, 프린터 - English: Smart Forms, Output Options, Control Parameters, Print Preview - 정의부(복사 시 함께 필요): [`GV_FNAME`](#decl-zficom-98-gv_fname), [`GS_DEVICE`](#decl-zficom-100-gs_device), [`C_X`](#decl-zficom-231-c_x), [`GS_OPTIONS`](#decl-zficom-99-gs_options) - 위치: `abap://ZFIC0020/ZFICOM#L1108-L1136` · confidence 0.9 · `ZFIC0020#ZFICOM#FORM#SMARTFORM_CONTROL#C1` ### FORM SMARTFORM_OPEN — `ZFICOM` L1144-L1156 (13줄) *Smartform 출력 작업을 SSF_OPEN 으로 시작하는 공통 FORM 이다.* > 이 unit 의 조각 1개가 11/13줄(85%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다. #### [fm_call] GS_DEVICE/GS_OPTIONS 의 출력 옵션으로 SSF_OPEN 을 호출해 Smartform 출력 job 을 연다. ```abap 1145| CALL FUNCTION 'SSF_OPEN' 1146| EXPORTING 1147| CONTROL_PARAMETERS = GS_DEVICE 1148| OUTPUT_OPTIONS = GS_OPTIONS 1149| USER_SETTINGS = SPACE 1150| EXCEPTIONS 1151| FORMATTING_ERROR = 1 1152| INTERNAL_ERROR = 2 1153| SEND_ERROR = 3 1154| USER_CANCELED = 4 1155| OTHERS = 5. ``` - **EN**: Opens a Smart Form print job with SSF_OPEN using the control parameters GS_DEVICE and output options GS_OPTIONS. - 호출(파서): SSF_OPEN - SAP 객체: SSF_OPEN - 업무 키워드: 스마트폼, 출력 시작, 양식 출력 - English: Smart Forms, SSF_OPEN, Output Options - 정의부(복사 시 함께 필요): [`GS_DEVICE`](#decl-zficom-100-gs_device), [`GS_OPTIONS`](#decl-zficom-99-gs_options) - 위치: `abap://ZFIC0020/ZFICOM#L1145-L1155` · confidence 0.85 · `ZFIC0020#ZFICOM#FORM#SMARTFORM_OPEN#C1` ### FORM SMARTFORM_CLOSE — `ZFICOM` L1162-L1175 (14줄) *Smartform 출력 작업을 SSF_CLOSE 로 종료하고 JOB_OUTPUT_INFO 를 받아오는 공통 FORM 이다.* > 이 unit 의 조각 1개가 12/14줄(86%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다. #### [fm_call] SSF_CLOSE 로 Smartform 출력 job 을 닫고 출력 결과(GS_JOB_OUTPUT_INFO)를 받으며 오류 시 시스템 메시지를 표시한다. ```abap 1163| CALL FUNCTION 'SSF_CLOSE' 1164| IMPORTING 1165| JOB_OUTPUT_INFO = GS_JOB_OUTPUT_INFO 1166| EXCEPTIONS 1167| FORMATTING_ERROR = 1 1168| INTERNAL_ERROR = 2 1169| SEND_ERROR = 3 1170| OTHERS = 4. 1171| IF SY-SUBRC NE 0. 1172| MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO 1173| WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. 1174| ENDIF. ``` - **EN**: Closes the Smart Form print job with SSF_CLOSE, retrieves JOB_OUTPUT_INFO and raises the system message on error. - 호출(파서): SSF_CLOSE - SAP 객체: SSF_CLOSE - 업무 키워드: 스마트폼, 출력 종료, 양식 출력 - English: Smart Forms, SSF_CLOSE, Print Job - 정의부(복사 시 함께 필요): [`GS_JOB_OUTPUT_INFO`](#decl-zficom-102-gs_job_output_info) - 위치: `abap://ZFIC0020/ZFICOM#L1163-L1174` · confidence 0.85 · `ZFIC0020#ZFICOM#FORM#SMARTFORM_CLOSE#C1` ### FORM DYNPRO — `ZFICOM` L1240-L1251 (12줄) *BDC 화면 시작 또는 필드값 한 줄을 GT_BDC(BDCDATA) 에 추가하는 공통 BDC 빌더 헬퍼다.* > 이 unit 의 조각 1개가 9/12줄(75%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다. #### [interface] P_DYN 이 X 면 모듈풀·화면번호로 BDC 화면 시작 행을, 아니면 필드명·값 행을 GT_BDC(BDCDATA)에 추가한다. ```abap 1242| IF P_DYN EQ C_X. 1243| MOVE : P_NAME TO GT_BDC-PROGRAM, "BDC module pool 1244| P_VALUE TO GT_BDC-DYNPRO, "Screen Number 1245| P_DYN TO GT_BDC-DYNBEGIN. "BDC screen start 1246| ELSE. 1247| MOVE : P_NAME TO GT_BDC-FNAM, "Field Name 1248| P_VALUE TO GT_BDC-FVAL. "BDC field value 1249| ENDIF. 1250| APPEND GT_BDC. ``` - **EN**: Appends either a screen-start row (program, dynpro, DYNBEGIN) or a field/value row to GT_BDC (BDCDATA). - SAP 객체: BDCDATA - 업무 키워드: BDC 데이터, 화면 번호, 필드값, 배치인풋 - English: BDCDATA, Batch Input, Dynpro - 정의부(복사 시 함께 필요): [`C_X`](#decl-zficom-231-c_x), [`GT_BDC`](#decl-zficom-168-gt_bdc) - 위치: `abap://ZFIC0020/ZFICOM#L1242-L1250` · confidence 0.9 · `ZFIC0020#ZFICOM#FORM#DYNPRO#C1` ### FORM BDC_TRANSACTION — `ZFICOM` L1259-L1266 (8줄) *GT_BDC 데이터로 지정 T-Code 를 CALL TRANSACTION 하고 결과 메시지를 GT_MESS 에 받는 공통 BDC 실행 FORM 이다.* > 이 unit 의 조각 1개가 6/8줄(75%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다. #### [interface] BDC 실행 옵션(표시모드 GV_MODE, 갱신모드 A)을 CTU_PARAMS 에 설정하고 GT_BDC 로 P_TCODE 트랜잭션을 CALL TRANSACTION 해 결과 메시지를 GT_MESS 에 수집한다. ```abap 1260| CTU_PARAMS-DISMODE = GV_MODE. 1261| CTU_PARAMS-UPDMODE = C_A. 1262| * CTU_PARAMS-NOBINPT = C_X. 1263| * CTU_PARAMS-RACOMMIT = C_X. 1264| CALL TRANSACTION P_TCODE USING GT_BDC OPTIONS FROM CTU_PARAMS 1265| MESSAGES INTO GT_MESS. ``` - **EN**: Sets CTU_PARAMS (display mode GV_MODE, sync update) and runs CALL TRANSACTION for P_TCODE with GT_BDC, collecting messages into GT_MESS. - 호출(파서): P_TCODE - SAP 객체: BDCDATA, BDCMSGCOLL, CTU_PARAMS - 업무 키워드: BDC 실행, 트랜잭션 호출, 처리 메시지, 표시모드 - English: Call Transaction, BDC, CTU_PARAMS - 정의부(복사 시 함께 필요): [`CTU_PARAMS`](#decl-zficom-48-ctu_params), [`GV_MODE`](#decl-zficom-174-gv_mode), [`C_A`](#decl-zficom-208-c_a), [`GT_BDC`](#decl-zficom-168-gt_bdc), [`GT_MESS`](#decl-zficom-172-gt_mess) - 위치: `abap://ZFIC0020/ZFICOM#L1260-L1265` · confidence 0.9 · `ZFIC0020#ZFICOM#FORM#BDC_TRANSACTION#C1` ### FORM MESSAGE_SELECT — `ZFICOM` L1274-L1285 (12줄) *BDC 메시지(GT_MESS)의 ID·번호·변수를 MESSAGE_TEXT_BUILD 로 메시지 텍스트로 조립하는 공통 헬퍼다.* > 이 unit 의 조각 1개가 10/12줄(83%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다. #### [fm_call] BDC 결과 메시지(GT_MESS)의 MSGID·MSGNR·MSGV1~4 를 MESSAGE_TEXT_BUILD 로 읽을 수 있는 메시지 텍스트로 만들어 로그 필드에 돌려준다. ```abap 1275| CALL FUNCTION 'MESSAGE_TEXT_BUILD' 1276| EXPORTING 1277| MSGID = GT_MESS-MSGID 1278| MSGNR = GT_MESS-MSGNR 1279| MSGV1 = GT_MESS-MSGV1 1280| MSGV2 = GT_MESS-MSGV2 1281| MSGV3 = GT_MESS-MSGV3 1282| MSGV4 = GT_MESS-MSGV4 1283| IMPORTING 1284| MESSAGE_TEXT_OUTPUT = P_NATXT. ``` - **EN**: Builds the readable message text from the BDC message fields (MSGID, MSGNR, MSGV1-4) in GT_MESS using MESSAGE_TEXT_BUILD. - 호출(파서): MESSAGE_TEXT_BUILD - SAP 객체: MESSAGE_TEXT_BUILD, BDCMSGCOLL - 업무 키워드: BDC 메시지, 메시지 텍스트, 처리 로그 - English: BDC Message, MESSAGE_TEXT_BUILD, Message Log - 정의부(복사 시 함께 필요): [`GT_MESS`](#decl-zficom-172-gt_mess) - 위치: `abap://ZFIC0020/ZFICOM#L1275-L1284` · confidence 0.9 · `ZFIC0020#ZFICOM#FORM#MESSAGE_SELECT#C1` ### FORM BDC_FK03 — `ZFICOM` L1294-L1318 (25줄) *구매처코드와 회사코드로 FK03 구매처 마스터 조회 화면을 BDC 로 호출한다.* > 이 unit 의 조각 1개가 18/25줄(72%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다. #### [interface] SAPMF02K 0106 화면에 구매처·회사코드와 조회 뷰 플래그를 BDC 로 채우고 CALL TRANSACTION FK03 으로 구매처 마스터를 표시한다. ```abap 1299| PERFORM DYNPRO USING : 1300| 'X' 'SAPMF02K' '0106', 1301| ' ' 'BDC_OKCODE' '/00', 1302| ' ' 'RF02K-LIFNR' P_LIFNR, 1303| ' ' 'RF02K-BUKRS' P_BUKRS, 1304| ' ' 'RF02K-D0110' C_X, 1305| ' ' 'RF02K-D0120' C_X, 1306| ' ' 'RF02K-D0130' C_X, 1307| ' ' 'RF02K-D0210' C_X, 1308| ' ' 'RF02K-D0215' C_X, 1309| ' ' 'RF02K-D0215' C_X, 1310| ' ' 'RF02K-D0610' C_X. 1311| 1312| CTU_PARAMS-DISMODE = C_E. 1313| CTU_PARAMS-UPDMODE = C_A. 1314| CTU_PARAMS-NOBINPT = C_X. 1315| CTU_PARAMS-RACOMMIT = C_X. 1316| CALL TRANSACTION 'FK03' USING GT_BDC OPTIONS FROM CTU_PARAMS. ``` - **EN**: Builds BDC data for screen SAPMF02K 0106 (vendor, company code, view flags) and calls transaction FK03 to display the vendor master. - 호출(파서): DYNPRO, DYNPRO, DYNPRO, DYNPRO, DYNPRO, DYNPRO, DYNPRO, DYNPRO, DYNPRO, DYNPRO, DYNPRO, FK03 - SAP 객체: FK03, SAPMF02K, LFA1 - 업무 키워드: 구매처 조회, 구매처 마스터, BDC, 회사코드 - English: Vendor Master, BDC, Call Transaction - 정의부(복사 시 함께 필요): [`P_BUKRS`](#decl-zfic0020top-98-p_bukrs), [`C_X`](#decl-zficom-231-c_x), [`CTU_PARAMS`](#decl-zficom-48-ctu_params), [`C_E`](#decl-zficom-212-c_e), [`C_A`](#decl-zficom-208-c_a), [`GT_BDC`](#decl-zficom-168-gt_bdc) - 위치: `abap://ZFIC0020/ZFICOM#L1299-L1316` · confidence 0.9 · `ZFIC0020#ZFICOM#FORM#BDC_FK03#C1` ## 정의부 (306건) 로직 조각을 다른 프로그램으로 옮겨 붙일 때 **함께 가야 하는 선언**이다. 조각별로 무엇이 필요한지는 위 조각 항목의 `정의부` 줄에 있고(이름을 누르면 여기로 온다), 붙여넣기용으로 의존까지 묶은 코드는 `GET /chunks/` 의 `declaration_code` 로 받는다. ### `ZFIALV` (76건) #### SLIS — type-pool · L7-L7 {#decl-zfialv-7-slis} ```abap TYPE-POOLS : SLIS. ``` #### LCL_EVENT_RECEIVER — class · L10-L20 {#decl-zfialv-10-lcl_event_receiver} ```abap CLASS LCL_EVENT_RECEIVER DEFINITION. PUBLIC SECTION. METHODS : HANDLE_CLOSE FOR EVENT CLOSE OF CL_GUI_DIALOGBOX_CONTAINER IMPORTING SENDER. PRIVATE SECTION. * 'X': does exist, SPACE: does not ex. DATA : DIALOGBOX_STATUS TYPE C. ENDCLASS. "lcl_event_receiver DEFINITION ``` #### GT_FIELDCAT — data · L37-L37 {#decl-zfialv-37-gt_fieldcat} ```abap DATA : GT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV. " WA ``` #### GT_FIELDCAT_HEAD — data · L38-L38 {#decl-zfialv-38-gt_fieldcat_head} ```abap DATA: GT_FIELDCAT_HEAD TYPE SLIS_T_FIELDCAT_ALV. " HEAD ``` #### GT_FIELDCAT_ITEM — data · L39-L39 {#decl-zfialv-39-gt_fieldcat_item} ```abap DATA: GT_FIELDCAT_ITEM TYPE SLIS_T_FIELDCAT_ALV. " ITEM ``` #### GT_FIELDCAT_FIELD — data · L40-L40 {#decl-zfialv-40-gt_fieldcat_field} ```abap DATA: GT_FIELDCAT_FIELD TYPE SLIS_T_FIELDCAT_ALV. ``` #### GT_DROP — data · L41-L41 {#decl-zfialv-41-gt_drop} ```abap DATA: GT_DROP TYPE LVC_T_DROP. " Drop-down ``` #### GT_DRAL — data · L42-L42 {#decl-zfialv-42-gt_dral} ```abap DATA: GT_DRAL TYPE LVC_T_DRAL. ``` #### GT_SORTINFO — data · L43-L43 {#decl-zfialv-43-gt_sortinfo} ```abap DATA: GT_SORTINFO TYPE SLIS_T_SORTINFO_ALV. " SORT ``` #### GT_EVENT — data · L44-L44 {#decl-zfialv-44-gt_event} ```abap DATA: GT_EVENT TYPE SLIS_T_EVENT. " EVENT ``` #### GT_PRINT — data · L45-L45 {#decl-zfialv-45-gt_print} ```abap DATA: GT_PRINT TYPE SLIS_PRINT_ALV. " PRINT ``` #### GT_LISTHEADER — data · L46-L46 {#decl-zfialv-46-gt_listheader} ```abap DATA: GT_LISTHEADER TYPE SLIS_T_LISTHEADER. " TITLE ``` #### GT_CELLTAB — data · L47-L47 {#decl-zfialv-47-gt_celltab} ```abap DATA: GT_CELLTAB TYPE LVC_T_STYL. ``` #### GT_COLOR — data · L48-L48 {#decl-zfialv-48-gt_color} ```abap DATA: GT_COLOR TYPE LVC_T_SCOL. ``` #### GT_COLINFO — data · L49-L49 {#decl-zfialv-49-gt_colinfo} ```abap DATA: GT_COLINFO TYPE SLIS_T_SPECIALCOL_ALV WITH HEADER LINE. ``` #### GS_FIELDCAT_HEAD — data · L51-L51 {#decl-zfialv-51-gs_fieldcat_head} ```abap DATA : GS_FIELDCAT_HEAD TYPE SLIS_FIELDCAT_ALV. " HEAD ``` #### GS_FIELDCAT_ITEM — data · L52-L52 {#decl-zfialv-52-gs_fieldcat_item} ```abap DATA: GS_FIELDCAT_ITEM TYPE SLIS_FIELDCAT_ALV. " ITEM ``` #### GS_DROP — data · L53-L53 {#decl-zfialv-53-gs_drop} ```abap DATA: GS_DROP TYPE LVC_S_DROP. " Drop-down ``` #### GS_DRAL — data · L54-L54 {#decl-zfialv-54-gs_dral} ```abap DATA: GS_DRAL TYPE LVC_S_DRAL. ``` #### GS_SORTINFO — data · L55-L55 {#decl-zfialv-55-gs_sortinfo} ```abap DATA: GS_SORTINFO TYPE SLIS_SORTINFO_ALV. " SORT ``` #### GS_EVENT — data · L56-L56 {#decl-zfialv-56-gs_event} ```abap DATA: GS_EVENT LIKE LINE OF GT_EVENT. " EVENT ``` #### GS_VARIANT — data · L57-L57 {#decl-zfialv-57-gs_variant} ```abap DATA: GS_VARIANT LIKE DISVARIANT. " Layout ``` #### GS_DEF_VARIANT — data · L58-L58 {#decl-zfialv-58-gs_def_variant} ```abap DATA: GS_DEF_VARIANT LIKE DISVARIANT. " Default Layout ``` #### GS_LAYOUT — data · L59-L59 {#decl-zfialv-59-gs_layout} ```abap DATA: GS_LAYOUT TYPE SLIS_LAYOUT_ALV. " Layout ``` #### GS_EXIT_BY_USER — data · L60-L60 {#decl-zfialv-60-gs_exit_by_user} ```abap DATA: GS_EXIT_BY_USER TYPE SLIS_EXIT_BY_USER. ``` #### GS_LISTHEADER — data · L61-L61 {#decl-zfialv-61-gs_listheader} ```abap DATA: GS_LISTHEADER TYPE SLIS_LISTHEADER. " TITLE ``` #### GS_KEYINFO — data · L62-L62 {#decl-zfialv-62-gs_keyinfo} ```abap DATA: GS_KEYINFO TYPE SLIS_KEYINFO_ALV. ``` #### GS_CELLTAB — data · L63-L63 {#decl-zfialv-63-gs_celltab} ```abap DATA: GS_CELLTAB TYPE LVC_S_STYL. ``` #### GS_COLOR — data · L64-L64 {#decl-zfialv-64-gs_color} ```abap DATA: GS_COLOR TYPE LVC_S_SCOL. ``` #### GS_GRIDSET — data · L65-L65 {#decl-zfialv-65-gs_gridset} ```abap DATA: GS_GRIDSET TYPE LVC_S_GLAY. " GRID SETTING ``` #### GV_REPID — data · L67-L67 {#decl-zfialv-67-gv_repid} ```abap DATA : GV_REPID TYPE SY-REPID. " Program-ID. ``` #### GV_PROGRAM — data · L68-L68 {#decl-zfialv-68-gv_program} ```abap DATA: GV_PROGRAM LIKE SY-REPID. " Program-ID ``` #### GV_INCLNAME — data · L69-L69 {#decl-zfialv-69-gv_inclname} ```abap DATA: GV_INCLNAME LIKE SY-REPID. ``` #### GV_GRID_TITLE — data · L70-L70 {#decl-zfialv-70-gv_grid_title} ```abap DATA: GV_GRID_TITLE TYPE LVC_TITLE. " GRID TITLE ``` #### GV_VARIANT_EXIT — data · L71-L71 {#decl-zfialv-71-gv_variant_exit} ```abap DATA: GV_VARIANT_EXIT(1) TYPE C. ``` #### GV_SAVE — data · L72-L72 {#decl-zfialv-72-gv_save} ```abap DATA: GV_SAVE(1) TYPE C. ``` #### GV_TABNAME_HEAD — data · L73-L73 {#decl-zfialv-73-gv_tabname_head} ```abap DATA: GV_TABNAME_HEAD TYPE SLIS_TABNAME. ``` #### GV_TABNAME_ITEM — data · L74-L74 {#decl-zfialv-74-gv_tabname_item} ```abap DATA: GV_TABNAME_ITEM TYPE SLIS_TABNAME. ``` #### GV_PF_STATUS — data · L75-L75 {#decl-zfialv-75-gv_pf_status} ```abap DATA: GV_PF_STATUS TYPE SLIS_FORMNAME VALUE 'SET_STATUS'. ``` #### GV_USER_COMMAND — data · L76-L76 {#decl-zfialv-76-gv_user_command} ```abap DATA: GV_USER_COMMAND TYPE SLIS_FORMNAME VALUE 'USER_COMMAND'. ``` #### GV_DATA_CHANGED — data · L77-L77 {#decl-zfialv-77-gv_data_changed} ```abap DATA: GV_DATA_CHANGED TYPE SLIS_FORMNAME VALUE 'ALV_DATA_CHANGED'. ``` #### GV_TOP_OF_PAGE — data · L78-L78 {#decl-zfialv-78-gv_top_of_page} ```abap DATA: GV_TOP_OF_PAGE TYPE SLIS_FORMNAME. ``` #### GV_F2CODE — data · L79-L79 {#decl-zfialv-79-gv_f2code} ```abap DATA: GV_F2CODE LIKE SY-UCOMM VALUE 'PICK'. ``` #### GT_FCAT_HEAD — data · L81-L81 {#decl-zfialv-81-gt_fcat_head} ```abap DATA : GT_FCAT_HEAD TYPE LVC_T_FCAT. ``` #### GT_FCAT_ITEM — data · L82-L82 {#decl-zfialv-82-gt_fcat_item} ```abap DATA: GT_FCAT_ITEM TYPE LVC_T_FCAT. ``` #### GS_FCAT_HEAD — data · L83-L83 {#decl-zfialv-83-gs_fcat_head} ```abap DATA: GS_FCAT_HEAD TYPE LVC_S_FCAT. ``` #### GS_FCAT_ITEM — data · L84-L84 {#decl-zfialv-84-gs_fcat_item} ```abap DATA: GS_FCAT_ITEM TYPE LVC_S_FCAT. ``` #### GS_LAYOUT_ON — data · L85-L85 {#decl-zfialv-85-gs_layout_on} ```abap DATA: GS_LAYOUT_ON TYPE LVC_S_LAYO. " ALV_LAYOUT ``` #### GT_SORT — data · L86-L86 {#decl-zfialv-86-gt_sort} ```abap DATA: GT_SORT TYPE LVC_T_SORT. " Sort ``` #### GS_SORT — data · L87-L87 {#decl-zfialv-87-gs_sort} ```abap DATA: GS_SORT TYPE LVC_S_SORT. " Sort ``` #### GT_F4 — data · L88-L88 {#decl-zfialv-88-gt_f4} ```abap DATA: GT_F4 TYPE LVC_T_F4. ``` #### GS_F4 — data · L89-L89 {#decl-zfialv-89-gs_f4} ```abap DATA: GS_F4 TYPE LVC_S_F4. " F4 ``` #### GS_ROW_ID — data · L90-L90 {#decl-zfialv-90-gs_row_id} ```abap DATA: GS_ROW_ID TYPE LVC_S_ROW. " Cursor ``` #### GS_COLUMN_ID — data · L91-L91 {#decl-zfialv-91-gs_column_id} ```abap DATA: GS_COLUMN_ID TYPE LVC_S_COL. ``` #### GT_EXCLUDING — data · L93-L93 {#decl-zfialv-93-gt_excluding} ```abap DATA : GT_EXCLUDING TYPE SLIS_T_EXTAB. ``` #### GT_EVENT_EXIT — data · L94-L94 {#decl-zfialv-94-gt_event_exit} ```abap DATA: GT_EVENT_EXIT TYPE SLIS_T_EVENT_EXIT. ``` #### GV_TOOLBAR — data · L96-L96 {#decl-zfialv-96-gv_toolbar} ```abap DATA : GV_TOOLBAR TYPE REF TO CL_GUI_TOOLBAR. ``` #### GV_TOP_NODE — data · L97-L97 {#decl-zfialv-97-gv_top_node} ```abap DATA: GV_TOP_NODE TYPE LVC_NKEY. ``` #### GV_ALV_TREE — data · L98-L98 {#decl-zfialv-98-gv_alv_tree} ```abap DATA: GV_ALV_TREE TYPE REF TO CL_GUI_ALV_TREE. ``` #### GV_ALV_ITEM — data · L99-L99 {#decl-zfialv-99-gv_alv_item} ```abap DATA: GV_ALV_ITEM TYPE REF TO CL_GUI_ALV_GRID. ``` #### GT_ROW — data · L100-L100 {#decl-zfialv-100-gt_row} ```abap DATA: GT_ROW TYPE LVC_T_ROW. " SELLECTION INDEX ``` #### GT_ROID — data · L101-L101 {#decl-zfialv-101-gt_roid} ```abap DATA: GT_ROID TYPE LVC_T_ROID. ``` #### GT_EXCLUDE — data · L102-L102 {#decl-zfialv-102-gt_exclude} ```abap DATA: GT_EXCLUDE TYPE UI_FUNCTIONS. ``` #### GS_EXCLUDE — data · L103-L103 {#decl-zfialv-103-gs_exclude} ```abap DATA: GS_EXCLUDE TYPE UI_FUNC. ``` #### DC_GRID — data · L105-L105 {#decl-zfialv-105-dc_grid} ```abap DATA : DC_GRID TYPE REF TO CL_GUI_DOCKING_CONTAINER. ``` #### CC_GRID — data · L106-L106 {#decl-zfialv-106-cc_grid} ```abap DATA: CC_GRID TYPE REF TO CL_GUI_CUSTOM_CONTAINER. ``` #### CC_GRID2 — data · L107-L107 {#decl-zfialv-107-cc_grid2} ```abap DATA: CC_GRID2 TYPE REF TO CL_GUI_CUSTOM_CONTAINER. ``` #### CC_DIALOG — data · L108-L108 {#decl-zfialv-108-cc_dialog} ```abap DATA: CC_DIALOG TYPE REF TO CL_GUI_DIALOGBOX_CONTAINER. ``` #### GV_EVENT_RECEIVER — data · L109-L109 {#decl-zfialv-109-gv_event_receiver} ```abap DATA: GV_EVENT_RECEIVER TYPE REF TO LCL_EVENT_RECEIVER. ``` #### GT_UCOMM — data · L111-L111 {#decl-zfialv-111-gt_ucomm} ```abap DATA : GT_UCOMM TYPE TABLE OF SY-UCOMM. "버튼제어 ``` #### C_BDC01 — constants · L115-L115 {#decl-zfialv-115-c_bdc01} ```abap CONSTANTS : C_BDC01(9) TYPE C VALUE 'Sequence'. ``` #### C_BDC02 — constants · L116-L116 {#decl-zfialv-116-c_bdc02} ```abap CONSTANTS: C_BDC02(9) TYPE C VALUE 'Field'. ``` #### C_BDC03 — constants · L117-L117 {#decl-zfialv-117-c_bdc03} ```abap CONSTANTS: C_BDC03(9) TYPE C VALUE 'Type'. ``` #### C_BDC04 — constants · L118-L118 {#decl-zfialv-118-c_bdc04} ```abap CONSTANTS: C_BDC04(9) TYPE C VALUE 'Length'. ``` #### C_BDC05 — constants · L119-L119 {#decl-zfialv-119-c_bdc05} ```abap CONSTANTS: C_BDC05(9) TYPE C VALUE 'Required'. ``` #### C_BDC06 — constants · L120-L120 {#decl-zfialv-120-c_bdc06} ```abap CONSTANTS: C_BDC06(9) TYPE C VALUE 'Example'. ``` ### `ZFIC0020TOP` (20건) #### ZFIT0010 — tables · L4-L4 {#decl-zfic0020top-4-zfit0010} ```abap TABLES : ZFIT0010. "전표생성로그 ``` #### GT_LOAD — data · L6-L56 {#decl-zfic0020top-6-gt_load} ```abap DATA : BEGIN OF GT_LOAD OCCURS 0, SEQNO(10) TYPE N, "그룹핑번호 XHEIN(01), "헤더지시자 BELNR LIKE BKPF-BELNR, "전표번호 BLDAT LIKE BKPF-BLDAT, "Document Date BUDAT LIKE BKPF-BUDAT, "Posting Date MONAT LIKE BKPF-MONAT, "회계 기간 BLART LIKE BKPF-BLART, "전표 유형 BUKRS LIKE BKPF-BUKRS, "회사 코드 WAERS LIKE BKPF-WAERS, "Currency KURSF(10), "Rate WWERT LIKE BKPF-WWERT, "환산일 XBLNR LIKE BKPF-XBLNR, "Reference BKTXT LIKE BKPF-BKTXT, "HeaderText BSCHL LIKE BSEG-BSCHL, "Posting key NEWKO LIKE BBSEG-NEWKO, "Account UMSKZ LIKE BSEG-UMSKZ, "Special G/L Indicator ANBWA LIKE BSEG-ANBWA, "자산 거래 유형 AKONT LIKE LFB1-AKONT, "Recon. Account WRBTR LIKE BBSEG-WRBTR, "Amount in document currency DMBTR LIKE BBSEG-DMBTR, "Amount in local currency WMWST LIKE BBSEG-WMWST, "Tax amount in document currency MWSTS LIKE BBSEG-MWSTS, "Tax Amount in Local Currency FWBAS LIKE BBSEG-FWBAS, "Tax Amount in Local Currency HWBAS LIKE BBSEG-HWBAS, "Tax Amount in Local Currency BUPLA LIKE BSEG-BUPLA, "Business Place MWSKZ LIKE BSEG-MWSKZ, "Sales Tax Code GSBER LIKE BSEG-GSBER, "Business Area PROJK(24), "WBS Element KOSTL LIKE BSEG-KOSTL, "Cost Center PRCTR LIKE BBSEG-PRCTR, "손익센터 NPLNR LIKE BSEG-NPLNR, "계정지정 네트워크번호 VORNR LIKE BBSEG-VORNR, "작업/액티비티 번호 FISTL LIKE BSEG-FISTL, "자금 관리 센터 AUFNR LIKE BSEG-AUFNR, "오더 번호 ZFBDT LIKE BSEG-ZFBDT, "Baseline date for due date calculation ZTERM LIKE BSEG-ZTERM, "Terms of payment key ZBD1T LIKE BBSEG-ZBD1T, "현금할인일 ZLSCH LIKE BSEG-ZLSCH, "지급 방법 XREF1 LIKE BSEG-XREF1, "참조 키1 XREF2 LIKE BSEG-XREF2, "참조 키2 XREF3 LIKE BSEG-XREF3, "참조 키3 ZUONR LIKE BSEG-ZUONR, "Assignment SGTXT LIKE BSEG-SGTXT, "Item text HBKID LIKE BSEG-HBKID, "House bank HKTID LIKE BSEG-HKTID, "계정 명세에 대한 ID GJAHR LIKE BKPF-GJAHR, "회계연도 SICON LIKE ICON-ID, SEQNO2(10) TYPE N, "Excel Sequence 번호(Sort 용) MSG(100) TYPE C, END OF GT_LOAD. ``` #### GT_TBSL — data · L58-L62 {#decl-zfic0020top-58-gt_tbsl} ```abap DATA : BEGIN OF GT_TBSL OCCURS 0, BSCHL LIKE TBSL-BSCHL, SHKZG LIKE TBSL-SHKZG, KOART LIKE TBSL-KOART, END OF GT_TBSL. ``` #### GT_Z0010 — data · L64-L64 {#decl-zfic0020top-64-gt_z0010} ```abap DATA : GT_Z0010 LIKE ZFIT0010 OCCURS 0 WITH HEADER LINE. ``` #### GS_LOAD — data · L66-L66 {#decl-zfic0020top-66-gs_load} ```abap DATA : GS_LOAD LIKE GT_LOAD. ``` #### GT_ERROR — data · L68-L68 {#decl-zfic0020top-68-gt_error} ```abap DATA : GT_ERROR LIKE GT_LOAD OCCURS 0 WITH HEADER LINE. ``` #### GT_BDCLOG — data · L70-L84 {#decl-zfic0020top-70-gt_bdclog} ```abap DATA : BEGIN OF GT_BDCLOG OCCURS 0, SEQNO TYPE RSNRCHAR, "Sequence TCODE LIKE SY-TCODE, "Transaction Code MSGTY LIKE MSG_TAB_LINE-MSGTY, "Message Type NATXT LIKE MSG_TAB_LINE-NATXT, "Message Text MSGID LIKE MSG_TAB_LINE-MSGID, "Message Class MSGNO LIKE MSG_TAB_LINE-MSGNO, "Message Number MSGV1 LIKE MSG_TAB_LINE-MSGV1, "Message Variables MSGV2 LIKE MSG_TAB_LINE-MSGV2, "Message Variables MSGV3 LIKE MSG_TAB_LINE-MSGV3, "Message Variables MSGV4 LIKE MSG_TAB_LINE-MSGV4, "Message Variables PICK LIKE MSG_TAB_LINE-PICK, "Single-Character Flag POSTED LIKE MSG_TAB_LINE-POSTED, "Checkbox NEWKEY LIKE MSG_TAB_LINE-NEWKEY, "Checkbox END OF GT_BDCLOG. ``` #### GS_BDCLOG — data · L86-L86 {#decl-zfic0020top-86-gs_bdclog} ```abap DATA : GS_BDCLOG LIKE GT_BDCLOG. ``` #### GV_RUN — data · L88-L88 {#decl-zfic0020top-88-gv_run} ```abap DATA: GV_RUN(1) TYPE C. "실행여부 ``` #### C_TCODE — constants · L92-L92 {#decl-zfic0020top-92-c_tcode} ```abap CONSTANTS : C_TCODE LIKE BKPF-TCODE VALUE 'FB01'. "T-Code ``` #### P_BUKRS — parameter · L98-L98 {#decl-zfic0020top-98-p_bukrs} ```abap PARAMETERS : P_BUKRS LIKE BKPF-BUKRS MEMORY ID BUK OBLIGATORY. ``` #### P_FNAME — parameter · L99-L99 {#decl-zfic0020top-99-p_fname} ```abap PARAMETERS: P_FNAME LIKE RLGRAP-FILENAME. ``` #### P_N — parameter · L104-L104 {#decl-zfic0020top-104-p_n} ```abap PARAMETERS : P_N RADIOBUTTON GROUP G1. "BACKGROUND ``` #### P_E — parameter · L106-L106 {#decl-zfic0020top-106-p_e} ```abap PARAMETERS : P_E RADIOBUTTON GROUP G1. "DISPLAY ERRORS ONLY ``` #### P_A — parameter · L108-L108 {#decl-zfic0020top-108-p_a} ```abap PARAMETERS : P_A RADIOBUTTON GROUP G1. "PROCESS/FOREGROUND ``` #### P_S — parameter · L115-L115 {#decl-zfic0020top-115-p_s} ```abap PARAMETERS : P_S RADIOBUTTON GROUP G2 DEFAULT 'X' USER-COMMAND MODU. ``` #### P_D — parameter · L118-L118 {#decl-zfic0020top-118-p_d} ```abap PARAMETERS : P_D RADIOBUTTON GROUP G2. "Download ``` #### P_U — parameter · L120-L120 {#decl-zfic0020top-120-p_u} ```abap PARAMETERS : P_U RADIOBUTTON GROUP G2. "Upload ``` #### P_L — parameter · L122-L122 {#decl-zfic0020top-122-p_l} ```abap PARAMETERS : P_L RADIOBUTTON GROUP G2. "Log ``` #### S_CPUDT — select-option · L128-L128 {#decl-zfic0020top-128-s_cpudt} ```abap SELECT-OPTIONS : S_CPUDT FOR BKPF-CPUDT MODIF ID L. ``` ### `ZFICOM` (201건) #### ICON — type-pool · L7-L7 {#decl-zficom-7-icon} ```abap TYPE-POOLS : SHLP, KCDE, VRM, ICON, TPIT. ``` #### KCDE — type-pool · L7-L7 {#decl-zficom-7-kcde} ```abap TYPE-POOLS : SHLP, KCDE, VRM, ICON, TPIT. ``` #### SHLP — type-pool · L7-L7 {#decl-zficom-7-shlp} ```abap TYPE-POOLS : SHLP, KCDE, VRM, ICON, TPIT. ``` #### TPIT — type-pool · L7-L7 {#decl-zficom-7-tpit} ```abap TYPE-POOLS : SHLP, KCDE, VRM, ICON, TPIT. ``` #### VRM — type-pool · L7-L7 {#decl-zficom-7-vrm} ```abap TYPE-POOLS : SHLP, KCDE, VRM, ICON, TPIT. ``` #### T001 — tables · L11-L11 {#decl-zficom-11-t001} ```abap TABLES : T001. " Company Codes ``` #### T005 — tables · L12-L12 {#decl-zficom-12-t005} ```abap TABLES: T005. " Land ``` #### BKPF — tables · L13-L13 {#decl-zficom-13-bkpf} ```abap TABLES: BKPF. " Accounting Document Heade ``` #### BSEG — tables · L14-L14 {#decl-zficom-14-bseg} ```abap TABLES: BSEG. " Accounting Document Segment ``` #### BSID — tables · L15-L15 {#decl-zficom-15-bsid} ```abap TABLES: BSID. " Accounting: Secondary Index for Customers ``` #### BSAD — tables · L16-L16 {#decl-zficom-16-bsad} ```abap TABLES: BSAD. " Accounting: Secondary Index for Customers ``` #### BSIK — tables · L18-L18 {#decl-zficom-18-bsik} ```abap TABLES: BSIK. " Accounting: Secondary Index for Vendors ``` #### BSAK — tables · L19-L19 {#decl-zficom-19-bsak} ```abap TABLES: BSAK. " Accounting: Secondary Index for Vendors ``` #### BSIS — tables · L21-L21 {#decl-zficom-21-bsis} ```abap TABLES: BSIS. " Accounting: Secondary Index for G/L Accounts ``` #### BSAS — tables · L22-L22 {#decl-zficom-22-bsas} ```abap TABLES: BSAS. " Accounting: Secondary Index for G/L Accounts ``` #### BSEC — tables · L24-L24 {#decl-zficom-24-bsec} ```abap TABLES: BSEC. " One-Time Account Data Document Segment ``` #### BSET — tables · L25-L25 {#decl-zficom-25-bset} ```abap TABLES: BSET. " Tax Data Document Segment ``` #### BSED — tables · L26-L26 {#decl-zficom-26-bsed} ```abap TABLES: BSED. " n Bill of Exchange Fields Docume ``` #### VBKPF — tables · L27-L27 {#decl-zficom-27-vbkpf} ```abap TABLES: VBKPF. " Document Header for Document Parking ``` #### VBSEGS — tables · L28-L28 {#decl-zficom-28-vbsegs} ```abap TABLES: VBSEGS. " Document Segment for Document Parking ``` #### VBSEGD — tables · L30-L30 {#decl-zficom-30-vbsegd} ```abap TABLES: VBSEGD. " Document Segment for Customer Document Parking ``` #### VBSEGK — tables · L31-L31 {#decl-zficom-31-vbsegk} ```abap TABLES: VBSEGK. " Document Segment for Vendor Document Parking ``` #### VBSET — tables · L32-L32 {#decl-zficom-32-vbset} ```abap TABLES: VBSET. " Document Segment for Taxes Document Parking ``` #### VBSEC — tables · L33-L33 {#decl-zficom-33-vbsec} ```abap TABLES: VBSEC. " Document Parking One-Time Data Document Segment ``` #### SKA1 — tables · L34-L34 {#decl-zficom-34-ska1} ```abap TABLES: SKA1. " G/L Account Master (Chart of Accounts) ``` #### SKB1 — tables · L35-L35 {#decl-zficom-35-skb1} ```abap TABLES: SKB1. " G/L account master (company code) ``` #### LFA1 — tables · L36-L36 {#decl-zficom-36-lfa1} ```abap TABLES: LFA1. " Vendor Master (General Section) ``` #### LFB1 — tables · L37-L37 {#decl-zficom-37-lfb1} ```abap TABLES: LFB1. " Vendor Master (Company Code) ``` #### KNA1 — tables · L38-L38 {#decl-zficom-38-kna1} ```abap TABLES: KNA1. " General Data in Customer Master ``` #### KNB1 — tables · L39-L39 {#decl-zficom-39-knb1} ```abap TABLES: KNB1. " Customer Master (Company Code) ``` #### ADRC — tables · L40-L40 {#decl-zficom-40-adrc} ```abap TABLES: ADRC. " Addresses (Business Address Services) ``` #### USR01 — tables · L41-L41 {#decl-zficom-41-usr01} ```abap TABLES: USR01. " User master record (runtime data) ``` #### USR05 — tables · L42-L42 {#decl-zficom-42-usr05} ```abap TABLES: USR05. " User Master Parameter ID ``` #### USR21 — tables · L43-L43 {#decl-zficom-43-usr21} ```abap TABLES: USR21. " Assign user name address key ``` #### ZFIT0160 — tables · L45-L45 {#decl-zficom-45-zfit0160} ```abap TABLES: ZFIT0160. " FI 권한 관리 테이블 ``` #### CTU_PARAMS — tables · L48-L48 {#decl-zficom-48-ctu_params} ```abap TABLES : CTU_PARAMS. "CALL TRANSACTION USING... ``` #### GT_SQL — data · L54-L54 {#decl-zficom-54-gt_sql} ```abap DATA : GT_SQL(72) OCCURS 0 WITH HEADER LINE. ``` #### GT_FIELD — data · L56-L56 {#decl-zficom-56-gt_field} ```abap DATA : GT_FIELD LIKE HELP_VALUE OCCURS 0 WITH HEADER LINE. ``` #### GV_FIELD — data · L57-L57 {#decl-zficom-57-gv_field} ```abap DATA: GV_FIELD LIKE HELP_INFO-FIELDNAME. ``` #### GV_VALUE — data · L58-L58 {#decl-zficom-58-gv_value} ```abap DATA: GV_VALUE LIKE HELP_INFO-FLDVALUE. ``` #### GV_TABIX — data · L59-L59 {#decl-zficom-59-gv_tabix} ```abap DATA: GV_TABIX LIKE SY-TABIX. ``` #### GT_SHLP — data · L61-L61 {#decl-zficom-61-gt_shlp} ```abap DATA : GT_SHLP TYPE SHLP_DESCR_T. ``` #### GT_DYNFIELDS — data · L63-L63 {#decl-zficom-63-gt_dynfields} ```abap DATA : GT_DYNFIELDS LIKE DYNPREAD OCCURS 0 WITH HEADER LINE. ``` #### GT_RETVALUES — data · L64-L64 {#decl-zficom-64-gt_retvalues} ```abap DATA: GT_RETVALUES LIKE DDSHRETVAL OCCURS 0 WITH HEADER LINE. ``` #### GT_RECEIVE — data · L65-L65 {#decl-zficom-65-gt_receive} ```abap DATA: GT_RECEIVE LIKE DYNPREAD OCCURS 0 WITH HEADER LINE. ``` #### GT_EXCODE — data · L66-L66 {#decl-zficom-66-gt_excode} ```abap DATA: GT_EXCODE TYPE TABLE OF SY-UCOMM. " Button Control ``` #### GV_DBCNT — data · L68-L68 {#decl-zficom-68-gv_dbcnt} ```abap DATA : GV_DBCNT LIKE SY-DBCNT. " Inquiry count ``` #### GV_TFILL — data · L69-L69 {#decl-zficom-69-gv_tfill} ```abap DATA: GV_TFILL LIKE SY-TFILL. " Current number of lines ``` #### GV_SUBRC — data · L70-L70 {#decl-zficom-70-gv_subrc} ```abap DATA: GV_SUBRC LIKE SY-SUBRC. " Return Value ``` #### GV_UCOMM — data · L71-L71 {#decl-zficom-71-gv_ucomm} ```abap DATA: GV_UCOMM LIKE SY-UCOMM. " Function Code ``` #### GV_TITLE — data · L72-L72 {#decl-zficom-72-gv_title} ```abap DATA: GV_TITLE LIKE SY-TITLE. " Title ``` #### GV_DATUM — data · L73-L73 {#decl-zficom-73-gv_datum} ```abap DATA: GV_DATUM LIKE SY-DATUM. " Date ``` #### GV_TYPE — data · L74-L74 {#decl-zficom-74-gv_type} ```abap DATA: GV_TYPE LIKE DD01V-DATATYPE. " Num/Char Flag ``` #### GV_SEQNO — data · L75-L75 {#decl-zficom-75-gv_seqno} ```abap DATA: GV_SEQNO(3) TYPE N. " Seqence No ``` #### GV_CURSOR_FIELD — data · L76-L76 {#decl-zficom-76-gv_cursor_field} ```abap DATA: GV_CURSOR_FIELD(30). " CURSOR FIELD ``` #### GV_CURSOR_LINE — data · L77-L77 {#decl-zficom-77-gv_cursor_line} ```abap DATA: GV_CURSOR_LINE LIKE SY-LILLI. " CURSOR LINE ``` #### GV_10_D — data · L79-L79 {#decl-zficom-79-gv_10_d} ```abap DATA : GV_10_D(16) TYPE P DECIMALS 0. ``` #### GV_TABIN — data · L81-L81 {#decl-zficom-81-gv_tabin} ```abap DATA : GV_TABIN(06). " total count ``` #### GV_INDEX — data · L82-L82 {#decl-zficom-82-gv_index} ```abap DATA: GV_INDEX(06). " progress count ``` #### GV_KBETR — data · L83-L83 {#decl-zficom-83-gv_kbetr} ```abap DATA: GV_KBETR(05). " progress percent ``` #### GV_INDIC — data · L84-L84 {#decl-zficom-84-gv_indic} ```abap DATA: GV_INDIC(80). " progress status ``` #### GV_TEXT — data · L85-L85 {#decl-zficom-85-gv_text} ```abap DATA: GV_TEXT(100). ``` #### GF_CHECK — data · L87-L87 {#decl-zficom-87-gf_check} ```abap DATA : GF_CHECK(1). " Input Check ``` #### GF_MARK — data · L88-L88 {#decl-zficom-88-gf_mark} ```abap DATA: GF_MARK(1). " Select Flag ``` #### GF_LOCK — data · L89-L89 {#decl-zficom-89-gf_lock} ```abap DATA: GF_LOCK(1). " Lock Flag ``` #### GF_ANSWER — data · L90-L90 {#decl-zficom-90-gf_answer} ```abap DATA: GF_ANSWER(1). " MessageBox Return Value ``` #### GF_COLOR — data · L91-L91 {#decl-zficom-91-gf_color} ```abap DATA: GF_COLOR(1). " LINE COLOR ``` #### GV_NAME — data · L94-L94 {#decl-zficom-94-gv_name} ```abap DATA : GV_NAME TYPE VRM_ID. ``` #### GT_LIST — data · L95-L95 {#decl-zficom-95-gt_list} ```abap DATA: GT_LIST TYPE VRM_VALUES. ``` #### GS_VALUE — data · L96-L96 {#decl-zficom-96-gs_value} ```abap DATA: GS_VALUE LIKE LINE OF GT_LIST. ``` #### GV_FNAME — data · L98-L98 {#decl-zficom-98-gv_fname} ```abap DATA : GV_FNAME TYPE RS38L_FNAM. ``` #### GS_OPTIONS — data · L99-L99 {#decl-zficom-99-gs_options} ```abap DATA: GS_OPTIONS TYPE SSFCOMPOP. ``` #### GS_DEVICE — data · L100-L100 {#decl-zficom-100-gs_device} ```abap DATA: GS_DEVICE TYPE SSFCTRLOP. ``` #### GV_TDDEST — data · L101-L101 {#decl-zficom-101-gv_tddest} ```abap DATA: GV_TDDEST LIKE GS_OPTIONS-TDDEST VALUE 'LOCL'. ``` #### GS_JOB_OUTPUT_INFO — data · L102-L102 {#decl-zficom-102-gs_job_output_info} ```abap DATA: GS_JOB_OUTPUT_INFO TYPE SSFCRESCL. ``` #### GV_BELNR — data · L104-L104 {#decl-zficom-104-gv_belnr} ```abap DATA : GV_BELNR LIKE BKPF-BELNR. ``` #### GV_BUKRS — data · L105-L105 {#decl-zficom-105-gv_bukrs} ```abap DATA: GV_BUKRS LIKE BKPF-BUKRS. ``` #### GV_GJAHR — data · L106-L106 {#decl-zficom-106-gv_gjahr} ```abap DATA: GV_GJAHR LIKE BKPF-GJAHR. ``` #### GV_BUZEI — data · L107-L107 {#decl-zficom-107-gv_buzei} ```abap DATA: GV_BUZEI LIKE BSEG-BUZEI. ``` #### GT_BBKPF — data · L108-L108 {#decl-zficom-108-gt_bbkpf} ```abap DATA : GT_BBKPF LIKE BBKPF OCCURS 0 WITH HEADER LINE. ``` #### GT_BBSEG — data · L109-L109 {#decl-zficom-109-gt_bbseg} ```abap DATA: GT_BBSEG LIKE BBSEG OCCURS 0 WITH HEADER LINE. ``` #### GT_BBTAX — data · L110-L110 {#decl-zficom-110-gt_bbtax} ```abap DATA: GT_BBTAX LIKE BBTAX OCCURS 0 WITH HEADER LINE. ``` #### GT_BWITH — data · L111-L111 {#decl-zficom-111-gt_bwith} ```abap DATA: GT_BWITH LIKE BWITH OCCURS 0 WITH HEADER LINE. ``` #### GT_BSELK — data · L112-L112 {#decl-zficom-112-gt_bselk} ```abap DATA: GT_BSELK LIKE BSELK OCCURS 0 WITH HEADER LINE. ``` #### GT_BSELP — data · L113-L113 {#decl-zficom-113-gt_bselp} ```abap DATA: GT_BSELP LIKE BSELP OCCURS 0 WITH HEADER LINE. ``` #### GT_FIMSG — data · L115-L115 {#decl-zficom-115-gt_fimsg} ```abap DATA: GT_FIMSG LIKE FIMSG OCCURS 0 WITH HEADER LINE. ``` #### GT_ACCCHG — data · L117-L117 {#decl-zficom-117-gt_accchg} ```abap DATA : GT_ACCCHG LIKE ACCCHG OCCURS 0 WITH HEADER LINE. ``` #### GS_ACCPMBLK — data · L119-L119 {#decl-zficom-119-gs_accpmblk} ```abap DATA : GS_ACCPMBLK LIKE ACCPMBLK. ``` #### GT_ROWS — data · L121-L121 {#decl-zficom-121-gt_rows} ```abap DATA : GT_ROWS TYPE LVC_T_ROW. " ALV control: Table rows ``` #### GS_ROWS — data · L122-L122 {#decl-zficom-122-gs_rows} ```abap DATA: GS_ROWS TYPE LVC_S_ROW. " ALV control: Line description ``` #### GV_ROW_POS — data · L123-L123 {#decl-zficom-123-gv_row_pos} ```abap DATA: GV_ROW_POS TYPE I. ``` #### GT_EXTAB — data · L125-L125 {#decl-zficom-125-gt_extab} ```abap DATA : GT_EXTAB LIKE SY-UCOMM OCCURS 0 WITH HEADER LINE. ``` #### GS_EMAIL_DATA — data · L127-L129 {#decl-zficom-127-gs_email_data} ```abap DATA : BEGIN OF GS_EMAIL_DATA. INCLUDE STRUCTURE SODOCCHGI1. DATA : END OF GS_EMAIL_DATA. ``` #### GT_EMAIL — data · L131-L131 {#decl-zficom-131-gt_email} ```abap DATA : GT_EMAIL LIKE SOMLRECI1 OCCURS 0 WITH HEADER LINE. ``` #### GT_ETEXT — data · L132-L132 {#decl-zficom-132-gt_etext} ```abap DATA: GT_ETEXT LIKE SOLISTI1 OCCURS 0 WITH HEADER LINE. ``` #### GT_RSPAR — data · L134-L134 {#decl-zficom-134-gt_rspar} ```abap DATA : GT_RSPAR LIKE RSPARAMS OCCURS 10 WITH HEADER LINE. ``` #### GV_SMTP_ADDR — data · L136-L136 {#decl-zficom-136-gv_smtp_addr} ```abap DATA : GV_SMTP_ADDR LIKE ADR6-SMTP_ADDR. ``` #### GF_FIRST — data · L138-L138 {#decl-zficom-138-gf_first} ```abap DATA : GF_FIRST(1) TYPE C. ``` #### GF_NEW — data · L139-L139 {#decl-zficom-139-gf_new} ```abap DATA: GF_NEW(1) TYPE C. ``` #### GF_END — data · L140-L140 {#decl-zficom-140-gf_end} ```abap DATA: GF_END(1) TYPE C. ``` #### GF_LAST — data · L141-L141 {#decl-zficom-141-gf_last} ```abap DATA: GF_LAST(1) TYPE C. ``` #### GV_BUK — data · L144-L144 {#decl-zficom-144-gv_buk} ```abap DATA : GV_BUK LIKE BKPF-BUKRS. " Company Code ``` #### GV_KURST — data · L145-L145 {#decl-zficom-145-gv_kurst} ```abap DATA: GV_KURST LIKE TCURR-KURST. " Exchange rate type ``` #### GV_KALSM — data · L146-L146 {#decl-zficom-146-gv_kalsm} ```abap DATA: GV_KALSM LIKE T005-KALSM. " Procedure ``` #### GV_KOKRS — data · L147-L147 {#decl-zficom-147-gv_kokrs} ```abap DATA: GV_KOKRS LIKE CSKT-KOKRS. " Controlling Area ``` #### GT_BSE — data · L149-L165 {#decl-zficom-149-gt_bse} ```abap DATA : BEGIN OF GT_BSE OCCURS 0, BUKRS_CLR LIKE BSE_CLR-BUKRS_CLR, "반제전표-회사코드 BELNR_CLR LIKE BSE_CLR-BELNR_CLR, "반제전표-전표번호 GJAHR_CLR LIKE BSE_CLR-GJAHR_CLR, "반제전표-회계연도 INDEX_CLR LIKE BSE_CLR-INDEX_CLR, "반제정보에 대한 일련번호 WAERS LIKE BSE_CLR-WAERS, "통화 키 CLRIN LIKE BSE_CLR-CLRIN, "반제유형 BUKRS LIKE BSE_CLR-BUKRS, "원전표-회사코드 BELNR LIKE BSE_CLR-BELNR, "원전표-전표번호 GJAHR LIKE BSE_CLR-GJAHR, "원전표-회계연도 BUZEI LIKE BSE_CLR-BUZEI, "원전표-개별항목번호 SHKZG LIKE BSE_CLR-SHKZG, "차대변지시자 DMBTR LIKE BSE_CLR-DMBTR, "금액(현지통화) DIFHW LIKE BSE_CLR-DIFHW, "차액(현지통화) WRBTR LIKE BSE_CLR-WRBTR, "금액(전표통화) DIFFW LIKE BSE_CLR-DIFFW, "차약(전표통화) END OF GT_BSE. ``` #### GT_BDC — data · L168-L170 {#decl-zficom-168-gt_bdc} ```abap DATA : BEGIN OF GT_BDC OCCURS 0. INCLUDE STRUCTURE BDCDATA. DATA : END OF GT_BDC. ``` #### GT_MESS — data · L172-L172 {#decl-zficom-172-gt_mess} ```abap DATA : GT_MESS LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE. ``` #### GV_MODE — data · L174-L174 {#decl-zficom-174-gv_mode} ```abap DATA : GV_MODE(1) VALUE 'N'. "BDC MODE ``` #### GS_LOG — data · L176-L176 {#decl-zficom-176-gs_log} ```abap DATA : GS_LOG TYPE BAL_S_LOG. ``` #### GS_LOG_HANDLE — data · L177-L177 {#decl-zficom-177-gs_log_handle} ```abap DATA: GS_LOG_HANDLE TYPE BALLOGHNDL. ``` #### GS_DISPLAY_PROFILE — data · L178-L178 {#decl-zficom-178-gs_display_profile} ```abap DATA: GS_DISPLAY_PROFILE TYPE BAL_S_PROF. ``` #### GT_LOG_HANDLE — data · L179-L179 {#decl-zficom-179-gt_log_handle} ```abap DATA: GT_LOG_HANDLE TYPE BAL_T_LOGH. ``` #### GS_MSG — data · L180-L180 {#decl-zficom-180-gs_msg} ```abap DATA: GS_MSG TYPE BAL_S_MSG. ``` #### GS_BAL_FCAT — data · L181-L181 {#decl-zficom-181-gs_bal_fcat} ```abap DATA: GS_BAL_FCAT TYPE BAL_S_FCAT. ``` #### GV_COL_POS — data · L182-L182 {#decl-zficom-182-gv_col_pos} ```abap DATA: GV_COL_POS TYPE I. ``` #### GT_STRUCT — data · L185-L193 {#decl-zficom-185-gt_struct} ```abap DATA : BEGIN OF GT_STRUCT OCCURS 0, SEQNO(03), "Sequence no FNAME(60), "Field name FTYPE(04), "Type FLENG(03), "Length FFLAG(50), "Required FEXAM(80), "Example * FNOTE(80), "Note END OF GT_STRUCT. ``` #### C_BUKRS — constants · L198-L198 {#decl-zficom-198-c_bukrs} ```abap CONSTANTS: C_BUKRS LIKE BKPF-BUKRS VALUE 'KR01'. " Company Code ``` #### C_WAERS — constants · L199-L199 {#decl-zficom-199-c_waers} ```abap CONSTANTS: C_WAERS LIKE BKPF-WAERS VALUE 'KRW'. " Currency Key ``` #### C_LANGU — constants · L200-L200 {#decl-zficom-200-c_langu} ```abap CONSTANTS: C_LANGU LIKE SKAT-SPRAS VALUE '3'. " Country Key ``` #### C_LAND1 — constants · L201-L201 {#decl-zficom-201-c_land1} ```abap CONSTANTS: C_LAND1 LIKE T001-LAND1 VALUE 'KR'. " Country Key ``` #### C_KTOPL — constants · L202-L202 {#decl-zficom-202-c_ktopl} ```abap CONSTANTS: C_KTOPL LIKE SKAT-KTOPL VALUE '1000'. " Chart of Accounts ``` #### C_KOKRS — constants · L203-L203 {#decl-zficom-203-c_kokrs} ```abap CONSTANTS: C_KOKRS LIKE CSKT-KOKRS VALUE 'KR01'. " Controlling Area ``` #### C_KALSM — constants · L204-L204 {#decl-zficom-204-c_kalsm} ```abap CONSTANTS: C_KALSM LIKE T007S-KALSM VALUE 'TAXKR'. " Procedure ``` #### C_KURST — constants · L205-L205 {#decl-zficom-205-c_kurst} ```abap CONSTANTS: C_KURST LIKE TCURR-KURST VALUE 'M'. " Exchange Rate Type ``` #### C_SPRAS — constants · L206-L206 {#decl-zficom-206-c_spras} ```abap CONSTANTS: C_SPRAS LIKE T001-SPRAS VALUE '3'. " Language Key ``` #### C_PARID — constants · L207-L207 {#decl-zficom-207-c_parid} ```abap CONSTANTS: C_PARID LIKE USR05-PARID VALUE 'ZSP'. " 사용자종속언어 ``` #### C_A — constants · L208-L208 {#decl-zficom-208-c_a} ```abap CONSTANTS: C_A(1) TYPE C VALUE 'A'. ``` #### C_B — constants · L209-L209 {#decl-zficom-209-c_b} ```abap CONSTANTS: C_B(1) TYPE C VALUE 'B'. ``` #### C_C — constants · L210-L210 {#decl-zficom-210-c_c} ```abap CONSTANTS: C_C(1) TYPE C VALUE 'C'. ``` #### C_D — constants · L211-L211 {#decl-zficom-211-c_d} ```abap CONSTANTS: C_D(1) TYPE C VALUE 'D'. ``` #### C_E — constants · L212-L212 {#decl-zficom-212-c_e} ```abap CONSTANTS: C_E(1) TYPE C VALUE 'E'. ``` #### C_F — constants · L213-L213 {#decl-zficom-213-c_f} ```abap CONSTANTS: C_F(1) TYPE C VALUE 'F'. ``` #### C_G — constants · L214-L214 {#decl-zficom-214-c_g} ```abap CONSTANTS: C_G(1) TYPE C VALUE 'G'. ``` #### C_H — constants · L215-L215 {#decl-zficom-215-c_h} ```abap CONSTANTS: C_H(1) TYPE C VALUE 'H'. ``` #### C_I — constants · L216-L216 {#decl-zficom-216-c_i} ```abap CONSTANTS: C_I(1) TYPE C VALUE 'I'. ``` #### C_J — constants · L217-L217 {#decl-zficom-217-c_j} ```abap CONSTANTS: C_J(1) TYPE C VALUE 'J'. ``` #### C_K — constants · L218-L218 {#decl-zficom-218-c_k} ```abap CONSTANTS: C_K(1) TYPE C VALUE 'K'. ``` #### C_L — constants · L219-L219 {#decl-zficom-219-c_l} ```abap CONSTANTS: C_L(1) TYPE C VALUE 'L'. ``` #### C_M — constants · L220-L220 {#decl-zficom-220-c_m} ```abap CONSTANTS: C_M(1) TYPE C VALUE 'M'. ``` #### C_N — constants · L221-L221 {#decl-zficom-221-c_n} ```abap CONSTANTS: C_N(1) TYPE C VALUE 'N'. ``` #### C_O — constants · L222-L222 {#decl-zficom-222-c_o} ```abap CONSTANTS: C_O(1) TYPE C VALUE 'O'. ``` #### C_P — constants · L223-L223 {#decl-zficom-223-c_p} ```abap CONSTANTS: C_P(1) TYPE C VALUE 'P'. ``` #### C_Q — constants · L224-L224 {#decl-zficom-224-c_q} ```abap CONSTANTS: C_Q(1) TYPE C VALUE 'Q'. ``` #### C_R — constants · L225-L225 {#decl-zficom-225-c_r} ```abap CONSTANTS: C_R(1) TYPE C VALUE 'R'. ``` #### C_S — constants · L226-L226 {#decl-zficom-226-c_s} ```abap CONSTANTS: C_S(1) TYPE C VALUE 'S'. ``` #### C_T — constants · L227-L227 {#decl-zficom-227-c_t} ```abap CONSTANTS: C_T(1) TYPE C VALUE 'T'. ``` #### C_U — constants · L228-L228 {#decl-zficom-228-c_u} ```abap CONSTANTS: C_U(1) TYPE C VALUE 'U'. ``` #### C_V — constants · L229-L229 {#decl-zficom-229-c_v} ```abap CONSTANTS: C_V(1) TYPE C VALUE 'V'. ``` #### C_W — constants · L230-L230 {#decl-zficom-230-c_w} ```abap CONSTANTS: C_W(1) TYPE C VALUE 'W'. ``` #### C_X — constants · L231-L231 {#decl-zficom-231-c_x} ```abap CONSTANTS: C_X(1) TYPE C VALUE 'X'. ``` #### C_Y — constants · L232-L232 {#decl-zficom-232-c_y} ```abap CONSTANTS: C_Y(1) TYPE C VALUE 'Y'. ``` #### C_Z — constants · L233-L233 {#decl-zficom-233-c_z} ```abap CONSTANTS: C_Z(1) TYPE C VALUE 'Z'. ``` #### C_0 — constants · L234-L234 {#decl-zficom-234-c_0} ```abap CONSTANTS: C_0(1) TYPE C VALUE '0'. ``` #### C_1 — constants · L235-L235 {#decl-zficom-235-c_1} ```abap CONSTANTS: C_1(1) TYPE C VALUE '1'. ``` #### C_2 — constants · L236-L236 {#decl-zficom-236-c_2} ```abap CONSTANTS: C_2(1) TYPE C VALUE '2'. ``` #### C_3 — constants · L237-L237 {#decl-zficom-237-c_3} ```abap CONSTANTS: C_3(1) TYPE C VALUE '3'. ``` #### C_4 — constants · L238-L238 {#decl-zficom-238-c_4} ```abap CONSTANTS: C_4(1) TYPE C VALUE '4'. ``` #### C_5 — constants · L239-L239 {#decl-zficom-239-c_5} ```abap CONSTANTS: C_5(1) TYPE C VALUE '5'. ``` #### C_6 — constants · L240-L240 {#decl-zficom-240-c_6} ```abap CONSTANTS: C_6(1) TYPE C VALUE '6'. ``` #### C_7 — constants · L241-L241 {#decl-zficom-241-c_7} ```abap CONSTANTS: C_7(1) TYPE C VALUE '7'. ``` #### C_8 — constants · L242-L242 {#decl-zficom-242-c_8} ```abap CONSTANTS: C_8(1) TYPE C VALUE '8'. ``` #### C_9 — constants · L243-L243 {#decl-zficom-243-c_9} ```abap CONSTANTS: C_9(1) TYPE C VALUE '9'. ``` #### C_EQ — constants · L244-L244 {#decl-zficom-244-c_eq} ```abap CONSTANTS: C_EQ(2) TYPE C VALUE 'EQ'. ``` #### C_NE — constants · L245-L245 {#decl-zficom-245-c_ne} ```abap CONSTANTS: C_NE(2) TYPE C VALUE 'NE'. ``` #### C_BT — constants · L246-L246 {#decl-zficom-246-c_bt} ```abap CONSTANTS: C_BT(2) TYPE C VALUE 'BT'. ``` #### C_CP — constants · L247-L247 {#decl-zficom-247-c_cp} ```abap CONSTANTS: C_CP(2) TYPE C VALUE 'CP'. ``` #### C_NP — constants · L248-L248 {#decl-zficom-248-c_np} ```abap CONSTANTS: C_NP(2) TYPE C VALUE 'NP'. ``` #### C_LE — constants · L249-L249 {#decl-zficom-249-c_le} ```abap CONSTANTS: C_LE(2) TYPE C VALUE 'LE'. ``` #### C_LT — constants · L250-L250 {#decl-zficom-250-c_lt} ```abap CONSTANTS: C_LT(2) TYPE C VALUE 'LT'. ``` #### C_GE — constants · L251-L251 {#decl-zficom-251-c_ge} ```abap CONSTANTS: C_GE(2) TYPE C VALUE 'GE'. ``` #### C_GT — constants · L252-L252 {#decl-zficom-252-c_gt} ```abap CONSTANTS: C_GT(2) TYPE C VALUE 'GT'. ``` #### C_FBV0 — constants · L253-L253 {#decl-zficom-253-c_fbv0} ```abap CONSTANTS: C_FBV0 LIKE BKPF-TCODE VALUE 'FBV0'. " 임시전표전기 T-Code ``` #### C_FBV1 — constants · L254-L254 {#decl-zficom-254-c_fbv1} ```abap CONSTANTS: C_FBV1 LIKE BKPF-TCODE VALUE 'FBV1'. " 임시전표생성 T-Code ``` #### C_FB01 — constants · L255-L255 {#decl-zficom-255-c_fb01} ```abap CONSTANTS: C_FB01 LIKE BKPF-TCODE VALUE 'FB01'. " 전표생성 T-Code ``` #### C_FB05 — constants · L256-L256 {#decl-zficom-256-c_fb05} ```abap CONSTANTS: C_FB05 LIKE BKPF-TCODE VALUE 'FB05'. " 전표반제 T-Code ``` #### C_FB08 — constants · L257-L257 {#decl-zficom-257-c_fb08} ```abap CONSTANTS: C_FB08 LIKE BKPF-TCODE VALUE 'FB08'. " 전표역분개-Code ``` #### ALPHA_INPUT — macro · L267-L273 {#decl-zficom-267-alpha_input} ```abap DEFINE ALPHA_INPUT. CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT' EXPORTING INPUT = &1 IMPORTING OUTPUT = &2. END-OF-DEFINITION. ``` #### ALPHA_OUTPUT — macro · L282-L288 {#decl-zficom-282-alpha_output} ```abap DEFINE ALPHA_OUTPUT. CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING INPUT = &1 IMPORTING OUTPUT = &2. END-OF-DEFINITION. ``` #### SET_RANGES — macro · L294-L301 {#decl-zficom-294-set_ranges} ```abap DEFINE SET_RANGES. CLEAR &1. &1-SIGN = &2. &1-OPTION = &3. &1-LOW = &4. &1-HIGH = &5. COLLECT &1. END-OF-DEFINITION. ``` #### LAST_DAY — macro · L310-L316 {#decl-zficom-310-last_day} ```abap DEFINE LAST_DAY. CALL FUNCTION 'RP_LAST_DAY_OF_MONTHS' EXPORTING DAY_IN = &1 IMPORTING LAST_DAY_OF_MONTH = &2. END-OF-DEFINITION. ``` #### CHANGE_UNIT — macro · L322-L327 {#decl-zficom-322-change_unit} ```abap DEFINE CHANGE_UNIT. WRITE &1 TO &2 CURRENCY &3. CALL FUNCTION 'CLOI_PUT_SIGN_IN_FRONT' CHANGING VALUE = &2. END-OF-DEFINITION. ``` #### CHANGE_CURRENCY — macro · L333-L340 {#decl-zficom-333-change_currency} ```abap DEFINE CHANGE_CURRENCY. CALL FUNCTION 'CURRENCY_AMOUNT_SAP_TO_IDOC' EXPORTING CURRENCY = &3 SAP_AMOUNT = &1 IMPORTING IDOC_AMOUNT = &2. END-OF-DEFINITION. ``` #### CHANGE_CURRENCY_SAP — macro · L346-L353 {#decl-zficom-346-change_currency_sap} ```abap DEFINE CHANGE_CURRENCY_SAP. CALL FUNCTION 'CURRENCY_AMOUNT_IDOC_TO_SAP' EXPORTING CURRENCY = &3 IDOC_AMOUNT = &1 IMPORTING SAP_AMOUNT = &2. END-OF-DEFINITION. ``` #### WRITE_STCD2 — macro · L359-L361 {#decl-zficom-359-write_stcd2} ```abap DEFINE WRITE_STCD2. WRITE &1 TO &2 USING EDIT MASK '___-__-_____'. END-OF-DEFINITION. ``` #### WRITE_STCD1 — macro · L367-L369 {#decl-zficom-367-write_stcd1} ```abap DEFINE WRITE_STCD1. WRITE &1 TO &2 USING EDIT MASK '______-_______'. END-OF-DEFINITION. ``` #### L_LANG — data · unit 로컬 · L441-L441 {#decl-zficom-441-l_lang} ```abap DATA : L_LANG LIKE SY-LANGU. ``` #### LV_PROG — data · unit 로컬 · L678-L678 {#decl-zficom-678-lv_prog} ```abap DATA : LV_PROG LIKE D020S-PROG. ``` #### LV_DNUM — data · unit 로컬 · L679-L679 {#decl-zficom-679-lv_dnum} ```abap DATA: LV_DNUM LIKE D020S-DNUM. ``` #### LV_LEN — data · unit 로컬 · L858-L858 {#decl-zficom-858-lv_len} ```abap DATA : LV_LEN TYPE I. ``` #### LV_POS — data · unit 로컬 · L859-L859 {#decl-zficom-859-lv_pos} ```abap DATA: LV_POS TYPE I. ``` #### LV_TYPE — data · unit 로컬 · L860-L860 {#decl-zficom-860-lv_type} ```abap DATA: LV_TYPE(3) TYPE C. ``` #### LV_FILENAME — data · unit 로컬 · L861-L861 {#decl-zficom-861-lv_filename} ```abap DATA: LV_FILENAME TYPE STRING. ``` #### LV_RAW_DATA — data · unit 로컬 · L862-L862 {#decl-zficom-862-lv_raw_data} ```abap DATA: LV_RAW_DATA TYPE TRUXS_T_TEXT_DATA. ``` #### GT_XLS — data · unit 로컬 · L919-L919 {#decl-zficom-919-gt_xls} ```abap DATA: GT_XLS TYPE STANDARD TABLE OF KCDE_INTERN_STRUC WITH HEADER LINE. ``` #### — field-symbol · unit 로컬 · L920-L920 {#decl-zficom-920--fs-} ```abap FIELD-SYMBOLS TYPE ANY. ``` #### CHANGE_UNIT — macro · L1045-L1050 {#decl-zficom-1045-change_unit} ```abap DEFINE CHANGE_UNIT. WRITE &1 TO &2 CURRENCY &3. CALL FUNCTION 'CLOI_PUT_SIGN_IN_FRONT' CHANGING VALUE = &2. END-OF-DEFINITION. ``` #### CHANGE_CURRENCY — macro · L1056-L1063 {#decl-zficom-1056-change_currency} ```abap DEFINE CHANGE_CURRENCY. CALL FUNCTION 'CURRENCY_AMOUNT_SAP_TO_IDOC' EXPORTING CURRENCY = &3 SAP_AMOUNT = &1 IMPORTING IDOC_AMOUNT = &2. END-OF-DEFINITION. ``` #### CHANGE_CURRENCY_SAP — macro · L1069-L1076 {#decl-zficom-1069-change_currency_sap} ```abap DEFINE CHANGE_CURRENCY_SAP. CALL FUNCTION 'CURRENCY_AMOUNT_IDOC_TO_SAP' EXPORTING CURRENCY = &3 IDOC_AMOUNT = &1 IMPORTING SAP_AMOUNT = &2. END-OF-DEFINITION. ``` #### LV_TEXT — data · unit 로컬 · L1347-L1347 {#decl-zficom-1347-lv_text} ```abap DATA : LV_TEXT(100). ``` #### LV_PCEN — data · unit 로컬 · L1348-L1348 {#decl-zficom-1348-lv_pcen} ```abap DATA: LV_PCEN(3). ``` ### `ZFIC0020F01` (9건) #### LV_FILENAME — data · unit 로컬 · L309-L309 {#decl-zfic0020f01-309-lv_filename} ```abap DATA : LV_FILENAME TYPE STRING. ``` #### LV_LEN — data · unit 로컬 · L311-L311 {#decl-zfic0020f01-311-lv_len} ```abap DATA : LV_LEN TYPE I. ``` #### LV_POS — data · unit 로컬 · L312-L312 {#decl-zfic0020f01-312-lv_pos} ```abap DATA: LV_POS TYPE I. ``` #### LS_CONTEXT — data · unit 로컬 · L339-L339 {#decl-zfic0020f01-339-ls_context} ```abap DATA : LS_CONTEXT TYPE ZFIS0040. ``` #### LV_KEY — data · unit 로컬 · L371-L371 {#decl-zfic0020f01-371-lv_key} ```abap DATA : LV_KEY LIKE WWWDATATAB. ``` #### LV_SRBTR — data · unit 로컬 · L541-L541 {#decl-zfic0020f01-541-lv_srbtr} ```abap DATA : LV_SRBTR LIKE BSEG-WRBTR. ``` #### LV_HRBTR — data · unit 로컬 · L542-L542 {#decl-zfic0020f01-542-lv_hrbtr} ```abap DATA: LV_HRBTR LIKE BSEG-WRBTR. ``` #### LV_WRBTR — data · unit 로컬 · L543-L543 {#decl-zfic0020f01-543-lv_wrbtr} ```abap DATA: LV_WRBTR LIKE BSEG-WRBTR. ``` #### LV_WMWST — data · unit 로컬 · L544-L544 {#decl-zfic0020f01-544-lv_wmwst} ```abap DATA: LV_WMWST LIKE BSEG-WMWST. ``` ## Unit 목록 (컨테이너) | unit | 유형 | 위치 | 조각 | 한 줄 요약 | |---|---|---|---|---| | LCL_EVENT_RECEIVER~HANDLE_CLOSE | METHOD | ZFIALV L27-31 | 0 | | | ALV_SETTING | FORM | ZFIALV L126-129 | 0 | | | VARIANT_DEFAULT | FORM | ZFIALV L137-168 | 0 | | | VARIANT_HELP | FORM | ZFIALV L176-199 | 0 | | | VARIANT_FILL | FORM | ZFIALV L207-233 | 0 | | | FIELDCATALOG_CALL | FORM | ZFIALV L241-256 | 0 | | | EVENT_BUILD | FORM | ZFIALV L269-282 | 0 | | | ALV_LAYOUT_BUILD | FORM | ZFIALV L291-308 | 0 | | | ALV_DISPLAY | FORM | ZFIALV L317-354 | 0 | | | COLOR_SETTING | FORM | ZFIALV L360-367 | 0 | | | FIELD_SORTING | FORM | ZFIALV L380-393 | 0 | | | COLINFO_SETTING | FORM | ZFIALV L403-410 | 0 | | | ALV_HIERSEQ_DISPLAY | FORM | ZFIALV L419-460 | 0 | | | BUILD_LAYOUT | FORM | ZFIALV L475-492 | 0 | | | ALV_EVENTS_GET | FORM | ZFIALV L501-532 | 0 | | | USE_FORM | FORM | ZFIALV L538-550 | 0 | | | ALV_CELL_CONTROL | FORM | ZFIALV L560-570 | 0 | | | CREATE_DIALOG | FORM | ZFIALV L582-603 | 0 | | | ALV_CELL_COLOR | FORM | ZFIALV L612-620 | 0 | | | EVENT_BUILD_LVC | FORM | ZFIALV L633-704 | 0 | | | ALV_DISPLAY_LVC | FORM | ZFIALV L713-752 | 0 | | | SET_GRID_EXCLUDE | FORM | ZFIALV L761-782 | 0 | | | DATA_WRITE | FORM | ZFIALV L795-806 | 0 | | | FIELDCATALOG_MERGE_STRUCTURE | FORM | ZFIALV L812-845 | 0 | | | LOG_ALV_DISPLAY | FORM | ZFIALV L851-874 | 0 | | | LOG_CREATE | FORM | ZFIALV L885-942 | 0 | | | LOG_FIELDCATALOG | FORM | ZFIALV L952-962 | 0 | | | INITIALIZATION | EVENT | ZFIC0020 L29-33 | 0 | 본문이 비어 있는 INITIALIZATION 이벤트 블록이다. | | AT SELECTION-SCREEN ON VALUE-REQUEST | EVENT | ZFIC0020 L34-39 | 0 | P_FNAME F4 이벤트에서 TMEP_SELECT(파일 선택 대화상자)를 호출하는 플러밍 블록이다. | | AT SELECTION-SCREEN OUTPUT | EVENT | ZFIC0020 L40-45 | 0 | AT SELECTION-SCREEN OUTPUT 에서 MODIFY_SCREEN 을 호출하는 플러밍 블록이다. | | START-OF-SELECTION | EVENT | ZFIC0020 L46-84 | 2 | START-OF-SELECTION 에서 모드별(구조조회/템플릿 다운로드/업로드/로그)로 파일 검증·엑셀 업로드·ZFIT0010 조회·ALV 준비를 분기하는 메인 흐름이다. | | END-OF-SELECTION | EVENT | ZFIC0020 L85-98 | 1 | END-OF-SELECTION 에서 처리 모드(구조조회/업로드/로그)에 따라 GT_STRUCT·GT_LOAD·GT_Z0010 중 하나를 ALV_DISPLAY 로 출력하는 디스패치 블록이다. | | TMEP_SELECT | FORM | ZFIC0020F01 L9-24 | 0 | WS_FILENAME_GET 으로 업로드 파일 선택 대화상자를 띄워 P_FNAME 에 파일 경로를 받는 F4 helper FORM이다. | | STRUCTURE_DISPLAY | FORM | ZFIC0020F01 L30-39 | 0 | 구조조회 모드에서 STRUCTURE_DATA·ALV 설정·필드카탈로그·이벤트를 순서대로 호출하는 디스패치 FORM이다. | | STRUCTURE_DATA | FORM | ZFIC0020F01 L45-94 | 1 | 업로드 엑셀이 가져야 할 컬럼 구조(항목명·타입·길이·필수여부·설명)를 DATA_WRITE 로 GT_STRUCT 에 나열하는 구조조회용 FORM이다. | | DATA_BDC | FORM | ZFIC0020F01 L100-148 | 3 | BDC 모드를 정하고 GT_LOAD 를 SEQNO 단위로 묶어 전표 헤더/항목을 만들어 BDC 전기한 뒤 결과를 GT_LOAD 에 반영하고 ZFIT0010 이력에 저장하는 핵심 FORM이다. | | BDC_TRANSACTION_FB01 | FORM | ZFIC0020F01 L154-217 | 2 | 커스텀 FM Z_FI_DOCUMENT_POSTING 으로 전표 헤더/항목(BBKPF/BBSEG)을 BDC 전기하고 결과 전표번호·메시지를 GT_LOAD 아이콘·GT_BDCLOG·ZFIT0010 이력(GT_Z0010)에 기록하는 FORM이다. | | MAKE_BKPF | FORM | ZFIC0020F01 L223-244 | 1 | 엑셀 행(GS_LOAD)의 증빙일·전기일·전표유형·회사코드·기간·통화·환율·참조·헤더텍스트를 전표 헤더 구조 GT_BBKPF 에 매핑하고 T-Code(FB01/FBV1)를 정하는 FORM이다. | | MAKE_BSEG | FORM | ZFIC0020F01 L250-301 | 1 | 엑셀 행(GS_LOAD)에서 전기키·계정·금액·세금·원가대상·지급조건 등을 전표 항목 구조 GT_BBSEG 에 매핑해 추가하는 FORM이다. | | DATA_DOWNLOAD | FORM | ZFIC0020F01 L307-331 | 1 | 오류 발생 항목(GT_ERROR)을 원본 파일명에 접미어를 붙인 파일로 GUI_DOWNLOAD 하는 FORM이다. | | LOG_DISPLAY | FORM | ZFIC0020F01 L337-345 | 1 | BDC 처리 로그 GT_BDCLOG 를 ZFIS0040 구조 기반 필드카탈로그(SEQNO·TCODE·T_MSG)로 로그 ALV 에 표시하는 FORM이다. | | MODIFY_SCREEN | FORM | ZFIC0020F01 L351-364 | 0 | 로그 조회 모드(P_L)일 때만 그룹 L 의 선택화면 필드를 활성/표시하는 LOOP AT SCREEN 플러밍 FORM이다. | | FILE_DOWNLOAD | FORM | ZFIC0020F01 L370-376 | 1 | 웹 리포지토리(SMW0) 객체 MIZFIC0020 을 DOWNLOAD_WEB_OBJECT 로 내려받아 업로드 템플릿 파일을 제공하는 FORM이다. | | FIELDCATALOG_MERGE | FORM | ZFIC0020F01 L382-454 | 0 | 업로드 ALV(GT_LOAD)의 필드카탈로그를 생성하고 컬럼 텍스트·정렬·핫스팟·숨김을 설정하는 ALV 설정 FORM이다. | | SET_STATUS | FORM | ZFIC0020F01 L462-469 | 1 | ALV PF 상태 PF_S1000 을 설정하되 로그 모드(P_L)나 실행 완료 후에는 FB01/FBV1 전기 버튼을 제외하는 FORM이다. | | USER_COMMAND | FORM | ZFIC0020F01 L478-526 | 3 | ALV 사용자 명령 핸들러로 전기실행(FB01)/임시전기(FBV1)는 DATA_BDC 로 전표 생성, BLOG 는 BDC 로그 표시, 전표번호 더블클릭은 FB03 조회를 분기한다. | | MODIFY_DATA | FORM | ZFIC0020F01 L532-582 | 2 | 업로드한 전표 행을 전표그룹별로 묶어 차·대변 합계가 맞는지 검증하고 신호등으로 표시한다. | | GET_TBSL | FORM | ZFIC0020F01 L591-599 | 1 | 전기키 마스터 TBSL 에서 전기키·차대변지시자·계정유형을 읽어 GT_TBSL 에 적재하는 FORM이다. | | GET_ZFIT0010 | FORM | ZFIC0020F01 L605-620 | 1 | 회사코드와 생성일자 범위로 업로드 이력 테이블 ZFIT0010 을 조회해 GT_Z0010 에 적재하고 SEQNO 로 정렬하는 FORM이다. | | FIELDCATALOG_MERGE_LOG | FORM | ZFIC0020F01 L629-651 | 0 | ZFIT0010 로그 ALV 용 필드카탈로그를 생성하고 컬럼 정렬·키·핫스팟 속성을 조정하는 ALV 설정 FORM이다. | | NAME_SELECT | FORM | ZFICOM L378-387 | 1 | 사용자 ID 로 V_USERNAME 뷰에서 사용자 이름을 조회하는 공통 FORM 이다. | | SELECT_CSKT | FORM | ZFICOM L397-408 | 1 | 관리회계영역·코스트센터로 CSKT 에서 유효한 코스트센터명을 조회하는 공통 FORM 이다. | | SELECT_J_1BBRANCH | FORM | ZFICOM L419-428 | 1 | 회사코드·사업장(Business Place)으로 J_1BBRANCH 사업장명을 조회하는 공통 FORM 이다. | | SELECT_SKAT | FORM | ZFICOM L438-464 | 1 | G/L 계정번호로 SKAT 계정과목 텍스트(장문 50/단문 20)를 언어별로 조회하는 공통 FORM 이다. | | CHECK_CONFIRM_STEP | FORM | ZFICOM L476-491 | 1 | 제목·메시지 1줄로 POPUP_TO_CONFIRM_STEP 확인 팝업을 띄우고 응답(GF_ANSWER)을 받는 공통 헬퍼다. | | CHECK_CONFIRM_STEP_2 | FORM | ZFICOM L503-520 | 1 | 제목·메시지 2줄로 POPUP_TO_CONFIRM_STEP 확인 팝업을 띄우고 응답(GF_ANSWER)을 받는 공통 헬퍼다. | | AUTHORITY_BUKRS | FORM | ZFICOM L528-536 | 1 | 회사코드에 대한 SAP 표준 권한(F_BKPF_BUK)을 검사하고 권한이 없으면 처리를 중단한다. | | AUTHORITY_PG | FORM | ZFICOM L545-563 | 1 | 사용자 ID 로 커스텀 권한테이블 ZFIT0160 을 조회해 프로그램(T-Code)별 실행 권한을 검증하는 공통 FORM 이다. | | GET_DOMAIN_VALUE | FORM | ZFICOM L574-593 | 1 | DOMAIN_VALUE_GET 으로 도메인 고정값의 텍스트를 조회하는 공통 헬퍼다. | | CALC_DATE_IN_INTERVAL | FORM | ZFICOM L606-623 | 1 | 기준일에 일·월·년을 가감한 날짜를 RP_CALC_DATE_IN_INTERVAL 로 계산하는 공통 헬퍼다. | | CALC_BETWEEN_DATES | FORM | ZFICOM L635-651 | 1 | 두 날짜 사이의 일·월·년 차이를 HRVE_GET_TIME_BETWEEN_DATES 로 계산하는 공통 헬퍼다. | | NUMERIC_CHECK | FORM | ZFICOM L659-665 | 0 | | | DYNP_VALUES_READ | FORM | ZFICOM L674-703 | 1 | DYNP_VALUES_READ 로 현재 화면 필드의 입력값을 PAI 전에 읽어오는 공통 헬퍼다. | | FIELD_SETTING | FORM | ZFICOM L713-720 | 0 | | | HELP_DISPLAY | FORM | ZFICOM L729-749 | 0 | | | SELECT_T007S | FORM | ZFICOM L758-770 | 1 | 세금코드(MWSKZ)의 부가세 텍스트를 T007S 에서 조회하는 공통 FORM 이다. | | GET_NEXT_NUMBER | FORM | ZFICOM L781-819 | 1 | 번호범위 오브젝트에서 다음 일련번호를 받아온다 (CBO 테이블의 키 생성용). | | CREATE_ICON | FORM | ZFICOM L829-844 | 0 | | | DATA_UPLOAD | FORM | ZFICOM L853-908 | 3 | 파일 확장자(TXT/XLS)에 따라 GUI_UPLOAD 또는 TEXT_CONVERT_XLS_TO_SAP 으로 로컬 파일을 내부테이블로 업로드하는 공통 FORM 이다. | | DATA_UPLOAD_2 | FORM | ZFICOM L917-950 | 2 | 엑셀 파일을 KCD_EXCEL_OLE_TO_INT_CONVERT 로 셀 단위로 읽어 행별로 T_LOAD 내부테이블 구조에 매핑하는 공통 업로드 FORM 이다. | | CONVERT_TO_FOREIGN_CURRENCY | FORM | ZFICOM L962-999 | 1 | 현지통화 금액을 환율·기준일로 외화 금액으로 환산하는 공통 FORM 이다. | | CONVERT_TO_LOCAL_CURRENCY | FORM | ZFICOM L1011-1039 | 1 | 외화 금액을 환율·기준일로 회사코드 현지통화(T001-WAERS) 금액으로 환산하는 공통 FORM 이다. | | SELECT_USR01 | FORM | ZFICOM L1084-1088 | 1 | 사용자명으로 USR01(사용자 마스터 기본값)을 단건 조회하는 공통 FORM 이다. | | SMARTFORM_CONTROL | FORM | ZFICOM L1101-1138 | 1 | Smartform 이름으로 생성 FM 이름을 구하고 미리보기·다이얼로그·프린터 등 출력 옵션(GS_DEVICE/GS_OPTIONS)을 설정한다. | | SMARTFORM_OPEN | FORM | ZFICOM L1144-1156 | 1 | Smartform 출력 작업을 SSF_OPEN 으로 시작하는 공통 FORM 이다. | | SMARTFORM_CLOSE | FORM | ZFICOM L1162-1175 | 1 | Smartform 출력 작업을 SSF_CLOSE 로 종료하고 JOB_OUTPUT_INFO 를 받아오는 공통 FORM 이다. | | F4IF_INT_TABLE_VALUE_REQUEST | FORM | ZFICOM L1186-1214 | 0 | | | EXIT INPUT | MODULE | ZFICOM L1220-1230 | 0 | | | DYNPRO | FORM | ZFICOM L1240-1251 | 1 | BDC 화면 시작 또는 필드값 한 줄을 GT_BDC(BDCDATA) 에 추가하는 공통 BDC 빌더 헬퍼다. | | BDC_TRANSACTION | FORM | ZFICOM L1259-1266 | 1 | GT_BDC 데이터로 지정 T-Code 를 CALL TRANSACTION 하고 결과 메시지를 GT_MESS 에 받는 공통 BDC 실행 FORM 이다. | | MESSAGE_SELECT | FORM | ZFICOM L1274-1285 | 1 | BDC 메시지(GT_MESS)의 ID·번호·변수를 MESSAGE_TEXT_BUILD 로 메시지 텍스트로 조립하는 공통 헬퍼다. | | BDC_FK03 | FORM | ZFICOM L1294-1318 | 1 | 구매처코드와 회사코드로 FK03 구매처 마스터 조회 화면을 BDC 로 호출한다. | | CALL_TRANSACTION_FB03 | FORM | ZFICOM L1328-1336 | 1 | 회사코드·전표번호·회계연도를 파라미터 ID 로 넘겨 FB03 회계전표 조회 화면을 호출한다. | | STATUS_BAR | FORM | ZFICOM L1345-1366 | 1 | 처리 진행률을 계산해 SAPGUI 상태바에 진행 상황 텍스트를 표시하는 공통 유틸리티다. |