ERPNext v16 - Manufacturing (Versi BMP)

Jantung operasional pabrik parfum. Bila modul lain mencatat "apa yang terjadi" (beli, jual, simpan), modul ini mencatat "bagaimana barang dibuat" - transformasi RM menjadi Bulk lalu menjadi FG. Di sinilah nomor Batch lahir, HPP (COGS) barang jadi terbentuk lewat cost roll-up, dan resep rahasia (BOM) dilindungi dengan field-level permission yang ketat.

Peta dokumen:

Chapter 0 - Struktur & Cross-check

0.2 Kesimpulan struktur

Manufaktur parfum di BMP adalah operasi 2-level yang bersih:

Titik kritis yang membedakan parfum dari manufaktur umum:

  1. Batch lahir di Bulk, bukan di FG - karena kualitas ditentukan saat mixing, bukan saat filling.
  2. Maturing (WIP) adalah fase waktu, bukan fase mesin - 7+ hari diam di Maturing Zone, bukan di mesin.
  3. BOM adalah resep rahasia - operator produksi tidak boleh lihat qty & rate komponen (Chinese Wall).
  4. Cost roll-up dua tahap - RM→Bulk→FG, dengan overhead mixing & filling masuk valuasi.

0.3 Register Delta v16 (Manufacturing)

  1. Batch generation otomatis saat Stock Entry Manufacture submit (dari naming series).
  2. Overhead calculation via BOM Operation - time_in_mins × hour_rate masuk ke additional_costs di Stock Entry, otomatis menambah valuasi Bulk/FG.
  3. Scrap / by-product handling - sisa bulk, drum bekas alkohol bisa dicatat sebagai scrap_item dengan valuasi rendah atau nol.
  4. Production Plan dengan multi-level explosion - dari Sales Order bisa explode sampai ke RM (BOM1 → BOM2).

Chapter A - Masters (BOM & turunannya)

Mesin apa: Resep dan formula - aset intelektual paling berharga di pabrik parfum. BOM (Bill of Materials) adalah dokumen yang menentukan: apa saja komponen, berapa banyak, di tahap mana dikonsumsi, berapa lama prosesnya, dan berapa overhead yang masuk. Di BMP, BOM diperlakukan sebagai dokumen rahasia dengan field-level permission ketat: hanya Owner & R&D yang boleh lihat detail qty & rate; operator produksi hanya melihat kode BOM & instruksi kerja.

Perilaku per doctype:

1. BOM (erpnext/manufacturing/doctype/bom/) - master formula.

Atribut penentu perilaku:

Perilaku kunci:

2. BOM Item - child table komponen.

Field per baris:

Aturan khas BMP:

3. BOM Operation - child table tahap produksi + overhead.

Field per baris:

Perilaku untuk parfum:

Lintas domain:

  1. Ke Stock (Chapter A & B): Item yang jadi BOM harus is_stock_item = Yes (kecuali jasa); Bulk = item dengan is_stock_item = Yes + warehouse type Work In Progress.
  2. Ke Quality (Chapter 0 Quality): BOM1 output (Bulk) wajib melewati Quality Inspection sebelum status Maturing; BOM2 output (FG) wajib QC fisik sebelum masuk FG Store.
  3. Ke Accounting (Chapter A): Cost roll-up BOM memberi valuation_rate ke Stock Entry Manufacture → menulis GL Stock-in-Hand dengan nilai yang jujur (RM cost + overhead).
  4. Ke Production Plan (Chapter C): BOM di-explode recursively; Production Plan untuk FG akan otomatis menghitung kebutuhan Bulk, lalu kebutuhan RM.
  5. Ke Selling (Chapter D Sales): Saat Sales Order dibuat, Production Plan membaca BOM default FG → menghitung lead time (7+ hari maturing + filling time) → memberi delivery date realistis ke customer.

