feat(snippets): 한글 설명 초안 143개·새 이름 11개 검토 파일 + import_snippets 는 빈 DB 에서만(규칙 변경 후 중복·옛 이름 부활 방지)
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
7a1498a791
commit
f0520cdcc1
@@ -1,6 +1,10 @@
|
|||||||
"""옛 로컬 snippets.db(SQLite) → 서버. 같은 이름은 건너뜀(--overwrite 로 덮어씀).
|
"""옛 로컬 snippets.db(SQLite) → 서버. **스니펫이 하나도 없을 때만**(처음 채우기). --force 면 비어 있지 않아도.
|
||||||
|
|
||||||
python manage.py import_snippets ../CODE_ASSISTANT_DB/snippets.db
|
python manage.py import_snippets ../CODE_ASSISTANT_DB/snippets.db
|
||||||
|
|
||||||
|
deploy.sh 가 배포 때마다 부르므로, 이미 채워진 DB 에서 다시 돌면 안 됨 —
|
||||||
|
2026-09-23: 이름 규칙이 바뀐 뒤 다시 돌면 옛 이름(IF_SUBRC-ABAP)이 새 규칙 이름(IF_SUBRC_ABAP)으로 중복 추가되고,
|
||||||
|
apply_snippet_meta 로 이름을 바꾼 뒤엔 옛 이름이 되살아났음. 이름은 옛 규칙 그대로 둠(lookup_name).
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import sqlite3
|
import sqlite3
|
||||||
@@ -8,7 +12,7 @@ import sqlite3
|
|||||||
from django.core.management.base import BaseCommand
|
from django.core.management.base import BaseCommand
|
||||||
|
|
||||||
from apps.snippets.models import Snippet
|
from apps.snippets.models import Snippet
|
||||||
from apps.snippets.views import normalize_name
|
from apps.snippets.views import lookup_name
|
||||||
|
|
||||||
|
|
||||||
class Command(BaseCommand):
|
class Command(BaseCommand):
|
||||||
@@ -17,13 +21,17 @@ class Command(BaseCommand):
|
|||||||
def add_arguments(self, parser):
|
def add_arguments(self, parser):
|
||||||
parser.add_argument("path")
|
parser.add_argument("path")
|
||||||
parser.add_argument("--overwrite", action="store_true")
|
parser.add_argument("--overwrite", action="store_true")
|
||||||
|
parser.add_argument("--force", action="store_true", help="스니펫이 이미 있어도 가져옴")
|
||||||
|
|
||||||
def handle(self, path, overwrite, **_):
|
def handle(self, path, overwrite, force, **_):
|
||||||
|
if Snippet.objects.exists() and not force:
|
||||||
|
self.stdout.write(f"이미 스니펫 {Snippet.objects.count()}개 있음 — 건너뜀(처음 채울 때만 씀, 필요하면 --force)")
|
||||||
|
return
|
||||||
con = sqlite3.connect(path)
|
con = sqlite3.connect(path)
|
||||||
rows = con.execute("SELECT name, desc, body, category FROM snippets").fetchall()
|
rows = con.execute("SELECT name, desc, body, category FROM snippets").fetchall()
|
||||||
added = updated = skipped = 0
|
added = updated = skipped = 0
|
||||||
for name, desc, body, category in rows:
|
for name, desc, body, category in rows:
|
||||||
name = normalize_name(name)
|
name = lookup_name(name)
|
||||||
if not name or not (body or "").strip():
|
if not name or not (body or "").strip():
|
||||||
skipped += 1
|
skipped += 1
|
||||||
continue
|
continue
|
||||||
|
|||||||
@@ -49,8 +49,11 @@ def test_import_from_sqlite(db, tmp_path):
|
|||||||
call_command("import_snippets", str(p))
|
call_command("import_snippets", str(p))
|
||||||
names = {s.name: s for s in Snippet.objects.all()}
|
names = {s.name: s for s in Snippet.objects.all()}
|
||||||
assert set(names) == {"A_B", "C"} and names["C"].category == "코드"
|
assert set(names) == {"A_B", "C"} and names["C"].category == "코드"
|
||||||
call_command("import_snippets", str(p)) # 재실행해도 중복 없음
|
call_command("import_snippets", str(p)) # 이미 있으면 건너뜀 — 배포마다 돌아도 안전
|
||||||
assert Snippet.objects.count() == 2
|
assert Snippet.objects.count() == 2
|
||||||
|
Snippet.objects.create(name="LEGACY-ABAP", body="x")
|
||||||
|
call_command("import_snippets", str(p))
|
||||||
|
assert not Snippet.objects.filter(name="LEGACY_ABAP").exists() # 새 규칙 이름으로 중복 생기지 않음
|
||||||
|
|
||||||
|
|
||||||
def test_legacy_name_still_editable(auth_api, user):
|
def test_legacy_name_still_editable(auth_api, user):
|
||||||
|
|||||||
@@ -0,0 +1,28 @@
|
|||||||
|
# 스니펫 메타 검토 · 반영
|
||||||
|
|
||||||
|
`snippet_meta_review.csv` — 공용 스니펫 143개의 한글 설명 초안과, 옛 규칙 이름(`-ABAP` 꼬리) 11개의 새 이름.
|
||||||
|
2026-09-23 에 본문(코드·★ 머리줄·주석)을 읽고 AI 가 만든 초안이라 **사람 검토가 필요함**.
|
||||||
|
|
||||||
|
## 검토
|
||||||
|
|
||||||
|
- 엑셀로 열림(UTF-8 BOM). 열: `name`(지금 이름) · `new_name`(비어 있으면 안 바꿈) · `desc`(한글 설명).
|
||||||
|
- 설명은 **사용자가 검색창에 칠 말**이 들어가게: 한글 업무 용어(전표·코스트센터·팝업·엑셀) + 핵심 ABAP 키워드.
|
||||||
|
- 새 이름 규칙: 영문 대문자·숫자·`_`, 문자로 시작, 3~50자, 권장 모양 `영역_대상_동작`.
|
||||||
|
- 고친 뒤 **UTF-8 CSV** 로 저장(엑셀 "CSV UTF-8").
|
||||||
|
|
||||||
|
## 반영 (서버마다 한 번)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cd <repo>/code-assistant/5_django_backend # 우리 서버 도커면: docker compose exec be python manage.py ...
|
||||||
|
.venv/bin/python manage.py apply_snippet_meta ../docs/snippets/snippet_meta_review.csv --dry-run # 바뀔 것만 출력
|
||||||
|
.venv/bin/python manage.py apply_snippet_meta ../docs/snippets/snippet_meta_review.csv # 반영
|
||||||
|
```
|
||||||
|
- 설명은 비어 있거나 한글이 없는 것만 채움(사용자가 이미 한글로 고친 건 안 건드림). `--overwrite` 면 덮어씀.
|
||||||
|
- 이름 변경은 사람별 사용 기록도 같이 옮김. 새 이름이 이미 있으면 건너뜀. 여러 번 돌려도 결과 같음.
|
||||||
|
- 로컬 실데이터 실측(143개): 설명 143 · 이름 변경 11 · 규칙 위반 0. 한글 검색 '팝업' 0→8건, '전표' 0→6건.
|
||||||
|
|
||||||
|
## 관련 규칙 (코드)
|
||||||
|
|
||||||
|
- 이름 규칙: `2_frontend/src/features/snippets/core/name.ts` = `5_django_backend/apps/snippets/views.py` (`normalize_name`, `NAME_RE`)
|
||||||
|
- 검색: 이름 + 설명 + 본문의 ★ 머리줄·주석줄(`core/search.ts`). 본문 코드 줄은 안 봄.
|
||||||
|
- `import_snippets` 는 스니펫이 하나도 없을 때만 돎(처음 채우기). 배포마다 불려도 중복·옛 이름 부활 없음.
|
||||||
@@ -0,0 +1,144 @@
|
|||||||
|
name,new_name,desc
|
||||||
|
ABAP_740-ABAP,SYNTAX_ABAP740_EXAMPLES,ABAP 7.4(HANA) 새 문법 예제 모음 — 인라인 선언·COALESCE 등
|
||||||
|
ALV_LIST_STATUS_ICONS,,ALV 상태 아이콘 목록 — 신호등(빨강·노랑·초록)·LED 아이콘 이름
|
||||||
|
ALV_MARK_GJAHR_VALIDATION_ERRORS,,업로드 데이터 검증 — 회계연도 다르면 에러 메시지·빨간 신호등
|
||||||
|
ALV_MODIFY_CHANGED_CELLS,,ALV 에서 사용자가 바꾼 셀 값 받아 처리 (DATA_CHANGED)
|
||||||
|
ALV_POPULATE_CELL_COLOR_TABLE,,"ALV 행·셀 색깔 지정 (LVC_T_SCOL, CTAB_FNAME)"
|
||||||
|
ALV_PROCESS_SELECTED_ROWS,,"ALV 에서 선택한 행 가져오기 — 단일/다중 선택, 미선택 시 에러"
|
||||||
|
ALV_RESET_EUINFO_BUFFER,,ALV 레이아웃·필드 변경이 안 보일 때 버퍼 초기화 (SBUF_OBJ_RESET_OBJECT)
|
||||||
|
ALV_SET_CELL_EDITABILITY,,"ALV 셀 입력 가능/불가 설정 (LVC_T_STYL, STYLEFNAME)"
|
||||||
|
ALV_SET_RYEAR_CELL_COLOR,,ALV 컬럼(열) 색깔 지정 (LVC_T_SCOL)
|
||||||
|
ALV_UPDATE_VISIBLE_EXCLUDE_FLAG,,ALV 필터 적용 후 화면에 보이는 행만 골라 처리 (필터된 행 제외)
|
||||||
|
BDC_DECLARE_MESSAGE_TEXT,,BDC 메시지 텍스트용 변수 선언 (BDC_VTEXT1)
|
||||||
|
BDC_EXECUTE_F110_TRANSACTION,,BDC 실행 틀 — BDCDATA 구성·옵션·메시지 수집 (CALL TRANSACTION)
|
||||||
|
BDC_FORMAT_WRBTR_CURRENCY,,BDC 용 금액을 통화 기준 문자로 변환 (WRITE CURRENCY)
|
||||||
|
CALL_FB09D-ABAP,FI_OPEN_FB09D_LINE_ITEM,전표 개별 항목 변경(FB09D) 화면 바로 열기 — 파라미터 ID 세팅
|
||||||
|
CASE_X-ABAP,CONTROL_CASE_X_RADIO,라디오버튼·체크박스 중 선택된 것으로 분기 (CASE 'X')
|
||||||
|
COND_SWITCH-ABAP,SYNTAX_COND_SWITCH_INLINE,7.4 COND/SWITCH — 조건에 따라 값을 한 줄로 결정
|
||||||
|
CONVERSION_APPLY_ALPHA_KOSTL,,앞자리 0 채우기/빼기 — 코스트센터 등 번호 변환 (CONVERSION_EXIT_ALPHA)
|
||||||
|
CONVERSION_COPY_FIELDS_CORRESPONDING,,"7.4 CORRESPONDING — 같은 이름 필드 복사, 이름 다르면 MAPPING"
|
||||||
|
CONVERSION_FORMAT_WBS_POSID_ABPSP,,WBS 요소 내부번호 → 화면용 번호 변환 (CONVERSION_EXIT_ABPSP_OUTPUT)
|
||||||
|
CONVERSION_IDOC_TO_SAP_CURRENCY,,"통화별 금액 자릿수 변환 (CURRENCY_AMOUNT_IDOC_TO_SAP, 원화 등)"
|
||||||
|
CO_SELECT_GROUP_K_GROUP_SELECT,,CO 그룹(코스트센터 그룹 등) F4 조회 팝업 (K_GROUP_SELECT)
|
||||||
|
CO_SUM_COSS_PERIODS_DYNAMIC_ASSIGN,,필드심볼로 12개월(WKG001~012) 금액 필드 동적 합산
|
||||||
|
DATA_DECLARE_SY_SUBRC_VARIABLE,,SY-SUBRC 저장용 변수 선언
|
||||||
|
DATE_CALCULATE_ELAPSED_TIME,,처리 시간 측정 — 시작/종료 시각 차이로 경과 시간 계산
|
||||||
|
DATE_GET_MONTH_END_RP_LASTDAY,,해당 월의 마지막 날짜 구하기 (RP_LAST_DAY_OF_MONTHS)
|
||||||
|
DATE_SUBTRACT_MONTH_MONTH_PLUS,,날짜 계산 — n개월 전후 날짜 (MONTH_PLUS_DETERMINE)
|
||||||
|
DATE_SUBTRACT_MONTH_RP_CALC,,날짜 계산 — n개월/일/년 전후 날짜 (RP_CALC_DATE_IN_INTERVAL)
|
||||||
|
DDIC_DECLARE_ZBTPBUDS0003_STRUCTURE,,구조체 기준으로 작업영역·내부테이블·필드심볼 선언 (INCLUDE STRUCTURE)
|
||||||
|
DDIC_DEFINE_T_INPUT_STRUCTURE,,TYPES 로 구조체 타입 정의 후 변수 선언
|
||||||
|
DDIC_MAINTAIN_ZFIDVGC1002_SM30,,SM30 테이블 유지보수 화면 호출 메모
|
||||||
|
DDIC_OPEN_VIEW_BUKRS_FILTER,,테이블 유지보수 뷰를 회사코드 조건으로 열기 (VIEW_MAINTENANCE_CALL)
|
||||||
|
DDIC_SET_CHANGE_AUDIT_FIELDS,,생성/변경 이력 필드 채우기 (ERDAT·ERNAM·AEDAT·AENAM)
|
||||||
|
DEBUGGER_ACTIVATE_SYSTEM_COMMAND,,팝업에서도 디버깅 켜기 — /H 시스템 명령 파일
|
||||||
|
DEL_MARK_ALV,,"ALV 에서 선택한 행 삭제 — 선택 없으면 안내, 확인 팝업 후 삭제"
|
||||||
|
DYNPRO_CONFIRM_MESSAGE_POPUP,,확인 팝업(예/아니오) 띄우고 답에 따라 분기
|
||||||
|
DYNPRO_DISABLE_INPUT_GROUP1,,화면 필드 그룹(GROUP1) 입력 비활성화 (LOOP AT SCREEN)
|
||||||
|
DYNPRO_HANDLE_OK_CODE_NAVIGATION,,화면 버튼 처리 — 뒤로·취소·종료(BACK/CANC/EXIT) 분기
|
||||||
|
DYNPRO_OPEN_FB03_CURSOR_FIELD,,ALV·리스트에서 커서 위치 필드를 더블클릭하면 전표(FB03) 열기 (GET CURSOR)
|
||||||
|
DYNPRO_OPEN_POPUP_SCREEN,,화면을 팝업 창으로 띄우기 (CALL SCREEN STARTING AT)
|
||||||
|
DYNPRO_REQUEST_DD03L_TABNAME_VALUES,,값 입력 팝업 — 특정 필드 값을 사용자에게 입력받기 (POPUP_GET_VALUES)
|
||||||
|
DYNPRO_RETURN_PREVIOUS_SCREEN,,이전 화면으로 돌아가기 (LEAVE TO SCREEN 0)
|
||||||
|
EXCEL_UPLOAD-ABAP,FILE_UPLOAD_EXCEL_DYNAMIC,엑셀 파일 업로드 — 동적 내부테이블로 읽기 (SMW0 양식)
|
||||||
|
F4_FILE-ABAP,SELECTION_SCREEN_F4_FILE_PATH,선택화면 파일 경로 입력칸에 F4 파일 선택 팝업
|
||||||
|
FILE_DOWNLOAD_SMW0_DOCUMENT,,SMW0 에 올린 양식 파일(엑셀 템플릿) 다운로드 버튼
|
||||||
|
FILE_DOWNLOAD_TEXT_GUI_DOWNLOAD,,"내부테이블을 PC 텍스트 파일로 다운로드 (GUI_DOWNLOAD, 탭 구분)"
|
||||||
|
FILE_UPLOAD_TEXT_GUI_UPLOAD,,"PC 텍스트 파일을 내부테이블로 업로드 (GUI_UPLOAD, 탭 구분)"
|
||||||
|
FI_DELETE_PARKED_DOCUMENT_FBV0_BDC,,파킹전표 삭제 — BDC 로 FBV0 실행
|
||||||
|
FI_OPEN_FB03_PARAMETER_IDS,,전표 조회(FB03) 화면 바로 열기 — 회사코드·전표번호·연도 파라미터
|
||||||
|
FI_OPEN_FB09D_SKIP_SCREEN,,FB09D 첫 화면 건너뛰고 실행 (CALL TRANSACTION AND SKIP FIRST SCREEN)
|
||||||
|
FI_OPEN_FBV3_PARAMETER_IDS,,파라미터 ID 세팅 후 파킹전표 조회(FBV3) 바로 열기
|
||||||
|
FI_TOGGLE_COMPANY_CODE_POPUP_FO2,,FI 회사코드 입력 팝업 켜고 끄기 (파라미터 ID FO2)
|
||||||
|
GET_TABLE_KEKO,,원가계산 헤더(KEKO) 조회 — 서브쿼리로 최신 건만
|
||||||
|
IF_SUBRC-ABAP,CONTROL_IF_SUBRC_CHECK,직전 처리 성공 여부로 분기 (IF SY-SUBRC EQ 0)
|
||||||
|
ITAB_AGGREGATE_DMBTR_COLLECT,,키가 같으면 숫자 필드 합산 (COLLECT)
|
||||||
|
ITAB_AGGREGATE_SUM_COUNT_REDUCE,,7.4 REDUCE — 내부테이블 합계·조건 건수 한 줄 계산
|
||||||
|
ITAB_CALCULATE_GJAHR_SUBTOTAL,,그룹별 소계 — AT NEW / AT END OF (정렬 필수)
|
||||||
|
ITAB_COPY_COMPONENTS_DYNAMIC_ASSIGN,,필드심볼 2개로 필드명을 동적으로 지정해 값 복사 (ASSIGN (필드명))
|
||||||
|
ITAB_COUNT_ROWS_LINES,,내부테이블 행 개수 세기 (LINES)
|
||||||
|
ITAB_DECLARE_LOCAL_STRUCTURE,,로컬 구조체·내부테이블·필드심볼 선언 틀 (BEGIN OF)
|
||||||
|
ITAB_DEDUPLICATE_ACCOUNTING_KEY,,내부테이블 정렬 후 중복 제거 (SORT·DELETE ADJACENT DUPLICATES)
|
||||||
|
ITAB_DELETE_ROWS_WHERE,,내부테이블에서 조건 맞는 행 삭제 (DELETE itab WHERE)
|
||||||
|
ITAB_FILTER_ROWS_LOOP_WHERE,,조건 맞는 행만 반복 처리 (LOOP AT WHERE)
|
||||||
|
ITAB_GROUP_ROWS_BY_KEY,,7.4 그룹핑 — 키별로 묶어서 반복 (LOOP AT GROUP BY)
|
||||||
|
ITAB_LOOKUP_ROWS_TABLE_EXPRESSIONS,,7.4 행 존재 여부·위치·값 바로 읽기 (LINE_EXISTS·LINE_INDEX·itab[ ])
|
||||||
|
ITAB_MODIFY_GJAHR_PERIOD_TRANSPORTING,,내부테이블 여러 행의 특정 필드만 일괄 수정 (MODIFY TRANSPORTING WHERE)
|
||||||
|
ITAB_POPULATE_VALUE_CONSTRUCTOR,,7.4 VALUE 생성자로 RANGE·내부테이블 한 번에 채우기
|
||||||
|
ITAB_READ_ACCOUNTING_KEY_BINARY_SEARCH,,내부테이블 빠른 조회 — 정렬 후 READ TABLE BINARY SEARCH
|
||||||
|
ITAB_READ_KEYS_BINARY_SEARCH,,여러 키로 정렬 후 빠른 조회 (READ TABLE WITH KEY BINARY SEARCH)
|
||||||
|
ITAB_READ_OBJNR_BINARY_SEARCH,,"내부테이블 한 건 빠르게 찾기 (READ TABLE BINARY SEARCH, OBJNR)"
|
||||||
|
ITAB_SUM_PERIOD_FIELDS_VARYING,,기간별 금액 필드(HSL01~16) 반복 합산 (DO VARYING)
|
||||||
|
ITAB_UPDATE_MARK_TRANSPORTING,,내부테이블 조건 맞는 행의 선택표시(MARK) 필드만 수정
|
||||||
|
JOB_REPEAT_BACKGROUND_CALL_DO,,DO n TIMES 반복하며 백그라운드 잡 여러 번 실행
|
||||||
|
JOB_SUBMIT_Z2RCO5010_IMMEDIATE,,백그라운드 잡 생성·다른 프로그램 SUBMIT·즉시 실행 (JOB_OPEN/CLOSE)
|
||||||
|
LOCK_MANAGE_ZTABLE_ENQUEUE_DEQUEUE,,Z테이블 잠금/해제 (ENQUEUE·DEQUEUE) — 동시 수정 방지
|
||||||
|
MEMORY_IMPORT_EXPORT_INDX_ST,,공유 버퍼로 프로그램 간 데이터 주고받기 (EXPORT/IMPORT SHARED BUFFER)
|
||||||
|
MEMORY_IMPORT_ORGDOC_AND_FREE,,ABAP 메모리에서 값 가져오고 비우기 (IMPORT FROM MEMORY·FREE MEMORY)
|
||||||
|
MESSAGE_DISPLAY_STATUS_AS_ERROR,,메시지 출력 — 상태 표시줄에 에러처럼 보이게 (MESSAGE S DISPLAY LIKE E)
|
||||||
|
MESSAGE_FORMAT_GP_510_TEXT,,메시지 번호로 메시지 문장 만들기 (MESSAGE ... INTO)
|
||||||
|
NUMBER_RANGE_GET_NEXT_NUMBER,,번호범위로 다음 채번 (NUMBER_GET_NEXT)
|
||||||
|
OPEN_SQL_AGGREGATE_COSS_COSL_TOTALS,,CO 원가 테이블(COSS·COSP) 12개월 금액 합계 조회
|
||||||
|
OPEN_SQL_APPLY_SELECT_OPTIONS_FILTERS,,SELECT-OPTIONS 범위 조건 만들기 (NO INTERVALS·NO-EXTENSION)
|
||||||
|
OPEN_SQL_DELETE_ZCO240T_PERBL,,DB 테이블 조건 삭제 (DELETE FROM WHERE)
|
||||||
|
OPEN_SQL_DELETE_ZCOT1010_PERIOD,,"DB 테이블 조건 삭제 (DELETE FROM WHERE, 기간 단위)"
|
||||||
|
OPEN_SQL_LIST_DD03L_FIELDS,,테이블 필드 목록 조회 (DD03L — 필드명·위치·데이터 요소·길이)
|
||||||
|
OPEN_SQL_LOOKUP_AUFK_AUFNR,,내부오더(AUFNR) 유효성 확인·오더명 가져오기 (AUFK)
|
||||||
|
OPEN_SQL_LOOKUP_CEPC_CEPCT_PRCTR,,손익센터(PRCTR) 유효성 확인·명칭 가져오기 (CEPC·CEPCT)
|
||||||
|
OPEN_SQL_LOOKUP_CSKA_CSKU_KSTAR,,원가요소(KSTAR) 유효성 확인·명칭 가져오기 (CSKA·CSKU)
|
||||||
|
OPEN_SQL_LOOKUP_CSKS_CSKT_KOSTL,,코스트센터(KOSTL) 유효성 확인·명칭 가져오기 (CSKS·CSKT)
|
||||||
|
OPEN_SQL_LOOKUP_J_1BBRANCH,,사업장(BRANCH) 유효성 확인·사업장명 가져오기 (J_1BBRANCH)
|
||||||
|
OPEN_SQL_LOOKUP_KNA1_KNB1_KUNNR,,고객(KUNNR) 유효성 확인·고객명 가져오기 (KNA1·KNB1)
|
||||||
|
OPEN_SQL_LOOKUP_LFA1_LFB1_LIFNR,,구매처·벤더(LIFNR) 유효성 확인·이름 가져오기 (LFA1·LFB1)
|
||||||
|
OPEN_SQL_LOOKUP_SKB1_SKAT_SAKNR,,계정코드(SAKNR) 유효성 확인·계정명 가져오기 (SKB1·SKAT)
|
||||||
|
OPEN_SQL_LOOKUP_TGSBT_GSBER,,사업영역(GSBER) 유효성 확인·명칭 가져오기 (TGSBT)
|
||||||
|
OPEN_SQL_POLL_BKPF_DOCUMENT,,전표(BKPF) 생성될 때까지 반복 확인 — 존재 여부 체크 후 대기
|
||||||
|
OPEN_SQL_READ_DD07T_DOMAIN_TEXTS,,도메인 고정값과 텍스트 가져오기 (DD07T)
|
||||||
|
OPEN_SQL_READ_MAKT_MAKTX_SINGLE,,한 건 조회 (SELECT SINGLE) — 자재명(MAKTX) 가져오기
|
||||||
|
OPEN_SQL_READ_MARA_FAE,,내부테이블 기준 조회 (FOR ALL ENTRIES) — 비어 있으면 전체조회 주의
|
||||||
|
OPEN_SQL_REPLACE_ZCOT1010_PERIOD,,"내부테이블 내용을 DB 테이블에 저장 (ZCOT1010, 기간 단위 삭제 후 저장)"
|
||||||
|
OPEN_SQL_UPDATE_BKPF_DOCUMENT,,DB 테이블 필드 직접 수정 (UPDATE BKPF SET)
|
||||||
|
OPEN_SQL_UPSERT_ZFIDTGC1056_TABLE,,"내부테이블로 DB 테이블 저장(있으면 수정, 없으면 추가) — MODIFY FROM TABLE·COMMIT"
|
||||||
|
PART1_4_SCREEN,,스크린 흐름 로직 기본 틀 — PBO(화면 전)·PAI(사용자 액션 후)
|
||||||
|
PART1_5_PBO,,스크린 PBO/PAI 모듈 기본 틀 — 상태(버튼·제목) 설정과 버튼 처리
|
||||||
|
PART2_13_RADIO_BOX_HORIZONTAL,,라디오버튼 가로 배치 + 앞에 설명 텍스트
|
||||||
|
PART2_1_BEGIN_OF_BLOCK,,선택화면 블록(테두리) 만들고 입력 조건으로 SQL 조회
|
||||||
|
RANGE_APPEND_SY_DATUM_EQ,,"RANGE/SELECT-OPTIONS 에 단일값 한 줄 추가 (SIGN I, OPTION EQ)"
|
||||||
|
RANGE_BUILD_EQ_BT_MACROS,,RANGE 조건 매크로로 채우기 (EQ 단일값·BT 범위)
|
||||||
|
RAP_QUERY_FIND_CLOUD_API_SUCCESSORS,,RAP 커스텀 쿼리 클래스 예제 — 필터·페이징·건수 처리
|
||||||
|
REPORT_CONFIGURE_FUNCTION_BUTTONS,,선택화면 툴바 기능 버튼(F01~F05) 텍스트·아이콘 설정
|
||||||
|
REPORT_DEFINE_ZMESSAGE_MESSAGE_ID,,리포트 선언에 메시지 클래스 지정 (MESSAGE-ID)
|
||||||
|
REPORT_WRITE_HELLO_WORLD,,가장 간단한 리포트 — Hello world 출력
|
||||||
|
RUNTIME_WAIT_HALF_SECOND,,잠깐 대기 — 0.5초 멈춤 (WAIT UP TO SECONDS)
|
||||||
|
SELECTION_SCREEN_ADD_SKIP_ULINE,,선택화면 빈 줄·구분선 넣기 (SKIP·ULINE)
|
||||||
|
SELECTION_SCREEN_ASSIGN_KOSTL_MATCHCODES,,선택화면 코스트센터 입력칸에 검색도움(매치코드) 붙이기
|
||||||
|
SELECTION_SCREEN_BIND_MEMORY_ID,,선택화면 값 기억하기 — MEMORY ID 로 다음에도 같은 값 자동 입력
|
||||||
|
SELECTION_SCREEN_DEFINE_DEFAULT_CHECKBOX,,선택화면 체크박스 (기본 체크)
|
||||||
|
SELECTION_SCREEN_DEFINE_FRAMED_BLOCK,,선택화면 테두리 블록 만들기 (BEGIN OF BLOCK WITH FRAME)
|
||||||
|
SELECTION_SCREEN_DEFINE_RB1_RADIOBUTTONS,,선택화면 라디오버튼 그룹 (4개 중 하나 선택)
|
||||||
|
SELECTION_SCREEN_DEFINE_RD1_RADIOBUTTONS,,선택화면 라디오버튼 2개 (기본 선택 지정)
|
||||||
|
SELECTION_SCREEN_DEFINE_RD2_RADIOBUTTONS,,"선택화면 라디오버튼 — 여러 개 중 하나만 선택, 기본값 지정"
|
||||||
|
SELECTION_SCREEN_DEFINE_ZBTN_PUSHBUTTON,,선택화면에 푸시버튼 만들기 (전체 체크·영역 보이기/숨기기 등)
|
||||||
|
SELECTION_SCREEN_DISABLE_MD1_INPUT,,선택화면 특정 그룹(MODIF ID) 입력 막기 (AT SELECTION-SCREEN OUTPUT)
|
||||||
|
SELECTION_SCREEN_HANDLE_UC1_COMMAND,,선택화면 버튼 클릭(USER-COMMAND) 처리
|
||||||
|
SELECTION_SCREEN_HIDE_P_BUKRS2,,선택화면 파라미터 숨기기 (NO-DISPLAY)
|
||||||
|
SELECTION_SCREEN_INSERT_BLANK_LINE,,선택화면에 빈 줄 한 칸 넣기 (SELECTION-SCREEN SKIP)
|
||||||
|
SELECTION_SCREEN_LAYOUT_PARAMETER_LINE,,선택화면 한 줄에 여러 파라미터 배치 (BEGIN OF LINE·COMMENT·POSITION)
|
||||||
|
SELECTION_SCREEN_LAYOUT_RD1_RADIOBUTTONS,,선택화면 라디오버튼 가로로 배치 (BEGIN OF LINE·POSITION)
|
||||||
|
SELECTION_SCREEN_POPULATE_P_PERIOD_LISTBOX,,선택화면 파라미터를 드롭다운 리스트박스로 — 도메인 값으로 목록 채우기
|
||||||
|
SELECTION_SCREEN_SET_PARAMETER_DEFAULTS,,"선택화면 기본값 지정 (DEFAULT, 올해 연도 등)"
|
||||||
|
SELECTION_SCREEN_TRACE_EVENT_SEQUENCE,,선택화면 이벤트 실행 순서 확인 (INITIALIZATION·AT SELECTION-SCREEN 등)
|
||||||
|
SELECT_SUBQUERY_MAX-ABAP,OPEN_SQL_SUBQUERY_MAX_KEKO,서브쿼리로 최신(MAX) 값만 조회 — KEKO 원가계산 헤더
|
||||||
|
SELECT_SUM-ABAP,OPEN_SQL_SUM_GROUP_BY_HAVING,SELECT 합계 집계 — SUM·GROUP BY·HAVING (매출원가 수량·금액)
|
||||||
|
STRING_CONVERT_LOWER_CASE,,문자열 소문자로 바꾸기 (TRANSLATE TO LOWER CASE)
|
||||||
|
STRING_EXTRACT_BY_OFFSET_LENGTH,,문자열 잘라 쓰기 — 위치(offset)·길이로 년/월/일 뽑기
|
||||||
|
STRING_FIND_ALPHA_OFFSET_REGEX,,정규식으로 첫 영문자 위치 찾기 (FIND REGEX MATCH OFFSET)
|
||||||
|
STRING_FIND_FIRST_MATCH_OFFSET,,"문자열에서 첫 위치 찾기 — 일반/정규식, 위치(OFFSET) 받기 (FIND)"
|
||||||
|
STRING_JOIN_FIELDS_SEPARATOR,,여러 필드를 구분자로 합치기 (CONCATENATE SEPARATED BY)
|
||||||
|
STRING_OVERLAY_HKONT_BLANKS,,문자열 덮어쓰기 — 빈 자리를 다른 값으로 채우기 (OVERLAY)
|
||||||
|
STRING_REPLACE_DELIMITERS,,문자열 치환 — 특정 문자 전부/처음 것만 바꾸기 (REPLACE)
|
||||||
|
STRING_SHIFT_LEFT_BY_COUNT,,문자열을 왼쪽으로 n칸 밀기 (SHIFT ... PLACES LEFT)
|
||||||
|
STRING_SPLIT_AT_SPACE,,문자열을 구분자(공백)로 나누기 (SPLIT AT)
|
||||||
|
STRING_TEMPLATE-ABAP,STRING_TEMPLATE_FORMAT,"7.4 문자열 템플릿 |...| — 숫자·날짜 포맷, 자리수 0 채우기"
|
||||||
|
STRING_VALIDATE_DIGIT_SPACE_CO,,문자열이 숫자(와 공백)로만 되어 있는지 확인 (CO)
|
||||||
|
XF_XFELD-ABAP,DDIC_LIST_XFELD_DOMAINS,예/아니오(체크) 필드용 데이터 요소 목록 — XFELD 계열
|
||||||
|
Reference in New Issue
Block a user