جدول 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). |
Locked | Y = مقفلة، N = غير مقفلة. |
SeriesType | D = مستند، B = شريك أعمال، I = صنف، R = مورد، W = شهادات الاستقطاع. |
IsManual | Y = سلسلة يدوية. |
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
- الفواتير المُنشأة لكل مستخدم اليوم: عدد فواتير المبيعات التي أنشأها كل مستخدم SAP B1 اليوم، مع القيمة الإجمالية.
أسئلة حول جدول 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 ساعة.
