جدول RIN1 في SAP Business One (الإشعار الدائن للمبيعات (الأسطر))

RIN1 هو جدول SAP Business One الذي يخزن أسطر الإشعارات الدائنة للمبيعات: الصنف والكمية والسعر وإجمالي السطر والمستودع والمستند الذي نُسخ منه كل سطر. لا يحتوي على بيانات الرأس، لذلك تربطه بـ ORIN عبر DocEntry للحصول على التاريخ والعميل وحالة الإلغاء.

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

الحقلما يحتويه
DocEntryمفتاح الإشعار الدائن. يُربط بـ ORIN.DocEntry.
LineNumرقم السطر داخل الإشعار الدائن، يبدأ من 0.
ItemCodeالصنف المعني. يُربط بـ OITM.ItemCode. فارغ في إشعارات الخدمات الدائنة.
Dscriptionوصف السطر (بإملاء SAP، كما في INV1).
Quantityالكمية المعنية بوحدة المبيعات.
Priceسعر الوحدة بعد خصم السطر.
LineTotalمبلغ السطر بالعملة المحلية، قبل الضريبة وقبل خصم الرأس.
WhsCodeالمستودع الذي يعود إليه المخزون المرتجع. يُربط بـ OWHS.WhsCode.
NoInvtryMvY = سطر مرحّل «دون ترحيل الكمية» (Without Qty Posting): إشعار سعري فقط، لا يعود أي مخزون.
BaseType / BaseEntry / BaseLineالمستند المصدر: 13 = فاتورة مبيعات، 16 = مرتجع مبيعات، -1 = بلا مستند أساس.
AcctCodeحساب الإيرادات أو المرتجعات في الأستاذ العام الذي يُرحّل إليه السطر.

كيف يرتبط RIN1 بالجداول الأخرى

RIN1 هو جدول أسطر ORIN؛ و DocEntry + LineNum هو المفتاح الفريد للسطر. يشير BaseEntry و BaseLine إلى سطر الفاتورة بالضبط (INV1.DocEntry و INV1.LineNum) عندما تكون BaseType = 13، وهكذا يتتبع SAP B1 كم بقي مفتوحًا من سطر الفاتورة للإشعار الدائن، ولهذا يرفض كمية دائنة أكبر من الكمية المفوترة.

عمليات الربط الشائعة

  • RIN1 T1 INNER JOIN ORIN T0 ON T1.DocEntry = T0.DocEntry (الرأس)
  • RIN1 T1 INNER JOIN INV1 T2 ON T1.BaseType = 13 AND T1.BaseEntry = T2.DocEntry AND T1.BaseLine = T2.LineNum (سطر الفاتورة)
  • RIN1 T1 LEFT JOIN OITM T3 ON T1.ItemCode = T3.ItemCode (البيانات الرئيسية للصنف)

متى تستخدم جدول RIN1

استخدم RIN1 لكل ما هو على مستوى الصنف: المرتجعات حسب الصنف أو المستودع، ونسبة المرتجعات مقابل الكميات المباعة في INV1، وصافي مبيعات الأصناف (INV1 ناقص RIN1). يستخدم فريقا الجودة والمشتريات كميات المرتجعات لاكتشاف الأصناف التي فيها مشكلات من المورّد أو في التغليف.

مثال على استعلام: الكمية المرتجعة وصافي الإشعار الدائن لكل صنف

SQL Server

SELECT T1.ItemCode, T1.Dscription, SUM(T1.Quantity) AS QtyReturned,
  SUM(T1.LineTotal * (1 - T0.DiscPrcnt / 100.0)) AS NetCredit
FROM ORIN T0
INNER JOIN RIN1 T1 ON T0.DocEntry = T1.DocEntry
WHERE T0.CANCELED = 'N' AND T1.NoInvtryMv = 'N' AND T0.DocDate >= '20260101'
GROUP BY T1.ItemCode, T1.Dscription
ORDER BY QtyReturned DESC

SAP HANA (أسماء الأعمدة بين علامتي اقتباس مزدوجتين)

SELECT T1."ItemCode", T1."Dscription", SUM(T1."Quantity") AS "QtyReturned",
  SUM(T1."LineTotal" * (1 - T0."DiscPrcnt" / 100.0)) AS "NetCredit"
FROM ORIN T0
INNER JOIN RIN1 T1 ON T0."DocEntry" = T1."DocEntry"
WHERE T0."CANCELED" = 'N' AND T1."NoInvtryMv" = 'N' AND T0."DocDate" >= '20260101'
GROUP BY T1."ItemCode", T1."Dscription"
ORDER BY "QtyReturned" DESC

الصق أيًّا من النسختين في الأدوات ← الاستعلامات ← مولّد الاستعلامات (Tools → Queries → Query Generator). تحتاج اللهجة الأخرى لاستعلامك الخاص؟ استخدم محوّل SQL إلى HANA.

خطأ شائع: الإشعارات السعرية فقط تضخّم كميات المرتجعات

سطر الإشعار الدائن المرحّل «دون ترحيل الكمية» (NoInvtryMv = 'Y') ما زال يحمل Quantity (يُحسب فرق السعر على أساسها)، رغم أن شيئًا لم يعد إلى المستودع. إذا جمعت RIN1.Quantity كمرتجعات دون الشرط المستخدم أعلاه، فسيبدو تصحيح سعر بسيط كأنه إرجاع كامل للبضاعة. في تقارير القيمة أبقِ هذه الأسطر (فهي إشعارات دائنة حقيقية)؛ وفي تقارير المخزون ونسبة المرتجعات استبعدها. وطبّق معامل خصم الرأس كما في INV1، وإلا فلن يطابق صافي المبيعات من الأسطر تقرير تحليل المبيعات. انظر لماذا لا تتطابق إجماليات مبيعات SAP B1 (خصم الرأس).

استعلامات جاهزة تستخدم RIN1

جداول ذات صلة

ORIN (الإشعار الدائن للمبيعات (الرأس)) · INV1 (فاتورة المبيعات (الأسطر)) · OITM (الأصناف (البيانات الرئيسية للصنف)) · ابحث في كل جداول SAP Business One

المصادر: توثيق SAP Business One و SDK (مرجع جداول قاعدة البيانات في DI API)، بوابة SAP Help.

جاهز للبدء؟

أخبرنا بما تحتاجه. ستحصل على إجابة تقنية واضحة ونطاق عمل محدد وسعر ثابت، عادةً خلال 24 ساعة.