Edge case

  1. BOM edited saat WO aktif - Work Order yang sudah dibuat membawa snapshot BOM versi lama; perubahan BOM hanya berlaku untuk WO baru. Ini mencegah "resep berubah di tengah produksi".
  2. Rate komponen fluktuatif - Fragrance Oil harganya USD-pegged; BOM dibuat dengan rate IDR saat itu. Saat WO dijalankan, admin bisa pilih Valuation Rate (actual moving average) atau Price List Rate (kontrak) - selisih masuk ke Purchase Price Variance di Accounting.
  3. Multi-level BOM recursion - ERPNext support BOM-in-BOM (BOM2 referensi BOM1). Di BMP kita flatten jadi 2 level eksplisit supaya cost roll-up lebih mudah diaudit dan tidak ada infinite loop.
  4. Operator lihat detail BOM - kebocoran formula adalah risiko terbesar pabrik parfum. Chinese Wall (field-level permission) adalah pertahanan teknis, tapi harus dilengkapi SOP: workstation produksi tidak boleh ada akses ke ERP; instruksi kerja dicetak terpisah tanpa qty/rate.
  5. BOM komponen tidak ada di stock - Work Order tidak bisa di-submit (atau submit dengan warning); Production Plan akan flag item yang perlu dibeli dulu.
  6. Output qty ≠ BOM quantity - BOM dibuat untuk 100 liter Bulk; realitas mixing bisa 98 atau 102 liter. Stock Entry Manufacture mengizinkan deviasi; selisih masuk ke Production Variance Account (expense).
  7. Scrap/by-product tidak tercatat - drum bekas alkohol atau sisa bulk yang terbuang tanpa dicatat = valuasi Bulk terlalu tinggi (karena cost-nya tidak dikurangi scrap value). Wajib catat scrap_item walau rate = 0.

Delta v16 (subset register)

Catatan scope BMP

  1. Adopsi penuh: BOM + BOM Item + BOM Operation dengan 2 level (Bulk → FG), Work Order, Production Plan.
  2. Keputusan desain (Chinese Wall): field rate & qty di BOM Item field-level restricted ke role Owner & R&D. Operator Produksi hanya lihat kode BOM + instruksi kerja tercetak. Ini adalah implementasi teknis dari filosofi "formula adalah rahasia dagang".
  3. Tolak / Buang: Job Card (routing kompleks tidak perlu), Downtime Entry (mesin mixing sederhana), Subcontracting Order/Receipt (CPKB melarang maklon), Blanket Order.
  4. Adaptasi: Cost roll-up default = Valuation Rate (moving average RM); opsi Price List Rate untuk produksi dengan kontrak harga tetap.
  5. Integrasi Quality wajib: Bulk output tidak boleh masuk Maturing Zone tanpa Quality Inspection Accepted; FG output tidak boleh masuk FG Store tanpa QC fisik Accepted. Gate ini adalah hard block sistem untuk menjamin CPKB compliance.

Chapter B - Siklus Produksi (Work Order, Manufacture Entry, Maturing)

Mesin apa: lalu lintas transformasi fisik. Bila Chapter A adalah "resep", Chapter B adalah dapurnya: dokumen-dokumen yang memindahkan nilai dari RM → WIP (Bulk) → FG, melahirkan identitas batch, dan menjahit overhead ke valuasi. Polanya memakai mesin universal Stock (Stock Entry) yang dikendalikan oleh perintah produksi (Work Order) - dengan tiga lapis gerbang khas BMP: QC = hard gate, waktu = soft gate, inheritance = validasi identitas.

Siklus 4 tahap (satu batch Bulk)

Perilaku per doctype:

1. Work Order (WO) (erpnext/manufacturing/doctype/work_order/) - perintah produksi per batch.

2. Material Transfer for Manufacture - Stock Entry bertipe transfer terhadap WO: memindah RM dari RM Store → Mixing Area (atau Packaging → Staging Area). Belum konsumsi: nilai tetap stok, hanya pindah lokasi. Ini disiplin fisik: bahan yang ada di area mixing adalah bahan yang benar-benar akan dicampur.

