Skip to main content

시드 데이터와 네이밍

시드 데이터

초기 샘플 데이터 정의.

{
"seedData": [
{
"tableRef": "hcm_item_categories",
"rows": [
{
"_refKey": "cat_raw",
"category_code": "RAW",
"category_name": "원자재",
"is_active": true
},
{
"_refKey": "cat_semi",
"category_code": "SEMI",
"category_name": "반제품",
"is_active": true
},
{
"_refKey": "cat_finished",
"category_code": "FIN",
"category_name": "완제품",
"is_active": true
}
]
},
{
"tableRef": "hcm_items",
"rows": [
{
"_refKey": "item_nd_magnet",
"item_code": "MAG-ND-001",
"item_name": "네오디뮴 자석 A형",
"item_type": "완제품",
"category_id": "@ref:hcm_item_categories:cat_finished",
"safety_stock": 100
}
]
}
]
}

시드 데이터 규칙

규칙설명
_refKey행 고유 키 — 다른 테이블에서 FK로 참조 시 사용
@ref:테이블ref:행refKeyFK 참조 문법
삽입 순서부모 테이블 → 자식 테이블 순으로 정의
컬럼명테이블 정의의 columns[].name과 일치

FK 참조 문법

@ref:{targetTableRef}:{_refKey}

예시:

"category_id": "@ref:hcm_item_categories:cat_finished"

hcm_item_categories 테이블의 _refKeycat_finished인 행의 id 값으로 치환

계산 컬럼 시드 데이터 규칙 (중요!)

isComputed: true 또는 CascadeUpdateService 집계 대상 컬럼의 시드 데이터는 반드시 실제 계산 결과와 정확히 일치해야 합니다.

규칙설명예시
formula 컬럼expression 수식을 적용한 결과값 기입total_amount = quantity × unit_price
aggregation 컬럼자식 테이블 시드 행의 실제 집계 결과와 일치remaining_qty = order_qty - SUM(good_qty) - SUM(defect_qty)
비율 컬럼소수점 계산 결과 정확히 기입progress_rate = good_qty / order_qty × 100 = 97.2 (반올림 아님)
supportsAutoNumbering 컬럼패턴에 맞는 실제 채번값 기입"WO-20260217-0001"
{
"tableRef": "work_orders",
"rows": [
{
"_refKey": "wo_001",
"wo_number": "WO-20260217-0001",
"order_qty": 250,
"good_qty": 243,
"defect_qty": 4,
"remaining_qty": 3,
"progress_rate": 97.2
}
]
}

주의: remaining_qty = 250 - 243 - 4 = 3, progress_rate = 243 / 250 × 100 = 97.2 — 수학적 일치 필수. 부모-자식 간 집계 불일치 시 런타임 데이터 정합성 오류 발생.


auto_numbering_rules (자동 채번 규칙)

auto_numbering_rules 테이블에 시드 데이터를 정의하면, supportsAutoNumbering: true 컬럼에 대해 런타임에서 자동 채번이 적용됩니다.

시드 데이터 구조

{
"tableRef": "auto_numbering_rules",
"rows": [
{
"_refKey": "anr_quotation",
"table_name": "quotations",
"column_name": "qt_number",
"prefix": "QT",
"date_format": "{YYYY}{MM}",
"separator": "-",
"sequence_digits": 4,
"reset_period": "monthly",
"is_active": true
},
{
"_refKey": "anr_sales_order",
"table_name": "sales_orders",
"column_name": "order_number",
"prefix": "SO",
"date_format": "{YYYY}{MM}",
"separator": "-",
"sequence_digits": 4,
"reset_period": "monthly",
"is_active": true
},
{
"_refKey": "anr_purchase_order",
"table_name": "purchase_orders",
"column_name": "po_number",
"prefix": "PO",
"date_format": "{YYYY}{MM}",
"separator": "-",
"sequence_digits": 4,
"reset_period": "monthly",
"is_active": true
},
{
"_refKey": "anr_shipment",
"table_name": "shipments",
"column_name": "shipment_number",
"prefix": "SH",
"date_format": "{YYYY}{MM}{DD}",
"separator": "-",
"sequence_digits": 4,
"reset_period": "daily",
"is_active": true
},
{
"_refKey": "anr_manufacturing_order",
"table_name": "manufacturing_orders",
"column_name": "mo_number",
"prefix": "MO",
"date_format": "{YYYY}{MM}",
"separator": "-",
"sequence_digits": 4,
"reset_period": "monthly",
"is_active": true
},
{
"_refKey": "anr_work_order",
"table_name": "work_orders",
"column_name": "wo_number",
"prefix": "WO",
"date_format": "{YYYY}{MM}{DD}",
"separator": "-",
"sequence_digits": 4,
"reset_period": "daily",
"is_active": true
}
]
}

