📄 Unduh PDF
📄 Unduh PDF
IDEN
Product Lifecycle Management on XERPIUM 18

XERPIUMPLM

Engineering Change Orders, BOM Versioning, Approval Workflow — Built for Manufacturers

3 Modul Terintegrasi
7 Model PLM
4 ECO Stages
6 Dashboard KPI

Product Lifecycle Management Enterprise-Grade

XERPIUM PLM adalah ekosistem modul manajemen siklus produk yang dibangun di atas XERPIUM 18 — mencakup Engineering Change Orders (ECO), BOM Revision Control, Approval Workflow, Document Management, dan KPI Dashboard.

⚙
ECO
Engineering Change Order
☰
BOM
Version Control
✅
APR
Approval Workflow
📄
DOC
Document Management
📊
BI
KPI Dashboard
🏭
MRP
Manufacturing Sync
🔗
DYN
Dynamic Stage Engine
📦
MULTI
Company / Branch

ECO — Inti Product Lifecycle Management

xerpium.plm.eco adalah model utama yang mengelola seluruh siklus perubahan engineering — dari draft, review, approval, hingga apply.

ECO Stage Pipeline

Stage 1
Draft
state: confirmed
→
Stage 2
In Review
state: progress
→
Stage 3
Approved
state: progress
→
Stage 4
Applied
state: done
⚙

ECO Core Features

  • Auto-Sequence — Reference ECO/##### di-generate otomatis via ir.sequence
  • Description & Priority — Normal / High priority dengan tracking
  • Change Type — Apply on Bill of Materials atau Product Only
  • Effectivity — As soon as possible atau At Date (effective date)
  • Tags & Color — Kategorisasi ECO dengan colored tags
  • Kanban State — Normal / Approved / Blocked untuk visual tracking
☰

ECO Type & Mail Alias

  • ECO Types — Kategori perubahan (e.g. "BOM Change", "Product Update")
  • Stage Mapping — Setiap type bisa memiliki set stages sendiri
  • Mail Alias — Email ke alias otomatis create ECO dengan type tersebut
  • Smart Counters — nb_ecos, nb_approvals, nb_approvals_my, nb_validation
  • Company-Scoped — Multi-company support per ECO type
🔄

BOM Revision & Apply

  • Start Revision — Copy BOM ke working copy, version +1, active=False
  • Previous BOM Link — Chain previous_bom_id untuk audit trail
  • Apply Changes — Activate new BOM, deactivate old, sync operation documents
  • Version Toggle — will_update_version flag — apply tanpa bump version
  • Product Versioning — Auto-increment product.template.version pada apply
⚡

Change Impact Analysis

  • Component Changes — Auto-diff add/remove/update dengan quantity & UoM delta
  • By-Product Changes — Tracking perubahan by-product pada BOM
  • Operation Changes — Routing/workcenter changes dengan time cycle delta
  • Color-Coded — Green=add, Red=remove, Blue=update di form view
  • Rebase Tracking — previous_change_ids & bom_rebase_ids untuk conflict
🏭

Manufacturing Integration

  • Create ECO from MO — One-click dari Manufacturing Order, auto-fill BOM & product
  • MO ↔ ECO Link — production_id pada ECO, eco_ids pada MO
  • BOM ↔ ECO Link — eco_ids & eco_count pada mrp.bom
  • Product ↔ ECO Link — eco_ids & action_view_ecos() pada product.template
  • Operation Documents — Sync dokumen ke new BOM operations saat apply
⚠

Rebase & Conflict Handling

  • Rebase State — state='rebase' ketika upstream BOM berubah selama ECO in progress
  • Conflict State — state='conflict' untuk manual resolution
  • Intermediate BOM — current_bom_id untuk tracking perubahan mid-ECO
  • Rebase Diff — bom_rebase_ids & previous_change_ids auto-compute
  • Audit Trail — Full changelog via mail.thread chatter

Role-Based Approval Engine

Setiap stage ECO dapat memiliki approval templates dengan tipe mandatory, optional, atau comment-only. Stage advance diblokir sampai semua mandatory approvals terpenuhi.

Default Approval Templates — In Review Stage

👨‍💼
Engineering Manager
MANDATORY
Sequence: 10
✅
Quality Assurance
MANDATORY
Sequence: 20
📋
Production Planner
OPTIONAL
Sequence: 30

Approval Template

FieldDeskripsi
nameRole / nama approval (e.g. "Engineering Manager")
sequenceUrutan approval dalam stage
approval_typemandatory / optional / comment
user_idsUsers yang dapat approve (restricted to PLM User group)
stage_idStage dimana template ini berlaku

Approval Record

