جدول OINM في SAP Business One (يومية المستودع (تدقيق المخزون))
OINM هو يومية المستودع في SAP Business One: صف واحد لكل حركة صنف، مع الكمية المستلمة (InQty) والكمية المصروفة (OutQty) والمستودع والمستند الذي سببها (TransType و CreatedBy). تقرؤه التقارير لسجل حركة الأصناف؛ ويجب عدم الكتابة فيه مباشرة أبدًا.
الحقول الرئيسية في OINM
| الحقل | ما يحتويه |
|---|---|
TransNum | رقم صف اليومية. |
TransType | نوع المستند المصدر، مثل 13 = فاتورة مبيعات، 15 = مذكرة تسليم، 59 = استلام بضاعة، 60 = صرف بضاعة، 67 = تحويل مخزون. |
CreatedBy | مفتاح المستند المصدر (قيمة DocEntry الخاصة به لذلك النوع TransType). |
BASE_REF | المرجع الأساسي للمستند المصدر. |
DocLineNum | رقم السطر في المستند المصدر. |
DocDate | تاريخ ترحيل الحركة. |
ItemCode | الصنف. يُربط بـ OITM.ItemCode. |
InQty | الكمية المستلمة في المستودع. |
OutQty | الكمية المصروفة من المستودع. |
Warehouse | مستودع الحركة. يُربط بـ OWHS.WhsCode. |
كيف يرتبط OINM بالجداول الأخرى
لا ينقسم OINM إلى رأس وأسطر: كل صف حركة واحدة لصنف واحد في مستودع واحد. يشير TransType مع CreatedBy إلى المستند، فقيمة TransType = 13 مع CreatedBy = 25 هي فاتورة المبيعات ذات OINV.DocEntry = 25. ويكتب تحويل المخزون (67) صفًا خارجًا من المستودع المصدر وصفًا داخلًا إلى المستودع الهدف. وفي مرجع جداول قاعدة البيانات العام لـ SDK 10.0 تُوثَّق يومية المستودع باسم OIVL (Whse Journal) بأعمدة TransType و InQty و OutQty نفسها، لذلك تحقق من الجدول الذي يعرضه إصدارك قبل بناء تقرير عليه.
عمليات الربط الشائعة
OINM T0 INNER JOIN OITM T1 ON T0.ItemCode = T1.ItemCode(الصنف)OINM T0 INNER JOIN OWHS T2 ON T0.Warehouse = T2.WhsCode(المستودع)OINM T0 INNER JOIN OINV T3 ON T0.TransType = 13 AND T0.CreatedBy = T3.DocEntry(فاتورة المبيعات المصدر)
متى تستخدم جدول OINM
استخدم OINM لسجل حركة الأصناف، والمخزون في تاريخ سابق كمجموع InQty - OutQty حتى ذلك التاريخ، ومعرفة المستند الذي حرّك صنفًا. أما للمخزون الحالي فـ OITW أبسط وأسرع.
مثال على استعلام: حركة الأصناف لكل مستودع خلال شهر
SQL Server
SELECT T0.ItemCode, T0.Warehouse, SUM(T0.InQty) AS QtyIn, SUM(T0.OutQty) AS QtyOut, SUM(T0.InQty - T0.OutQty) AS NetMovement FROM OINM T0 WHERE T0.DocDate >= '20260101' AND T0.DocDate < '20260201' GROUP BY T0.ItemCode, T0.Warehouse ORDER BY T0.ItemCode, T0.Warehouse
SAP HANA (أسماء الأعمدة بين علامتي اقتباس مزدوجتين)
SELECT T0."ItemCode", T0."Warehouse", SUM(T0."InQty") AS "QtyIn", SUM(T0."OutQty") AS "QtyOut", SUM(T0."InQty" - T0."OutQty") AS "NetMovement" FROM OINM T0 WHERE T0."DocDate" >= '20260101' AND T0."DocDate" < '20260201' GROUP BY T0."ItemCode", T0."Warehouse" ORDER BY T0."ItemCode", T0."Warehouse"
الصق أيًّا من النسختين في الأدوات ← الاستعلامات ← مولّد الاستعلامات (Tools → Queries → Query Generator). تحتاج اللهجة الأخرى لاستعلامك الخاص؟ استخدم محوّل SQL إلى HANA.
خطأ شائع: لا تصحّح المخزون أبدًا بأمر UPDATE على OINM
تغيير OINM أو OITW أو OITM عبر SQL غير مدعوم من SAP: تتوقف اليومية والمخزون لكل مستودع وحسابات المخزون في الأستاذ العام عن التطابق. صحّح المخزون بالمستندات بدلًا من ذلك (استلام بضاعة، أو صرف بضاعة، أو ترحيل جرد)، وأبقِ استعلامات SQL الخاصة بك على OINM للقراءة فقط. انظر رموز أخطاء DI API.
جداول ذات صلة
OITM (الأصناف (البيانات الرئيسية للصنف)) · OITW (مخزون الصنف حسب المستودع) · OWHS (المستودعات) · ابحث في كل جداول SAP Business One
المصادر: توثيق SAP Business One و SDK (مرجع جداول قاعدة البيانات في DI API)، بوابة SAP Help.
جاهز للبدء؟
أخبرنا بما تحتاجه. ستحصل على إجابة تقنية واضحة ونطاق عمل محدد وسعر ثابت، عادةً خلال 24 ساعة.
