워크플로우
ERP (전사적 자원관리)에 정의된 비즈니스 프로세스 워크플로우입니다.
- 노드 수: 439개
- 연결 수: 438건
워크플로우 그룹
purchase_process
| 노드 | 유형 | 설명 | 연결테이블 |
|---|---|---|---|
| 구매 프로세스 시작 | startEvent | - | purchase_requisitions |
| 구매요청 등록 | humanTask | 구매담당자가 구매요청서를 작성합니다 | purchase_requisitions |
| 팀장 승인 | approval | 구매요청에 대한 팀장 승인 | - |
| 승인 판단 | exclusiveGateway | - | - |
| 구매요청 승인 알림 | inAppNotification | 구매요청이 승인되었음을 알림 | - |
| 발주서 자동생성 | autoTask | 승인된 구매요청 기반으로 발주서를 자동 생성 [Transaction: REQUIRES_NEW, Idempotency: {pr_number}_{partner_id}, Retry: {maxRetries: 3, backoffMs: 1000}] | purchase_orders |
| 발주서 PDF 생성 | documentGen | 발주서를 PDF 문서로 자동 생성 | - |
| 공급업체 발주 통보 | 공급업체에 발주 내용을 이메일로 전송 | - | |
| 입고 확인 | humanTask | 입고된 자재를 확인하고 입고 처리합니다 | goods_receipts |
| 입고 검수 | humanTask | 바코드 스캔으로 입고 품목을 검수합니다 | goods_receipt_items |
| 재고 반영 | autoTask | 검수 완료된 자재를 재고에 자동 반영 [Transaction: REQUIRES_NEW, Lock: SELECT_FOR_UPDATE, Retry: {maxRetries: 3, backoffMs: 1000}] | inventory |
| 구매 완료 알림 | inAppNotification | 구매 프로세스 완료 알림 | - |
| 구매 프로세스 완료 | endEvent | - | - |
| 구매요청 반려 알림 | inAppNotification | 구매요청이 반려되었음을 알림 | - |
| 구매요청 수정 | humanTask | 반려된 구매요청을 수정하여 재제출합니다 | purchase_requisitions |
| 반려 처리 완료 | endEvent | - | - |
| 단가계약 조회 | dataFilter | 해당 거래처/품목의 유효 단가계약을 자동 조회 | contracts |
| 발주금액 자동산출 | formulaCalc | 계약 단가 × 수량으로 발주 금액 자동 계산 | - |
| 매입채무 자동생성 | autoTask | 입고 완료 시 매입채무를 자동 생성 [Transaction: REQUIRES_NEW, Idempotency: {gr_number}, Retry: {maxRetries: 3, backoffMs: 1000}] | accounts_payable |
| 수입검사 연계 | autoTask | 입고 시 수입검사를 자동 연계 | quality_inspections |
| 납기 D-5 알림 | timerEvent | 납기일 5일 전 자동 알림 | - |
| 발주 중복 검증 | autoTask | 멱등성 키(pr_number+partner_id) 기반 중복 발주 방지. 동일 구매요청에 대한 발주서 이미 존재 시 스킵 [Idempotency: {pr_number}_{partner_id}, DuplicateCheck: purchase_orders.pr_reference] | purchase_orders |
| 가용재고 선검증 | autoTask | 재고 반영 전 가용수량(현재고-예약수량) ≥ 0 검증. 음수 재고 발생 방지 [Lock: SELECT_FOR_UPDATE, Validation: available_qty >= 0] | inventory |
| 3-Way Matching 검증 | autoTask | PO금액 = GR수량×단가 = Invoice금액 3-way matching 검증. 금액 불일치 시 매입채무 생성 차단 [Validation: po_amount === gr_amount === invoice_amount, Tolerance: 0.01] | goods_receipts |
| 지급일정 자동생성 | autoTask | 발주 확정 시 거래처 결제조건 기반 지급일정 자동생성 [Transaction: REQUIRES_NEW] | payment_schedules |
| 검사기준서 조회 | dataFilter | 수입검사 시 해당 품목의 검사기준서를 자동 조회 | inspection_standards |
| 계측기 교정유효 확인 | autoTask | 수입검사 전 사용 계측기의 교정 유효기간 확인 | measurement_equipment |
흐름: pp_start → pp_register_request | pp_register_request → pp_team_approval | pp_team_approval → pp_approval_gw | pp_approval_gw → pp_approve_notify [승인] | pp_approve_notify → pp_check_contract | pp_check_contract → pp_calc_amount | pp_calc_amount → pp_check_duplicate_po | pp_check_duplicate_po → pp_auto_create_po | pp_auto_create_po → pp_generate_po_pdf | pp_generate_po_pdf → pp_notify_supplier
sales_process
| 노드 | 유형 | 설명 | 연결테이블 |
|---|---|---|---|
| 판매 프로세스 시작 | startEvent | - | sales_orders |
| 수주 등록 | humanTask | 영업담당자가 고객 주문을 등록합니다 | sales_orders |
| 신용 확인 | autoTask | 고객의 여신한도 및 미수금을 자동 확인 | partners |
| 신용 판단 | exclusiveGateway | - | - |
| 수주 확정 | humanTask | 신용 확인 후 수주를 확정합니다 | sales_orders |
| 출하 지시 생성 | humanTask | 출하 지시서를 생성합니다 | shipments |
| 출하 확인 | humanTask | 바코드 스캔으로 출하 품목을 확인합니다 | shipments |
| 배송추적 시작 | autoTask | 출하 완료 후 배송 추적을 시작합니다 | shipments |
| 납기 D-3 알림 | timerEvent | 납기일 3일 전 자동 알림 | - |
| 납기 알림 | 고객에게 납기 예정 알림 발송 | - | |
| 수금 확인 | humanTask | 대금 수금을 확인합니다 | sales_orders |
| 판매 프로세스 완료 | endEvent | - | - |
| 여신초과 알림 | inAppNotification | 여신 한도 초과 알림 | - |
| 영업관리자 검토 | humanTask | 영업관리자가 여신 초과 건을 검토합니다 | sales_orders |
| 여신초과 처리 완료 | endEvent | - | - |
| 견적 연계 조회 | dataFilter | 견적서 기반 수주인 경우 견적 정보를 자동 연계 | quotations |
| 매출채권 자동생성 | autoTask | 출하 완료 시 매출채권을 자동 생성. 출하 취소 시 역분개 자동 연계 [Transaction: REQUIRES_NEW, Idempotency: {shipment_id}, Compensation: 출하취소→채권역분개, Retry: {maxRetries: 3, backoffMs: 1000}] | accounts_receivable |
| 부가세 자동계산 | formulaCalc | 주문 금액의 부가세를 자동 계산 | - |
| 출하검사 연계 | autoTask | 출하 시 출하검사를 자동 연계 | quality_inspections |
| 거래명세서 PDF 생성 | documentGen | 세금계산서/거래명세서를 PDF로 자동 생성 | - |
| 거래명세서 이메일 발송 | 고객에게 거래명세서를 이메일로 발송 | - | |
| 출하 상태 검증 | autoTask | 매출채권 생성 전 출하 확정 상태 검증. 미확정/취소 상태에서 채권 생성 방지 [Validation: shipment.status === "출하확정", Lock: SELECT_FOR_UPDATE] | shipments |
| 수주취소 보상처리 | compensationEvent | 수주 취소 시 관련 출하지시 및 매출채권을 역처리합니다. | sales_orders |
| 수금일정 자동생성 | autoTask | 수주 확정 시 결제조건 기반 수금일정 자동생성 | payment_schedules |
| PPAP 승인 확인 | dataFilter | 신규 품목 출하 전 PPAP 양산승인 여부 확인 | ppap_submissions |
흐름: sp_start → sp_check_quotation | sp_check_quotation → sp_register_order | sp_register_order → sp_calc_vat | sp_calc_vat → sp_credit_check | sp_credit_check → sp_credit_gw | sp_credit_gw → sp_confirm_order [신용 통과] | sp_confirm_order → sp_create_shipment | sp_create_shipment → sp_confirm_shipment | sp_confirm_shipment → sp_ship_inspection | sp_ship_inspection → sp_start_tracking
production_process
| 노드 | 유형 | 설명 | 연결테이블 |
|---|---|---|---|
| 생산 프로세스 시작 | startEvent | - | production_orders |
| 생산계획 수립 | humanTask | 생산관리자가 생산계획을 수립합니다 | production_orders |
| MRP 전개 | autoTask | BOM 기반 자재소요량을 자동 전개합니다 | bom |
| 작업지시 발행 | humanTask | 생산관리자가 작업지시를 발행합니다 | production_orders |
| 자재 출고 확인 | humanTask | 바코드 스캔으로 자재 출고를 확인합니다 | inventory |
| 실적 보고 | humanTask | 작업자가 생산 실적을 보고합니다 | production_orders |
| 품질검사 연계 | autoTask | 생산 실적 기반 품질검사를 자동 연계합니다 | quality_inspections |
| 검사 결과 | exclusiveGateway | - | - |
| 완성 입고 | autoTask | 완성품을 재고에 자동 입고 처리 [Transaction: REQUIRES_NEW, Lock: SELECT_FOR_UPDATE, Idempotency: {production_order_id}] | inventory |
| 생산 완료 알림 | inAppNotification | 생산 완료 알림 | - |
| 생산 프로세스 완료 | endEvent | - | - |
| 불량 발생 알림 | inAppNotification | 품질검사 불합격 알림 | - |
| 시정조치 | humanTask | 불량 원인 분석 및 시정조치를 수행합니다 | production_orders |
| 불량 처리 완료 | endEvent | - | - |
| 자체생산/외주 분기 | exclusiveGateway | 자체 생산과 외주가공을 분기 판단 | - |
| 외주가공 서브프로세스 | subProcess | 외주가공 프로세스를 서브프로세스로 호출 | - |
| 공정검사 연계 | autoTask | 공정 중 품질검사를 자동 연계 | quality_inspections |
| 실제원가 산출 | formulaCalc | 재료비+노무비+경비로 실제 원가를 산출 | - |
| 공정별 원가 집계 | dataAggregate | 공정 단계별 원가를 집계 | - |
| MRP 전개결과 저장 | autoTask | MRP 전개 결과를 mrp_results 테이블에 자동 저장 | mrp_results |
| 계획오더 자동생성 | autoTask | MRP 전개 결과 기반 계획오더를 자동 생성 | planned_orders |
| 자재투입 기록 | autoTask | 자재 출고 시 production_material_issues에 투입 내역을 자동 기록 | production_material_issues |
| 자재출고 재고차감 | autoTask | 자재투입에 따른 재고 자동 차감 [Transaction: REQUIRES_NEW, Lock: SELECT_FOR_UPDATE, Validation: available_qty >= actual_quantity] | inventory |
| 공정별 실적확인 입력 | humanTask | 작업자가 공정별 실적(수량/시간/불량)을 확인 입력합니다 | production_confirmations |
| 실적→품질검사 연계 | autoTask | 공정별 실적 확인 시 불량 발생건에 대한 품질검사를 자동 연계 | quality_inspections |
| 공정완료 판정 | exclusiveGateway | 전체 공정 완료 여부를 판단 | - |
| 설비 가동능력 확인 | dataFilter | 생산계획 수립 시 설비 가동상태 및 능력 확인 | equipment_master |
| 금형 타수 확인 | autoTask | 생산 시작 전 금형의 현재 타수/보전주기 확인. 보전필요 시 알림 | mold_master |
| 시정조치(CAPA) 생성 | autoTask | 품질검사 불합격 시 시정조치 자동생성 [Transaction: REQUIRES_NEW] | corrective_actions |
| MRP 전개결과 저장 | autoTask | MRP 전개 후 결과를 mrp_results에 자동 저장 | mrp_results |
흐름: mp_start → mp_create_plan | mp_create_plan → mp_check_outsourcing | mp_check_outsourcing → mp_mrp_expand [자체생산] | mp_check_outsourcing → mp_oso_subprocess [외주가공] | mp_oso_subprocess → mp_end | mp_mrp_expand → mp_save_mrp_result | mp_save_mrp_result → mp_create_planned_orders | mp_create_planned_orders → mp_issue_work_order | mp_issue_work_order → mp_material_issue_record | mp_material_issue_record → mp_deduct_inventory
mrp_conversion_process
| 노드 | 유형 | 설명 | 연결테이블 |
|---|---|---|---|
| MRP 전환 프로세스 시작 | startEvent | - | planned_orders |
| MRP 전개 실행 | humanTask | 생산계획자가 MRP 전개를 실행합니다 | mrp_results |
| BOM 전개 | autoTask | BOM 기반 자재소요량을 전개하고 가용재고를 대비 | bom |
| MRP 결과 저장 | autoTask | MRP 전개 결과를 저장 | mrp_results |
| 계획오더 일괄생성 | autoTask | 부족량 기반 계획오더를 일괄 생성 | planned_orders |
| 계획오더 검토 | humanTask | 생산계획자가 생성된 계획오더를 검토하고 확정합니다 | planned_orders |
| 오더유형별 분기 | exclusiveGateway | - | - |
| 생산오더 전환 | autoTask | 계획생산오더를 실제 생산오더로 전환 | production_orders |
| 구매요청 전환 | autoTask | 계획구매오더를 구매요청으로 전환 | purchase_requisitions |
| 외주발주 전환 | autoTask | 계획외주오더를 외주발주로 전환 | outsourcing_orders |
| 전환상태 업데이트 | autoTask | 계획오더의 전환상태를 업데이트 | planned_orders |
| 전환 완료 알림 | inAppNotification | 계획오더 전환 완료 알림 | - |
| MRP 전환 프로세스 완료 | endEvent | - | - |
| MRP 예외 알림 | inAppNotification | MRP 전개 중 예외사항 발생 알림 | - |
| MRP 예외 처리 완료 | endEvent | - | - |
흐름: mc_start → mc_run_mrp | mc_run_mrp → mc_bom_expand | mc_bom_expand → mc_save_result | mc_save_result → mc_generate_planned | mc_generate_planned → mc_review_planned | mc_review_planned → mc_type_gw | mc_type_gw → mc_convert_production [생산오더] | mc_type_gw → mc_convert_purchase [구매요청] | mc_type_gw → mc_convert_outsourcing [외주발주] | mc_convert_production → mc_update_status
closing_process
| 노드 | 유형 | 설명 | 연결테이블 |
|---|---|---|---|
| 결산 프로세스 시작 | startEvent | - | fiscal_periods |
| 월마감 개시 | autoTask | 월마감 절차를 자동 개시합니다 | cost_centers |
| 원가 집계 | autoTask | 원가센터별 실적금액을 자동 집계 | cost_centers |
| 재무 데이터 집계 | autoTask | 매출/매입/재고 재무 데이터를 집계 | cost_centers |
| 원가분석 리포트 생성 | documentGen | 원가분석 리포트를 자동 생성 | - |
| 경영진 승인 | approval | 경영진이 결산 결과를 승인합니다 | - |
| 승인 결과 | exclusiveGateway | - | - |
| 결산 승인 알림 | inAppNotification | 결산 승인 완료 알림 | - |
| 마감 확정 | autoTask | 마감을 확정하고 기간을 마감 처리 | cost_centers |
| 마감 완료 통보 | 관련 부서에 마감 완료를 통보 | - | |
| 결산 프로세스 완료 | endEvent | - | - |
| 결산 재검토 요청 | inAppNotification | 결산 반려 시 재검토 요청 알림 | - |
| 원가 재분석 | humanTask | 반려 사유에 따라 원가를 재분석합니다 | cost_centers |
| 재검토 처리 완료 | endEvent | - | - |
| 매출채권 잔액 집계 | dataAggregate | 매출채권 잔액을 거래처별로 집계 | accounts_receivable |
| 매입채무 잔액 집계 | dataAggregate | 매입채무 잔액을 거래처별로 집계 | accounts_payable |
| 감가상각비 산출 | formulaCalc | 고정자산 감가상각비를 자동 산출 | fixed_assets |
| 예산 대비 실적 분석 | formulaCalc | 예산 대비 실적 차이를 분석 | budgets |
| 시산표 자동생성 | dataAggregate | 전표 기반 시산표를 자동 생성 | journal_entries |
| 재무제표 PDF 생성 | documentGen | 재무제표(BS/IS)를 PDF로 자동 생성 | - |
| 재무제표 이메일 발송 | 경영 진에게 재무제표를 이메일로 발송 | - | |
| 재고평가 실행 | autoTask | 품목별 재고평가 방법(이동평균/FIFO/총평균/개별법)에 따라 기말재고를 평가 | inventory_valuations |
| 제품원가 산출 | formulaCalc | 재료비+노무비+경비+외주비로 제품별 표준/실제 원가를 산출 | product_costing |
| 원가차이 분석 | formulaCalc | 표준원가 대비 실제원가 차이율을 분석 (SAP CO 대응) | product_costing |
| 정합성 규칙 일괄검증 | autoTask | 결산 전 전체 활성 정합성 규칙(합계검증/잔액검증/수량검증/크로스검증)을 일괄 실행. 검증 결과를 reconciliation_results에 자동 기록 [Transaction: REQUIRES_NEW, Batch: active_rules, Retry: {maxRetries: 2, backoffMs: 2000}] | data_reconciliation_rules |
| 정합성 검증 결과 판단 | exclusiveGateway | 정합성 검증 결과에 따라 결산 진행/중단을 판단 | - |
| 정합성 오류 알림 | inAppNotification | 정합성 검증 오류 발생 시 회계담당자에게 알림 | - |
| 정합성 오류 수정 | humanTask | 정합성 검증에서 발견된 오류를 수동으로 확인하고 수정합니다 | reconciliation_results |
| 정합성 오류 처리 완료 | endEvent | - | - |
| 회계기간 마감 | autoTask | 결산 승인 완료 시 해당 회계기간을 마감 처리. posting_allowed=false 설정으로 전표 기표 차단 [Transaction: REQUIRES_NEW, Lock: SELECT_FOR_UPDATE] | fiscal_periods |
| 회계기간 재개방 | humanTask | CFO 승인 하에 마감된 회계기간을 재개방합니다. 사유 필수 입력 | fiscal_periods |
| 재개방 승인 | approval | CFO + CEO 순차 승인으로 회계기간 재개방 승인 | - |
| 재개방 실행 | autoTask | 승인 후 회계기간을 재개방 상태로 변경. adjustment_allowed=true로 조정전표만 허용 | fiscal_periods |
| 회계기간 재개방 알림 | inAppNotification | 회계기간 재개방 완료 알림 | - |
| 재개방 처리 완료 | endEvent | - | - |
| GL 잔액 집계 | autoTask | 월마감 시 총계정잔액을 계정별로 자동 집계 | gl_balances |
| 재무제표 레코드 생성 | autoTask | 월마감 완료 시 재무제표 레코드를 자동 생성 (BS/IS/CF) | financial_statements |
| 원가센터 실적 집계 | autoTask | 월마감 시 원가센터별 실적을 자동 집계 | cost_center_actuals |
흐름: cp_start → cp_month_close | cp_month_close → cp_reconciliation_check | cp_reconciliation_check → cp_reconciliation_gw | cp_reconciliation_gw → cp_ar_aggregate [전체통과] | cp_reconciliation_gw → cp_reconciliation_fail_notify [오류발생] | cp_reconciliation_fail_notify → cp_reconciliation_fix | cp_reconciliation_fix → cp_reconciliation_fail_end | cp_ar_aggregate → cp_ap_aggregate | cp_ap_aggregate → cp_depreciation | cp_depreciation → cp_budget_variance
quotation_process
| 노드 | 유형 | 설명 | 연결테이블 |
|---|---|---|---|
| 견적 프로세스 시작 | startEvent | - | quotations |
| 견적요청 접수 | humanTask | 고객의 견적요청을 접수합니다 | quotations |
| 단가표 조회 | dataFilter | 해당 품목/거래처의 유효 단가표를 조회 | price_lists |
| 견적 금액 산출 | formulaCalc | 단가 × 수량 × (1 - 할인율/100)로 견적 금액 산출 | - |
| 견적서 작성 | humanTask | 영업담당자가 견적서를 작성합니다 | quotations |
| 견적항목별 처리 | forEach | 견적 항목을 개별 처리 | quotation_items |
| 팀장 승인 | approval | 견적서에 대한 팀장 승인 | - |
| 승인 판단 | exclusiveGateway | - | - |
| 견적서 PDF 생성 | documentGen | 견적서를 PDF로 자동 생성 | - |
| 고객 견적서 발송 | 고객에게 견적서를 이메일로 발송 | - | |
| 고객 응답 대기 | timerEvent | 견적 유효기간까지 고객 응답을 대기 | - |
| 고객 응답 판단 | exclusiveGateway | - | - |
| 수주 자동생성 | autoTask | 견적을 기반으로 판매주문을 자동 생성 | sales_orders |
| 항목별 수주 생성 | forEach | 견적 항목을 판매주문 항목으로 변환 | quotation_items |
| 수주전환 알림 | inAppNotification | 견적이 수주로 전환되었음을 알림 | - |
| 견적 프로세스 완료 | endEvent | - | - |
| 견적 만료 알림 | inAppNotification | 견적 유효기간 만료 알림 | - |
| 만료 처리 완료 | endEvent | - | - |
| 견적 반려 알림 | inAppNotification | 견적서가 반려되었음을 알림 | - |
| 견적 수정 | humanTask | 반려된 견적서를 수정합니다 | quotations |
| 견적 반려 종료 | endEvent | - | - |
흐름: qt_start → qt_receive_request | qt_receive_request → qt_check_price_list | qt_check_price_list → qt_calc_amount | qt_calc_amount → qt_create_quotation | qt_create_quotation → qt_items_foreach | qt_items_foreach → qt_team_approval | qt_team_approval → qt_approval_gw | qt_approval_gw → qt_generate_pdf [승인] | qt_generate_pdf → qt_send_email | qt_send_email → qt_wait_response
return_process
| 노드 | 유형 | 설명 | 연결테이블 |
|---|---|---|---|
| 반품 프로세스 시작 | startEvent | - | sales_returns |
| 반품 접수 | humanTask | 고객 반품을 접수합니다 | sales_returns |
| 반품 승인 | approval | 반품에 대한 승인을 진행합니다 | - |
| 승인 판단 | exclusiveGateway | - | - |
| 반품 입고 | humanTask | 바코드 스캔으로 반품 입고를 처리합니다 | sales_returns |
| 항목별 검수 | forEach | 반품 항목을 개별 검수 | sales_return_items |
| 검수 결과 집계 | dataAggregate | 합격/불량 수량을 집계 | - |
| 처리 분기 | exclusiveGateway | - | - |
| 재고 반영 | autoTask | 합격 반품을 재고에 재입고 처리 [Transaction: REQUIRES_NEW, Lock: SELECT_FOR_UPDATE] | inventory |
| 폐기 처리 | humanTask | 불합격 반품을 폐기 처리합니다 | sales_returns |
| 환불금액 계산 | formulaCalc | 반품 수량 × 단가로 환불금액 계산 | - |
| 채권 조정 | autoTask | 매출채권에서 환불금액을 차감 조정. 잔액 = 채권금액 - 수금액 자동 재계산 [Transaction: REQUIRES_NEW, Lock: SELECT_FOR_UPDATE, Validation: balance >= refund_amount] | accounts_receivable |
| 반품 완료 안내 | 고객에게 반품 처리 완료를 안내 | - | |
| 반품 완료 앱알림 | inAppNotification | 반품 완료 앱 알림 | - |
| 반품 프로세스 완료 | endEvent | - | - |
| 반품 거부 안내 | 고객에게 반품 거부를 안내 | - | |
| 반품 거부 종료 | endEvent | - | - |
흐름: rt_start → rt_accept_return | rt_accept_return → rt_approval | rt_approval → rt_approval_gw | rt_approval_gw → rt_receive_return [승인] | rt_receive_return → rt_inspect_items | rt_inspect_items → rt_inspect_aggregate | rt_inspect_aggregate → rt_disposition_gw | rt_disposition_gw → rt_restock [재입고] | rt_disposition_gw → rt_dispose [폐기] | rt_restock → rt_calc_refund
outsourcing_process
| 노드 | 유형 | 설명 | 연결테 이블 |
|---|---|---|---|
| 외주 프로세스 시작 | startEvent | - | outsourcing_orders |
| 외주발주 작성 | humanTask | 외주발주서를 작성합니다 | outsourcing_orders |
| BOM 기반 사급자재 조회 | dataFilter | BOM에서 사급자재 목록을 조회 | bom |
| 외주발주 승인 | approval | 외주발주에 대한 승인 | - |
| 승인 판단 | exclusiveGateway | - | - |
| 외주발주서 PDF 생성 | documentGen | 외주발주서를 PDF로 생성 | - |
| 외주업체 통보 | 외주업체에 발주를 이메일로 통보 | - | |
| 사급출고+모니터링 병렬 | parallelGateway | 사급자재 출고와 납기 모니터링을 병렬 실행 | - |
| 사급자재 출고 | forEach | 사급자재를 항목별로 출고 | outsourcing_supply_items |
| 재고 차감 | autoTask | 사급자재 출고에 따른 재고 차감 [Transaction: REQUIRES_NEW, Lock: SELECT_FOR_UPDATE, Retry: {maxRetries: 3, backoffMs: 1000}] | inventory |
| 납기 D-3 알림 | timerEvent | 납기일 3일 전 자동 알림 | - |
| 병렬 합류 | parallelGateway | 사급출고와 모니터링 완료 후 합류 | - |
| 외주입고 | humanTask | 바코드 스캔으로 외주입고를 처리 | outsourcing_receipts |
| 품질검사 연계 | autoTask | 외주입고 품목에 대한 품질검사를 연계 | quality_inspections |
| 검사 결과 | exclusiveGateway | - | - |
| 재고 입고 | autoTask | 합격 품목을 재고에 입고 [Transaction: REQUIRES_NEW, Lock: SELECT_FOR_UPDATE, Idempotency: {osr_number}] | inventory |
| 외주 완료 알림 | inAppNotification | 외주가공 완료 알림 | - |
| 외주 프로세스 완료 | endEvent | - | - |
| 부적합 보고 | autoTask | 불합격 시 부적합보고서를 자동 생성 | ncr_records |
| 시정요청 이메일 | 외주업체에 시정요청을 발송 | - | |
| 불합격 처리 완료 | endEvent | - | - |
| 외주 반려 알림 | inAppNotification | 외주발주 반려 알림 | - |
| 외주 반려 종료 | endEvent | - | - |
| 사급자재 가용재고 검증 | autoTask | 사급자재 출고 전 가용재고(현재고-예약수량) ≥ 출고요청수량 검증. 부족 시 예외 분기로 출고 차단 [Lock: SELECT_FOR_UPDATE, Validation: available_qty >= issued_qty, ExceptionRoute: os_shortage_notify] | inventory |
| 가용재고 판단 | exclusiveGateway | - | - |
| 사급자재 부족 알림 | inAppNotification | 사급자재 가용재고 부족 알림 | - |
| 자재부족 처리 완료 | endEvent | - | - |
| 정산 필요 판단 | exclusiveGateway | - | - |
| 정산서 작성 | humanTask | 외주입고 합격분에 대한 정산서를 작성합니다 | outsourcing_settlements |
| 정산금액 자동계산 | autoTask | 단가×수량, 세액, 지급예정일을 자동 산출 | outsourcing_settlement_items |
| 정산 승인 | approval | 정산금액에 대한 승인 | - |
| 정산승인 판단 | exclusiveGateway | - | - |
| 정산 확정 | autoTask | 정산 확정 처리 → 제조원가 반영 (Rule 16 cascade 트리거) | outsourcing_settlements |
| 전표 발행 | autoTask | 매입전표 발행 → 매입채무 생성 (Rule 17 cascade 트리거) | outsourcing_settlements |
| 정산 완료 알림 | inAppNotification | 외주정산 완료 알림 | - |
| 정산 프로세스 완료 | endEvent | - | - |
| 사급자재 수불 정산 | autoTask | 외주입고 완료 시 사급자재 수불현황 자동 정산 | supplied_material_balances |
흐름: os_start → os_create_order | os_create_order → os_check_bom | os_check_bom → os_approval | os_approval → os_approval_gw | os_approval_gw → os_generate_pdf [승인] | os_generate_pdf → os_notify_partner | os_notify_partner → os_parallel_start | os_parallel_start → os_supply_issue | os_parallel_start → os_due_timer | os_supply_issue → os_validate_available_qty
accounting_process
| 노드 | 유형 | 설명 | 연결테이블 |
|---|---|---|---|
| 전표 프로세스 시작 | startEvent | - | journal_entries |
| 전표 유형 선택 | exclusiveGateway | 전표 유형에 따라 분기 | - |
| SO/출하 데이터 수집 | dataAggregate | 판매주문 및 출하 데이터를 수집 | sales_orders |
| 매출 분개 자동생성 | dataTransform | 판매주문 데이터를 전표항목으로 변환 | - |
| 매출 부가세 계산 | formulaCalc | 매출 부가세를 자동 계산 | - |
| PO/입고 데이터 수집 | dataAggregate | 구매발주 및 입고 데이터를 수집 | purchase_orders |
| 매입 분개 자동생성 | dataTransform | 구매발주 데이터를 전표항목으로 변환 | - |
| 매입 부가세 계산 | formulaCalc | 매입 부가세를 자동 계산 | - |
| 전표 수동 작성 | humanTask | 회계담당자가 일반전표를 수동 작성 | journal_entries |
| 차대변 검증 | formulaCalc | 차대변 합계 일치 + 계정과목 유효성 + 기간 마감 여부 3중 검증. (1) SUM(차변) === SUM(대변), (2) 모든 계정과목이 유효하고 사용가능 상태, (3) 해당 회계기간이 미마감 상태인지 확인 [Validation: debit_total === credit_total AND all_accounts_valid AND period_open] | - |
| 차대변 일치 판단 | exclusiveGateway | - | - |
| 전표 수정 | humanTask | 차대변 불일치 시 전표를 수정합니다 | journal_entries |
| 전표 승인 | approval | 회계팀장→CFO 순차 승인 | - |
| 기표 처리 | autoTask | 승인된 전표를 기표 처리. 기표 전 차대변 재검증(DB 트리거 수준 2중 검증) [Transaction: REQUIRES_NEW, Idempotency: {entry_number}, Lock: SELECT_FOR_UPDATE, PreCheck: debit_total === credit_total, Retry: {maxRetries: 3, backoffMs: 1000}] | journal_entries |
| 전표 PDF 생성 | documentGen | 전표를 PDF로 생성 | - |
| 기표 완료 알림 | inAppNotification | 전표 기표 완료 알림 | - |
| 전표 프로세스 완료 | endEvent | - | - |
| 회계기간 마감 검증 | autoTask | 전표의 회계기간이 마감되었는지 검증. 마감 기간에는 일반 전표 기표 차단, 재개방 기간에는 조정전표만 허용 [Validation: fiscal_periods.posting_allowed === true OR (period_status === "재개방" AND entry_type === "결산")] | fiscal_periods |
| 기간 마감 판단 | exclusiveGateway | - | - |
| 기간마감 차단 알림 | inAppNotification | 마감된 회계기간에 전표 기표 시도 시 차단 알림 | - |
| 기간마감 차단 완료 | endEvent | - | - |
| 금액별 승인단계 조회 | autoTask | 전표 금액에 따른 승인 매트릭스를 조회하여 필요 승인 단계를 결정 | approval_matrices |
흐름: ac_start → ac_type_gw | ac_type_gw → ac_so_collect [매출전표] | ac_so_collect → ac_so_transform | ac_so_transform → ac_so_vat | ac_so_vat → ac_balance_check | ac_type_gw → ac_po_collect [매입전표] | ac_po_collect → ac_po_transform | ac_po_transform → ac_po_vat | ac_po_vat → ac_balance_check | ac_type_gw → ac_manual_entry [일반전표]
physical_inventory_process
| 노드 | 유형 | 설명 | 연결테이블 |
|---|---|---|---|
| 재고실사 프로세스 시작 | startEvent | - | physical_inventory_counts |
| 실사계획 수립 | humanTask | 실사책임자가 실사 계획(유형/대상창고/예정일)을 수립합니다 | physical_inventory_counts |
| 실사대상 자동생성 | autoTask | 해당 창고의 재고 데이터를 기반으로 실사 대상 품목/장부수량을 자동 생성 | physical_inventory_items |
| 실사 시작 알림 | inAppNotification | 실사 참여자에게 실사 시작을 알림 | - |
| 실사 실행 | humanTask | 현장에서 바코드스캔으로 품목별 실사수량을 입력합니다 | physical_inventory_items |
| 차이 자동계산 | formulaCalc | 장부수량 대비 실사수량 차이/차이율/차이금액을 자동 계산 | physical_inventory_items |
| 차이 분석 | dataAggregate | 차이 발생 품목을 집계하고 허용범위 초과 건을 식별 | physical_inventory_items |
| 차이 판단 | exclusiveGateway | - | - |
| 조정 승인 | approval | 차이 발생 품목에 대한 재고 조정을 승인합니다 | - |
| 승인 결과 | exclusiveGateway | - | - |
| 재고 조정 | autoTask | 승인된 차이 품목에 대해 재고를 실사수량으로 조정 [Transaction: REQUIRES_NEW, Lock: SELECT_FOR_UPDATE] | inventory |
| 재고이동 전표생성 | autoTask | 재고 조정에 따른 조정 전표를 자동 생성 | inventory_transactions |
| 실사보고서 PDF 생성 | documentGen | 재고실사 결과 보고서를 PDF로 자동 생성 | - |
| 실사 완료 알림 | inAppNotification | 재고실사 완료 알림 | - |
| 재고실사 프로세스 완료 | endEvent | - | - |
| 차이없음 알림 | inAppNotification | 실사 결과 차이 없음 알림 | - |
| 재실사 요청 알림 | inAppNotification | 조정 반려 시 재실사 요청 알림 | - |
| 재실사 처리 완료 | endEvent | - | - |