🧱

البيانات الأساسية: BOM والمسارات ومراكز العمل والإسطمبات (Master Data)

طبقة الأساس في وحدة التصنيع. تعرّف «ما هو المنتج وكيف يُصنع»: قائمة المكونات (BOM)، ومسار التصنيع (Routing)، وموارد الإنتاج (Work Center وTool/Mold). تُنشأ مرة واحدة وتُعدَّل فقط عبر أوامر تغيير هندسي محكومة (ECO). القاعدة الحاكمة: «إن كانت البيانات الأساسية خاطئة، فكل ما يليها خاطئ» — ولهذا تُلتقط نسخة مجمّدة (Frozen Snapshot) منها عند إطلاق أمر الإنتاج.

الغرض والمبدأ الحاكم

تلتزم هذه الطبقة بـ«تفويض العمومية» (Genericity Mandate): لا يُكتب أي سلوك خاص بمصنع واحد كمسار برمجي مستقل، بل يُعبَّر عنه بحقل/قيمة تعداد (config) ينحاز افتراضيًا للسلوك الشائع ثم يتفرّع منه. مصنع الميلامين مذكور كحالة اختبار إجهاد فقط — وليس قالبًا يُبرمَج عليه.

4كيانات أساسية (BOM، Routing، Work Center، Tool)
10+نقاط تهيئة (enums/flags) للعمومية
3آلات حالات (BOM، Routing، Tool)
9اعتماديات متوقعة من الـ ERP المضيف

الكيان: قائمة المكوّنات (BOM — Bill of Materials)

هوية تصنيع المنتج: ما المكوّنات وكمياتها لإنتاج وحدة واحدة. يجب أن يدعم التداخل متعدد المستويات. يتكوّن من رأس (BOM_Header) وأسطر (BOM_Line).

رأس القائمة (BOM_Header)

الحقلالوصف / القاعدة
bom_idالمفتاح الأساسي
parent_item_idمفتاح خارجي ← الصنف (المنتج الأب)
bom_typeتعداد { Production, Engineering, Phantom }
versionتُحفظ عدة إصدارات للتاريخ
base_quantityعادة 1 — الوحدة التي تُعرَّف القائمة لكل واحدة منها
uomوحدة قياس الأب
statusتعداد { Draft, Active, Inactive, Obsolete }
effective_from / effective_toنافذة الصلاحية
created_by / approved_byتدقيق الإنشاء والاعتماد

سطر القائمة (BOM_Line)

الحقلالوصف / القاعدة
bom_idمفتاح خارجي ← رأس القائمة
line_noترتيب السطر
component_idمفتاح خارجي ← الصنف (المكوّن)
quantityلكل base_quantity واحدة من الأب
uomوحدة قياس السطر
scrap_percentageالهدر المتوقع؛ يضرب الـMRP الكمية في (1 + scrap%)
issue_typeتعداد { Manual, Backflush, AutoIssue }
issue_levelتعداد { PerOrder, PerShift, PerOperation }
operation_seqأي عملية مسار تستهلك السطر — الرابط بين BOM والـRouting
substitute_itemsبدائل عند عدم توفّر الأساسي

الكيان: المسار (Routing)

مسار التصنيع: تسلسل العمليات ومن ينفّذ كلًا منها وكم تستغرق — يتيح الجدولة وحساب الزمن. يتكوّن من رأس (Routing_Header) وعمليات (Routing_Operation).

رأس المسار (Routing_Header)

الحقلالوصف / القاعدة
routing_idالمفتاح الأساسي
item_idمفتاح خارجي ← الصنف
routing_typeتعداد { Production, Repair, Inspection }
versionمُؤصَّل بالإصدار
lot_size_from / lot_size_toقد يكون للمنتج مسارات مختلفة حسب حجم الدفعة
statusتعداد { Draft, Active, Inactive }
effective_from / effective_toنافذة الصلاحية
total_lead_timeمحسوب آليًا

عملية المسار (Routing_Operation)