3. Stock Entry - Manufacture (WO-Bulk) - momen kelahiran Bulk.

4. Stock Entry - Manufacture (WO-FG) - momen filling/packaging + inheritance.

5. Stopped Work Order - batch yang gagal total (mis. QC menolak Bulk setelah investigasi): WO di-Stop; bahan terlanjur dikonsumsi mendarat di variance/scrap; batch Bulk berstatus Rejected dan tidak pernah bisa dikonsumsi. Jejak tetap utuh untuk audit.

Lintas domain

  1. Quality (hard gate): Quality Inspection wajib Accepted untuk (a) Bulk sebelum status Maturing, (b) FG sebelum FG Store. Tanpa itu, batch tidak pernah muncul di selector konsumsi.
  2. Quality (deviasi): Non Conformance menerima rekaman otomatis dari soft gate (mixing & maturing) - rumah "controlled deviation" CPKB.
  3. Stock: semua gerakan menulis SLE; warehouse zoning (RM Store / Mixing Area / Maturing Zone / Packaging Store / FG Store / Quarantine) adalah pagar lokasi; bundle menyimpan identitas.
  4. Accounting: perpetual GL menulis perpindahan nilai RM→WIP→FG; additional_costs = jembatan overhead ke valuasi; variance account menampung selisih; COGS FG kelak jujur karena membawa biaya mixing + filling.
  5. Selling: FG yang "layak jual" di mata Sales = status batch Accepted + lokasi FG Store - definisi ini diwariskan ke dokumen Sales.

Edge case

  1. Dua batch Bulk dalam satu run filling = diblokir; bila bisnis kelak benar-benar perlu blending, aturannya harus didesain ulang (label multi-batch), bukan dilonggarkan diam-diam.
  2. Operator memaksa konsumsi batch QC Pending = hard block dengan pesan jelas ("Batch menunggu QC - hubungi QA"), bukan error teknis.
  3. Deviasi tanpa alasan = blokir; soft gate tanpa mandatory reason = governance bolong (pola sama dengan expired override di Stock Chapter C).
  4. Backflush based-on: policy BMP = konsumsi berbasis Material Transferred (disiplin fisik), bukan auto-BOM ⚠️ (backflush_based_on); konsekuensinya bahan yang lupa ditransfer tidak akan terkonsumsi sistem - stok vs aktual bocor; mitigasi: SOP transfer sebelum mixing + Stock Reconciliation berkala.
  5. Cancel Stock Entry Manufacture = jalur rapuh: batch FG harus dilepas, saldo batch Bulk pulih, status batch kembali - validasi cancel wajib server-side (pola kerusakan klasik lapisan identitas, Stock Chapter C).
  6. Timestamp mixing tidak tercatat (lupa tekan Start) = SOP advisory buta; mitigasi: Start wajib sebelum Finish (Finish menolak bila Start kosong).
  7. Rate snapshot vs valuasi aktual: required_items membawa rate snapshot BOM; konsumsi nyata memakai valuation rate berjalan - selisihnya wajar, tapi laporan "standar vs aktual" harus ada (Chapter D) agar drift harga fragrance oil terlihat.

Delta v16 (subset register)

Catatan scope BMP

  1. Adopsi penuh: Work Order + snapshot BOM, Material Transfer for Manufacture, Stock Entry Manufacture (backflush berbasis transfer), additional_costs overhead, scrap handling, Stopped WO.
  2. Keputusan desain BMP (custom first-class): lifecycle status batch (QC Pending → Maturing → Ready/Consumed → Exhausted/Rejected); batch inheritance FG←Bulk dengan validasi single-batch; expiry auto-calc compliance-only; soft gate mixing/maturing dengan Non Conformance otomatis; hard gate hanya QC.
  3. Tolak: Job Card, Downtime Entry (pencatatan waktu cukup timestamp Start/Finish di operasi WO).
  4. Policy settings: backflush_based_on = Material Transferred ⚠️; overproduction allowance Bulk ±2% (susut cair), FG ±1%.

