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