FieldDeskripsi
eco_idECO yang direquest approval
approval_template_idTemplate reference
statusnone / comment / approved / rejected
user_idSiapa yang approved/rejected
approval_dateTimestamp approval
is_closedApproval ditutup saat stage change
✅

Approval Mechanism

  • Auto-Generate — _create_approvals() membuat approval records + mail activities
  • Stage Gating — Stage advance diblokir jika mandatory approvals belum complete
  • User Restriction — approve/reject hanya untuk users di template.user_ids
  • Stage Transition — Moving stage menutup processed approvals, menghapus pending
  • Mail Activities — Auto-create todo activities untuk approvers
⚠

Approval Types

  • Mandatory — Harus approve sebelum stage bisa di-advance. is_approved = (status == 'approved')
  • Optional — Boleh approve tapi tidak blocking. is_approved selalu True
  • Comment — Hanya komentar, tidak men-pengaruhi approval status
  • Constraint — User tidak boleh assign lebih dari sekali per stage

Approval & Stage Gating Flow

Create ECO
→
Auto-Generate Approvals
→
Mail Activities Sent
→
Approve / Reject
Stage Advance Blocked?
→
All Mandatory Approved
→
Stage Advanced
→
Apply Changes

Dynamic Stage Workflow

Framework stage configurable untuk ECO — dengan Python hooks, server actions, RBAC groups, dan approval template integration.

Workflow Pipeline

Stage Enter
→
Python Hook
→
Server Action
→
RBAC Check
→
State Sync

ECO Stages Configuration

StageStateConfirmBackApply
Draftconfirmed✓✗✗
In Reviewprogress✓✓✗
Approvedprogress✗✓✓
Applieddone✗✗✗

Dynamic Stage Features

  • Configurable per Model — Stage independen untuk xerpium.plm.eco
  • Python Hooks — enter_method dijalankan saat record masuk stage
  • Server Actions — ir.actions.server otomatis pada stage enter
  • RBAC Groups — group_ids membatasi siapa bisa move ke stage
  • Native State Sync — Auto-sync stage ↔ state field (confirmed/progress/done)
  • Back Navigation — allow_back untuk stage mundur (configurable)
  • Approval Templates — approval_template_ids pada stage (via xerpium_dynamic_stage_plm)
  • Default Stage — is_default auto-assign saat record baru

Module: xerpium_dynamic_stage_plm

Modul integrasi yang menambahkan approval_template_ids ke xerpium.dynamic.stage dan meng-sync ECO stage setelah action_new_revision() dan action_apply().

# xerpium_dynamic_stage_plm/models/xerpium_dynamic_stage.py class XerpiumDynamicStage(models.Model): _inherit = "xerpium.dynamic.stage" approval_template_ids = fields.One2many( "xerpium.plm.eco.approval.template", "stage_id", string="Approval Templates", ) # xerpium_dynamic_stage_plm/models/xerpium_plm_eco.py class XerpiumPlmEco(models.Model): _inherit = "xerpium.plm.eco" def action_new_revision(self): result = super().action_new_revision() self._x_sync_stage_from_state(force=True) return result

PLM Document System

xerpium.plm.document — sistem dokumen polimorfik yang dapat menempel pada ECO, BOM, Product, atau routing operation.

📎

File (PDF, Images)

  • Upload via ir.attachment
  • Mimetype auto-detect
  • Copy pada BOM revision
  • Cover image untuk ECO
🔗

External Link

  • Google Slides, external URL
  • widget="url" di form
  • action_open_link()
  • No file upload needed
📝

Text Note

  • Plain text content
  • Inline editing di form
  • Quick notes / instructions
  • No attachment required

Document Attachment Points

TargetFieldKeterangan
ECOres_model + res_idDokumen pendukung perubahan
BOMbom_idDokumen teknik BOM
Productproduct_tmpl_idSpec sheet, datasheet
Operationbom_operation_idSOP per routing operation
Both BOM & Productattached_on_mrpDokumen shared

Document Features

  • Polymorphic — res_model + res_id, attach ke model apapun
  • Kanban View — Card render berbeda per doc_type (file/link/text)
  • Operation Documents — bom_operation_id untuk SOP per operation
  • Sync on Apply — _sync_operation_documents() copy dokumen ke new BOM
  • Cover Image — displayed_image_id untuk ECO cover
  • Copy with Attachment — copy() duplicate ir.attachment untuk file-type
  • Multi-Company — company_id isolation

BOM & Product Versioning

Sistem versioning terintegrasi untuk BOM dan Product — setiap ECO apply dapat menaikkan versi secara otomatis.

BOM Revision Flow

