جدول ADOC في SAP Business One (سجل المستندات (سجل الفواتير))
ADOC هو جدول السجل للمستندات في SAP Business One (تسميه وثائق SDK "Invoice - History"): يحتفظ بالإصدارات السابقة من رؤوس المستندات، صف واحد لكل إصدار محفوظ، مرقّمة بـ LogInstanc. وله أعمدة الرأس نفسها التي في جداول المستندات، فيمكنك معرفة من غيّر المستند ومتى وما كان إجماليه من قبل.
الحقول الرئيسية في ADOC
| الحقل | ما يحتويه |
|---|---|
DocEntry | المفتاح الداخلي للمستند. |
DocNum | رقم المستند. |
ObjType | نوع كائن المستند (ADP1)، مثل 13 لفواتير المبيعات. |
LogInstanc | نسخة السجل: رقم إصدار صف السجل. |
DocDate | تاريخ الترحيل. |
CardCode / CardName | شريك الأعمال. يُربط CardCode بـ OCRD. |
DocCur / DocTotal | عملة المستند وإجماليه في ذلك الإصدار. |
DocStatus | O = مفتوح، C = مغلق. |
CANCELED | Y = ملغى، N = غير ملغى، C = مستند إلغاء. |
UserSign / UserSign2 | المستخدم المنشئ والمستخدم المحدِّث. يُربطان بـ OUSR.USERID. |
CreateDate / UpdateDate | تاريخا الإنشاء والتحديث. |
UpdateTS | وقت التحديث. |
كيف يرتبط ADOC بالجداول الأخرى
تُحدد صفوف ADOC بـ ObjType و DocEntry و LogInstanc معًا، لأن جدولًا واحدًا يحتوي على إصدارات أنواع مختلفة من المستندات. ويبقى الإصدار الحالي في جدول المستند (مثل OINV)، فقارن إصدارات ADOC بالصف الحالي لمعرفة ما تغيّر. ويبين UserSign2 من حفظ كل إصدار.
عمليات الربط الشائعة
ADOC T0 INNER JOIN OUSR T1 ON T1.USERID = T0.UserSign2(المستخدم الذي حفظ الإصدار)ADOC T0 INNER JOIN OINV T2 ON T2.DocEntry = T0.DocEntry AND T0.ObjType = '13'(الفاتورة الحالية)
متى تستخدم جدول ADOC
استخدم ADOC لأسئلة التدقيق مثل من غيّر هذه الفاتورة ومتى، ولمعرفة إجمالي المستند قبل التعديل، ولعدّ التغييرات لكل مستخدم.
مثال على استعلام: سجل تغييرات فاتورة مبيعات واحدة
SQL Server
SELECT T0.LogInstanc, T0.UpdateDate, T0.UpdateTS, T1.USER_CODE, T1.U_NAME, T0.CardCode, T0.DocTotal, T0.DocStatus FROM ADOC T0 LEFT JOIN OUSR T1 ON T1.USERID = T0.UserSign2 WHERE T0.ObjType = '13' AND T0.DocNum = 1001 ORDER BY T0.LogInstanc
SAP HANA (أسماء الأعمدة بين علامتي اقتباس مزدوجتين)
SELECT T0."LogInstanc", T0."UpdateDate", T0."UpdateTS", T1."USER_CODE", T1."U_NAME", T0."CardCode", T0."DocTotal", T0."DocStatus" FROM ADOC T0 LEFT JOIN OUSR T1 ON T1."USERID" = T0."UserSign2" WHERE T0."ObjType" = '13' AND T0."DocNum" = 1001 ORDER BY T0."LogInstanc"
الصق أيًّا من النسختين في الأدوات ← الاستعلامات ← مولّد الاستعلامات (Tools → Queries → Query Generator). تحتاج اللهجة الأخرى لاستعلامك الخاص؟ استخدم محوّل SQL إلى HANA.
خطأ شائع: تصفية ADOC على DocNum أو DocEntry وحده
يحتوي ADOC على سجل عدة أنواع من المستندات، فقد يكون DocEntry 1001 فاتورة أو إشعارًا دائنًا أو مستندًا آخر. صفِّ دائمًا على ObjType أيضًا. والإصدار الحالي ليس في ADOC؛ اقرأه من جدول المستند وأضفه إلى قائمة السجل. انظر استعلام المستندات المنشأة حسب المستخدم.
استعلامات جاهزة تستخدم ADOC
- الفواتير المُنشأة لكل مستخدم اليوم: عدد فواتير المبيعات التي أنشأها كل مستخدم SAP B1 اليوم، مع القيمة الإجمالية.
أسئلة حول جدول ADOC
أين سجل تغييرات الفاتورة؟
في ADOC، صف واحد لكل إصدار محفوظ (LogInstanc)، مع التصفية على ObjType 13 و DocEntry.
كيف أعرف من غيّر مستندًا؟
اربط ADOC.UserSign2 بـ OUSR.USERID ورتّب حسب LogInstanc.
هل الإصدار الحالي من المستند موجود في ADOC؟
يبقى الإصدار الحالي في جدول المستند، مثل OINV؛ ويحتفظ ADOC بالإصدارات السابقة.
جداول ذات صلة
OUSR (المستخدمون) · OINV (فاتورة المبيعات (الرأس)) · ابحث في كل جداول SAP Business One
المصادر: توثيق SAP Business One و SDK (مرجع جداول قاعدة البيانات في DI API)، بوابة SAP Help.
جاهز للبدء؟
أخبرنا بما تحتاجه. ستحصل على إجابة تقنية واضحة ونطاق عمل محدد وسعر ثابت، عادةً خلال 24 ساعة.