Chapter C - Perencanaan (Production Plan)

Mesin apa: MRP (Material Requirements Planning) - mesin yang menjawab satu pertanyaan operasional terberat: "Untuk memenuhi permintaan bulan depan, apa yang harus saya produksi, apa yang harus saya beli, dan kapan semuanya harus mulai?" Ia membaca permintaan (SO/forecast/reorder), me-ledak-kan BOM dua level (FG → Bulk → RM), mengurangkan stok yang ada (termasuk WIP yang sedang maturing), lalu melahirkan dua keluaran: rencana Work Order dan Material Request pembelian - semuanya bertanggal mundur dari tanggal butuh.

Perilaku per doctype:

1. Production Plan (erpnext/manufacturing/doctype/production_plan/) - dokumen perencanaan submittable.

Input permintaan (tiga sumber, wajib berlabel):

Proses MRP (saat "Get Items for MR" dijalankan):

  1. Explode BOM2: demand FG 1.000 botol → butuh Bulk X liter + botol/cap/stiker/box sesuai BOM.
  2. Explode BOM1: Bulk X liter → butuh alkohol/fragrance oil/aquadest/additives sesuai BOM.
  3. Kurangi setiap level dengan stok tersedia (Bin actual − reserved) + planned receipts (WO terbuka - termasuk batch Bulk yang sedang maturing di Maturing Zone; ia adalah rencana penerimaan yang sah).
  4. Sisa netto = dasar keluaran: item buatan sendiri (Bulk, FG) → child Work Order plan; item beli (RM, packaging) → child Material Request plan dengan required_date mundur mengikuti lead time beli.

Backward scheduling - logika tanggal yang membuat plan jujur: ERPNext menjadwalkan mundur memakai lead_time_days per item. Agar mesin native ini jujur untuk parfum, BMP meng-encode realitas proses ke dalam lead time master:

Contoh mundur dari satu demand:

Tanpa MRP, angka "27-Aug" itu hidup di kepala owner. Dengan Production Plan, ia lahir otomatis setiap kali plan dijalankan.

Keluaran (aksi setelah review):

2. Capacity check khas BMP (soft gate, konsisten filosofi kita): ERPNext tidak punya finite-capacity scheduling ⚠️. Bottleneck nyata pabrikmu = tangki mixing (100L/200L) × jam mixing. BMP menambah validasi lunak di atas plan: total volume Bulk terencana per tanggal vs kapasitas harian terkonfigurasi (mis. 2 tangki × 3 batch/hari ≈ 400-600L ⚠️ konfig). Kelebihan = warning + alasan, bukan blokir - sama seperti ageing 3 hari: pabrik boleh memaksakan lembur/shift tambahan, tapi pemaksaan itu terlihat dan tercatat.

3. Dua mode replenishment per SKU (kebijakan, bukan teknis):

Lintas domain

  1. Selling: plan memberi janji tanggal yang realistis - sales tidak boleh menjanjikan 20-Sep bila plan menunjukkan mixing harus mulai kemarin; lead time awareness mengalir balik ke customer.
  2. Buying: MR bertanggal = purchasing tahu kapan PO harus terbit, bukan hanya berapa; fragrance oil ber-lead-time panjang (indent) terlihat lebih dulu.
  3. Stock: Bin & projected quantity = bahan baku perhitungan; warehouse zoning menentukan source_warehouse per komponen; safety stock & reorder = pemicu make-to-stock.
  4. Quality: buffer QC sudah tertanam di lead time Bulk (1 hari dari 9) - perencanaan mengasumsikan SOP penuh (7 hari maturing); deviasi (ageing 3 hari) hanya mempercepat aliran internal, tidak pernah menjadi dasar janji ke customer. Plan by SOP, deviate only when needed.
  5. Accounting: tidak menulis apa pun - plan murni perencanaan; komitmen finansial baru lahir saat MR→PO (Buying) dan WO→konsumsi (Chapter B).

