جدول ODLN في SAP Business One (مذكرة التسليم (الرأس))
ODLN هو جدول SAP Business One الذي يخزن رأس كل مذكرة تسليم: العميل والتواريخ والإجماليات والحالة. أسطرها في DLN1، وتُربط عبر DocEntry، ونوع الكائن الخاص بها 15. ترحيل مذكرة التسليم يُخرج المخزون من المستودع.
الحقول الرئيسية في ODLN
| الحقل | ما يحتويه |
|---|---|
DocEntry | المفتاح الداخلي. يُربط بـ DLN1.DocEntry. |
DocNum | رقم مذكرة التسليم الذي يراه المستخدمون. |
ObjType | نوع الكائن، 15 = مذكرة تسليم. |
DocDate | تاريخ الترحيل. |
DocDueDate | تاريخ الاستحقاق. |
CardCode / CardName | رمز العميل واسمه. يُربط CardCode بـ OCRD. |
DocTotal | إجمالي المستند. |
VatSum | إجمالي الضريبة. |
DiscPrcnt | نسبة خصم الرأس. |
DocStatus | O = مفتوح، C = مغلق (مثلًا عند فوترتها بالكامل). |
InvntSttus | حالة المستند في المستودع. |
CANCELED | Y إذا أُلغيت مذكرة التسليم. |
SlpCode | موظف المبيعات. يُربط بـ OSLP. |
كيف يرتبط ODLN بالجداول الأخرى
ODLN هو الرأس و DLN1 الأسطر، ويُربطان عبر DocEntry. مذكرة التسليم المنسوخة من أمر بيع تخزن BaseType = 17 ومفاتيح الأمر في أسطر DLN1؛ والفاتورة المنسوخة من مذكرة التسليم تخزن BaseType = 15 و BaseEntry = ODLN.DocEntry في أسطر INV1. و DLN1.OpenQty هي الكمية التي ما زالت مفتوحة، أي لم تُفوتر أو تُرجع بعد.
عمليات الربط الشائعة
ODLN T0 INNER JOIN DLN1 T1 ON T0.DocEntry = T1.DocEntry(الأسطر)ODLN T0 INNER JOIN OCRD T2 ON T0.CardCode = T2.CardCode(العميل)DLN1 T1 INNER JOIN RDR1 T3 ON T1.BaseType = 17 AND T1.BaseEntry = T3.DocEntry AND T1.BaseLine = T3.LineNum(سطر أمر البيع)INV1 T4 ON T4.BaseType = 15 AND T4.BaseEntry = T1.DocEntry AND T4.BaseLine = T1.LineNum(الفاتورة من مذكرة التسليم)
متى تستخدم جدول ODLN
استخدم ODLN و DLN1 لقوائم «سُلّم ولم يُفوتر»، وسجل الشحن لكل عميل أو صنف، والتحقق من إثبات التسليم. في الشركات التي تفوتر دائمًا من مذكرات التسليم، تمثل مذكرات التسليم المفتوحة إيرادات لم تُفوتر بعد.
مثال على استعلام: أسطر مذكرات التسليم غير المفوترة بعد
SQL Server
SELECT T0.DocNum, T0.DocDate, T0.CardCode, T0.CardName, T1.ItemCode, T1.Dscription, T1.Quantity, T1.OpenQty, T1.WhsCode FROM ODLN T0 INNER JOIN DLN1 T1 ON T0.DocEntry = T1.DocEntry WHERE T0.CANCELED = 'N' AND T1.LineStatus = 'O' AND T1.OpenQty > 0 ORDER BY T0.DocDate, T0.DocNum
SAP HANA (أسماء الأعمدة بين علامتي اقتباس مزدوجتين)
SELECT T0."DocNum", T0."DocDate", T0."CardCode", T0."CardName", T1."ItemCode", T1."Dscription", T1."Quantity", T1."OpenQty", T1."WhsCode" FROM ODLN T0 INNER JOIN DLN1 T1 ON T0."DocEntry" = T1."DocEntry" WHERE T0."CANCELED" = 'N' AND T1."LineStatus" = 'O' AND T1."OpenQty" > 0 ORDER BY T0."DocDate", T0."DocNum"
الصق أيًّا من النسختين في الأدوات ← الاستعلامات ← مولّد الاستعلامات (Tools → Queries → Query Generator). تحتاج اللهجة الأخرى لاستعلامك الخاص؟ استخدم محوّل SQL إلى HANA.
خطأ شائع: احتساب مذكرات التسليم والفواتير كمبيعات مرتين
عندما تُنسخ الفواتير من مذكرات التسليم، تظهر البضاعة نفسها مرة في DLN1 ومرة أخرى في INV1. تقرير المبيعات الذي يجمع ODLN و OINV يضاعف الرقم. استخرج المبيعات من OINV (ناقص ORIN) واستخدم ODLN فقط لما سُلّم ولم يُفوتر بعد، كما في الاستعلام أعلاه. انظر لماذا لا تتطابق إجماليات مبيعات SAP B1.
جداول ذات صلة
ORDR (أمر البيع (الرأس)) · RDR1 (أمر البيع (الأسطر)) · OINV (فاتورة المبيعات (الرأس)) · OITW (مخزون الصنف حسب المستودع) · ابحث في كل جداول SAP Business One
المصادر: توثيق SAP Business One و SDK (مرجع جداول قاعدة البيانات في DI API)، بوابة SAP Help.
جاهز للبدء؟
أخبرنا بما تحتاجه. ستحصل على إجابة تقنية واضحة ونطاق عمل محدد وسعر ثابت، عادةً خلال 24 ساعة.