필드 명세

필드타입필수설명
table_namestring필수채번 대상 테이블명
column_namestring필수채번 대상 컬럼명
prefixstring필수번호 접두사 (예: QT, SO, PO)
date_formatstring필수날짜 포맷: {YYYY}, {MM}, {DD} 조합
separatorstring필수구분자 (예: -, /, .)
sequence_digitsnumber필수시퀀스 자릿수 (예: 40001~9999)
reset_periodstring필수시퀀스 리셋 주기
is_activeboolean필수규칙 활성화 여부
suffixstring선택번호 접미사
overflow_policystring선택자릿수 초과 시 처리 방법

채번 패턴 생성 규칙

생성 패턴: {prefix}{separator}{date_format}{separator}{sequence}

QT-202603-0001 ← prefix: QT, date_format: {YYYY}{MM}, separator: -, digits: 4
SO-202603-0042 ← prefix: SO, date_format: {YYYY}{MM}, separator: -, digits: 4
WO-20260310-0001 ← prefix: WO, date_format: {YYYY}{MM}{DD}, separator: -, digits: 4

reset_period (시퀀스 리셋 주기)

설명시퀀스 리셋 시점
none리셋 없음 — 영구 증가리셋하지 않음
daily매일 리셋자정 (서버 타임존 기준)
monthly매월 리셋매월 1일 자정
yearly매년 리셋매년 1월 1일 자정

overflow_policy (자릿수 초과 정책)

설명
error오류 발생 — 관리자에게 알림 (기본값)
extend자릿수 자동 확장 (예: 999910000)
reset시퀀스를 0001로 강제 리셋

시드 파일 위치

ERP 솔루션의 자동 채번 규칙 시드 데이터는 packages/shared/src/solutions/erp-seed-data-4.ts에 정의되어 있습니다.


네이밍 규칙

접두사 체계

요소패턴예시
테이블 refId/tableName{접두사}_{기능명}hcm_items, djn_work_orders
스크린 refIdscr_{접두사}_{기능명}scr_hcm_items, scr_djn_work_orders
메뉴그룹 refIdmg_{접두사}_{기능명}mg_hcm_master, mg_djn_production
POP 스크린 refIdpop_{접두사}_{기능명}pop_hcm_result_input
POP 메뉴 refIdpop_menu_{접두사}pop_menu_hcm
프로세스 노드 refIdpp_{접두사}_{기능명}pp_hcm_start
대시보드 위젯 refIdw_{접두사}_{기능명}w_hcm_production_rate
액션스크린 refIdas_{접두사}_{기능명}as_hcm_po_approve

고객별 접두사 예시

고객접두사이유
하이큐마그hcm_HiCuMag
중앙안전유리jgs_JunGang Safety
엔키드ekd_EnKiD
대진산업djn_DaeJin

컬럼명 규칙

  • 영문 snake_case 필수
  • 의미가 명확한 이름 사용
  • FK 컬럼: {참조대상}_id (예: item_id, partner_id, warehouse_id)
  • SYSTEM_REF 컬럼: {역할}_id (예: manager_id, inspector_id)
  • 상태 컬럼: status (ENUM)
  • 비고 컬럼: remark 또는 notes (TEXT)
  • 사용여부: use_yn 또는 is_active (BOOLEAN)

displayName 규칙

  • 모든 displayName은 한글 사용
  • 짧고 명확하게 (2~6글자)
  • 예: "품목코드", "거래처명", "생산수량", "불량유형"

부록: 자주 사용하는 Ant Design 아이콘

아이콘용도
DatabaseOutlined기초정보/마스터
AppstoreOutlined품목/카탈로그
ShopOutlined영업/판매
ShoppingCartOutlined구매/외주
ExperimentOutlined생산/제조
SafetyCertificateOutlined품질/검사
SendOutlined물류/출하
ToolOutlined설비/보전
MobileOutlinedPOP/현장
DashboardOutlined대시보드/경영정보
SettingOutlined설정/관리
TeamOutlined인사/조직
FileTextOutlined문서/보고서
FolderOutlined분류/폴더
ScheduleOutlined일정/계획
BarChartOutlined통계/차트
RocketOutlined솔루션/시작
BarcodeOutlined바코드/스캔
AlertOutlined안전/경고
BulbOutlined연구개발

부록: 기존 솔루션 참조 금지 테이블 (일부)

고객 프리셋 JSON에서 FK로 참조하면 안 되는 기존 솔루션 테이블:

items, partners, purchase_orders, sales_orders, work_orders,
production_results, equipment, warehouses, bom, routings,
lot_tracking, defects, inspection_results, ...

→ 대신 고객 접두사 버전 사용: hcm_items, djn_partners


이전: 워크플로우와 대시보드 | 다음: 검증과 예제