이 기능은 무엇인가요?
MES-ERP 통합은 생산실적·재고·비용 데이터를 ERP와 실시간 또는 배치 방식으로 동기화하는 기능입니다. MES에서 발생한 생산실적, 재고변동, 생산보류 이벤트를 ERP에 전달하고, ERP의 품목·BOM·원가 정보를 MES에서 활용할 수 있도록 매핑 규칙을 설정합니다.
비즈니스 가치:
- MES↔ERP 간 데이터 불일치 해소로 재고 정확도 향상
- 생산실적 자동 전송으로 수작업 이중입력 제거
- 실시간 비용 동기화로 원가 분석 신속화
- 통합 로그로 데이터 전송 이력 및 오류 추적
업무 프로세스 개요
포함된 화면
| 화면 | 용도 | 주 사용자 |
|---|
| MES-ERP매핑 | MES 테이블과 ERP 테이블 간 필드 매핑 규칙 설정 | 시스템관리자 |
| 재고동기화이벤트 | 재고 변동 이벤트의 ERP 동기화 현황 관리 | 자재관리자 |
| 비용동기화규칙 | 원가항목별 동기화 방향·주기·매핑 설정 | 원가관리자 |
| 생산보류이벤트 | 품질·설비 이슈로 인한 생산보류의 ERP 연동 | 품질관리자 |
| 통합로그 | MES↔ERP 데이터 전송 이력·오류 조회 | 시스템관리자 |
관련 솔루션 연계
| 솔루션 | 연계 내용 | 데이터 흐름 |
|---|
| 생산관리 | 생산실적 데이터를 ERP에 전달 | 생산실적 → ERP 전송 |
| ERP | 품목, BOM, 원가 정보를 MES에서 참조 | ERP 마스터 → MES 매핑 |
시작하기
위 화면 목록에서 필요한 기능을 선택하여 시작하세요.
📋 기술 참고 정보 (개발자/관리자용)
데이터 관계도
관련 워크플로우
- WIP 재고 입고 (autoTask): IQC 합격 시 WIP 재고로 입고 처리합니다
- ERP 생산오더 수신 (startEvent): -
- 생산오더 유효성 검증 (autoTask): ERP에서 수신한 생산오더 데이터의 필수 항목(품목·수량·납기)을 검증합니다
- 오류 로그 기록 (autoTask): 유효성 검증 실패 시 오류 사유를 로그에 기록합니다
- ECO 변경 감지 시작 (startEvent): -
- BOM/라우팅 변경 감지 (autoTask): ERP에서 전송된 ECO 데이터를 파싱하여 BOM·라우팅 변경 내역을 식별합니다
- WIP 재고 동기화 시작 (startEvent): -
- 멱등성 검증 (autoTask): idempotency_key를 기반으로 중복 이벤트 여부를 검증 합니다
- 수량 계산 (autoTask): 동기화할 재고 수량을 계산합니다 (입고/출고/조정)
- ERP 재고 트랜잭션 생성 (autoTask): 크로스솔루션: ERP inventory_transactions 자동 생성 — MES WIP 변동을 ERP 재고 트랜잭션으로 전환합니다
테이블 요약
MES-ERP통합매핑 (mes_erp_integration_mappings)
| 컬럼명 | 한글명 | 타입 | 설명 |
|---|
mapping_code | 매핑코드 | VARCHAR *필수 *고유 | - |
mapping_name | 매핑명 | VARCHAR *필수 | - |
source_system | 소스시스템 | ENUM(MES, ERP) *필수 | - |
target_system | 타겟시스템 | ENUM(MES, ERP) *필수 | - |
source_entity | 소스엔티티 | VARCHAR *필수 | 원본 테이블/엔티티명 |
target_entity | 타겟엔티티 | VARCHAR *필수 | 대상 테이블/엔티티명 |
field_mappings | 필드매핑 | JSONB *필수 | 필드 매핑 규칙 JSON |
sync_direction | 동기화방향 | ENUM(mes_to_erp, erp_to_mes, bidirectional) *필수 | - |
sync_frequency | 동기화주기 | ENUM(realtime, hourly, daily, on_demand) | - |
transformation_rules | 변환규칙 | JSONB | 데이터 변환 규칙 JSON |
is_active | 사용여부 | BOOLEAN | - |
통합트랜잭션로그 (integration_transaction_logs)
| 컬럼명 | 한글명 | 타입 | 설명 |
|---|
transaction_id | 트랜잭션ID | VARCHAR *필수 *고유 | - |
mapping_id | 매핑ID | UUID (FK) *필수 | mes_erp_integration_mappings 참조 |
direction | 전송방향 | ENUM(mes_to_erp, erp_to_mes) *필수 | - |
payload | 페이로드 | JSONB *필수 | 전송 데이터 JSON |
response_payload | 응답페이로드 | JSONB | 응답 데이터 JSON |
status | 상태 | ENUM(pending, success, failed, retrying) *필수 | - |
error_message | 오류메시지 | TEXT | - |
retry_count | 재시도횟수 | INT | - |
max_retries | 최대재시도 | INT | - |
processed_at | 처리일시 | TIMESTAMP | - |
source_record_id | 원본레코드ID | VARCHAR | 원본 시스템 레코드 식별자 |
sequence_number | 이벤트순번 | BIGINT *필수 | 이벤트 순서 보장용 단조증가 시퀀스 |
event_version | 이벤트버전 | INT | 이벤트 스키마 버전. 순서 역전 감지용 |
idempotency_key | 멱등성키 | VARCHAR *고유 | source_table + source_id + event_type 복합. 중복 처리 방지 |
원가동기화규칙 (cost_sync_rules)
| 컬럼명 | 한글명 | 타입 | 설명 |
|---|
rule_code | 규칙코드 | VARCHAR *필수 *고유 | - |
rule_name | 규칙명 | VARCHAR *필수 | - |
production_event | 생산이벤트 | ENUM(completion, scrap, rework, material_issue) *필수 | - |
cost_element_type | 원가요소유형 | VARCHAR *필수 | 원가 요소 유형 |
valuation_method | 평가방법 | ENUM(standard, actual, moving_avg) *필수 | - |
posting_period | 전기기간 | VARCHAR | 회계 전기 기간 |
erp_cost_center | ERP원가센터 | VARCHAR | ERP 원가센터 코드 |
calculation_formula | 계산수식 | TEXT | 원가 계산 수식 |
is_active | 사용여부 | BOOLEAN | - |
재고동기화이벤트(레거시-v1) (inventory_sync_events)
| 컬럼명 | 한글명 | 타입 | 설명 |
|---|
event_id | 이벤트ID | VARCHAR *필수 *고유 | - |
event_type | 이벤트유형 | ENUM(goods_receipt, goods_issue, transfer, adjustment, 생산입고, 자재출고, 스크랩차감, 품질홀드) *필수 | - |
material_id | 자재ID | UUID (FK) | ERP items 크로스 참조 |
quantity_change | 수량변동 | DECIMAL *필수 | 재고 변동 수량 (+/-) |
uom | 단위 | VARCHAR *필수 | - |
warehouse_id | 창고ID | UUID (FK) | WMS warehouses 크로스 참조 |
location_code | 위치코드 | VARCHAR | 창고 내 위치 코드 |
erp_document_ref | ERP전표번호 | VARCHAR | ERP 전표/문서 참조번호 |
mes_source_ref | MES원본참조 | VARCHAR | MES 원본 트랜잭션 참조 |
sync_status | 동기화상태 | ENUM(pending, synced, failed, skipped) *필수 | - |
sync_error | 동기화오류 | TEXT | - |
event_timestamp | 이벤트일시 | TIMESTAMP *필수 | - |
synced_at | 동기화일시 | TIMESTAMP | - |
retry_count | 재시도횟수 | INT | 동기화 실패 시 재시도 횟수 |
last_error | 최근오류 | TEXT | 마지막 동기화 실패 시 오류 메시지 |
compensating_action | 보상액션 | TEXT | 동기화 실패 시 수행된 보상 트랜잭션 내역 |
재고동기화 이벤트 (inventory_sync_events_v2)
| 컬럼명 | 한글명 | 타입 | 설명 |
|---|
event_type | 이벤트유형 | ENUM(wip_in, wip_out, production_complete, material_issue, scrap, adjustment) *필수 | - |
source_table | 소스테이블 | VARCHAR *필수 | - |
source_id | 소스ID | UUID *필수 | - |
item_id | 품목ID | UUID (FK) *필수 | ERP items 크로스 참조 |
warehouse_id | 창고ID | UUID (FK) | ERP warehouses 크로스 참조 |
quantity | 수량 | DECIMAL *필수 | - |
lot_number | LOT번호 | VARCHAR | - |
sync_status | 동기화상태 | ENUM(pending, synced, failed, skipped) | - |
sync_direction | 동기화방향 | ENUM(mes_to_erp, erp_to_mes) *필수 | - |
erp_transaction_id | ERP트랜잭션ID | VARCHAR | - |
error_message | 오류메시지 | TEXT | - |
idempotency_key | 멱등성키 | VARCHAR *고유 | source_table + source_id + event_type 복합. 중복 처리 방지 |
retry_count | 재시도횟수 | INT | - |
processed_at | 처리일시 | TIMESTAMP | - |
생산보류이벤트 (production_hold_events)
| 컬럼명 | 한글명 | 타입 | 설명 |
|---|
hold_event_code | 보류이벤트코드 | VARCHAR *필수 *고유 | - |
hold_type | 보류유형 | ENUM(품질홀드, SPC홀드, 자재부족, 설비고장, 4M변경) *필수 | - |
source_system | 원천시스템 | ENUM(MES, QMS, SPC, ERP) *필수 | - |
source_event_id | 원천이벤트ID | UUID | 원천 시스템의 이벤트 레코드 ID |
production_order_id | 생산오더ID | UUID (FK) | ERP production_orders 크로스솔루션 참조 |
work_order_id | 작업지시ID | UUID (FK) | MES work_orders 참조 |
hold_reason | 보류사유 | TEXT *필수 | - |
hold_by | 보류요청자ID | UUID (시스템참조) | - |
hold_at | 보류일시 | TIMESTAMP *필수 | - |
release_by | 해제자ID | UUID (시스템참조) | - |
release_at | 해제일시 | TIMESTAMP | - |
release_reason | 해제사유 | TEXT | - |
status | 상태 | ENUM(홀드중, 해제, 자동해제) *필수 | - |
duration_minutes | 보류시간(분) | DECIMAL (계산) | 보류 경과 시간 (분 단위, 해제 시 자동 계산) |