Home › Forum › Nuclos Konfiguration › Businessprozesse › Automatische Kundennummer
- Dieses Thema hat 9 Antworten und 4 Teilnehmer, und wurde zuletzt aktualisiert vor 8 Jahre von
caf.
-
AutorBeiträge
-
18 Dezember 2014 um 14:20 Uhr #8042
Beat von Allmen
TeilnehmerWie kann ich das Businessobjekt Kunden anpassen um eine automatische Kundenummer zu vergeben?
Mit dem Modul Nummernkreise bin ich nicht klar gekommen.19 Dezember 2014 um 20:49 Uhr #8048Beat von Allmen
TeilnehmerProblem gelöst…..
Ihr könnt ja auch sagen das ich suchen soll….Lösung eine neues Feld mit Kundennummer und Autonummerierung
20 Dezember 2014 um 23:47 Uhr #8050Thomas Hempel
TeilnehmerHallo info@win-lux.ch,
das Nuclet Nummernkreise kann etwas mehr mit Präfixen und Datum. Mann muss aber den Regelcode etwas anpassen. Mein erster Versuch war auch gescheitert, inzwischen geht es. Aber wenn eine einfache Zahl reicht dann ist ja eine Autonummer ok.
Gruß
Thomas23 Dezember 2014 um 13:47 Uhr #8051Beat von Allmen
TeilnehmerHallo Thomas
Kannst du mir den Regelcode mal posten?
Ich denke es wäre die bessere Lösung mit den NummernkreisenIch habe im Regelwerk
org.nuclet.nummernkreise.rule.GeneriereNummerfolgende Zeile eingefügt, ohne Wirkung…..
} else if (businessObject instanceof Kunde) {
((Kunde)businessObject).setNummer(NummernkreiseLogik.getNextValue(Kunde.class));was habe ich den noch vergessen?
Gruss
Beat6 Januar 2015 um 18:02 Uhr #8080Thomas Hempel
TeilnehmerHallo Beat,
Deine Ergänzung sieht gut aus.
im Regelkopf fehlt eventuell noch:
import org.nuclet.businessentity.Kunde;
oder (mit nuclet)
import org.nuclet.[Dein Nuclet].Kunde;außerdem muss das Attribut „Nummer“ vom Typ Text existieren, damit .setNummer() funktionieren kann.
Gruß
Thomas24 Januar 2015 um 22:38 Uhr #8142Dieter Mennig
TeilnehmerHallo,
ich hätte zu diesem Thema noch eine Frage. Ich habe das nuclet Nummernkreise importiert (Version 1.1.0, Nuclos Version 4.3.1). Es funktioniert soweit auch, bist auf die Datumsangaben. Wenn ich also z.B. ein Präfix KD{yy} verwende steht später im Kundendatensatz KD{yy}00005. Es sollte ja aber drinstehen KD1500005.
Woran kann das liegen? Ich habe in der NummernkreiseLogic ehrlich gesagt auch keinen Code entdeckt, der aus {yy} -> 15 erzeugt. Was ist hier falsch? Muss dazu noch Code ergänzt werden? Im Nuclet Wiki steht, dass das Nummernkreis Nuclet das schon kann.
26 Januar 2015 um 12:31 Uhr #8149Thomas Hempel
TeilnehmerHallo softwareprofi,
Dein Präfix ist bei uns in ähnlicher Form in Einsatz und sollte funktionieren. Die Codezeile für die Umwandlung ist
return StringUtils.replace(strPrefix, prefix.getPrefix(), prefix.format(new Date()));
Wie Du schon vermutete hast, passiert das in „NummernkreiseLogic“.
Leider kann ich nicht erkennen, wo der Fehler bei Dir liegt. Evtl. hilft, wenn Du mehr vom gesamten Code (Eigene Änderungen?) postest. Wichtig ist, dass die Enumeration am Anfang von NummernkreiseLogik den Schlüssel „yy“ enthält. Das ist im Original aber so.
Gruß
Thomas26 Januar 2015 um 13:16 Uhr #8151caf
VerwalterHallo softwareprofi,
zu Ihrer Frage bzgl. der Jahreszahlen in den generierten Nummern:
Mit der aktuellen Version sollte das funktionieren. Bitte stellen Sie sicher, dass die Java-Regel NummernkreisLogik bei Ihnen so aussieht, wie in der angehängten Version. In der Methode getNextValue() sollte ein Aufruf von replaceDatePrefix() stehen. Die Datumspräfixe selbst sollten am Anfang der Klasse NummernkreisLogik als Enumeration DatePrefix definiert sein.
Freundliche Grüße,
Frank Lehmann30 Januar 2015 um 02:01 Uhr #8181Dieter Mennig
TeilnehmerHallo und vielen Dank für eure Antworten,
ich habe den „Fehler“ gefunden. In der Tat war der Code für die Erstellung der Präfixe in der NummernkreisLogic nicht enthalten. Das lag daran, dass ich den Basisformularsatz installiert habe, der ja das Nummernkreis Nuclet enthält. Dort ist der Code für die Präfixe aber nicht drin. Im separat heruntergeladenem Nuclet Nummernkreise ist er enthalten. Nach der Ergänzung des Codes läuft das Nuclet nun auch. Leider habe ich aber einen anderen Fehler, den ich erst nach vielen Herumprobieren gelöst bekam. Sobald ich in der Regel NummernkreisLogic Veränderungen vorgenommen habe, konnte ich einen neuen Datensatz im Businessobjekt Kunde nicht mehr speichern. Es kam die Fehlermeldung „fireEventSave failed“. Ich dachte natürlich zuerst an einen Syntaxfehler oder einen fehlenden Verweis o.ä. Das war aber nicht der Fall. Auch bei einer Neuinstallation auf einem 2. PC kam der Fehler. Geholfen hat dann, dass ich den Server neu gestartet habe. Danach hat das Abspeichern neuer Datensätze dann funktioniert. Ist euch dieser Fehler bekannt? Beim Support haben ich zumindest noch kein Ticket dazu gefunden.
Viele Grüße
Dieter4 Februar 2015 um 12:39 Uhr #8209caf
VerwalterHallo Dieter,
vielen Dank! Im Basistemplate war die NummernkreisLogik tatsächlich nicht aktuell. Ich habe das Basistemplate korrigiert und die neue Version (v1.1.2) in den Download-Bereich gestellt.
Zum Fehler „fireSaveEvent failed“ kann ich leider nichts sagen. Das ist bei mir noch nicht vorgekommen. Ich habe gesehen, dass Sie das Problem im Support-System gemeldet haben (NUCLOS-3954).
Freundliche Grüße,
Frank Lehmann -
AutorBeiträge