Edge case

  1. Double-count demand (SO + forecast untuk botol yang sama) = overproduction diam-diam; mitigasi: label sumber per baris + konsolidasi wajib sebelum release.
  2. lead_time_days basi = jadwal bohong. Bila maturing diubah kebijakan (mis. jadi 10 hari untuk formula baru), Bulk.lead_time_days wajib ikut diubah - plan hanya sejujur master data-nya.
  3. Fragrance oil indent/backorder di distributor: lead time beli melonjak di luar lead_time_days; mitigasi: safety stock lebih tinggi untuk oil ber-lead-time panjang + flag "indent" di Item.
  4. Plan basi vs eksekusi: BOM berubah atau stok bergerak antara plan dan release → angka shortage tidak lagi benar; mitigasi: re-run plan sebelum release bila plan berumur > N hari ⚠️ konfig.
  5. Kapasitas dilewati terus-menerus = bottleneck tersembunyi yang "dimaafkan" sistem; mitigasi: laporan frekuensi override kapasitas per bulan - pola yang sama dengan laporan deviasi Non Conformance.
  6. Forecast marketplace volatil (viral/campaign) = akurasi rendah; mitigasi disiplin proses: plan mingguan, horizon 4-6 minggu, safety stock hanya untuk SKU mass market.
  7. WO/MR hasil plan di-cancel parsial = plan kehilangan jejak "mana yang sudah dilepas"; status per baris plan (Pending/Released) wajib dirawat ⚠️.

Delta v16 (subset register)

Catatan scope BMP

  1. Adopsi penuh: Production Plan dengan tiga sumber permintaan berlabel, multi-level explosion (FG→Bulk→RM), netting stok+WIP, keluaran WO plan + MR plan, draft-untuk-what-if.
  2. Keputusan desain BMP: maturing+QC di-encode ke lead_time_days Bulk (=9) dan FG (=1-2) - mesin native ERPNext menjadi jujur tanpa menulis scheduler custom; ini adaptasi master data, bukan kode.
  3. Keputusan desain BMP (custom lunak): capacity check tangki per hari = warning + alasan (soft gate); label sumber demand anti-double-count; laporan frekuensi override kapasitas.
  4. Tunda: finite-capacity scheduling engine & drag-drop scheduler (kebutuhan enterprise; pabrik 2-3 tangki cukup dengan warning + akal sehat owner).
  5. Kebijakan operasional: mass market = make-to-stock (reorder+safety stock); niche = make-to-order/forecast kecil; plan mingguan, horizon 4-6 minggu.

Chapter D - Reports

Mesin apa: proyeksi atas ledger manufaktur - membaca WO, BOM, SLE, dan Quality untuk menjawab empat pertanyaan pemilik pabrik: "berapa yang kita hasilkan vs rencana?", "bisa bikin sekarang tidak?", "WO ini macet di mana?", dan "batch ini datang dari mana, pergi ke mana?" - plus dua lensa khas BMP: standar vs aktual (apakah resep masih jujur?) dan ledger deviasi (apakah SOP kita masih ditaati?).

