Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
74 KiB
type, title, description, resource, tags, generated, status, x-package, x-changed-on, x-tables-read, x-tables-write, x-calls, x-code-hash, x-unit-count, x-chunk-count, x-declaration-count
| type | title | description | resource | tags | generated | status | x-package | x-changed-on | x-tables-read | x-tables-write | x-calls | x-code-hash | x-unit-count | x-chunk-count | x-declaration-count | ||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| abap-program | ZFIR0100 — [FI] 전자세금계산서 매입전표 생성 | 전자세금계산서 수신 데이터(ZDTV3T_AP_EXT 헤더/ZDTV3T_AP_EXT_D 상세)를 읽어 매입 전표를 생성하는 화면이다. 편집 가능한 ALV 그리드에서 수신 세금계산서를 검토·수정하고, 전기 대상을 확정해 저장·전기한다. 실제 전표 입력 화면은 ZFIR0110_DOC 을 호출해 처리하며, 셀 단위 입력 제어(CELLTAB)와 변형(Variant) 관리를 갖춘다. | abap://ZFIR0100 |
|
|
stable |
|
|
|
009c573d7068cede209822b699c51af6a3cf09665a4077f9c8cdf6ee202d53e5 | 64 | 25 | 84 |
업무 목적
전자세금계산서 수신 데이터(ZDTV3T_AP_EXT 헤더/ZDTV3T_AP_EXT_D 상세)를 읽어 매입 전표를 생성하는 화면이다. 편집 가능한 ALV 그리드에서 수신 세금계산서를 검토·수정하고, 전기 대상을 확정해 저장·전기한다. 실제 전표 입력 화면은 ZFIR0110_DOC 을 호출해 처리하며, 셀 단위 입력 제어(CELLTAB)와 변형(Variant) 관리를 갖춘다.
주 흐름
- 초기 변형(Variant)을 불러오고 선택화면을 준비한다 (SET_INIT → GET_INIT_VARIANT → GET_VARIANT)
- 대상 기간의 전자세금계산서 수신 내역을 읽어 그리드 데이터를 만든다 (SET_DATA)
- 셀 입력 가능 여부와 행 스타일을 설정한다 (SET_ITAB_STYLE → SET_CELLTAB)
- 필드카탈로그·레이아웃·툴바를 구성해 편집 가능한 ALV 를 화면 0100 에 띄운다 (SET_FIELD01 → RUN_DISPLAY_ALV)
- 사용자 변경을 반영하고 날짜·텍스트를 보정한다 (SET_CHANGE → DATE_PROCESS → TEXT_PROCESS)
- 확인 팝업 후 저장·전기한다 (POPUP_TO_CONFIRM → SET_SAVE → SET_POST)
- 전표 입력 상세는 ZFIR0110_DOC 을 호출해 처리한다
핵심 내부테이블
GT_MAIN— 전자세금계산서 수신 내역 편집 그리드 (채움: SET_DATA / 소비: RUN_DISPLAY_ALV, SET_SAVE, SET_POST)
테이블 / 외부 호출
- read: ZDTV3T_AP_EXT, ZDTV3T_AP_EXT_D
- write: GT_MAIN, ZDTV3T_AP_EXT, ZDTV3T_AP_EXT_D
- 외부 호출: FB03, LAST_DAY_OF_MONTHS, POPUP_TO_CONFIRM, POPUP_TO_CONFIRM_STEP, REUSE_ALV_VARIANT_DEFAULT_GET, SAPGUI_PROGRESS_INDICATOR, ZFIR0110_DOC
로직 조각 (25건 / unit 18개)
LLM 이 코드에서 골라낸 업무 로직 단위다. 조각마다 소스 원문과 자연어 설명을 함께 싣는다 — 설명이 코드와 맞는지 바로 대조할 수 있어야 하기 때문이다. 테이블·호출은 LLM 이 쓴 값이 아니라 파서가 조각 범위에서 다시 뽑은 사실이다. 순서는 실행 순서다.
FORM GET_INIT_VARIANT — ZFIR0100F01 L55-L74 (20줄)
변형 키를 초기화하고 REUSE_ALV_VARIANT_DEFAULT_GET 으로 사용자 기본 ALV 변형(Variant)을 조회하는 FORM 이다.
이 unit 의 조각 1개가 12/20줄(60%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다.
[fm_call] REUSE_ALV_VARIANT_DEFAULT_GET(I_SAVE='A') 으로 리포트·사용자·핸들에 해당하는 기본 ALV 변형을 GX_VARIANT 에 읽는다(결과 반영은 주석 처리).
61| GX_VARIANT = GS_VARIANT.
62|
63| CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'
64| EXPORTING
65| I_SAVE = 'A'
66| CHANGING
67| CS_VARIANT = GX_VARIANT
68| EXCEPTIONS
69| NOT_FOUND = 2.
70| IF SY-SUBRC = 0.
71| **** PA_LAYOU = GX_VARIANT-VARIANT.
72| ENDIF.
- EN: Retrieves the user's default ALV layout variant via REUSE_ALV_VARIANT_DEFAULT_GET.
- 호출(파서): REUSE_ALV_VARIANT_DEFAULT_GET
- SAP 객체: REUSE_ALV_VARIANT_DEFAULT_GET
- 업무 키워드: 기본 변형, ALV 레이아웃, 변형 조회
- English: Default Variant, ALV Layout
- 정의부(복사 시 함께 필요):
GX_VARIANT,GS_VARIANT - 위치:
abap://ZFIR0100/ZFIR0100F01#L61-L72· confidence 0.8 ·ZFIR0100#ZFIR0100F01#FORM#GET_INIT_VARIANT#C1
FORM SET_DATA — ZFIR0100F01 L92-L166 (75줄)
조회 월의 기간을 만든 뒤 전자세금계산서 헤더(ZDTV3T_AP_HEAD)·확장(ZDTV3T_AP_EXT)·상세(ZDTV3T_AP_EXT_D)를 조인해 전표처리 상태 조건으로 수신 내역을 IT_ZDTV3T_AP_HEAD 에 읽는 FORM 이다.
이 unit 의 조각 2개가 37/75줄(49%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다.
[control_flow] 라디오버튼(P_R1 미처리/P_R2 처리완료/P_R3 전체)에 따라 전표처리 여부(USE_DOC) 필터값 L_DOC1/L_DOC2 를 결정한다.
125| IF P_R1 = 'X'.
126| L_DOC1 = SPACE.
127| L_DOC2 = SPACE.
128| ELSEIF P_R2 = 'X'.
129| L_DOC1 = 'X'.
130| L_DOC2 = 'X'.
131| ELSEIF P_R3 = 'X'.
132| L_DOC1 = 'X'.
133| L_DOC2 = SPACE.
134| ENDIF.
- EN: Derives the USE_DOC filter values from the selection radio buttons (unposted, posted, or all).
- 업무 키워드: 조회 조건, 전표처리 여부, 라디오버튼
- English: Selection Criteria, Document Status Filter
- 정의부(복사 시 함께 필요):
P_R1,L_DOC1,L_DOC2,P_R2,P_R3 - 위치:
abap://ZFIR0100/ZFIR0100F01#L125-L134· confidence 0.8 ·ZFIR0100#ZFIR0100F01#FORM#SET_DATA#C1
[sql_select] ZDTV3T_AP_HEAD 를 ZDTV3T_AP_EXT·ZDTV3T_AP_EXT_D 와 회사코드·작성일자·사업장·일련번호로 INNER JOIN 하여 회사코드·작성일 기간·공급자 사업자번호·이메일·미취소(INV_SIGN 공백)·전표처리 여부 조건으로 수신 전자세금계산서를 IT_ZDTV3T_AP_HEAD 에 적재한다.
138| SELECT *
139| INTO CORRESPONDING FIELDS OF IT_ZDTV3T_AP_HEAD
140| FROM ( ( ZDTV3T_AP_HEAD AS A INNER JOIN ZDTV3T_AP_EXT AS B
141| ON A~BUKRS = B~BUKRS
142| AND A~ISSUE_DATE = B~ISSUE_DATE
143| AND A~BUPLA = B~BUPLA
144| AND A~INV_SEQ = B~INV_SEQ )
145|
146| INNER JOIN ZDTV3T_AP_EXT_D AS C
147|
148| ON B~BUKRS = C~BUKRS
149| AND B~ISSUE_DATE = C~ISSUE_DATE
150| AND B~BUPLA = C~BUPLA
151| AND B~INV_SEQ = C~INV_SEQ )
152|
153| WHERE A~BUKRS = P_BUKRS
154| AND A~ISSUE_DATE IN S_BUDAT
155| AND A~SU_ID IN S_SU_ID
156| AND A~IP_EMAIL1 IN S_EMAIL
157| AND A~INV_SIGN = ''
158| AND ( B~USE_DOC = L_DOC1 OR
159| B~USE_DOC = L_DOC2 ).
160|
161| APPEND IT_ZDTV3T_AP_HEAD.
162| CLEAR IT_ZDTV3T_AP_HEAD.
163|
164| ENDSELECT.
- EN: Selects received e-tax invoices by joining ZDTV3T_AP_HEAD with ZDTV3T_AP_EXT and ZDTV3T_AP_EXT_D on company code, issue date, business place and sequence, filtered by period, supplier ID, email, non-cancelled and USE_DOC status.
- 테이블(파서): read ZDTV3T_AP_EXT, ZDTV3T_AP_EXT_D / write -
- SAP 객체: ZDTV3T_AP_HEAD, ZDTV3T_AP_EXT, ZDTV3T_AP_EXT_D
- 업무 키워드: 전자세금계산서 수신, 매입 세금계산서, 조회, 조인, 전표처리 여부
- English: E-Tax Invoice, AP Invoice, Business Place, Inner Join
- 정의부(복사 시 함께 필요):
ZDTV3T_AP_HEAD,IT_ZDTV3T_AP_HEAD,ZDTV3T_AP_EXT,ZDTV3T_AP_EXT_D,P_BUKRS,S_BUDAT,S_SU_ID,S_EMAIL,L_DOC1,L_DOC2 - 위치:
abap://ZFIR0100/ZFIR0100F01#L138-L164· confidence 0.9 ·ZFIR0100#ZFIR0100F01#FORM#SET_DATA#C2
FORM DATE_PROCESS — ZFIR0100F01 L311-L330 (20줄)
조회 연월(P_SPMON)로 월초~월말 날짜 범위 S_BUDAT 를 LAST_DAY_OF_MONTHS 로 구성하는 FORM 이다.
이 unit 의 조각 1개가 16/20줄(80%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다.
[calculation] 연월 P_SPMON 의 1일을 시작일로 하고 LAST_DAY_OF_MONTHS 로 월말일을 구해 작성일자 조회 범위 S_BUDAT(BT) 를 만든다.
313| CLEAR: S_BUDAT[], S_BUDAT.
314| S_BUDAT-SIGN = 'I'.
315| S_BUDAT-OPTION = 'BT'.
316| S_BUDAT-LOW+0(6) = P_SPMON.
317| S_BUDAT-LOW+6(2) = '01'.
318|
319| CALL FUNCTION 'LAST_DAY_OF_MONTHS'
320| EXPORTING
321| DAY_IN = S_BUDAT-LOW
322| IMPORTING
323| LAST_DAY_OF_MONTH = S_BUDAT-HIGH
324| EXCEPTIONS
325| DAY_IN_NO_DATE = 1
326| OTHERS = 2.
327|
328| APPEND S_BUDAT.
- EN: Builds the issue-date range S_BUDAT from the first day of the selected month to its last day via LAST_DAY_OF_MONTHS.
- 호출(파서): LAST_DAY_OF_MONTHS
- SAP 객체: LAST_DAY_OF_MONTHS
- 업무 키워드: 조회 기간, 월초, 월말, 날짜 범위
- English: Period Range, Last Day Of Month, Select-Option
- 정의부(복사 시 함께 필요):
S_BUDAT,P_SPMON - 위치:
abap://ZFIR0100/ZFIR0100F01#L313-L328· confidence 0.95 ·ZFIR0100#ZFIR0100F01#FORM#DATE_PROCESS#C1
FORM MODIFY_PROCESS — ZFIR0100F01 L240-L261 (22줄)
조회된 IT_ZDTV3T_AP_HEAD 를 GT_MAIN 그리드 테이블로 옮기며 전표번호 유무에 따라 처리 상태 아이콘(ZICON)을 설정하는 FORM 이다.
이 unit 의 조각 1개가 15/22줄(68%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다.
[other] 수신 전자세금계산서 각 건을 GT_MAIN 으로 복사하고 전표번호(BELNR)가 없으면 미처리 아이콘(@09@), 있으면 처리완료 아이콘(@08@)을 ZICON 에 넣어 그리드 상태 표시를 만든다.
244| LOOP AT IT_ZDTV3T_AP_HEAD.
245|
246| MOVE-CORRESPONDING IT_ZDTV3T_AP_HEAD TO GT_MAIN.
247|
248| IF GT_MAIN-BELNR IS INITIAL.
249| GT_MAIN-ZICON = '@09@'.
250| ELSE.
251| GT_MAIN-ZICON = '@08@'.
252| ENDIF.
253|
254|
255| APPEND GT_MAIN.
256| CLEAR GT_MAIN.
257|
258| ENDLOOP.
- EN: Copies each e-tax invoice row into GT_MAIN and sets the status icon based on whether an FI document number (BELNR) already exists.
- SAP 객체: GT_MAIN, IT_ZDTV3T_AP_HEAD
- 업무 키워드: 상태 아이콘, 전표처리 여부, 그리드 데이터 구성
- English: Status Icon, Document Number, Grid Data
- 정의부(복사 시 함께 필요):
ZDTV3T_AP_HEAD,IT_ZDTV3T_AP_HEAD,GT_MAIN - 위치:
abap://ZFIR0100/ZFIR0100F01#L244-L258· confidence 0.85 ·ZFIR0100#ZFIR0100F01#FORM#MODIFY_PROCESS#C1
FORM DATA_CHANGED — ZFIR0100F02 L962-L1040 (79줄)
편집 ALV 의 DATA_CHANGED 이벤트에서 변경된 셀 값을 GT_MAIN 에 반영하고 변경 플래그를 세우며 오류 시 프로토콜에 기록한 뒤 그리드를 새로고침하는 FORM 이다.
이 unit 의 조각 2개가 58/79줄(73%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다.
[validation] 행 삽입(MT_INSERTED_ROWS)이 있으면 셀 변경 처리를 하지 않고 종료한다.
977| DESCRIBE TABLE P_CHANGED->MT_INSERTED_ROWS LINES LV_LINE.
978| IF LV_LINE <> 0.
979| EXIT.
980| ENDIF.
- EN: Exits without processing when the change protocol contains inserted rows.
- 호출(파서): P_CHANGED->MT_INSERTED_ROWS
- SAP 객체: CL_ALV_CHANGED_DATA_PROTOCOL
- 업무 키워드: 행 삽입 제외, 변경 검사
- English: Inserted Rows, Data Changed
- 정의부(복사 시 함께 필요):
LV_LINE - 위치:
abap://ZFIR0100/ZFIR0100F02#L977-L980· confidence 0.8 ·ZFIR0100#ZFIR0100F02#FORM#DATA_CHANGED#C1
[other] 변경된 셀(MT_GOOD_CELLS)마다 GET_CELL_VALUE 로 값을 읽어 GT_MAIN 의 해당 필드에 MODIFY 하고 회사코드를 채우며 변경 플래그(GV_CHK)를 세운 뒤, 오류면 ADD_PROTOCAL_ENTRY 로 기록하고 정상이면 MODIFY_CELL 로 셀 값을 확정한다(ZDTV3T_AP_EXT USE_DOC 갱신은 주석 처리).
982| LOOP AT P_CHANGED->MT_GOOD_CELLS INTO LS_MOD_CELLS.
983| CLEAR: GV_ERR, GS_MSG.
984|
985| ASSIGN COMPONENT LS_MOD_CELLS-FIELDNAME
986| OF STRUCTURE GT_MAIN TO <FS_FIELD>.
987|
988| * 입력된 셀의 값 얻기
989|
990| CALL METHOD P_CHANGED->GET_CELL_VALUE
991| EXPORTING
992| I_ROW_ID = LS_MOD_CELLS-ROW_ID
993| I_FIELDNAME = LS_MOD_CELLS-FIELDNAME
994| I_TABIX = LS_MOD_CELLS-TABIX
995| IMPORTING
996| E_VALUE = <FS_FIELD>.
997|
998| GV_CHK = 'X'. " 변경 CHECK
999|
1000| GT_MAIN-BUKRS = P_BUKRS.
1001|
1002| MODIFY GT_MAIN INDEX LS_MOD_CELLS-ROW_ID
1003| TRANSPORTING (LS_MOD_CELLS-FIELDNAME).
1004|
1005|
1006| IF GV_ERR IS NOT INITIAL.
1007| PERFORM ADD_PROTOCAL_ENTRY USING P_CHANGED
1008| LS_MOD_CELLS
1009| GS_MSG.
1010| ELSE.
1011|
1012| * UPDATE VALUE
1013|
1014| CALL METHOD P_CHANGED->MODIFY_CELL
1015| EXPORTING
1016| I_ROW_ID = LS_MOD_CELLS-ROW_ID
1017| I_FIELDNAME = LS_MOD_CELLS-FIELDNAME
1018| I_VALUE = LS_MOD_CELLS-VALUE.
1019|
1020|
1021| * IF LS_MOD_CELLS-FIELDNAME = 'BELNR'.
1022| * IF LS_MOD_CELLS-VALUE IS INITIAL.
1023| * L_USE_DOC = ''.
1024| * ELSE.
1025| * L_USE_DOC = 'X'.
1026| * ENDIF.
1027| * UPDATE ZDTV3T_AP_EXT SET: USE_DOC = L_USE_DOC
1028| * WHERE BUKRS = GT_MAIN-BUKRS
1029| * AND ISSUE_DATE = GT_MAIN-ISSUE_DATE
1030| * AND BUPLA = GT_MAIN-BUPLA
1031| * AND INV_SEQ = GT_MAIN-INV_SEQ.
1032| * ENDIF.
1033| ENDIF.
1034|
1035| ENDLOOP.
- EN: For each changed cell, reads the new value with GET_CELL_VALUE, updates the GT_MAIN field and change flag, and either logs an error via ADD_PROTOCAL_ENTRY or confirms the value with MODIFY_CELL.
- 테이블(파서): read - / write GT_MAIN
- 호출(파서): P_CHANGED->MT_GOOD_CELLS, P_CHANGED->GET_CELL_VALUE, ADD_PROTOCAL_ENTRY, P_CHANGED->MODIFY_CELL
- SAP 객체: CL_ALV_CHANGED_DATA_PROTOCOL, GET_CELL_VALUE, MODIFY_CELL, GT_MAIN
- 업무 키워드: 셀 변경 반영, 변경 플래그, 오류 프로토콜, 전표번호 입력
- English: Data Changed, Cell Value, Editable ALV
- 정의부(복사 시 함께 필요):
LS_MOD_CELLS,GV_ERR,GS_MSG,ZDTV3T_AP_HEAD,GT_MAIN,<FS_FIELD>,GV_CHK,P_BUKRS - 위치:
abap://ZFIR0100/ZFIR0100F02#L982-L1035· confidence 0.85 ·ZFIR0100#ZFIR0100F02#FORM#DATA_CHANGED#C2
FORM ADD_PROTOCAL_ENTRY — ZFIR0100F02 L1064-L1084 (21줄)
편집 ALV 의 셀 검증 오류를 CL_ALV_CHANGED_DATA_PROTOCOL->ADD_PROTOCOL_ENTRY 로 오류 로그(메시지 00/E)에 추가하는 FORM 이다.
이 unit 의 조각 1개가 11/21줄(52%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다.
[output] 검증 실패 셀(필드명·행)에 대해 FIMSG 메시지 내용을 ADD_PROTOCOL_ENTRY 로 등록해 ALV 오류 프로토콜에 표시한다.
1072| CALL METHOD RR_DATA_CHANGED->ADD_PROTOCOL_ENTRY
1073| EXPORTING
1074| I_MSGID = '00'
1075| I_MSGTY = 'E'
1076| I_MSGNO = PS_MESSAGE-MSGNO
1077| I_MSGV1 = PS_MESSAGE-MSGV1
1078| I_MSGV2 = PS_MESSAGE-MSGV2
1079| I_MSGV3 = PS_MESSAGE-MSGV3
1080| I_MSGV4 = PS_MESSAGE-MSGV4
1081| I_FIELDNAME = RS_MOD_CELLS-FIELDNAME
1082| I_ROW_ID = RS_MOD_CELLS-ROW_ID.
- EN: Adds an error message for the failed cell to the ALV changed-data protocol via ADD_PROTOCOL_ENTRY.
- 호출(파서): RR_DATA_CHANGED->ADD_PROTOCOL_ENTRY
- SAP 객체: CL_ALV_CHANGED_DATA_PROTOCOL, ADD_PROTOCOL_ENTRY
- 업무 키워드: 오류 프로토콜, 셀 검증 오류, 메시지
- English: Error Protocol, Data Changed, ALV Grid
- 위치:
abap://ZFIR0100/ZFIR0100F02#L1072-L1082· confidence 0.85 ·ZFIR0100#ZFIR0100F02#FORM#ADD_PROTOCAL_ENTRY#C1
FORM USER_COMMAND — ZFIR0100F02 L874-L901 (28줄)
ALV 툴바 사용자 명령(REFRESH/SAVE/POST)을 받아 재조회·확인 후 저장·전표기표 FORM 으로 분기하는 디스패치 FORM 이다.
이 unit 의 조각 1개가 21/28줄(75%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다.
[control_flow] REFRESH 는 SET_DATA·MODIFY_PROCESS·SET_REFRESH 로 재조회, SAVE 는 POPUP_TO_CONFIRM 후 SET_SAVE, POST 는 SET_POST 로 매입전표 기표를 실행한다.
879| CASE P_UCOMM.
880|
881| WHEN 'REFRESH'.
882| PERFORM SET_DATA.
883| PERFORM MODIFY_PROCESS.
884| PERFORM SET_REFRESH.
885|
886| WHEN 'SAVE'.
887| PERFORM POPUP_TO_CONFIRM USING P_ANSWER P_UCOMM.
888| CHECK P_ANSWER = 'J'.
889| PERFORM SET_SAVE.
890| PERFORM SET_REFRESH.
891|
892| WHEN 'POST'.
893| * PERFORM POPUP_TO_CONFIRM USING P_ANSWER P_UCOMM.
894| * CHECK P_ANSWER = 'J'.
895| PERFORM SET_POST.
896| PERFORM SET_REFRESH.
897|
898|
899| ENDCASE.
- EN: Dispatches ALV user commands to refresh, confirm-and-save, or post routines for the e-tax invoice grid.
- 호출(파서): SET_DATA, MODIFY_PROCESS, SET_REFRESH, POPUP_TO_CONFIRM, SET_SAVE, SET_REFRESH, SET_POST, SET_REFRESH
- SAP 객체: POPUP_TO_CONFIRM
- 업무 키워드: 사용자 명령, 재조회, 저장, 전표기표
- English: User Command, Refresh, Save, Post
- 정의부(복사 시 함께 필요):
P_ANSWER - 위치:
abap://ZFIR0100/ZFIR0100F02#L879-L899· confidence 0.85 ·ZFIR0100#ZFIR0100F02#FORM#USER_COMMAND#C1
FORM POPUP_TO_CONFIRM — ZFIR0100F01 L265-L296 (32줄)
저장/전표기표 명령에 맞는 문구로 POPUP_TO_CONFIRM_STEP 확인 팝업을 띄워 사용자 응답을 받는 FORM 이다.
이 unit 의 조각 1개가 22/32줄(69%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다.
[fm_call] SAVE 는 '저장 하시겠습니까', POST 는 '전표기표 하시겠습니까' 문구를 준비해 POPUP_TO_CONFIRM_STEP 으로 확인 팝업을 띄우고 응답을 FP_ANSWER 에 받는다.
272| CASE SAVE_OK.
273|
274| WHEN 'SAVE'.
275| L_DEFAULTOPTION = 'Y'.
276| L_TEXTLINE2 = '저장 하시겠습니까 ?'.
277|
278|
279| WHEN 'POST'.
280| L_DEFAULTOPTION = 'Y'.
281| L_TEXTLINE2 = '전표기표 하시겠습니까 ?'.
282|
283| ENDCASE.
284|
285| CALL FUNCTION 'POPUP_TO_CONFIRM_STEP'
286| EXPORTING
287| DEFAULTOPTION = L_DEFAULTOPTION
288| TEXTLINE1 = L_TEXTLINE1
289| TEXTLINE2 = L_TEXTLINE2
290| TITEL = TEXT-101
291| CANCEL_DISPLAY = ''
292| IMPORTING
293| ANSWER = FP_ANSWER.
- EN: Prepares the question text by command (SAVE/POST) and calls POPUP_TO_CONFIRM_STEP to obtain the user's confirmation answer.
- 호출(파서): POPUP_TO_CONFIRM_STEP
- SAP 객체: POPUP_TO_CONFIRM_STEP
- 업무 키워드: 확인 팝업, 저장 확인, 전표기표 확인
- English: Confirmation Popup, Posting Confirmation
- 정의부(복사 시 함께 필요):
SAVE_OK,L_DEFAULTOPTION,L_TEXTLINE2,L_TEXTLINE1 - 위치:
abap://ZFIR0100/ZFIR0100F01#L272-L293· confidence 0.95 ·ZFIR0100#ZFIR0100F01#FORM#POPUP_TO_CONFIRM#C1
FORM SET_SAVE — ZFIR0100F01 L404-L492 (89줄)
ALV 에서 선택한 전자세금계산서 행의 전표번호를 수신 테이블에 저장하고 사용여부·상태 아이콘을 갱신한다.
이 unit 의 조각 2개가 57/89줄(64%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다.
[validation] ALV 그리드에서 현재 선택된 행을 가져오고, 선택이 없으면 '저장 할 행을 선택하세요' 메시지를 내고 중단한다.
426| CLEAR LT_ROWS[].
427| CALL METHOD GO_GRID->GET_SELECTED_ROWS
428| IMPORTING
429| ET_INDEX_ROWS = LT_ROWS.
430|
431| IF LT_ROWS[] IS INITIAL.
432| MESSAGE S001 WITH '저장 할 행을 선택하세요.'.
433| EXIT.
434| ENDIF.
- EN: Fetches the selected ALV rows and aborts with a message when nothing is selected.
- 호출(파서): GO_GRID->GET_SELECTED_ROWS
- SAP 객체: CL_GUI_ALV_GRID, GET_SELECTED_ROWS
- 업무 키워드: 행선택, 선택검증, 저장전검증, ALV선택
- English: row selection, selection check, pre-save validation, ALV
- 정의부(복사 시 함께 필요):
LT_ROWS,GO_GRID - 위치:
abap://ZFIR0100/ZFIR0100F01#L426-L434· confidence 0.88 ·ZFIR0100#ZFIR0100F01#FORM#SET_SAVE#C1
[db_write] 선택한 행마다 전자세금계산서 상세 테이블 ZDTV3T_AP_EXT_D 에 생성된 전표번호·회계연도·처리자를 회사코드·발행일·사업장·계산서순번 키로 UPDATE 하고, 전표번호 유무에 따라 헤더 테이블 ZDTV3T_AP_EXT 의 사용여부(USE_DOC)와 화면 상태 아이콘을 갱신한다.
437| LOOP AT LT_ROWS INTO LS_ROWS WHERE ROWTYPE = SPACE.
438| CLEAR GT_MAIN.
439|
440|
441| READ TABLE GT_MAIN INDEX LS_ROWS-INDEX.
442| IF SY-SUBRC = 0.
443|
444| CLEAR: GT_MAIN-SCOL, LT_SCOL, LT_SCOL[].
445|
446| UPDATE ZDTV3T_AP_EXT_D SET: BELNR = GT_MAIN-BELNR
447| * BUDAT = LT_BKPF-BUDAT
448| * BLDAT = LT_BKPF-BLDAT
449| * BLART = LT_BKPF-BLART
450| * MWSKZ = ZDTV3S_DOC_LIFNR-MWSKZ
451| * DMBTR = IS_INVOICE-GRANDTOTAL
452| UNAME = SY-UNAME
453| ZGJAH = GT_MAIN-ZGJAH
454| WHERE BUKRS = GT_MAIN-BUKRS
455| AND ISSUE_DATE = GT_MAIN-ISSUE_DATE
456| AND BUPLA = GT_MAIN-BUPLA
457| AND INV_SEQ = GT_MAIN-INV_SEQ.
458|
459| IF GT_MAIN-BELNR IS INITIAL.
460| L_USE_DOC = ''.
461| GT_MAIN-ZICON = '@09@'.
462|
463| ELSE.
464| L_USE_DOC = 'X'.
465| GT_MAIN-ZICON = '@08@'.
466|
467| ENDIF.
468|
469|
470| UPDATE ZDTV3T_AP_EXT SET: USE_DOC = L_USE_DOC
471| WHERE BUKRS = GT_MAIN-BUKRS
472| AND ISSUE_DATE = GT_MAIN-ISSUE_DATE
473| AND BUPLA = GT_MAIN-BUPLA
474| AND INV_SEQ = GT_MAIN-INV_SEQ.
475|
476| IF SY-SUBRC = 0.
477| G_OK = 'X'.
478|
479| MODIFY GT_MAIN INDEX LS_ROWS-INDEX TRANSPORTING ZICON.
480|
481| ENDIF.
482|
483| ENDIF.
484| ENDLOOP.
- EN: For each selected row, updates the e-tax-invoice detail table with the posted document number and the header table's USE_DOC flag, refreshing the status icon.
- 테이블(파서): read - / write ZDTV3T_AP_EXT_D, ZDTV3T_AP_EXT, GT_MAIN
- SAP 객체: ZDTV3T_AP_EXT_D, ZDTV3T_AP_EXT, BELNR, USE_DOC, ISSUE_DATE, INV_SEQ
- 업무 키워드: 전자세금계산서, 전표번호, 저장, 사용여부, 발행일, 사업장, 계산서순번, 상태아이콘
- English: electronic tax invoice, document number, save, use flag, issue date, business place, invoice sequence
- 정의부(복사 시 함께 필요):
LT_ROWS,LS_ROWS,ZDTV3T_AP_HEAD,GT_MAIN,LT_SCOL,ZDTV3T_AP_EXT_D,L_USE_DOC,ZDTV3T_AP_EXT,G_OK - 위치:
abap://ZFIR0100/ZFIR0100F01#L437-L484· confidence 0.85 ·ZFIR0100#ZFIR0100F01#FORM#SET_SAVE#C2
FORM SET_POST — ZFIR0100F01 L335-L397 (63줄)
ALV 에서 선택된 미처리 전자세금계산서 행을 GT_TABLE 로 메모리에 EXPORT 한 뒤 전표 입력 화면 ZFIR0110_DOC 을 호출해 매입전표를 기표하는 FORM 이다.
이 unit 의 조각 2개가 36/63줄(57%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다.
[validation] GO_GRID->GET_SELECTED_ROWS 로 선택 행을 읽고 선택 행이 없으면 '전표기표 할 행을 선택하세요' 메시지 후 종료한다.
355| CALL METHOD GO_GRID->GET_SELECTED_ROWS
356| IMPORTING
357| ET_INDEX_ROWS = LT_ROWS.
358|
359| IF LT_ROWS[] IS INITIAL.
360| MESSAGE S001 WITH '전표기표 할 행을 선택하세요.'.
361| EXIT.
362| ENDIF.
- EN: Gets the selected ALV rows and exits with a message if none are selected for document posting.
- 호출(파서): GO_GRID->GET_SELECTED_ROWS
- SAP 객체: CL_GUI_ALV_GRID, GET_SELECTED_ROWS
- 업무 키워드: 행 선택 검증, 전표기표
- English: Selected Rows, Validation
- 정의부(복사 시 함께 필요):
GO_GRID,LT_ROWS - 위치:
abap://ZFIR0100/ZFIR0100F01#L355-L362· confidence 0.9 ·ZFIR0100#ZFIR0100F01#FORM#SET_POST#C1
[interface] 선택된 각 행에 대해 이미 전표번호(BELNR)가 있으면 '이미 처리된 전표' 메시지로 건너뛰고, 아니면 해당 전자세금계산서 행을 GT_TABLE 에 담아 EXPORT TO MEMORY ID 'GT_TABLE' 후 CALL TRANSACTION 'ZFIR0110_DOC' 으로 매입전표 입력 화면을 호출한다.
365| LOOP AT LT_ROWS INTO LS_ROWS WHERE ROWTYPE = SPACE.
366| CLEAR GT_MAIN.
367|
368|
369| READ TABLE GT_MAIN INDEX LS_ROWS-INDEX.
370| IF SY-SUBRC = 0.
371|
372| IF NOT GT_MAIN-BELNR IS INITIAL.
373| MESSAGE S001 WITH '이미 처리된 전표가 있습니다'.
374| CONTINUE.
375| ENDIF.
376|
377| CLEAR: GT_MAIN-SCOL, LT_SCOL, LT_SCOL[].
378| CLEAR: GT_TABLE[], GT_TABLE.
379|
380| MOVE-CORRESPONDING GT_MAIN TO GT_TABLE.
381| APPEND GT_TABLE.
382| CLEAR GT_TABLE.
383|
384| **
385| G_OK = 'X'.
386| EXPORT GT_TABLE TO MEMORY ID 'GT_TABLE'.
387| CALL TRANSACTION 'ZFIR0110_DOC'.
388| FREE GT_TABLE.
389| **
390|
391| ENDIF.
392| ENDLOOP.
- EN: For each selected unposted e-tax invoice row, exports it to ABAP memory (ID GT_TABLE) and calls transaction ZFIR0110_DOC to create the AP document; rows already having BELNR are skipped.
- 호출(파서): ZFIR0110_DOC
- SAP 객체: ZFIR0110_DOC, GT_TABLE, GT_MAIN
- 업무 키워드: 매입전표 기표, 전자세금계산서, 메모리 전달, 중복 처리 방지
- English: AP Document Posting, E-Tax Invoice, Call Transaction, ABAP Memory
- 정의부(복사 시 함께 필요):
LT_ROWS,LS_ROWS,ZDTV3T_AP_HEAD,GT_MAIN,LT_SCOL,GT_TABLE,G_OK - 위치:
abap://ZFIR0100/ZFIR0100F01#L365-L392· confidence 0.9 ·ZFIR0100#ZFIR0100F01#FORM#SET_POST#C2
FORM HANDLE_DOUBLE_CLICK — ZFIR0100F02 L1096-L1113 (18줄)
ALV 전표번호(BELNR) 셀 더블클릭 시 회사코드·회계연도·전표번호를 파라미터로 세팅해 FB03 전표 조회 트랜잭션을 호출하는 FORM 이다.
이 unit 의 조각 1개가 12/18줄(67%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다.
[interface] 더블클릭한 행이 BELNR 컬럼이고 전표번호가 있으면 SET PARAMETER ID BUK/GJR/BLN 으로 회사코드·회계연도·전표번호를 넘겨 FB03(전표 조회)을 SKIP FIRST SCREEN 으로 호출한다.
1100| READ TABLE GT_MAIN INDEX P_ROW-INDEX.
1101| IF SY-SUBRC EQ 0.
1102| IF P_COLUMN-FIELDNAME = 'BELNR'.
1103| IF NOT GT_MAIN-BELNR IS INITIAL.
1104| SET PARAMETER ID 'BUK' FIELD P_BUKRS. "회사코드
1105| SET PARAMETER ID 'GJR' FIELD GT_MAIN-ZGJAH. "회계연도
1106| SET PARAMETER ID 'BLN' FIELD GT_MAIN-BELNR. "전표
1107| CALL TRANSACTION 'FB03' AND SKIP FIRST SCREEN.
1108| ENDIF.
1109| ENDIF.
1110|
1111| ENDIF.
- EN: On double-click of a filled BELNR cell, sets BUK/GJR/BLN parameters and calls transaction FB03 to display the FI document.
- 호출(파서): FB03
- SAP 객체: FB03, GT_MAIN
- 업무 키워드: 전표 조회, 더블클릭, 전표번호, 회계연도
- English: Display Document, FI Document, Hotspot Navigation
- 정의부(복사 시 함께 필요):
ZDTV3T_AP_HEAD,GT_MAIN,P_BUKRS - 위치:
abap://ZFIR0100/ZFIR0100F02#L1100-L1111· confidence 0.95 ·ZFIR0100#ZFIR0100F02#FORM#HANDLE_DOUBLE_CLICK#C1
FORM SET_POP_MESSAGE — ZFIR0100F01 L194-L216 (23줄)
POPUP_TO_CONFIRM 으로 예/아니오 확인 팝업을 띄워 사용자 응답(P_ANSWER)을 돌려주는 FORM 이다.
이 unit 의 조각 1개가 18/23줄(78%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다.
[fm_call] POPUP_TO_CONFIRM 을 호출해 전달받은 질문 텍스트로 예/아니오 팝업을 띄우고 응답을 P_ANSWER 로 반환하며 오류 시 시스템 메시지를 출력한다.
197| CALL FUNCTION 'POPUP_TO_CONFIRM'
198| EXPORTING
199| TEXT_QUESTION = P_TEXT
200| TEXT_BUTTON_1 = '예(Yes)'
201| TEXT_BUTTON_2 = '아니오(No)'
202| DEFAULT_BUTTON = '1'
203| DISPLAY_CANCEL_BUTTON = ''
204| START_COLUMN = 25
205| START_ROW = 6
206| IMPORTING
207| ANSWER = P_ANSWER
208| EXCEPTIONS
209| TEXT_NOT_FOUND = 1
210| OTHERS = 2.
211| IF SY-SUBRC <> 0.
212| MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
213| WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
214| ENDIF.
- EN: Calls POPUP_TO_CONFIRM with the given question text to get a Yes/No answer and raises the system message on failure.
- 호출(파서): POPUP_TO_CONFIRM
- SAP 객체: POPUP_TO_CONFIRM
- 업무 키워드: 확인 팝업, 예/아니오, 사용자 응답
- English: Confirmation Popup, Dialog
- 정의부(복사 시 함께 필요):
P_ANSWER - 위치:
abap://ZFIR0100/ZFIR0100F01#L197-L214· confidence 0.95 ·ZFIR0100#ZFIR0100F01#FORM#SET_POP_MESSAGE#C1
FORM CHANG_LINE — ZFIR0100F01 L496-L573 (78줄)
ALV 에서 선택된 행만 변경 가능하도록 전체 행의 CELLTAB 을 초기화한 뒤 선택 행에 전표번호(BELNR)·회계연도(ZGJAH) 셀만 편집 가능한 스타일을 적용하는 FORM 이다.
이 unit 의 조각 2개가 43/78줄(55%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다.
[validation] GO_GRID->GET_SELECTED_ROWS 로 선택 행을 가져오고 선택 행이 없으면 G_LINE 플래그를 세우고 '변경 할 행을 선택하세요' 메시지 후 종료한다.
526| CALL METHOD GO_GRID->GET_SELECTED_ROWS
527| IMPORTING
528| ET_INDEX_ROWS = LT_ROWS.
529|
530| IF LT_ROWS[] IS INITIAL.
531| G_LINE = 'X'.
532| MESSAGE S001 WITH '변경 할 행을 선택하세요.'.
533| EXIT.
534| ENDIF.
- EN: Reads the selected ALV rows via GET_SELECTED_ROWS and exits with a message if no row is selected.
- 호출(파서): GO_GRID->GET_SELECTED_ROWS
- SAP 객체: CL_GUI_ALV_GRID, GET_SELECTED_ROWS
- 업무 키워드: 행 선택 검증, 선택 행, 메시지
- English: Selected Rows, ALV Grid, Validation
- 정의부(복사 시 함께 필요):
GO_GRID,LT_ROWS,G_LINE - 위치:
abap://ZFIR0100/ZFIR0100F01#L526-L534· confidence 0.9 ·ZFIR0100#ZFIR0100F01#FORM#CHANG_LINE#C1
[other] GT_MAIN 전체 행의 CELLTAB 을 지운 뒤 선택된 행에 대해서만 SET_CELLTAB('CHAN') 으로 전표번호·회계연도 셀을 편집 가능하게 하는 셀 스타일을 삽입해 행 단위 편집 권한을 부여한다.
537| LOOP AT GT_MAIN.
538| LV_TABIX = SY-TABIX.
539| CLEAR: GT_MAIN-CELLTAB.
540| MODIFY GT_MAIN INDEX LV_TABIX TRANSPORTING CELLTAB.
541| CLEAR GT_MAIN.
542| ENDLOOP.
543|
544|
545|
546| LOOP AT LT_ROWS INTO LS_ROWS WHERE ROWTYPE = SPACE.
547| CLEAR GT_MAIN.
548|
549| READ TABLE GT_MAIN INDEX LS_ROWS-INDEX.
550| IF SY-SUBRC = 0.
551|
552| CLEAR: GT_MAIN-CELLTAB,
553| LS_MAIN, LT_CELLTAB, LT_CELLTAB[], LV_UCOMM.
554|
555| MOVE-CORRESPONDING GT_MAIN TO LS_MAIN.
556|
557| IF LV_UCOMM IS INITIAL.
558| LV_UCOMM = 'CHAN'. " GV_UCOMM.
559| ENDIF.
560|
561| * SETTING COLOR
562| PERFORM SET_CELLTAB USING LS_MAIN
563| LV_UCOMM
564| CHANGING LT_CELLTAB.
565|
566| INSERT LINES OF LT_CELLTAB INTO TABLE GT_MAIN-CELLTAB.
567| MODIFY GT_MAIN INDEX LS_ROWS-INDEX.
568| ENDIF.
569|
570| ENDLOOP.
- EN: Clears CELLTAB for all rows and, for each selected row, builds the CHAN cell style via SET_CELLTAB so only BELNR/ZGJAH cells become editable.
- 테이블(파서): read - / write GT_MAIN
- 호출(파서): SET_CELLTAB
- SAP 객체: LVC_T_STYL
- 업무 키워드: 셀 편집 스타일, 선택 행 편집, 전표번호, 회계연도
- English: CELLTAB, Editable Cell, Document Number
- 정의부(복사 시 함께 필요):
ZDTV3T_AP_HEAD,GT_MAIN,LV_TABIX,LT_ROWS,LS_ROWS,LS_MAIN,LT_CELLTAB,LV_UCOMM - 위치:
abap://ZFIR0100/ZFIR0100F01#L537-L570· confidence 0.8 ·ZFIR0100#ZFIR0100F01#FORM#CHANG_LINE#C2
FORM SET_CELLTAB — ZFIR0100F02 L88-L124 (37줄)
변경(CHAN) 모드에서 필드카탈로그 전 컬럼을 입력 불가로 두되 전표번호(BELNR)·회계연도(ZGJAH) 셀만 입력 가능하게 CELLTAB 스타일을 만드는 FORM 이다.
이 unit 의 조각 1개가 24/37줄(65%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다.
[other] CHAN 명령일 때 필드카탈로그의 각 컬럼을 MC_STYLE_DISABLED 로 잠그고 BELNR·ZGJAH 컬럼만 MC_STYLE_ENABLED 로 열어 사용자가 수동 전표번호·회계연도만 입력할 수 있도록 CELLTAB 을 구성한다.
99| LOOP AT GT_FCAT1 INTO GS_FCAT.
100| CLEAR LS_CELLTAB.
101| CASE P_UCOMM.
102|
103| WHEN 'CHAN'.
104|
105| LV_MODE = CL_GUI_ALV_GRID=>MC_STYLE_DISABLED.
106| LS_CELLTAB-FIELDNAME = GS_FCAT-FIELDNAME.
107| LS_CELLTAB-STYLE = LV_MODE.
108|
109| IF GS_FCAT-FIELDNAME = 'BELNR' OR
110| GS_FCAT-FIELDNAME = 'ZGJAH'.
111|
112| LV_MODE = CL_GUI_ALV_GRID=>MC_STYLE_ENABLED.
113| LS_CELLTAB-FIELDNAME = GS_FCAT-FIELDNAME.
114| LS_CELLTAB-STYLE = LV_MODE.
115| ENDIF.
116|
117| ENDCASE.
118|
119|
120| INSERT LS_CELLTAB INTO TABLE P_CELLTAB.
121|
122| ENDLOOP.
- EN: Builds the CELLTAB style table so that in CHAN mode only the BELNR and ZGJAH cells are enabled for input while all other columns are disabled.
- 호출(파서): CL_GUI_ALV_GRID=>MC_STYLE_DISABLED, CL_GUI_ALV_GRID=>MC_STYLE_ENABLED
- SAP 객체: CL_GUI_ALV_GRID, LVC_T_STYL
- 업무 키워드: 셀 입력 제어, 전표번호, 회계연도, 편집 가능 컬럼
- English: CELLTAB, Cell Style, Editable Column
- 정의부(복사 시 함께 필요):
GT_FCAT1,GS_FCAT,LS_CELLTAB,LV_MODE - 위치:
abap://ZFIR0100/ZFIR0100F02#L99-L122· confidence 0.85 ·ZFIR0100#ZFIR0100F02#FORM#SET_CELLTAB#C1
FORM RUN_DISPLAY_ALV — ZFIR0100F02 L703-L725 (23줄)
화면 0100 용 그리드(GO_GRID)와 GT_MAIN 을 할당하고 이벤트 등록 후 SET_TABLE_FOR_FIRST_DISPLAY 로 편집 가능한 ALV 를 최초 표시한다.
이 unit 의 조각 1개가 19/23줄(83%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다.
[output] 화면번호에 따라 그리드 객체와 GT_MAIN 을 필드심볼에 할당하고 SET_EVENT_UCOMM 이벤트 등록 후 CL_GUI_ALV_GRID->SET_TABLE_FOR_FIRST_DISPLAY 로 레이아웃·변형·툴바제외·정렬을 적용해 ALV 를 표시한다.
705| CASE P_VALUE.
706| WHEN '0100'.
707| ASSIGN: GO_GRID TO <FS_GRID>,
708| GT_MAIN[] TO <FS_TABLE>.
709| ENDCASE.
710|
711| PERFORM SET_EVENT_UCOMM.
712|
713| CALL METHOD <FS_GRID>->SET_TABLE_FOR_FIRST_DISPLAY
714| EXPORTING
715| I_DEFAULT = 'X'
716| IS_LAYOUT = GS_LAYOUT
717| IS_VARIANT = GS_VARIANT
718| IT_TOOLBAR_EXCLUDING = GT_EXCLUDE
719| I_SAVE = 'A'
720| CHANGING
721| IT_OUTTAB = <FS_TABLE>
722| IT_FIELDCATALOG = <GT_FIELD>
723| IT_SORT = GT_SORT.
- EN: Assigns the grid and GT_MAIN by screen number, registers events and calls SET_TABLE_FOR_FIRST_DISPLAY with layout, variant, toolbar exclusions and sort to display the ALV grid.
- 호출(파서): SET_EVENT_UCOMM, <FS_GRID>->SET_TABLE_FOR_FIRST_DISPLAY
- SAP 객체: CL_GUI_ALV_GRID, SET_TABLE_FOR_FIRST_DISPLAY
- 업무 키워드: ALV 표시, 그리드, 레이아웃, 변형
- English: ALV Grid, Layout Variant, First Display
- 정의부(복사 시 함께 필요):
GO_GRID,<FS_GRID>,ZDTV3T_AP_HEAD,GT_MAIN,<FS_TABLE>,GS_LAYOUT,GS_VARIANT,GT_EXCLUDE,<GT_FIELD>,GT_SORT - 위치:
abap://ZFIR0100/ZFIR0100F02#L705-L723· confidence 0.85 ·ZFIR0100#ZFIR0100F02#FORM#RUN_DISPLAY_ALV#C1
FORM SET_CHANGE — ZFIR0100F02 L912-L953 (42줄)
변경(CHAN) 명령 시 선택 행 상태에 따라 그리드 편집 가능 여부를 토글하고 잠금(SET_LOCK)을 설정하는 FORM 이다.
이 unit 의 조각 2개가 12/42줄(29%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다.
[control_flow] CHANG_LINE 으로 선택 행의 변경 가능 여부(G_LINE)를 판정한 뒤 변경 가능하면 GO_GRID->SET_READY_FOR_INPUT 으로 편집 모드를 켜고 아니면 끈다.
914| PERFORM CHANG_LINE.
915|
916| IF G_LINE = ''.
917| CALL METHOD GO_GRID->SET_READY_FOR_INPUT
918| EXPORTING
919| I_READY_FOR_INPUT = 1.
920| ELSE.
921| CALL METHOD GO_GRID->SET_READY_FOR_INPUT
922| EXPORTING
923| I_READY_FOR_INPUT = 0.
924| ENDIF.
- EN: Determines via CHANG_LINE whether the selected rows are changeable and toggles ALV edit mode with SET_READY_FOR_INPUT accordingly.
- 호출(파서): CHANG_LINE, GO_GRID->SET_READY_FOR_INPUT, GO_GRID->SET_READY_FOR_INPUT
- SAP 객체: CL_GUI_ALV_GRID, SET_READY_FOR_INPUT
- 업무 키워드: 편집 모드, 변경 가능 여부, 행 선택
- English: Edit Mode, ALV Grid, Ready For Input
- 정의부(복사 시 함께 필요):
G_LINE,GO_GRID - 위치:
abap://ZFIR0100/ZFIR0100F02#L914-L924· confidence 0.8 ·ZFIR0100#ZFIR0100F02#FORM#SET_CHANGE#C1
[control_flow] 편집 진입 시 SET_LOCK 으로 데이터 잠금(Enqueue)을 걸어 동시 수정을 방지한다.
951| PERFORM SET_LOCK USING GV_UCOMM.
- EN: Calls SET_LOCK to enqueue the data when entering change mode to prevent concurrent edits.
- 호출(파서): SET_LOCK
- 업무 키워드: 잠금, 동시 수정 방지
- English: Enqueue, Lock
- 정의부(복사 시 함께 필요):
GV_UCOMM - 위치:
abap://ZFIR0100/ZFIR0100F02#L951-L951· confidence 0.7 ·ZFIR0100#ZFIR0100F02#FORM#SET_CHANGE#C2
MODULE USER_COMMAND_0100_EXIT INPUT — ZFIR0100I01 L7-L37 (31줄)
화면 0100 종료 명령 처리 시 미저장 변경분 확인 팝업을 띄우고 잠금을 해제한 뒤 화면을 빠져나가는 EXIT 모듈이다.
이 unit 의 조각 2개가 19/31줄(61%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다.
[validation] 변경 플래그(GV_CHK)가 있으면 SET_POP_MESSAGE 확인 팝업을 띄워 사용자가 확인하면 CHK_DATA 로 데이터 검증을 수행하고 오류가 있으면 종료를 막는다.
11| IF GV_CHK IS NOT INITIAL.
12| PERFORM SET_POP_MESSAGE USING TEXT-100
13| CHANGING GV_ANSWER.
14| IF GV_ANSWER = '1'.
15| PERFORM CHK_DATA.
16| ELSE.
17| MESSAGE S001 WITH TEXT-101.
18| ENDIF.
19|
20| CHECK GV_ERR IS INITIAL.
21| ENDIF.
- EN: If unsaved changes exist, shows a confirmation popup and runs CHK_DATA validation, blocking exit on error.
- 호출(파서): SET_POP_MESSAGE, CHK_DATA
- 업무 키워드: 종료 확인, 변경 확인, 데이터 검증
- English: Exit Confirmation, Validation
- 정의부(복사 시 함께 필요):
GV_CHK,GV_ANSWER,GV_ERR - 위치:
abap://ZFIR0100/ZFIR0100I01#L11-L21· confidence 0.8 ·ZFIR0100#ZFIR0100I01#MODULE#USER_COMMAND_0100_EXIT_INPUT#C1
[control_flow] SET_LOCK 으로 잠금(Enqueue)을 해제한 뒤 BACK/EXIT 은 화면 0, CANCEL 은 프로그램 종료로 분기한다.
28| PERFORM SET_LOCK USING 'UNLOCK'.
29|
30| CASE SAVE_OK.
31| WHEN '&F03' OR '&F15'.
32| LEAVE TO SCREEN 0.
33| WHEN '&F12'.
34| LEAVE PROGRAM.
35| ENDCASE.
- EN: Releases the lock via SET_LOCK and leaves the screen or program according to the exit function code.
- 호출(파서): SET_LOCK
- 업무 키워드: 잠금 해제, 화면 종료
- English: Dequeue, Leave Screen
- 정의부(복사 시 함께 필요):
SAVE_OK - 위치:
abap://ZFIR0100/ZFIR0100I01#L28-L35· confidence 0.85 ·ZFIR0100#ZFIR0100I01#MODULE#USER_COMMAND_0100_EXIT_INPUT#C2
MODULE USER_COMMAND_0100 INPUT — ZFIR0100I01 L45-L89 (45줄)
화면 0100 의 사용자 명령(변경·재조회·저장·전기)을 받아 해당 처리 FORM 으로 분기하는 PAI 모듈이다.
이 unit 의 조각 1개가 28/45줄(62%)을 덮는다. 나머지는 선언·화면설정 등 업무 의미가 없다고 판단해 버린 구간이다.
[control_flow] OK_CODE(CHAN/REFRESH/SAVE/POST)에 따라 전자세금계산서 그리드 변경 반영(SET_CHANGE), 재조회(SET_DATA·MODIFY_PROCESS), 확인 팝업 후 저장(SET_SAVE), 매입전표 전기(SET_POST) 를 분기 호출한다.
60| CASE SAVE_OK.
61| WHEN 'CHAN'.
62| PERFORM SET_CHANGE. " CHANGE
63|
64|
65| WHEN 'REFRESH'.
66| PERFORM SET_DATA.
67| PERFORM MODIFY_PROCESS.
68| PERFORM SET_REFRESH.
69|
70| WHEN 'SAVE'.
71| PERFORM POPUP_TO_CONFIRM USING P_ANSWER SAVE_OK.
72| CHECK P_ANSWER = 'J'.
73| PERFORM SET_SAVE.
74| PERFORM SET_REFRESH.
75|
76| WHEN 'POST'.
77| * PERFORM POPUP_TO_CONFIRM USING P_ANSWER P_UCOMM.
78| * CHECK P_ANSWER = 'J'.
79| PERFORM SET_POST.
80|
81| IF G_OK = 'X'.
82| PERFORM SET_DATA.
83| PERFORM MODIFY_PROCESS.
84| PERFORM SET_REFRESH.
85| ENDIF.
86|
87| ENDCASE.
- EN: Dispatches screen 0100 user commands to change, refresh, save (after POPUP_TO_CONFIRM) and post routines for the e-tax invoice AP document grid.
- 호출(파서): SET_CHANGE, SET_DATA, MODIFY_PROCESS, SET_REFRESH, POPUP_TO_CONFIRM, SET_SAVE, SET_REFRESH, SET_POST, SET_DATA, MODIFY_PROCESS, SET_REFRESH
- SAP 객체: POPUP_TO_CONFIRM
- 업무 키워드: 사용자 명령, 저장, 전기, 재조회, 확인 팝업
- English: User Command, PAI, Posting, Save
- 정의부(복사 시 함께 필요):
SAVE_OK,P_ANSWER,G_OK - 위치:
abap://ZFIR0100/ZFIR0100I01#L60-L87· confidence 0.9 ·ZFIR0100#ZFIR0100I01#MODULE#USER_COMMAND_0100_INPUT#C1
정의부 (107건)
로직 조각을 다른 프로그램으로 옮겨 붙일 때 함께 가야 하는 선언이다. 조각별로 무엇이 필요한지는 위 조각 항목의 정의부 줄에 있고(이름을 누르면 여기로 온다), 붙여넣기용으로 의존까지 묶은 코드는 GET /chunks/<chunk_id> 의 declaration_code 로 받는다.
ZFIR0100C01 (18건)
LCL_EVENT_RECEIVER — class · L7-L52
CLASS LCL_EVENT_RECEIVER DEFINITION .
PUBLIC SECTION .
* 변경 필드 값처리
METHODS : HANDLE_DATA_CHANGED
FOR EVENT DATA_CHANGED OF CL_GUI_ALV_GRID
IMPORTING
ER_DATA_CHANGED.
* ON F4처리
METHODS : HANDLE_ON_F4
FOR EVENT ONF4 OF CL_GUI_ALV_GRID
IMPORTING SENDER
E_FIELDNAME
E_FIELDVALUE
ES_ROW_NO
ER_EVENT_DATA
ET_BAD_CELLS
E_DISPLAY.
* TOOLBAR
METHODS: HANDLE_ON_TOOLBAR
FOR EVENT TOOLBAR OF CL_GUI_ALV_GRID
IMPORTING E_OBJECT
E_INTERACTIVE
SENDER.
* USER_COMMAND
METHODS: HANDLE_USER_COMMAND
FOR EVENT USER_COMMAND OF CL_GUI_ALV_GRID
IMPORTING E_UCOMM.
* DOUBLE_CLICK
METHODS: HANDLE_DOUBLE_CLICK
FOR EVENT DOUBLE_CLICK OF CL_GUI_ALV_GRID
IMPORTING SENDER
E_ROW
E_COLUMN
ES_ROW_NO.
ENDCLASS. "LCL_EVENT_RECEIVER DEFINITION
GO_CUSTOM — data · L110-L110
DATA: GO_CUSTOM TYPE REF TO CL_GUI_CUSTOM_CONTAINER.
GO_CUSTOM2 — data · L111-L111
DATA:
GO_CUSTOM2 TYPE REF TO CL_GUI_CUSTOM_CONTAINER.
GO_DOCKING — data · L113-L113
DATA: GO_DOCKING TYPE REF TO CL_GUI_DOCKING_CONTAINER.
GO_DOCKING2 — data · L114-L114
DATA:
GO_DOCKING2 TYPE REF TO CL_GUI_DOCKING_CONTAINER.
GO_SPLITTER — data · L116-L116
DATA: GO_SPLITTER TYPE REF TO CL_GUI_SPLITTER_CONTAINER.
GO_SPLITTER2 — data · L117-L117
DATA:
GO_SPLITTER2 TYPE REF TO CL_GUI_SPLITTER_CONTAINER.
GO_GRID — data · L124-L124
DATA: GO_GRID TYPE REF TO CL_GUI_ALV_GRID.
GO_GRID2 — data · L125-L125
DATA:
GO_GRID2 TYPE REF TO CL_GUI_ALV_GRID.
GO_GRID3 — data · L126-L126
DATA:
GO_GRID3 TYPE REF TO CL_GUI_ALV_GRID.
GO_GRID4 — data · L127-L127
DATA:
GO_GRID4 TYPE REF TO CL_GUI_ALV_GRID.
GO_GRID5 — data · L128-L128
DATA:
GO_GRID5 TYPE REF TO CL_GUI_ALV_GRID.
GO_CON — data · L130-L130
DATA: GO_CON TYPE REF TO CL_GUI_CONTAINER.
GO_CON2 — data · L131-L131
DATA:
GO_CON2 TYPE REF TO CL_GUI_CONTAINER.
GO_CON3 — data · L132-L132
DATA:
GO_CON3 TYPE REF TO CL_GUI_CONTAINER.
GO_CON4 — data · L133-L133
DATA:
GO_CON4 TYPE REF TO CL_GUI_CONTAINER.
GO_CON5 — data · L134-L134
DATA:
GO_CON5 TYPE REF TO CL_GUI_CONTAINER.
GO_EVENT — data · L136-L136
DATA: GO_EVENT TYPE REF TO LCL_EVENT_RECEIVER.
ZFIR0100SCR (7건)
P_BUKRS — parameter · L6-L8
PARAMETERS : P_BUKRS TYPE T001-BUKRS DEFAULT 'KR01'
MEMORY ID BUK
OBLIGATORY.
P_SPMON — parameter · L9-L10
PARAMETERS:
P_SPMON TYPE SPMON DEFAULT SY-DATUM+0(6)
OBLIGATORY.
S_SU_ID — select-option · L12-L12
SELECT-OPTIONS: S_SU_ID FOR LFA1-LIFNR.
S_EMAIL — select-option · L13-L13
SELECT-OPTIONS:
S_EMAIL FOR ZDTV3T_AP_HEAD-IP_EMAIL1.
P_R1 — parameter · L22-L22
PARAMETERS: P_R1 RADIOBUTTON GROUP G1 .
P_R2 — parameter · L25-L25
PARAMETERS: P_R2 RADIOBUTTON GROUP G1.
P_R3 — parameter · L28-L28
PARAMETERS: P_R3 RADIOBUTTON GROUP G1.
ZFIR0100T01 (39건)
IT_EXCEL — data · L9-L9
DATA: IT_EXCEL LIKE ALSMEX_TABLINE OCCURS 0 WITH HEADER LINE.
GT_EXCEL — data · L13-L22
DATA: BEGIN OF GT_EXCEL OCCURS 0,
TRDAT(10),
BANK_COD3(10),
BANKN(20),
OUTAMT(20),
INAMT(20),
ZBALAMT(20),
NAME(20),
SGTXT(20),
END OF GT_EXCEL.
IT_ZTRT0002 — data · L25-L27
DATA: BEGIN OF IT_ZTRT0002 OCCURS 0.
INCLUDE STRUCTURE ZTRT0002.
DATA END OF IT_ZTRT0002.
GS_LAYOUT — data · L30-L30
DATA: GS_LAYOUT TYPE LVC_S_LAYO.
GS_VARIANT — data · L31-L31
DATA:
GS_VARIANT TYPE DISVARIANT.
GX_VARIANT — data · L32-L32
DATA:
GX_VARIANT TYPE DISVARIANT.
GT_EXCLUDE — data · L33-L33
DATA:
GT_EXCLUDE TYPE UI_FUNCTIONS.
GS_FCAT — data · L34-L34
DATA:
GS_FCAT TYPE LVC_S_FCAT.
GT_FCAT1 — data · L35-L35
DATA:
GT_FCAT1 TYPE LVC_T_FCAT.
GS_SORT — data · L36-L36
DATA:
GS_SORT TYPE LVC_S_SORT.
GT_SORT — data · L37-L37
DATA:
GT_SORT TYPE LVC_T_SORT.
GS_GLAY — data · L38-L38
DATA:
GS_GLAY TYPE LVC_S_GLAY.
GT_HEAD — data · L39-L39
DATA:
GT_HEAD TYPE LVC_T_HEAD.
GS_HEAD — data · L40-L40
DATA:
GS_HEAD TYPE LVC_S_HEAD.
GS_EVENT — data · L41-L41
DATA:
GS_EVENT TYPE LVC_S_EVTS.
GT_EVENT — data · L42-L42
DATA:
GT_EVENT TYPE LVC_T_EVTS.
GS_STBL — data · L43-L43
DATA:
GS_STBL TYPE LVC_S_STBL. " Refresh stability.
G_REPID — data · L45-L45
DATA: G_REPID TYPE SY-REPID.
G_TABNAME — data · L46-L46
DATA:
G_TABNAME TYPE SLIS_TABNAME.
GV_EXIT — data · L47-L47
DATA:
GV_EXIT TYPE C.
OK_CODE — data · L54-L54
DATA: OK_CODE TYPE SY-UCOMM.
SAVE_OK — data · L55-L55
DATA:
SAVE_OK TYPE SY-UCOMM.
GV_UCOMM — data · L57-L57
DATA: GV_UCOMM TYPE SY-UCOMM. " COMMAND
GS_MSG — data · L58-L58
DATA:
GS_MSG LIKE FIMSG. " MESSSAGE
GV_ERR — data · L59-L59
DATA:
GV_ERR TYPE C. " ERROR
GV_ANSWER — data · L60-L60
DATA:
GV_ANSWER TYPE C. " MESSAGE
GV_CHK — data · L61-L61
DATA:
GV_CHK TYPE C. " CHANGE
GV_LOCK — data · L62-L62
DATA:
GV_LOCK TYPE C.
GV_MNAME — data · L63-L63
DATA:
GV_MNAME TYPE STRING.
GS_F4 — data · L65-L65
DATA: GS_F4 TYPE LVC_S_F4. " F4 ## ##
GT_F4 — data · L66-L66
DATA:
GT_F4 TYPE LVC_T_F4.
GC_YEL — constants · L73-L73
CONSTANTS: GC_YEL(4) VALUE '@09@'. " ICON_LED_YELLOW
GC_GRE — constants · L74-L74
CONSTANTS:
GC_GRE(4) VALUE '@08@'. " ICON_LED_GREEN
GC_OUT — constants · L75-L75
CONSTANTS:
GC_OUT(4) VALUE '@EB@'. " ICON_LED_LIGHT_OUT
GC_RED — constants · L76-L76
CONSTANTS:
GC_RED(4) VALUE '@0A@'. " ICON_LED_RED
<GS_FIELD> — field-symbol · L83-L83
FIELD-SYMBOLS: <GS_FIELD> TYPE LVC_S_FCAT.
<GT_FIELD> — field-symbol · L84-L84
FIELD-SYMBOLS:
<GT_FIELD> TYPE LVC_T_FCAT.
<FS_GRID> — field-symbol · L86-L86
FIELD-SYMBOLS: <FS_GRID> TYPE REF TO CL_GUI_ALV_GRID.
<FS_TABLE> — field-symbol · L87-L87
FIELD-SYMBOLS:
<FS_TABLE> TYPE TABLE.
ZFIR0100TOP (20건)
ZDTV3T_AP_EXT — tables · L5-L5
TABLES: ZDTV3T_AP_HEAD, ZDTV3T_AP_EXT, ZDTV3T_AP_EXT_D.
ZDTV3T_AP_EXT_D — tables · L5-L5
TABLES: ZDTV3T_AP_HEAD, ZDTV3T_AP_EXT, ZDTV3T_AP_EXT_D.
ZDTV3T_AP_HEAD — tables · L5-L5
TABLES: ZDTV3T_AP_HEAD, ZDTV3T_AP_EXT, ZDTV3T_AP_EXT_D.
BKPF — tables · L6-L6
TABLES:
BKPF, LFA1.
LFA1 — tables · L6-L6
TABLES:
BKPF, LFA1.
ICON — type-pool · L8-L8
TYPE-POOLS: SLIS, ICON.
SLIS — type-pool · L8-L8
TYPE-POOLS: SLIS, ICON.
IT_ZDTV3T_AP_HEAD — data · L11-L18
DATA: BEGIN OF IT_ZDTV3T_AP_HEAD OCCURS 0.
INCLUDE STRUCTURE ZDTV3T_AP_HEAD.
DATA: BELNR LIKE ZDTV3T_AP_EXT_D-BELNR.
DATA: ZGJAH LIKE ZDTV3T_AP_EXT_D-ZGJAH.
DATA: USE_DOC LIKE ZDTV3T_AP_EXT-USE_DOC.
DATA END OF IT_ZDTV3T_AP_HEAD.
GT_MAIN — data · L21-L31
DATA: BEGIN OF GT_MAIN OCCURS 0,
MARK LIKE ICON-STATUS,
ZICON(4).
INCLUDE STRUCTURE ZDTV3T_AP_HEAD.
DATA: BELNR LIKE BKPF-BELNR,
ZGJAH LIKE BKPF-GJAHR.
DATA: CELLTAB TYPE LVC_T_STYL,
SCOL TYPE LVC_T_SCOL,
END OF GT_MAIN.
GT_IMSI — data · L35-L35
DATA: GT_IMSI LIKE TABLE OF GT_MAIN WITH HEADER LINE.
P_ANSWER — data · L37-L37
DATA: P_ANSWER.
G_OK — data · L38-L38
DATA: G_OK.
G_LINE — data · L39-L39
DATA: G_LINE.
TMP_MAIN — data · L41-L41
DATA: TMP_MAIN LIKE TABLE OF GT_MAIN WITH HEADER LINE.
GT_TABLE — data · L43-L43
DATA: GT_TABLE LIKE TABLE OF GT_MAIN WITH HEADER LINE.
GT_ANY — data · L45-L45
DATA GT_ANY TYPE REF TO DATA.
I_TABNAM — data · L46-L46
DATA I_TABNAM TYPE TABNAME16.
S_BUDAT — ranges · L48-L48
RANGES: S_BUDAT FOR BKPF-BUDAT.
<FS_S> — field-symbol · L51-L51
FIELD-SYMBOLS: <FS_S> TYPE ANY.
<FS_T> — field-symbol · L52-L52
FIELD-SYMBOLS:
<FS_T> TYPE ANY TABLE.
ZFIR0100F01 (18건)
L_DOC1 — data · unit 로컬 · L96-L96
DATA: L_DOC1, L_DOC2.
L_DOC2 — data · unit 로컬 · L96-L96
DATA: L_DOC1, L_DOC2.
L_DEFAULTOPTION — data · unit 로컬 · L267-L267
DATA: L_DEFAULTOPTION, L_TEXTLINE1(70), L_TEXTLINE2(70).
L_TEXTLINE2 — data · unit 로컬 · L267-L267
DATA: L_DEFAULTOPTION, L_TEXTLINE1(70), L_TEXTLINE2(70).
L_TEXTLINE1 — data · unit 로컬 · L267-L267
DATA: L_DEFAULTOPTION, L_TEXTLINE1(70), L_TEXTLINE2(70).
LT_SCOL — data · unit 로컬 · L338-L338
DATA:
LT_SCOL TYPE LVC_T_SCOL.
LT_ROWS — data · unit 로컬 · L348-L348
DATA: LT_ROWS TYPE LVC_T_ROW. " ALV 제어: 테이블행
LS_ROWS — data · unit 로컬 · L349-L349
DATA:
LS_ROWS TYPE LVC_S_ROW.
LT_SCOL — data · unit 로컬 · L407-L407
DATA:
LT_SCOL TYPE LVC_T_SCOL.
L_USE_DOC — data · unit 로컬 · L414-L414
DATA: L_USE_DOC.
LT_ROWS — data · unit 로컬 · L421-L421
DATA: LT_ROWS TYPE LVC_T_ROW. " ALV 제어: 테이블행
LS_ROWS — data · unit 로컬 · L422-L422
DATA:
LS_ROWS TYPE LVC_S_ROW.
LS_MAIN — data · unit 로컬 · L498-L498
DATA: LS_MAIN LIKE GT_MAIN.
LT_CELLTAB — data · unit 로컬 · L499-L499
DATA: LT_CELLTAB TYPE LVC_T_STYL.
LV_UCOMM — data · unit 로컬 · L500-L500
DATA: LV_UCOMM TYPE SY-UCOMM.
LV_TABIX — data · unit 로컬 · L503-L503
DATA: LV_TABIX TYPE SY-TABIX.
LT_ROWS — data · unit 로컬 · L518-L518
DATA: LT_ROWS TYPE LVC_T_ROW. " ALV 제어: 테이블행
LS_ROWS — data · unit 로컬 · L519-L519
DATA:
LS_ROWS TYPE LVC_S_ROW.
ZFIR0100F02 (5건)
LS_CELLTAB — data · unit 로컬 · L92-L92
DATA: LS_CELLTAB TYPE LVC_S_STYL.
LV_MODE — data · unit 로컬 · L93-L93
DATA:
LV_MODE TYPE RAW4.
LS_MOD_CELLS — data · unit 로컬 · L965-L965
DATA: LS_MOD_CELLS TYPE LVC_S_MODI.
LV_LINE — data · unit 로컬 · L968-L968
DATA: LV_LINE TYPE I.
<FS_FIELD> — field-symbol · unit 로컬 · L970-L970
FIELD-SYMBOLS: <FS_FIELD> TYPE ANY.
Unit 목록 (컨테이너)
| unit | 유형 | 위치 | 조각 | 한 줄 요약 |
|---|---|---|---|---|
| INITIALIZATION | EVENT | ZFIR0100 L37-43 | 0 | INITIALIZATION 에서 SET_INIT 를 호출하는 이벤트 블록이다. |
| AT SELECTION-SCREEN | EVENT | ZFIR0100 L44-49 | 0 | 선택화면 이벤트에서 GET_VARIANT(빈 FORM)를 호출하는 이벤트 블록이다. |
| AT SELECTION-SCREEN ON VALUE-REQUEST | EVENT | ZFIR0100 L50-58 | 0 | 조회 연월 P_SPMON 의 F4 검색도움을 공용 풀 ZTR_POOL 의 GET_PERIOD_SPMON 으로 제공하는 이벤트 블록이다. |
| START-OF-SELECTION | EVENT | ZFIR0100 L59-69 | 0 | SET_DATA 로 전자세금계산서를 조회하고 MODIFY_PROCESS 로 그리드 데이터를 구성하는 메인 이벤트 블록이다. |
| END-OF-SELECTION | EVENT | ZFIR0100 L70-73 | 0 | 선택 종료 후 편집 ALV 화면 0100 을 호출하는 이벤트 블록이다. |
| LCL_EVENT_RECEIVER~HANDLE_DATA_CHANGED | METHOD | ZFIR0100C01 L64-66 | 0 | |
| LCL_EVENT_RECEIVER~HANDLE_ON_F4 | METHOD | ZFIR0100C01 L70-80 | 0 | |
| LCL_EVENT_RECEIVER~HANDLE_ON_TOOLBAR | METHOD | ZFIR0100C01 L84-88 | 0 | |
| LCL_EVENT_RECEIVER~HANDLE_USER_COMMAND | METHOD | ZFIR0100C01 L92-94 | 0 | |
| LCL_EVENT_RECEIVER~HANDLE_DOUBLE_CLICK | METHOD | ZFIR0100C01 L98-102 | 0 | |
| SET_INIT | FORM | ZFIR0100F01 L13-24 | 0 | 리포트 ID 와 초기 모드(DISP)를 설정하고 GET_INIT_VARIANT 로 기본 변형을 불러오는 초기화 FORM 이다. |
| SET_INIT_VARIANT | FORM | ZFIR0100F01 L35-44 | 0 | ALV 변형 구조 GS_VARIANT 에 리포트명·사용자·핸들 '0010' 을 설정하는 플러밍 FORM 이다. |
| GET_INIT_VARIANT | FORM | ZFIR0100F01 L55-74 | 1 | 변형 키를 초기화하고 REUSE_ALV_VARIANT_DEFAULT_GET 으로 사용자 기본 ALV 변형(Variant)을 조회하는 FORM 이다. |
| GET_VARIANT | FORM | ZFIR0100F01 L79-81 | 0 | 선언만 되어 있고 본문이 비어 있는 FORM 이다. |
| SET_DATA | FORM | ZFIR0100F01 L92-166 | 2 | 조회 월의 기간을 만든 뒤 전자세금계산서 헤더(ZDTV3T_AP_HEAD)·확장(ZDTV3T_AP_EXT)·상세(ZDTV3T_AP_EXT_D)를 조인해 전표처리 상태 조건으로 수신 내역을 IT_ZDTV3T_AP_HEAD 에 읽는 FORM 이다. |
| RUN_MSG_PROC | FORM | ZFIR0100F01 L176-183 | 0 | SAPGUI_PROGRESS_INDICATOR 로 처리 중 메시지를 표시하는 진행 표시 유틸 FORM 이다. |
| SET_POP_MESSAGE | FORM | ZFIR0100F01 L194-216 | 1 | POPUP_TO_CONFIRM 으로 예/아니오 확인 팝업을 띄워 사용자 응답(P_ANSWER)을 돌려주는 FORM 이다. |
| SET_LOCK | FORM | ZFIR0100F01 L226-228 | 0 | 잠금/해제 처리를 위한 자리만 있고 본문이 비어 있는 FORM 이다. |
| SELECT_PROCESS | FORM | ZFIR0100F01 L232-236 | 0 | 선언만 되어 있고 본문이 비어 있는 FORM 이다. |
| MODIFY_PROCESS | FORM | ZFIR0100F01 L240-261 | 1 | 조회된 IT_ZDTV3T_AP_HEAD 를 GT_MAIN 그리드 테이블로 옮기며 전표번호 유무에 따라 처리 상태 아이콘(ZICON)을 설정하는 FORM 이다. |
| POPUP_TO_CONFIRM | FORM | ZFIR0100F01 L265-296 | 1 | 저장/전표기표 명령에 맞는 문구로 POPUP_TO_CONFIRM_STEP 확인 팝업을 띄워 사용자 응답을 받는 FORM 이다. |
| TEXT_PROCESS | FORM | ZFIR0100F01 L300-307 | 0 | 거래처 텍스트 보정용으로 예정되었으나 주석 처리되어 본문이 비어 있는 FORM 이다. |
| DATE_PROCESS | FORM | ZFIR0100F01 L311-330 | 1 | 조회 연월(P_SPMON)로 월초~월말 날짜 범위 S_BUDAT 를 LAST_DAY_OF_MONTHS 로 구성하는 FORM 이다. |
| SET_POST | FORM | ZFIR0100F01 L335-397 | 2 | ALV 에서 선택된 미처리 전자세금계산서 행을 GT_TABLE 로 메모리에 EXPORT 한 뒤 전표 입력 화면 ZFIR0110_DOC 을 호출해 매입전표를 기표하는 FORM 이다. |
| SET_SAVE | FORM | ZFIR0100F01 L404-492 | 2 | ALV 에서 선택한 전자세금계산서 행의 전표번호를 수신 테이블에 저장하고 사용여부·상태 아이콘을 갱신한다. |
| CHANG_LINE | FORM | ZFIR0100F01 L496-573 | 2 | ALV 에서 선택된 행만 변경 가능하도록 전체 행의 CELLTAB 을 초기화한 뒤 선택 행에 전표번호(BELNR)·회계연도(ZGJAH) 셀만 편집 가능한 스타일을 적용하는 FORM 이다. |
| SET_ITAB_STYLE | FORM | ZFIR0100F02 L13-45 | 0 | GT_MAIN 전체 행을 돌며 SET_CELLTAB 으로 셀 편집 스타일(CELLTAB)을 만들어 각 행에 반영하는 ALV 셀 속성 설정 FORM 이다. |
| SET_LINE_ITAB_STYLE | FORM | ZFIR0100F02 L51-74 | 0 | 단일 행의 CELLTAB 스타일 설정을 위해 작업변수만 준비하고 실제 로직은 없는 미완성 FORM 이다. |
| SET_CELLTAB | FORM | ZFIR0100F02 L88-124 | 1 | 변경(CHAN) 모드에서 필드카탈로그 전 컬럼을 입력 불가로 두되 전표번호(BELNR)·회계연도(ZGJAH) 셀만 입력 가능하게 CELLTAB 스타일을 만드는 FORM 이다. |
| SET_CELLTAB_INSERT | FORM | ZFIR0100F02 L131-153 | 0 | 필드카탈로그의 모든 컬럼을 입력 불가(MC_STYLE_DISABLED) 스타일로 CELLTAB 에 넣어 해당 행의 셀 편집을 막는 ALV 셀 속성 FORM 이다. |
| SET_CONTAINER | FORM | ZFIR0100F02 L163-175 | 0 | 프레임·툴바제외·레이아웃·필드카탈로그·이벤트·ALV 표시 FORM 을 순서대로 호출해 화면 컨테이너를 구성하는 디스패치 FORM 이다. |
| SET_FRAME | FORM | ZFIR0100F02 L186-196 | 0 | 커스텀 컨테이너 CON_0100 과 ALV 그리드 객체(GO_GRID)를 생성하는 플러밍 FORM 이다. |
| SET_VARIANT | FORM | ZFIR0100F02 L206-215 | 0 | ALV 변형(Variant) 구조 GS_VARIANT 에 리포트명·사용자·핸들을 초기 설정하는 플러밍 FORM 이다. |
| SET_TOOLBAR_EXCLUDE | FORM | ZFIR0100F02 L226-389 | 0 | 편집 ALV 툴바에서 행 삽입·삭제·복사·붙여넣기·UNDO·REFRESH 버튼을 제외 목록(GT_EXCLUDE)에 넣는 ALV 설정 FORM 이다. |
| SET_LAYOUT | FORM | ZFIR0100F02 L399-416 | 0 | ALV 레이아웃(열너비 최적화, 선택모드, CELLTAB 스타일 필드, SCOL 색상 필드)을 설정하는 플러밍 FORM 이다. |
| SET_FIELDCATALOG | FORM | ZFIR0100F02 L426-439 | 0 | 화면번호에 따라 필드카탈로그 작업영역(GS_FCAT/GT_FCAT1)을 필드심볼에 할당하고 SET_FIELD01 을 호출하는 플러밍 FORM 이다. |
| SET_FIELD01 | FORM | ZFIR0100F02 L450-656 | 0 | 화면 0100 편집 그리드의 필드카탈로그(작성일자·사업장·공급가액·세액·공급자 정보·전표번호 등)를 SET_FIELD 로 정의하는 ALV 설정 FORM 이다. |
| SET_FIELD | FORM | ZFIR0100F02 L668-693 | 0 | 필드카탈로그 속성을 동적 ASSIGN 으로 채워 S/E 타입에 따라 초기화·APPEND 하는 필드카탈로그 빌더 유틸 FORM 이다. |
| RUN_DISPLAY_ALV | FORM | ZFIR0100F02 L703-725 | 1 | 화면 0100 용 그리드(GO_GRID)와 GT_MAIN 을 할당하고 이벤트 등록 후 SET_TABLE_FOR_FIRST_DISPLAY 로 편집 가능한 ALV 를 최초 표시한다. |
| SET_EVENT_UCOMM | FORM | ZFIR0100F02 L736-768 | 0 | 그리드를 초기 비편집 상태로 두고 MODIFIED/ENTER 편집 이벤트를 등록한 뒤 CHECK_CHANGED_DATA 와 포커스 설정을 하는 ALV 편집 이벤트 준비 FORM 이다. |
| SET_EVENT | FORM | ZFIR0100F02 L778-790 | 0 | ALV 그리드 이벤트 핸들러 객체(GO_EVENT)를 생성하고 F4·데이터변경·사용자명령·툴바·더블클릭 핸들러를 등록하는 플러밍 FORM 이다. |
| SET_REFRESH | FORM | ZFIR0100F02 L801-824 | 0 | 레이아웃을 재적용하고 REFRESH_TABLE_DISPLAY(행·열 안정)와 CL_GUI_CFW=>FLUSH 로 ALV 그리드를 새로고침하는 플러밍 FORM 이다. |
| TOOLBAR | FORM | ZFIR0100F02 L836-864 | 0 | ALV 툴바 버튼 추가용 핸들러이나 모든 내용이 주석 처리되어 실제 로직이 없는 FORM 이다. |
| USER_COMMAND | FORM | ZFIR0100F02 L874-901 | 1 | ALV 툴바 사용자 명령(REFRESH/SAVE/POST)을 받아 재조회·확인 후 저장·전표기표 FORM 으로 분기하는 디스패치 FORM 이다. |
| SET_CHANGE | FORM | ZFIR0100F02 L912-953 | 2 | 변경(CHAN) 명령 시 선택 행 상태에 따라 그리드 편집 가능 여부를 토글하고 잠금(SET_LOCK)을 설정하는 FORM 이다. |
| DATA_CHANGED | FORM | ZFIR0100F02 L962-1040 | 2 | 편집 ALV 의 DATA_CHANGED 이벤트에서 변경된 셀 값을 GT_MAIN 에 반영하고 변경 플래그를 세우며 오류 시 프로토콜에 기록한 뒤 그리드를 새로고침하는 FORM 이다. |
| CHK_DATS | FORM | ZFIR0100F02 L1046-1052 | 0 | 날짜 필드 검증용으로 선언만 되어 있고 본문이 비어 있는 FORM 이다. |
| ADD_PROTOCAL_ENTRY | FORM | ZFIR0100F02 L1064-1084 | 1 | 편집 ALV 의 셀 검증 오류를 CL_ALV_CHANGED_DATA_PROTOCOL->ADD_PROTOCOL_ENTRY 로 오류 로그(메시지 00/E)에 추가하는 FORM 이다. |
| HANDLE_DOUBLE_CLICK | FORM | ZFIR0100F02 L1096-1113 | 1 | ALV 전표번호(BELNR) 셀 더블클릭 시 회사코드·회계연도·전표번호를 파라미터로 세팅해 FB03 전표 조회 트랜잭션을 호출하는 FORM 이다. |
| CHK_DATA | FORM | ZFIR0100F02 L1124-1125 | 0 | 데이터 검증용으로 선언만 되어 있고 본문이 비어 있는 FORM 이다. |
| GET_COLOR | FORM | ZFIR0100F02 L1137-1152 | 0 | ALV 행의 DEVNUM 컬럼에 셀 색상(LVC_S_SCOL)을 지정하는 표시용 FORM 이다. |
| ON_F4 | FORM | ZFIR0100F02 L1157-1168 | 0 | ALV F4 이벤트 핸들러로 선언만 되어 있고 본문이 비어 있는 FORM 이다. |
| F4_FIELD_ENTRY_PART | FORM | ZFIR0100F02 L1177-1188 | 0 | ALV 그리드 필드에 F4 검색도움을 등록하는(REGISTER_F4_FOR_FIELDS) 플러밍 FORM 이다. |
| USER_COMMAND_0100_EXIT INPUT | MODULE | ZFIR0100I01 L7-37 | 2 | 화면 0100 종료 명령 처리 시 미저장 변경분 확인 팝업을 띄우고 잠금을 해제한 뒤 화면을 빠져나가는 EXIT 모듈이다. |
| USER_COMMAND_0100 INPUT | MODULE | ZFIR0100I01 L45-89 | 1 | 화면 0100 의 사용자 명령(변경·재조회·저장·전기)을 받아 해당 처리 FORM 으로 분기하는 PAI 모듈이다. |
| STATUS_0100 OUTPUT | MODULE | ZFIR0100O01 L10-29 | 0 | |
| SET_SCREEN_0100 OUTPUT | MODULE | ZFIR0100O01 L37-41 | 0 | |
| SET_GRID_0100 OUTPUT | MODULE | ZFIR0100O01 L49-69 | 0 |