جدول NNM1 في SAP Business One (سلاسل ترقيم المستندات)

NNM1 هو جدول سلاسل الترقيم في SAP Business One: صف واحد لكل سلسلة لمستند أو كائن بيانات رئيسية، مع رمز الكائن ورقم السلسلة واسمها والرقم التالي وآخر رقم مسموح والبادئة واللاحقة ومؤشر الفترة. تخزن المستندات السلسلة في Series، لذا يشرح NNM1 مصدر DocNum والبادئة التي يُطبع بها.

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

الحقلما يحتويه
ObjectCodeالكائن الذي تنتمي إليه السلسلة، مثل 13 لفواتير المبيعات و 17 لأوامر البيع.
Seriesرقم السلسلة، وهو المفتاح. يشير إليه OINV.Series و ORDR.Series.
SeriesNameاسم السلسلة.
InitialNumالرقم الأولي.
NextNumberالرقم التالي للاستخدام.
LastNumآخر رقم مسموح.
BeginStr / EndStrنصّا البادئة واللاحقة.
Indicatorمؤشر الفترة (OPID).
LockedY = مقفلة، N = غير مقفلة.
SeriesTypeD = مستند، B = شريك أعمال، I = صنف، R = مورد، W = شهادات الاستقطاع.
IsManualY = سلسلة يدوية.
BPLIdالفرع المعيّن (OBPL).
DocSubTypeالنوع الفرعي للمستند.

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

يحتوي NNM1 على صفوف السلاسل لكل كائن مدرج في ONNM. وتشير رؤوس المستندات (OINV.Series و ORDR.Series وغيرها) وشركاء الأعمال (OCRD.Series) إلى NNM1.Series. ويحدد الزوج ObjectCode مع Series السلسلة، و DocNum فريد داخل السلسلة الواحدة لا عبر السلاسل.

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

  • OINV T0 INNER JOIN NNM1 T1 ON T1.Series = T0.Series (سلسلة الفاتورة)
  • ORDR T2 INNER JOIN NNM1 T1 ON T1.Series = T2.Series (سلسلة الأمر)
  • NNM1 T1 WHERE T1.ObjectCode = '13' (كل سلاسل فواتير المبيعات)

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

استخدم NNM1 لطباعة أرقام المستندات مع بادئتها، ولمعرفة السلسلة القريبة من آخر رقم لها قبل نهاية العام، ولسرد السلاسل لكل مؤشر فترة أو فرع.

مثال على استعلام: أرقام الفواتير مع اسم السلسلة والبادئة

SQL Server

SELECT T1.SeriesName, ISNULL(T1.BeginStr, '') + CAST(T0.DocNum AS varchar(20)) + ISNULL(T1.EndStr, '') AS PrintedNumber,
  T0.DocDate, T0.CardCode, T0.DocTotal
FROM OINV T0
INNER JOIN NNM1 T1 ON T1.Series = T0.Series
WHERE T0.DocDate >= DATEADD(day, -30, GETDATE())
ORDER BY T1.SeriesName, T0.DocNum

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

SELECT T1."SeriesName", IFNULL(T1."BeginStr", '') + CAST(T0."DocNum" AS varchar(20)) + IFNULL(T1."EndStr", '') AS "PrintedNumber",
  T0."DocDate", T0."CardCode", T0."DocTotal"
FROM OINV T0
INNER JOIN NNM1 T1 ON T1."Series" = T0."Series"
WHERE T0."DocDate" >= ADD_DAYS(CURRENT_TIMESTAMP, -30)
ORDER BY T1."SeriesName", T0."DocNum"

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

خطأ شائع: معاملة DocNum على أنه فريد

مع عدة سلاسل ترقيم (لكل سنة أو فرع أو نوع مستند) قد يكون لفاتورتين DocNum نفسه في سلسلتين مختلفتين. استخدم DocEntry كمفتاح، أو DocNum مع Series. وقارن NextNumber بـ LastNum قبل نهاية العام، وإلا توقف الترحيل عندما تنفد السلسلة. انظر جدول OINV (رأس فاتورة المبيعات).

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

أسئلة حول جدول NNM1

أي جدول يحتوي على رقم المستند التالي في SAP Business One؟

NNM1.NextNumber، لكل سلسلة. ويخزن المستند سلسلته في Series.

هل DocNum فريد في SAP Business One؟

داخل سلسلة الترقيم فقط. أما DocEntry فهو المفتاح الفريد للمستند.

أين بادئة رقم المستند؟

في NNM1.BeginStr (البادئة) و NNM1.EndStr (اللاحقة).

جداول ذات صلة

OINV (فاتورة المبيعات (الرأس)) · ORDR (أمر البيع (الرأس)) · OCRD (شركاء الأعمال) · ابحث في كل جداول SAP Business One

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

جاهز للبدء؟

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