Perilaku per laporan (di erpnext/manufacturing/report/):

  1. Production Analytics - agregasi WO selesai per item/periode: qty diproduksi, planned vs actual, ketepatan jadwal. Bagi pabrikmu: liter Bulk & botol FG per bulan. Angka waktunya hanya sejujur disiplin timestamp Start/Finish di operasi WO (Chapter B).
  2. BOM Explorer - ledakan BOM sebagai tree interaktif: pilih FG → tampil Bulk + packaging → ledakkan Bulk ke RM. Alat R&D/Owner memverifikasi struktur resep dua level. Role-gated: versi penuh (qty+rate) hanya Owner/R&D; operator melihat struktur dengan kode internal saja - Chinese Wall hidup juga di laporan.
  3. BOM Stock Report - "dengan stok sekarang, BOM ini bisa jadi berapa unit?": minimum antar komponen (qty tersedia ÷ kebutuhan per unit) ⚠️. Cek kelayakan sebelum planning; wajib membaca available qty (bukan reserved, bukan QC-pending) atau memberi keyakinan palsu.
  4. Work Order Stock Report - per WO: dibutuhkan vs ditransfer vs dikonsumsi. Pandangan operasional harian: WO mana yang macet menunggu bahan.
  5. Batch Traceability - jawaban audit CPKB dalam satu layar: masukkan Batch → rantai penuh lot supplier (PR) → RM dikonsumsi → Bulk (Stock Entry Manufacture, timestamp mixing, hasil QC) → run filling (FG mewarisi batch) → DN/SI ke customer. Memperluas Serial and Batch Traceability (Stock Chapter E) dengan lapisan WO/QC - inilah laporan yang dibuka saat BPOM bertanya.
  6. Standard vs Actual Cost (lensa BMP) - BOM cost (snapshot) vs biaya produksi aktual (valuasi + additional_costs + variance). Mengungkap dua sumber drift yang wajib dibedakan: rate variance (harga fragrance oil naik) vs quantity variance (yield turun / susut naik) - pembeda yang sama disiplinnya dengan "selisih kurs vs kenaikan harga" di Purchase.
  7. Deviation Ledger (BMP-native) - agregasi Non Conformance yang lahir dari soft gate: frekuensi deviasi per jenis (mixing lebih cepat, maturing dipotong, override kapasitas), per bulan, per kategori alasan. Pasangan wajib soft gate - tanpa agregasi, deviasi menjadi erosi SOP yang tak terlihat. Prinsipnya sama dengan Budget Variance (Accounting G): laporan yang mengubah "polisi" menjadi "alat belajar".

Lintas domain: membaca WO/BOM (Chapter A-B), Bin & SLE (Stock), Quality Inspection & Non Conformance (Quality), valuasi (Stock D / Accounting); BOM Explorer & Traceability dibatasi role; Deviation Ledger & override kapasitas menembus ke My Attention bila melewati ambang (pola yang sama dengan integrasi Stock Ageing/Shortage).

Edge case:

  1. Analytics hanya sejujur timestamp - operator lupa Start/Finish = durasi kosong; laporan menampilkan kosong apa adanya, tidak mengarang.
  2. BOM Stock Report memberi keyakinan palsu bila stok terlihat cukup tapi sudah direservasi WO lain atau berstatus QC Pending - laporan harus membaca available, bukan actual.
  3. Traceability berbohong bila inheritance dilanggar - validasi satu-batch-per-run (Chapter B) adalah pencegahan termurah; laporan hanya menampilkan apa yang sistem izinkan terjadi.
  4. Drift aktual disalahbaca sebagai "harga naik" padahal yield turun - maka laporan #6 memisah rate vs quantity variance, bukan satu angka gabungan.
  5. Deviation Ledger tanpa tindak lanjut = normalisasi deviasi; aturan praktis: alasan deviasi yang sama berulang N kali → SOP-nya yang direview, bukan deviasinya yang dimaklumi.

Delta v16 (subset register): traceability report diresmikan sebagai laporan bawaan (pola sama dengan Stock); optimasi performa report via snapshot - detail manufacturing-specific ⚠️.

Catatan scope BMP:

  1. Adopsi penuh: Production Analytics, BOM Explorer (role-gated), BOM Stock, WO Stock, Batch Traceability.
  2. Keputusan desain BMP: Standard vs Actual dengan pemisahan rate/quantity variance; Deviation Ledger sebagai agregasi Non Conformance - soft gate tanpa agregasi = kebijakan yang tidak bisa dievaluasi.
  3. Adaptasi UI: Deviation Ledger & override kapasitas muncul di My Attention saat melewati ambang - konsistensi pola landing page.

Chapter E - Manufacturing Settings

