Home Forum Nuclos Konfiguration Businessprozesse Automatische Kundennummer

  • Dieses Thema hat 9 Antworten und 4 Teilnehmer, und wurde zuletzt aktualisiert vor 8 Jahre von caf.
Ansicht von 10 Beiträgen - 1 bis 10 (von insgesamt 10)
  • Autor
    Beiträge
  • #8042
    Beat von Allmen
    Teilnehmer

    Wie kann ich das Businessobjekt Kunden anpassen um eine automatische Kundenummer zu vergeben?
    Mit dem Modul Nummernkreise bin ich nicht klar gekommen.

    #8048
    Beat von Allmen
    Teilnehmer

    Problem gelöst…..
    Ihr könnt ja auch sagen das ich suchen soll….

    Lösung eine neues Feld mit Kundennummer und Autonummerierung

    #8050
    Thomas Hempel
    Teilnehmer

    Hallo 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ß
    Thomas

    #8051
    Beat von Allmen
    Teilnehmer

    Hallo Thomas

    Kannst du mir den Regelcode mal posten?
    Ich denke es wäre die bessere Lösung mit den Nummernkreisen

    Ich habe im Regelwerk
    org.nuclet.nummernkreise.rule.GeneriereNummer

    folgende Zeile eingefügt, ohne Wirkung…..

    } else if (businessObject instanceof Kunde) {
    ((Kunde)businessObject).setNummer(NummernkreiseLogik.getNextValue(Kunde.class));

    was habe ich den noch vergessen?

    Gruss
    Beat

    #8080
    Thomas Hempel
    Teilnehmer

    Hallo 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ß
    Thomas

    #8142
    Dieter Mennig
    Teilnehmer

    Hallo,

    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.

    #8149
    Thomas Hempel
    Teilnehmer

    Hallo 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ß
    Thomas

    #8151
    caf
    Verwalter

    Hallo 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 Lehmann

    #8181
    Dieter Mennig
    Teilnehmer

    Hallo 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
    Dieter

    #8209
    caf
    Verwalter

    Hallo 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

Ansicht von 10 Beiträgen - 1 bis 10 (von insgesamt 10)