الحقلالوصف / القاعدة
operation_noتسلسل 10، 20، 30 — مضاعفات 10 للسماح بالإدراج (15، 25) دون إعادة ترقيم
descriptionوصف العملية
work_center_idمفتاح خارجي ← مركز العمل
tool_idمفتاح خارجي ← الأداة (قابل لـ null) — الإسطمبة/القالب المطلوب
setup_timeزمن إعداد ثابت مستقل عن حجم الدفعة
run_time_per_unitزمن التشغيل لكل وحدة
cavity_countوحدات لكل دورة — الافتراضي 1؛ أكبر من 1 لتعدد التجاويف
cycle_timeزمن الدورة/الكبسة الواحدة — يُستخدم مع cavity_count
queue_timeانتظار قبل البدء — يُضاف لزمن التوريد لا للتكلفة
move_timeنقل للعملية التالية — زمن توريد لا تكلفة
inspection_requiredمنطقي (هل تتطلب فحصًا)
critical_operationمنطقي — لا يمكن تخطّيها
required_skill_codeالمهارة المطلوبة

الكيان: مركز العمل (Work Center)

حيث يحدث العمل. هو الواجهة بين الإنتاج والمحاسبة — كل التكاليف تتدفّق من خلاله.

الحقلالوصف / القاعدة
wc_idالمفتاح الأساسي
descriptionوصف
categoryتعداد { Machine, Labor, SetupGroup }
plant_locationالموقع داخل المصنع
cost_center_idمفتاح خارجي ← مركز التكلفة
capacity_unitتعداد { Hours, Pieces, Kg }
daily_capacityالطاقة اليومية لوحدة واحدة
capacity_multiplierعدد الآلات/العمال المتطابقين في المركز (تجميع طاقة)
efficiency_percentمعامل الكفاءة
utilization_percentمعامل الاستغلال
calendar_idالورديات والعطلات
setup_cost_rate / labor_cost_rate / machine_cost_rate / overhead_rateمعدلات التكلفة (إعداد/عمالة/آلة/غير مباشر)
labor_calcتعداد { Hourly, PieceRate }
bottleneck_flagمنطقي — اختناق

معادلة الطاقة الفعّالة: effective_capacity = daily_capacity × capacity_multiplier × efficiency% × utilization% — ويستخدم الـCRP الطاقة الفعّالة لا الإجمالية.

الكيان: الأداة / الإسطمبة (Tool / Mold)

في صناعات القولبة الإسطمبة هي قيد الطاقة لا الآلة. مُعمَّمة كـResource من نوع Tool. مصنع بلا قوالب ببساطة لا يملك موارد أدوات — فينهار التجريد بسلاسة.

الحقلالوصف / القاعدة
tool_idالمفتاح الأساسي
descriptionوصف
product_idالمنتج الذي تصنعه — أو عدة منتجات
cavity_countقطع لكل دورة
setup_timeالتركيب/الفك — غالبًا كبير
statusتعداد { Available, Mounted, Maintenance, Retired }
life_cyclesالدورات المتوقعة قبل الاستبدال (إهلاك بالاستخدام)
cycles_usedعدّاد جارٍ
purchase_costللإهلاك لكل دورة

نقطة عامة: نمط حساب العمالة (labor_calc)

يحدّد حقل labor_calc على مركز العمل (أو الصنف) طريقة حساب تكلفة العمالة المباشرة:

الأثر: تحت PieceRate يتحمّل العامل البطيء تكلفته (يكسب أقل) لا المصنع — فلا يوجد «انحراف كفاءة عمالة» تقليدي، وينتقل الانحراف إلى الآلة/التكلفة غير المباشرة. يجب أن يدعم النظام كلا النمطين.

آلات الحالات (State Machines)

حالة قائمة المكوّنات BOM_Header.status:

  1. Draft
  2. Active
  3. Inactive
  4. Obsolete

حالة المسار Routing_Header.status:

  1. Draft
  2. Active
  3. Inactive

حالة الأداة Tool.status (والمركّبة فقط تتآكل):

  1. Available
  2. Mounted
  3. Maintenance
  4. Retired

نقاط التهيئة والتعدادات (Config Points)

الحقلالموضعالقيم / الافتراضي
bom_typeBOM_HeaderProduction / Engineering / Phantom
scrap_percentageBOM_Lineمضاعِف الـMRP (1+scrap%)
issue_typeBOM_LineManual / Backflush / AutoIssue
issue_levelBOM_LinePerOrder / PerShift / PerOperation
routing_typeRouting_HeaderProduction / Repair / Inspection
cavity_countOperation و Toolعدد التجاويف؛ الافتراضي 1
capacity_multiplierWork Centerتجميع الطاقة؛ الافتراضي 1
labor_calcWork Center / itemHourly / PieceRate
resource_typeResourceMachine / Tool / Labor
علم المستهلك الزهيدBOM line / itemالحذف ← تكلفة غير مباشرة

ماذا يعني هذا لـ Moon ERP