Maskierung der Nummernkreise
Grundlagen
Mit der Nummerkreis-Maskierung können Sie das Muster der automatischen Nummernvergaben abstimmen. Sie erreichen diese Funktion unter Einstellungen, Grundeinstellungen, Nummernkreis. Die 2. Spalte ist das Feld für die Maskierung. Hier sehen Sie die Maskierung für den Nummernkreis BE_BNR ausgewählt.
Der Nummerkreis ist im Ergebnis immer ein Charakter Type (Schriftzeichen). Die Erzeugung der Zeichen wird über eine PostgreSQL-Anweisung gesteuert. NC_NUM ist dabei der Platzhalter an der die neu erzeugte Nummer eingesetzt wird. Achten Sie dabei bitte immer auf die maximale Länge bestimmter Zielfelder, also die Länge der Zusatzzeichen in Verbindung mit der Nummernlänge. Auf Groß- oder Kleinschreibung der Befehle brauchen Sie nicht zu achten, das ist hier nur zur besseren Ansicht.
Ein paar Beispiele (die neue Nummer NC_NUM ist immer 1001):
- Möchten Sie vor und nach einer Nummer ein oder mehr Zeichen haben, bietet sich folgendes an: 'V-' || NC_NUM || 'N' Das Ergebnis: V-1001N
Schriftzeichen (auch Leerzeichen) stehen immer in Hochkommas ' . Verkettungen (Konkatenation) von Elementen werden mit 2 vertikalen Strichen erzeugt || .
- Möchten Sie eine Zeichenkette von einer bestimmten Länge mit Zeichen erzeugen, bieten sich LPAD (nach links füllen) und RPAD (nach rechts füllen) an.
Die Form ist dabei LPAD(string, lenght, fillstring). Der erste string (Zeichenkette) ist der zu befüllende, die Stelle lenght (Länge) bestimmte die maximale Länge des Ergebnisses, der fillstring bestimmt die Zeichen mit denen gefüllt werden soll. LPAD(NC_NUM, 10, 'Abcd') erzeugt: AbcdAb1001 ; LPAD(NC_NUM, 7, '0') erzeugt: 0001001 ; (RPAD entsprechend nach rechts füllend). Achten Sie dabei auf die Länge der Nummer, denn alles Überschreitende wird von LPAD, RPAD abgeschnitten.
- Möchten Sie Teile des aktuellen Datums einfügen, ist folgendes hilfreich: CAST(EXTRACT(year FROM current_date) AS VARCHAR) || '-' || NC_NUM Ergebnis: 2011-1001
Hier wird das Jahr vom aktuellen Datum aufgerufen und es als Schriftzeichen (varchar) erzeugt, dann wird es mit einem Bindestrich und der Nummer konkateniert. Vom aktuellen Datum kann man u.a. folgende Teile aufrufen: year (Jahr), quarter (Quartal), month (Monat), day (Tag).
- Natürlich lässt sich dies alles kombinieren: 'Produkte-' || CAST(EXTRACT(year FROM current_date) AS VARCHAR) || '-' || LPAD(NC_NUM, 10, '0') Ergebnis: Produkte-2011-0000001001
Normierte Nummernkreise
Diese Nummernkreise sind schon in Prodat eingerichtet und entsprechend ihrer Form lassen sich die Nummern bestimmten Modulen zuordnen. Es handelt sich meistens um vorangestellte Buchstaben, denen dann das Nummern-Inkrement folgt.
Einkauf:
Anfrage
Bestellungen (frei)
Bestellung (Auftragsbezogen, extern)
Produktionsauftrag Frei (Lagerauftrag)
Produktionsauftrag Auftragsbezogen
Rahmenbestellung
Eingangsrechnungen220000
FBE
BE + Teil Auftragsnummer (nach AG)
LA
PA + Teil Auftragsnummer (nach AG)
RBE
ERVerkauf:
Angebote
KundenaufträgeAN
AGLieferschein:
Lieferschein LS Faktura:
Rechnung / Fallback
Gutschrift
Kasse
Proforma
AbschlagsrechnungRG
GS
CA
PR
AR