Step 1
Start Revision
action_new_revision() — copy BOM ke working copy:
new_bom = bom.copy({
  version: bom.version + 1,
  active: False,
  previous_bom_id: bom.id
})
🔄
Step 2
Edit Working Copy
Edit new_bom (inactive). Auto-compute change diff:
ADD — komponen baru
REMOVE — komponen dihapus
UPDATE — qty / UoM berubah
✎
Step 3
Apply Changes
action_apply() — activate new BOM, deactivate old:
new_bom.active = True
old_bom.active = False
product.version += 1 # if will_update_version
_sync_operation_documents(new_bom)
✅

BOM Version Fields

FieldTipeDeskripsi
versionIntegerVersion number, auto-increment pada revision
previous_bom_idMany2oneLink ke BOM versi sebelumnya
is_revisionBooleanTrue jika BOM adalah working copy dari ECO
eco_idsOne2manyECO yang me-reference BOM ini
document_idsOne2manyDokumen teknik terkait

Product Version Fields

FieldTipeDeskripsi
versionIntegerProduct version, auto-increment pada ECO apply (change_type='product')
eco_idsOne2manyECO yang me-reference product ini
eco_countIntegerJumlah ECO terkait (computed)

Change Tracking — BOM Diff Computation

ECO otomatis mengkomputasi perbedaan antara BOM lama dan BOM baru menggunakan _get_difference_bom_lines():

➕
ADD
Komponen baru ditambahkan ke BOM
➖
REMOVE
Komponen dihapus dari BOM
✎
UPDATE
Qty atau UoM berubah

PLM KPI Dashboard

xerpium_dashboard_plm — Dashboard KPI dengan 6 widget, dual data source (ORM + SQL), auto-refresh setiap 5 menit.

📊
6
Dashboard Items
⚙
2
Data Sources
📊
4
KPI Tiles
📊
2
Charts

Dashboard Items

WidgetTipeWarnaSource
Total ECOsKPI TileBlueORM
Pending ApprovalsKPI TileOrangeSQL
Active BOMsKPI TileGreenSQL
Versioned ProductsKPI TilePurpleSQL
ECOs by StagePie ChartBlueSQL
ECO Trend (12 months)Line ChartGreenSQL

Dashboard Features

  • Auto-Refresh — 300 detik (5 menit) refresh interval
  • Auto-Apply Filters — Filter otomatis saat dashboard dibuka
  • Dual Source — ORM source (ECOs, BOMs, Products) + SQL source (aggregates)
  • Green Theme — Tema warna hijau konsisten dengan PLM branding
  • Global Dashboard — visible ke semua PLM users
  • Built on Dashboard Studio — vit_dashboard_studio infrastructure

SQL Sources

ECOs by Stage
SELECT stage_id, COUNT(*)
FROM xerpium_plm_eco
WHERE active = true
GROUP BY stage_id
ECO Trend (12 months)
SELECT DATE_TRUNC('month', create_date),
  COUNT(*)
FROM xerpium_plm_eco
WHERE create_date >= NOW() - INTERVAL '12 months'
GROUP BY 1 ORDER BY 1

Integrasi Cross-Module

PLM terintegrasi penuh dengan ekosistem manufaktur XERPIUM.

🏭

PLM ↔ Manufacturing (MRP)

  • Create ECO from MO — One-click dari Manufacturing Order
  • MO ↔ ECO — production_id link, eco_ids pada MO
  • BOM Version Control — ECO apply activate new BOM version
  • Operation Sync — Dokumen SOP sync ke new BOM operations
  • Work Center Documents — mrp.routing.workcenter.document_ids
📦

PLM ↔ Product

  • Product Version — product.template.version auto-increment
  • ECO History — eco_ids & action_view_ecos() pada product form
  • ECO Notebook — Tab ECOs di product form
  • Document Attach — Spec sheet, datasheet per product
📊

PLM ↔ Dashboard Studio

  • KPI Dashboard — vit_dashboard_studio hosting
  • ORM + SQL Sources — Dual data source
  • Auto-Refresh — 5 minute interval
  • Chart Types — Tile, Pie, Line, dll
🔗

PLM ↔ Dynamic Stage

  • Configurable Stages — Data-driven, tidak hard-coded
  • Approval Templates — approval_template_ids pada stage
  • Python Hooks — enter_method per stage
  • RBAC Groups — group_ids per stage
  • State Sync — Auto-sync stage ↔ native state
📧

PLM ↔ Mail Thread

  • Chatter — Full audit trail per ECO
  • Mail Activities — Auto-generate todo untuk approvers
  • Mail Alias — Email ke alias auto-create ECO
  • CC Tracking — mail.thread.cc inheritance
