Factorizer/Cluster ERP WikiCluster ERP English
Ana sayfa / İş modülleri

Açıklama

Malzeme ihtiyaç planlaması

Procurement içindeki MRP çalıştırmasının talep ve arzı toplaması, ürün ağaçlarını patlatması, netlemesi, parti büyüklüğü, istisnalar ve öneri dönüşümü.

Malzeme ihtiyaç planlaması (MRP) src/cluster_erp/modules/procurement/mrp/ içinde yer alır. Bir planlama çalıştırması (MrpRun), her ürün için talebi stok ve açık arzla karşılaştırır, ürün ağaçlarını patlatır ve ürün başına bir öneri ve bir istisna mesajı içeren bir sonuç satırı (MrpRunItem) saklar. Bu sayfa bir çalıştırmanın nasıl işlediğini ve sonuçlarının nasıl kullanıldığını açıklar. Alan listeleri procurement modülü sayfasında ve kaynakta, ürün ağacı patlatması BOM modülü sayfasında yer alır.

Kısaca

  • Bir çalıştırmanın yedi evresi vardır: başlatma, talep, arz, düşük seviye kodlama, netleme, istisnalar ve sonuç derleme (src/cluster_erp/modules/procurement/mrp/engine.py:1-19).
  • Aynı anda yalnızca bir çalıştırma running olabilir; denetimi bir veritabanı danışma kilidi korur (src/cluster_erp/modules/procurement/mrp/services.py:157-176).
  • Diğer modüllerden gelen tüm veriler GetOpenSalesOrderDemand, GetBulkStockLevels ve GetBomExplosion gibi EventBus sorgularıyla gelir (src/cluster_erp/modules/procurement/mrp/engine.py:871, src/cluster_erp/modules/procurement/mrp/engine.py:1325, src/cluster_erp/modules/procurement/mrp/engine.py:1720).
  • Stok ve üretim olayları çalıştırmayı bayat olarak işaretler ve ürünleri bir sonraki net değişim çalıştırması için planlama dosyasına işaretler (src/cluster_erp/modules/procurement/module.py:863-1003).
  • Çalıştırma kalemleri açık aksiyonlarla satın alma taleplerine veya üretim emirlerine dönüşür (src/cluster_erp/modules/procurement/mrp/services.py:331, src/cluster_erp/modules/procurement/mrp/routes.py:359-375).

Nasıl çalışır

Bir çalıştırma POST /mrp/runs (eşzamanlı) veya POST /mrp/runs/background (running durumuyla hemen döner) ve MrpRunCreate parametreleriyle başlar (src/cluster_erp/modules/procurement/mrp/routes.py:105-121, src/cluster_erp/modules/procurement/mrp/schemas.py:28-70). Diyagram evreleri gösterir.

flowchart TD
 P0["_phase0_init: MrpRun durumu running"] --> PM["planning_mode: delete_and_recreate veya normal"]
 PM --> P1["_phase1_demand: satış, üretim, PIR, emniyet stoğu"]
 P1 --> P2["_phase2_supply: stok, açık siparişler, üretim arzı, tedarikçiler"]
 P2 --> P3["_phase3_llc: etkin ürün ağaçlarından düşük seviye kodları"]
 P3 --> P4["_phase4_net_requirements: netleme, parti büyüklüğü, tarihler"]
 P4 --> P5["_phase5_exceptions: aksiyon mesajları"]
 P5 --> P7["_phase7_assemble: MrpRunItem satırları, toplamlar"]
 P7 --> E["MrpRunCompleted ve CriticalMaterialAlert"]
 P7 --> PR["output_type purchase_requisition ise satın alma talepleri"]