Mesin apa: ruang policy modul - single doctype (manufacturing_settings) yang tidak memproduksi apa pun, tapi menentukan boleh-tidaknya dan bagaimana seluruh aktivitas Chapter A-D terjadi. Pola yang sama dengan Accounts Settings dan Stock Settings - wujud modul Administration untuk domain manufaktur.

Perilaku per kelompok policy:

  1. Konsumsi & backflush: backflush_based_on = Material Transferred for Manufacture (keputusan BMP - disiplin fisik; auto-BOM ditolak). Konsekuensi yang harus dirawat: SOP "transfer dulu sebelum mixing" + Stock Reconciliation berkala. Mengganti policy ini di tengah riwayat = percampuran semantik konsumsi - keputusan satu arah, pola yang sama dengan perpetual vs periodic.
  2. Warehouse default: WIP default = Maturing Zone, FG default mengikuti zoning (Chapter B) - menyambungkan policy ke pagar lokasi tanpa user memilih manual ⚠️.
  3. Allowance produksi: overproduction Bulk ±2% (cairan menyusut/menguap - angka 0 akan memblokir realitas lapangan) dan FG ±1% ⚠️. Allowance adalah pagar, bukan izin: terlalu longgar = kebocoran tak terlihat.
  4. Kelahiran & warisan batch: auto-create batch via naming series saat Manufacture submit (item has_batch_no); batch inheritance FG ← Bulk default ON untuk item kategori parfum - satu-satunya pengecualian terhadap "batch baru per produksi", dengan validasi satu-batch-per-run sebagai penjaganya.
  5. SOP waktu (keputusan BMP, custom):
  6. Kapasitas (keputusan BMP, custom): konfigurasi kapasitas tangki per hari (bahan baku soft check Production Plan, Chapter C). Mengubah konfigurasi = peristiwa governance; angka terlalu rendah yang dibiarkan = warn fatigue (pola Budget G).
  7. Costing: sumber rate BOM default = Valuation Rate (moving average RM); update BOM cost automatically = OFF - snapshot disiplin; bila harga berubah signifikan, Owner menjalankan "recalculate BOM cost" secara eksplisit + audit, bukan pergeseran senyap.

Lintas domain: policy di sini menggerbangi Chapter B-C; warehouse default membaca zoning Stock; deviasi waktu mencatat ke Non Conformance (Quality); threshold deviasi menembus ke My Attention; snapshot costing memberi angka ke laporan Standard vs Actual (Chapter D).

Edge case:

  1. standard_maturing_days diubah saat ada batch sedang maturing → snapshot melindungi WO berjalan; hanya WO baru mengikuti standar baru - by design, bukan bug.
  2. backflush_based_on diganti setelah ada riwayat = semantik konsumsi bercampur; perlakukan sebagai keputusan satu arah dengan dokumentasi.
  3. BOM cost auto-update bila (keliru) dinyalakan = COGS historis bergeser senyap - alasan BMP menguncinya OFF.
  4. Settings terlihat oleh operator = standar resep bocor; akses settings ikut dibatasi Owner/R&D (Chinese Wall berlaku sampai ke ruang policy).
  5. Allowance terlalu longgar berbulan-bulan = selisih aktual-standar menumpuk tanpa alarm; Deviation Ledger & Standard vs Actual adalah jaringnya.

Delta v16 (subset register): doctype settings relatif stabil v14→v16; perbaikan validasi & permission minor ⚠️ - tidak ada perubahan mesin inti.

Catatan scope BMP:

  1. Adopsi: pola single doctype policy; warehouse default; allowance.
  2. Keputusan desain BMP: backflush = material transferred; overproduction Bulk 2% / FG 1%; standard_maturing_days + override BOM + audit + snapshot; soft capacity check; BOM cost snapshot (auto-update OFF); batch inheritance default ON untuk parfum.
  3. Tolak: finite-capacity scheduling engine; seluruh keluarga job card settings.