جدول PDN1 في SAP Business One (إيصال استلام البضائع لأمر الشراء (الأسطر))
PDN1 هو جدول SAP Business One الذي يخزن أسطر إيصال استلام البضائع لأمر الشراء: سطر واحد لكل صنف مستلم، مع الكمية والسعر والمستودع والكمية المفتوحة وسطر أمر الشراء الذي جاء منه. ويُربط بالرأس OPDN عبر DocEntry؛ و BaseType 22 يعني أن السطر نُسخ من أمر شراء.
الحقول الرئيسية في PDN1
| الحقل | ما يحتويه |
|---|---|
DocEntry | مفتاح الرأس. يُربط بـ OPDN.DocEntry. |
LineNum | رقم السطر. |
ItemCode | الصنف. يُربط بـ OITM.ItemCode. |
Dscription | وصف الصنف. |
Quantity | الكمية المستلمة. |
OpenQty | الكمية المفتوحة المتبقية (لم تُنسخ بعد إلى فاتورة أو مرتجع). |
Price / Currency | السعر وعملة السعر. |
LineTotal | إجمالي السطر. |
WhsCode | المستودع. يُربط بـ OWHS.WhsCode. |
BaseType | نوع المستند الأساس: 22 = أمر الشراء، 540000006 = عرض أسعار المشتريات، وغيرها. |
BaseEntry / BaseLine | مفتاح المستند الأساس وسطره. |
TargetType / TrgetEntry | المستند الهدف (18 = فاتورة المشتريات، 21 = مرتجع البضائع) ومفتاحه. |
كيف يرتبط PDN1 بالجداول الأخرى
تنتمي أسطر PDN1 إلى رأس واحد في OPDN (DocEntry). ويشير BaseType 22 مع BaseEntry و BaseLine إلى سطر أمر الشراء في OPOR؛ ويشير TargetType و TrgetEntry إلى الأمام نحو فاتورة المشتريات (OPCH) أو مرتجع البضائع.
عمليات الربط الشائعة
PDN1 T0 INNER JOIN OPDN T1 ON T1.DocEntry = T0.DocEntry(الرأس)PDN1 T0 LEFT JOIN OPOR T2 ON T2.DocEntry = T0.BaseEntry AND T0.BaseType = 22(أمر الشراء)PDN1 T0 LEFT JOIN OPCH T3 ON T3.DocEntry = T0.TrgetEntry AND T0.TargetType = 18(فاتورة المشتريات)
متى تستخدم جدول PDN1
استخدم PDN1 لمقارنة الكميات المستلمة بأوامر الشراء، ولسرد الأسطر المستلمة التي لم تُفوتر بعد، ولقراءة آخر سعر استلام لكل صنف ومورد.
مثال على استعلام: الأسطر المستلمة غير المفوترة بعد، مع أمر الشراء الخاص بها
SQL Server
SELECT T1.DocNum AS GrpoNum, T1.DocDate, T1.CardCode, T0.ItemCode, T0.Quantity, T0.OpenQty, T0.Price, T2.DocNum AS PoNum FROM PDN1 T0 INNER JOIN OPDN T1 ON T1.DocEntry = T0.DocEntry LEFT JOIN OPOR T2 ON T2.DocEntry = T0.BaseEntry AND T0.BaseType = 22 WHERE T0.OpenQty > 0 AND T1.CANCELED = 'N' ORDER BY T1.DocDate
SAP HANA (أسماء الأعمدة بين علامتي اقتباس مزدوجتين)
SELECT T1."DocNum" AS "GrpoNum", T1."DocDate", T1."CardCode", T0."ItemCode", T0."Quantity", T0."OpenQty", T0."Price", T2."DocNum" AS "PoNum" FROM PDN1 T0 INNER JOIN OPDN T1 ON T1."DocEntry" = T0."DocEntry" LEFT JOIN OPOR T2 ON T2."DocEntry" = T0."BaseEntry" AND T0."BaseType" = 22 WHERE T0."OpenQty" > 0 AND T1."CANCELED" = 'N' ORDER BY T1."DocDate"
الصق أيًّا من النسختين في الأدوات ← الاستعلامات ← مولّد الاستعلامات (Tools → Queries → Query Generator). تحتاج اللهجة الأخرى لاستعلامك الخاص؟ استخدم محوّل SQL إلى HANA.
خطأ شائع: BaseEntry دون BaseType
قد يستند سطر الإيصال إلى أمر شراء أو عرض أسعار مشتريات أو مستند آخر. و BaseEntry وحده مجرد رقم، فأضف دائمًا BaseType = 22 عند الربط مع OPOR. انظر جدول OPOR (أمر الشراء).
استعلامات جاهزة تستخدم PDN1
- آخر سعر شراء لكل صنف: أحدث سعر في فاتورة مشتريات، مع المورّد والتاريخ، لكل صنف.
- أوامر الشراء المفتوحة حسب المورّد: أسطر أوامر الشراء المفتوحة التي ما زالت فيها كمية للاستلام، مجمّعة حسب المورّد.
أسئلة حول جدول PDN1
كيف أربط PDN1 بأمر الشراء؟
PDN1.BaseType = 22، و PDN1.BaseEntry = OPOR.DocEntry، و PDN1.BaseLine = رقم سطر أمر الشراء.
ماذا يعني OpenQty في PDN1؟
الكمية المستلمة التي لم تُنسخ بعد إلى مستند هدف مثل فاتورة المشتريات أو مرتجع البضائع.
كيف أجد فاتورة المشتريات لسطر إيصال؟
PDN1.TargetType = 18 و PDN1.TrgetEntry = OPCH.DocEntry.
جداول ذات صلة
OPDN (إيصال استلام البضائع لأمر الشراء (الرأس)) · OPOR (أمر الشراء (الرأس)) · OPCH (فاتورة المشتريات (الرأس)) · ابحث في كل جداول SAP Business One
المصادر: توثيق SAP Business One و SDK (مرجع جداول قاعدة البيانات في DI API)، بوابة SAP Help.
جاهز للبدء؟
أخبرنا بما تحتاجه. ستحصل على إجابة تقنية واضحة ونطاق عمل محدد وسعر ثابت، عادةً خلال 24 ساعة.