Düz anlatımla:

  1. Başlatma. Motor çalıştırmayı running durumuyla oluşturur ve parametrelerin anlık görüntüsünü alır (src/cluster_erp/modules/procurement/mrp/engine.py:769-823). delete_and_recreate ile önceki tamamlanmış çalıştırmanın kalemleri toplu silinir ve tek bir özet değişiklik geçmişi satırı yazılır; normal ile önceki çalıştırmanın ürün ağacı önbelleği önceden yüklenir (src/cluster_erp/modules/procurement/mrp/engine.py:555-562, src/cluster_erp/modules/procurement/mrp/engine.py:697-767).
  2. Talep. Talep açık satış siparişlerinden, açık üretim emri bileşenlerinden, planlı bağımsız ihtiyaçlardan (PIR), emniyet stoğu açıklarından ve yeniden sipariş noktalarından gelir. project kapsamlı bir çalıştırma ürün listesini önce projenin talebinden türetir (src/cluster_erp/modules/procurement/mrp/engine.py:824-977, src/cluster_erp/modules/procurement/mrp/engine.py:1059).
  3. Arz. Stok seviyeleri, açık satın alma siparişleri, üretim arzı, üretim versiyonları, tedarikçiler ve ikameler toplu okunur (src/cluster_erp/modules/procurement/mrp/engine.py:1311-1626).
  4. Düşük seviye kodlama. Üretilen her ürün için etkin ürün ağacı versiyonu alınır ve düşük seviye kodları atamak için ürün ağacı patlatılır; kapsam ürün ağacı çocuklarıyla genişler (src/cluster_erp/modules/procurement/mrp/engine.py:1627-1920).
  5. Netleme. İhtiyaçlar zaman kovası başına; ürün ağaçlarından gelen bağımlı talep, hayalet kalemler, ikame, parti büyüklüğü, fire, teslim süresi kaydırması ve tedarikçi seçimiyle netlenir (src/cluster_erp/modules/procurement/mrp/engine.py:1921-2599). Parti büyüklüğü çalıştırmanın kuralını ya da ürünün ABC sınıfına ait ayarı kullanır (src/cluster_erp/modules/procurement/mrp/engine.py:3037-3093). Teslim süresi tarihleri GetOwnerWorkingDays üzerinden önce tedarikçinin çalışma takvimini, sonra şirket grup takvimini kullanır (src/cluster_erp/modules/procurement/mrp/engine.py:3247-3287).
  6. İstisnalar. Her ürün en fazla bir ana istisna alır: new_order, reschedule_in, reschedule_out, cancel, decrease_qty, increase_qty veya expedite. Sönümleme payları ayarlardan gelir (src/cluster_erp/modules/procurement/mrp/engine.py:3405-3600, src/cluster_erp/modules/procurement/mrp/engine.py:2817).
  7. Derleme. Kalemler parçalar halinde saklanır, çalıştırma toplamları güncellenir, durum completed veya simulation olur ve MrpRunCompleted ile CriticalMaterialAlert yayılır (src/cluster_erp/modules/procurement/mrp/engine.py:3880-4118).

Bir evre başarısız olursa çalıştırma hata mesajı ve süresiyle failed durumunu alır (src/cluster_erp/modules/procurement/mrp/engine.py:594-607). output_type değeri purchase_requisition ise tamamlanan çalıştırma hemen satın alma talepleri oluşturur (src/cluster_erp/modules/procurement/mrp/services.py:188-189).

Neden böyle kurulmuştur

Motorun modül belge dizesi yedi evreli algoritmayı ve netleme yöntemini adlandırır (src/cluster_erp/modules/procurement/mrp/engine.py:1-19). Kod yorumları iki gerekçe verir: önceki çalıştırma kalemlerinin toplu silinmesi, yeniden üretilebilen satırlar için satır başına geçmişten kaçınır (src/cluster_erp/modules/procurement/mrp/engine.py:718-721); net değişim tabanı yalnızca plan taşıyan bir çalıştırmadan alınır (src/cluster_erp/modules/procurement/mrp/engine.py:2835-2842). Başka gerekçe ne kodda ne de projenin yazılı mühendislik kurallarında belirtilmiştir.

