Tabelle NNM1 in SAP Business One (Nummernkreise der Belege)
NNM1 ist die Tabelle der Nummernkreise in SAP Business One: eine Zeile pro Nummernkreis eines Beleg- oder Stammdatenobjekts, mit Objektcode, Nummernkreisnummer, Name, nächster Nummer, letzter zulässiger Nummer, Präfix, Suffix und Periodenkennzeichen. Belege speichern den Nummernkreis in Series; NNM1 erklärt daher, woher eine DocNum stammt und mit welchem Präfix sie gedruckt wird.
Wichtige Felder der Tabelle NNM1
| Feld | Inhalt |
|---|---|
ObjectCode | Objekt, zu dem der Nummernkreis gehört, zum Beispiel 13 für Ausgangsrechnungen und 17 für Kundenaufträge. |
Series | Nummer des Nummernkreises, der Schlüssel. OINV.Series und ORDR.Series verweisen darauf. |
SeriesName | Name des Nummernkreises. |
InitialNum | Anfangsnummer. |
NextNumber | Nächste zu verwendende Nummer. |
LastNum | Letzte zulässige Nummer. |
BeginStr / EndStr | Präfix- und Suffix-Zeichenfolgen. |
Indicator | Periodenkennzeichen (OPID). |
Locked | Y = gesperrt, N = nicht gesperrt. |
SeriesType | D = Beleg, B = Geschäftspartner, I = Artikel, R = Ressource, W = Quellensteuerbescheinigungen. |
IsManual | Y = manueller Nummernkreis. |
BPLId | Zugeordnete Niederlassung (OBPL). |
DocSubType | Beleg-Untertyp. |
Wie NNM1 mit anderen Tabellen zusammenhängt
NNM1 enthält die Nummernkreiszeilen jedes in ONNM aufgeführten Objekts. Belegköpfe (OINV.Series, ORDR.Series und die übrigen) und Geschäftspartner (OCRD.Series) verweisen auf NNM1.Series. Das Paar ObjectCode plus Series identifiziert den Nummernkreis, und DocNum ist innerhalb eines Nummernkreises eindeutig, nicht über alle Nummernkreise hinweg.
Typische Joins
OINV T0 INNER JOIN NNM1 T1 ON T1.Series = T0.Series (Nummernkreis der Rechnung)ORDR T2 INNER JOIN NNM1 T1 ON T1.Series = T2.Series (Nummernkreis des Auftrags)NNM1 T1 WHERE T1.ObjectCode = '13' (alle Nummernkreise der Ausgangsrechnung)
Wann Sie die Tabelle NNM1 verwenden
Verwenden Sie NNM1, um Belegnummern mit ihrem Präfix zu drucken, vor dem Jahresende zu sehen, welcher Nummernkreis seiner letzten Nummer nahe ist, und die Nummernkreise pro Periodenkennzeichen oder Niederlassung aufzulisten.
Beispielabfrage: Rechnungsnummern mit Name und Präfix des Nummernkreises
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 (Spaltennamen in doppelten Anführungszeichen)
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"
Fügen Sie eine der beiden Versionen unter Extras → Abfragen → Abfragegenerator ein. Sie brauchen den anderen Dialekt für Ihre eigene Abfrage? Nutzen Sie den SQL-zu-HANA-Konverter.
Typischer Fallstrick: DocNum als eindeutig behandeln
Bei mehreren Nummernkreisen (pro Jahr, pro Niederlassung oder pro Belegtyp) können zwei Rechnungen in verschiedenen Nummernkreisen dieselbe DocNum haben. Verwenden Sie DocEntry als Schlüssel oder DocNum zusammen mit Series. Vergleichen Sie außerdem vor dem Jahresende NextNumber mit LastNum, sonst stoppt das Buchen, wenn ein Nummernkreis ausgeschöpft ist. Siehe OINV-Tabelle (Kopf der Ausgangsrechnung).
Fertige Abfragen, die NNM1 verwenden
- Heute erstellte Rechnungen pro Benutzer: Wie viele Ausgangsrechnungen jeder SAP-B1-Benutzer heute erstellt hat, mit dem Gesamtwert.
Fragen zur Tabelle NNM1
Welche Tabelle enthält die nächste Belegnummer in SAP Business One?
NNM1.NextNumber, pro Nummernkreis. Der Beleg speichert seinen Nummernkreis in Series.
Ist DocNum in SAP Business One eindeutig?
Nur innerhalb eines Nummernkreises. DocEntry ist der eindeutige Schlüssel eines Belegs.
Wo steht das Präfix einer Belegnummer?
In NNM1.BeginStr (Präfix) und NNM1.EndStr (Suffix).
Verwandte Tabellen
OINV (Ausgangsrechnung (Kopf)) · ORDR (Kundenauftrag (Kopf)) · OCRD (Geschäftspartner) · alle SAP-Business-One-Tabellen durchsuchen
Quellen: Dokumentation und SDK zu SAP Business One (Referenz der DI-API-Datenbanktabellen), SAP Help Portal.
Bereit für den Start?
Sagen Sie uns, was Sie brauchen. Sie erhalten eine klare technische Antwort, einen festen Leistungsumfang und einen Preis, in der Regel innerhalb von 24 Stunden.