🏢

PLM ↔ Multi-Company

  • Company Isolation — Record rule per company_id
  • Company on ECO — company_id field dengan default
  • Company on Document — Multi-company document isolation
  • Company on ECO Type — Per-company type configuration

Security & Access Control

Two-tier access control dengan multi-company isolation dan granular per-model permissions.

Security Groups

GroupImpliesHak Akses
PLM UserMRP UserR W C (no delete) pada ECO & Document
PLM ManagerPLM UserFull CRUD semua model PLM

Record Rules

  • Multi-Company ECO — company_id in user's company_ids
  • Multi-Company Document — company_id isolation untuk documents
  • User ECO Rule — R W C, no delete untuk PLM Users
  • Manager ECO Rule — Full CRUD untuk PLM Managers

Access Matrix per Model

ModelPLM UserPLM Manager
xerpium.plm.ecoR W CFull CRUD
xerpium.plm.eco.typeRead onlyFull CRUD
xerpium.plm.eco.approvalR WFull CRUD
xerpium.plm.eco.approval.templateRead onlyFull CRUD
xerpium.plm.eco.bom.changeRead onlyFull CRUD
xerpium.plm.eco.routing.changeRead onlyFull CRUD
xerpium.plm.eco.tagRead onlyFull CRUD
xerpium.plm.documentR W CFull CRUD
vit.dashboardRead onlyFull CRUD

Navigasi PLM

PLM (sequence: 170, icon: xerpium_plm) ├── Dashboard (seq: 5, vit.dashboard) ├── Changes (seq: 10, ECO action) │ └── ECO Kanban / List / Form ├── Master Data (seq: 20) │ ├── Products (product.template) │ ├── Bill of Materials (mrp.bom) │ └── Work Centers (mrp.workcenter) ├── Configuration (seq: 90, group_plm_manager) │ ├── ECO Types (xerpium.plm.eco.type) │ └── ECO Tags (xerpium.plm.eco.tag) └── Panduan Pengguna (seq: 999, HTML user guide)

ECO Kanban

Grouped by stage, drag-and-drop, priority widget, responsible avatar

ECO List

Code, name, product, BOM, responsible, tags, stage, state, effectivity date

ECO Form

Header buttons, stat buttons, notebooks for changes, approvals, documents

Model Arsitektur PLM

7 model PLM + 4 inherited model dengan integrasi penuh ke MRP ecosystem.

PLM Models

ModelDeskripsi
xerpium.plm.ecoEngineering Change Order — model utama
xerpium.plm.eco.typeECO Type dengan mail alias
xerpium.plm.eco.approvalApproval record per ECO
xerpium.plm.eco.approval.templateTemplate approval per stage
xerpium.plm.eco.bom.changeBOM line/byproduct change tracking
xerpium.plm.eco.routing.changeRouting/operation change tracking
xerpium.plm.eco.tagECO tag dengan color
xerpium.plm.documentPolymorphic document (file/link/text)

Inherited Models

ModelField Tambahan
product.templateversion, eco_ids, eco_count
product.producteco_ids, eco_count
mrp.bomversion, previous_bom_id, is_revision, eco_ids, document_ids
mrp.bom.line_get_sync_values() untuk diffing
mrp.bom.byproduct_get_sync_values() untuk diffing
mrp.routing.workcenterdocument_ids, document_count
mrp.productioneco_ids, eco_count, action_create_eco()
xerpium.dynamic.stageapproval_template_ids (via _plm module)

Module Dependencies

xerpium_plm
Application — Core PLM
xerpium_dynamic_stage_plm
Integration — Stage + Approval
xerpium_dashboard_plm
Reporting — KPI Dashboard

Mengapa XERPIUM PLM?

Aspek Competitor PLM XERPIUM PLM
Lisensi Per-user / add-on fee SaaS / On Premise
ECO Workflow Enterprise only ✓ Included
BOM Version Control Enterprise only ✓ Full versioning
Approval Workflow Limited / Enterprise ✓ Role-based, stage-gated
Dynamic Stage ✗ Hard-coded ✓ Configurable per model
Document Management Separate module ✓ Built-in (file/link/text)
Manufacturing Integration Limited ✓ One-click ECO from MO
Change Impact Analysis Manual ✓ Auto-diff BOM lines
KPI Dashboard ✗ Not available ✓ 6 widgets, auto-refresh
Mail Alias ✗ Not available ✓ Email-to-ECO
Multi-Company Enterprise only ✓ Included
Rebase & Conflict ✗ Not available ✓ State: rebase / conflict
User Guide External documentation ✓ Built-in HTML guide
Try nowKontak