Kurallar ve sınırlar

  • run_type değeri regenerative veya net_change; planning_mode değeri normal, re_explode_bom veya delete_and_recreate; scheduling_method değeri backward, forward, lead_time veya basic_date; lot_size_rule değeri default, lot_for_lot, fixed_order, period_order veya eoq; scope değeri all, abc_class, product, product_group, warehouse, project veya mps_items olur (src/cluster_erp/modules/procurement/mrp/schemas.py:28-67).
  • Simülasyon çalıştırması önceki kalemlere dokunmaz (src/cluster_erp/modules/procurement/mrp/engine.py:556).
  • Satın alma talebi yalnızca completed bir çalıştırmadan oluşturulabilir (src/cluster_erp/modules/procurement/mrp/services.py:331-345).
  • Açılış dönemi dışındaki planlı bir siparişi üretim emrine dönüştürmek force ister; dönüşüm CreateProductionOrderFromPlanned sorgusudur (src/cluster_erp/modules/procurement/mrp/routes.py:359-447).
  • POST /mrp/runs/{run_id}/materialize, bir simülasyonu aynı parametrelerle gerçek çalıştırma olarak yeniden koşar (src/cluster_erp/modules/procurement/mrp/routes.py:545-560).
  • Bir çalıştırmayı silmek çalıştırmada ve kalemlerinde deleted_at alanını doldurur; koşan bir çalıştırma silinemez (src/cluster_erp/modules/procurement/mrp/services.py:1217-1246).
  • Çalıştırma kalemleri sabitlenebilir ve sabitlemesi kaldırılabilir; sabitlenen kalemler sonraki çalıştırmalarca yüklenir (src/cluster_erp/modules/procurement/mrp/services.py:1284-1368, src/cluster_erp/modules/procurement/mrp/engine.py:2966).
  • Çalıştırma miktarları ve maliyetleri Numeric olarak saklar; süreler ROUND_HALF_EVEN ile yuvarlanır (src/cluster_erp/modules/procurement/mrp/engine.py:599-602).

Diğer parçalarla etkileşim

Sözleşme Yön Amaç Kaynak
GetOpenSalesOrderDemand, GetOpenProductionDemand sorgu talep src/cluster_erp/modules/procurement/mrp/engine.py:871, src/cluster_erp/modules/procurement/mrp/engine.py:911
GetBulkStockLevels, GetBatchExpirySchedule inventory modülüne sorgu stok src/cluster_erp/modules/procurement/mrp/engine.py:1325
GetBulkOpenPos, GetProductionSupply, GetProductionVersionsBulk sorgu açık arz src/cluster_erp/modules/procurement/mrp/engine.py:1526, src/cluster_erp/modules/procurement/mrp/engine.py:1542, src/cluster_erp/modules/procurement/mrp/engine.py:1421
GetActiveBomVersionForProduct, GetBomExplosion bom modülüne sorgu yapı src/cluster_erp/modules/procurement/mrp/engine.py:1649, src/cluster_erp/modules/procurement/mrp/engine.py:1720
GetBulkProductVendors, GetProductPlanningData products_and_services modülüne sorgu tedarikçiler ve planlama verisi src/cluster_erp/modules/procurement/mrp/engine.py:1561
GetOwnerWorkingDays calendars modülüne sorgu teslim süresi takvimi src/cluster_erp/modules/procurement/mrp/engine.py:3271
MrpRunCompleted, CriticalMaterialAlert yayın sonuçlar src/cluster_erp/modules/procurement/mrp/engine.py:4073, src/cluster_erp/modules/procurement/mrp/engine.py:4106

Çalıştırma çalışma süresi sayfasında anlatılan çalışma süresi kurallarını okur. Web uygulaması sonuçları yedi özel bileşende gösterir; bkz. procurement modülü.

Sınırlar ve açık noktalar

Tanıtılan terimler

Terim Kod tanımlayıcısı Tanım Türkçe terim Kaynak
MRP run MrpRun Planlama algoritmasının parametreleri ve toplamlarıyla bir kez yürütülmesi. MRP çalıştırması src/cluster_erp/modules/procurement/mrp/models.py:26
run item MrpRunItem Bir ürünün bir çalıştırmadaki öneri ve istisnalı planlama sonucu. Çalıştırma kalemi src/cluster_erp/modules/procurement/mrp/models.py:201
planned independent requirement PlannedIndependentRequirement Bir ürün ve dönem için tahmini talep miktarı. Tahmin (PIR) src/cluster_erp/modules/procurement/mrp/models.py:535
low-level code bom_level Bir ürünün göründüğü en derin ürün ağacı seviyesi; netleme sırasını belirler. Düşük seviye kodu src/cluster_erp/modules/procurement/mrp/models.py:235
planning file MrpPlanningFileEntry Bir ürünün değiştiğini ve net değişim çalıştırmasıyla yeniden planlanması gerektiğini gösteren işaret. Planlama dosyası src/cluster_erp/modules/procurement/mrp/models.py:584
exception message exception_type MRP'nin bir ürün için önerdiği aksiyon, örneğin expedite veya new_order. İstisna mesajı src/cluster_erp/modules/procurement/mrp/models.py:349

İlgili sayfalar


92f8051 numaralı commit ile 2026-11-13 tarihinde doğrulandı.

Doğrulanan commit 92f8051 · 2026-11-13