جدول ORDR في SAP Business One (أمر البيع (الرأس))

ORDR هو جدول SAP Business One الذي يخزن رأس كل أمر بيع: العميل، والتواريخ، والإجماليات، والحالة. أسطره في RDR1 وتُربط عبر DocEntry، ونوع كائنه 17.

الحقول الرئيسية في ORDR

الحقلما يحتويه
DocEntryالمفتاح الداخلي. يُربط بـ RDR1.DocEntry.
DocNumرقم الأمر الذي يراه المستخدمون.
DocDateتاريخ ترحيل الأمر.
DocDueDateتاريخ التسليم المطلوب.
CardCodeالعميل. يُربط بـ OCRD.CardCode.
CardNameاسم العميل كما طُبع على الأمر.
DocTotalإجمالي الأمر شاملًا الضريبة.
DiscPrcntنسبة خصم الرأس.
DocStatusO = مفتوح، C = مغلق (سُلّم أو فُوتر بالكامل أو أُغلق يدويًا).
CANCELEDY إذا أُلغي الأمر.
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 ساعة.