جدول OBTN في SAP Business One (أرقام التشغيلات (البيانات الرئيسية))
OBTN هو جدول SAP Business One الذي يخزن البيانات الرئيسية لأرقام التشغيلات: صف واحد لكل صنف وتشغيلة، مع رقم التشغيلة وتاريخي التصنيع وانتهاء الصلاحية والحالة. لا يخبرك أين يوجد المخزون: الكميات لكل مستودع موجودة في OBTQ، وتُربط عبر OBTQ.MdAbsEntry = OBTN.AbsEntry (أو ItemCode مع SysNumber).
الحقول الرئيسية في OBTN
| الحقل | ما يحتويه |
|---|---|
AbsEntry | المفتاح الداخلي للتشغيلة. يشير إليه OBTQ.MdAbsEntry. |
ItemCode | الصنف الذي تنتمي إليه التشغيلة. يُربط بـ OITM.ItemCode. |
SysNumber | رقم التشغيلة الداخلي لكل صنف. يحدد التشغيلة مع ItemCode. |
DistNumber | رقم التشغيلة الذي يراه المستخدمون ويطبعونه. |
MnfSerial | خاصية التشغيلة 1 (غالبًا تشغيلة الشركة المصنّعة). |
LotNumber | خاصية التشغيلة 2. |
ExpDate | تاريخ انتهاء الصلاحية. |
MnfDate | تاريخ التصنيع. |
InDate | تاريخ استلام التشغيلة. |
Status | 0 = مُفرج عنها، 1 = غير متاحة، 2 = مقفلة. |
OBTQ.WhsCode | المستودع الذي توجد فيه الكمية. |
OBTQ.Quantity | كمية التشغيلة في ذلك المستودع. |
OBTQ.CommitQty | الكمية المحجوزة للمستندات المفتوحة. |
كيف يرتبط OBTN بالجداول الأخرى
OBTN هو جدول البيانات الرئيسية للتشغيلات، و OBTQ يحتوي على صف لكل تشغيلة ومستودع مع Quantity و CommitQty و CountQty. اربطهما عبر OBTQ.MdAbsEntry = OBTN.AbsEntry، أو عبر ItemCode و SysNumber معًا. الأصناف المُدارة بالتشغيلات فقط لها صفوف هنا. وعند استخدام مواقع التخزين، تُضاف طبقة أخرى من الكميات لكل موقع.
عمليات الربط الشائعة
OBTN T0 INNER JOIN OBTQ T1 ON T1.MdAbsEntry = T0.AbsEntry(الكمية لكل مستودع)OBTN T0 INNER JOIN OBTQ T1 ON T1.ItemCode = T0.ItemCode AND T1.SysNumber = T0.SysNumber(الربط نفسه، بالصنف والتشغيلة)OBTN T0 INNER JOIN OITM T2 ON T2.ItemCode = T0.ItemCode(البيانات الرئيسية للصنف)OBTQ T1 INNER JOIN OWHS T3 ON T3.WhsCode = T1.WhsCode(المستودع)
متى تستخدم جدول OBTN
استخدم OBTN مع OBTQ لتقارير انتهاء الصلاحية (الصرف حسب أقرب انتهاء FEFO)، والمخزون حسب التشغيلة والمستودع، وقوائم الاستدعاء عند سحب تشغيلة من المورّد، وللتحقق من عدم بيع التشغيلات المقفلة أو غير المتاحة. تشغّل شركات الأغذية والأدوية والكيماويات هذه التقارير يوميًا.
مثال على استعلام: المخزون حسب التشغيلة والمستودع مع الأيام المتبقية لانتهاء الصلاحية
SQL Server
SELECT T0.ItemCode, T2.ItemName, T0.DistNumber AS BatchNumber, T0.ExpDate, T1.WhsCode, T1.Quantity, DATEDIFF(day, GETDATE(), T0.ExpDate) AS DaysLeft FROM OBTN T0 INNER JOIN OBTQ T1 ON T1.MdAbsEntry = T0.AbsEntry INNER JOIN OITM T2 ON T2.ItemCode = T0.ItemCode WHERE T1.Quantity > 0 ORDER BY T0.ExpDate, T0.ItemCode
SAP HANA (أسماء الأعمدة بين علامتي اقتباس مزدوجتين)
SELECT T0."ItemCode", T2."ItemName", T0."DistNumber" AS "BatchNumber", T0."ExpDate", T1."WhsCode", T1."Quantity", DAYS_BETWEEN(CURRENT_TIMESTAMP, T0."ExpDate") AS "DaysLeft" FROM OBTN T0 INNER JOIN OBTQ T1 ON T1."MdAbsEntry" = T0."AbsEntry" INNER JOIN OITM T2 ON T2."ItemCode" = T0."ItemCode" WHERE T1."Quantity" > 0 ORDER BY T0."ExpDate", T0."ItemCode"
الصق أيًّا من النسختين في الأدوات ← الاستعلامات ← مولّد الاستعلامات (Tools → Queries → Query Generator). تحتاج اللهجة الأخرى لاستعلامك الخاص؟ استخدم محوّل SQL إلى HANA.
خطأ شائع: جدول OBTN وحده يعرض تشغيلات استُهلكت بالكامل
تبقى كل تشغيلة استُلمت يومًا ما في OBTN، بما فيها التشغيلات التي بيعت أو استُهلكت منذ زمن، لذلك يسرد تقرير على OBTN وحده كل هذه التشغيلات. اربط OBTQ وصفِّ على Quantity > 0 لرؤية المخزون الحقيقي، وجمّع حسب المستودع، لأن التشغيلة نفسها قد تتوزع على عدة مستودعات. والربط على ItemCode فقط، دون SysNumber أو MdAbsEntry، يضاعف الصفوف. انظر استعلام التشغيلات التي تنتهي صلاحيتها قريبًا.
استعلامات جاهزة تستخدم OBTN
- التشغيلات التي تنتهي صلاحيتها خلال 60 يومًا: أرقام التشغيلات التي لها مخزون وتنتهي صلاحيتها خلال 60 يومًا، لكل مستودع.
- المخزون حسب المستودع: الكمية المتوفرة والمحجوزة والمطلوبة والمتاحة لكل صنف ومستودع.
جداول ذات صلة
OITM (الأصناف (البيانات الرئيسية للصنف)) · OITW (مخزون الصنف حسب المستودع) · ابحث في كل جداول SAP Business One
المصادر: توثيق SAP Business One و SDK (مرجع جداول قاعدة البيانات في DI API)، بوابة SAP Help.
جاهز للبدء؟
أخبرنا بما تحتاجه. ستحصل على إجابة تقنية واضحة ونطاق عمل محدد وسعر ثابت، عادةً خلال 24 ساعة.
