Home Forum Nuclos Konfiguration Businessprozesse Automatisch fortlaufende Nummer

Ansicht von 15 Beiträgen - 31 bis 45 (von insgesamt 52)
  • Autor
    Beiträge
  • #5493
    Mario Reuter
    Teilnehmer

    Hallo zusammen!

    Auch ich bin auf der Suche nach einer „einfachen“ Möglichkeit fortlaufende Nummern in meine Entiäten einzubinden.

    Gelesen haber ich hier dazu schon einiges, aber mir würde eine einfache Zahlenreihe die sich immer um 1 erhöht ausreichen.

    Wer hat hier einen Ansatz oder vielleicht eine fertige Lösung und wäre so nett diese zu schicken oder zu posten.

    Danke

    #5496
    Frank Pavlic
    Teilnehmer

    Hallo integra_nuclos,
    Seite 3 in diesem Thread hat Matthias Haake seine Lösung bereits gepostet bzw. eine zip-Datei hochgeladen. Einfacher geht es fast nicht mehr.
    Falls Du diesbezüglich konkrete Fragen hast, helfe ich Dir gerne weiter, wenn ich es dann auch kann 😉

    Gruß
    Frank

    #5499
    Mario Reuter
    Teilnehmer

    Hallo Frank,

    Danke … die ZIP doch einfach übersehen … :huh:

    Funktioniert nach etwas testen auch wunderbar … danke auch an Hugo 🙂

    #5503
    Frank Pavlic
    Teilnehmer

    … und die Lorbeeren für Matthias nicht vergessen 😛

    Gruß
    Frank

    #5970
    Markus Meier
    Teilnehmer

    Mit version 3.6 klappt es nicht mehr gibt nur noch ne Fehlermeldung aus.

    #5971
    Frank Pavlic
    Teilnehmer

    Hallo,
    hast du auch noch die Fehlermeldung inklusive Log-Einträgen parat? Dann kann ich Dir evtl. weiterhelfen.

    Gruß

    Frank

    #6781
    Thorsten Forkel
    Teilnehmer

    Ich schiebe das Thema hier noch mal nach oben.

    Funktioniert die Lösung auf Seite der weiterhin? Kann man damit Nummern nach dem Muster A2013-XXXXXX generieren? Welche Alternativen existieren?

    Danke und Grüße
    Thorsten

    #6782
    Ramin Goettlich
    Teilnehmer

    Am einfachsten lässt sich das mit dem Nuclet für Nummerngenerierung aus dem Nuclet Downloadbereich erreichen.

    #7563
    Thomas Hempel
    Teilnehmer

    Hallo,

    hat jemand für dieses Nuclet eine Doku? Nach tagelangem Testen funktioniert es bei mir immer noch nicht. Nummernkreise sind für unsere Anwendung im Betrieb aber eine Bedingung, da existierende System fortgeführt werden sollen.

    Ich habe ein Businessobjekt Kooperationspartner. Dafür habe ich einen fünfstelligen Nummernkreis mit Präfix KO angelegt. Die Regel GeneriereNummer habe ich im Regel-Management auf
    Kooperationspartner gezogen. Die Regel habe ich nach Wiki abgeändert und kompiliert:

    final Kooperationspartner test = context.getBusinessObject(Kooperationspartner.class);
    Kooperationspartner.setNummer(NummernkreiseLogik.getNextValue(Kooperationspartner.class));

    Und es passiert nichts!
    Wohin schreibt die Methode .setNummer ?
    Warum ändert sich der Wert „Nächster Wert“ im Nummernkreis nicht?
    Muss ich ein bestimmtes Feld im BO Kooperationspartner anlegen?


    @nuclosian
    : Einfach ist es wenn man weiß wie’s geht!

    Vielen Dank für alle Hinweise!

    #7565
    Frank Pavlic
    Teilnehmer

    Hallo Thomas,
    setNummer ist eine Setter-Methode für das Feld „nummer“, dass in deiner Entität Kooperationspartner existieren muss, wovon ich aber ausgehe.
    Passieren tut immer etwas und das steht in server.log drin. Bitte lade diese hoch. Und wenn es geht, auch die vollständige Implementierung deiner Regel ! Und achte darauf, dass bei der Regel GeneriereNummer bei Debug auch das Häckchen gesetzt ist.

    Gruß
    Frank

    #7566
    Thomas Hempel
    Teilnehmer

    Ok, danke, das sind gleich drei wertvolle Hinweise:

    Zuerst lege ich mal das Feld Nummer an.
    Das Serverlog hänge ich gleich hier an.
    Ich bin ja Neuling, was bewirkt der Haken bei debug?

    Ich melde mich gleich wieder.

    Attachments:
    #7567
    Thomas Hempel
    Teilnehmer

    Also, ich habe

    • ein Attribut Nummer (intern: nummer) angelegt
    • einen Testdatensatz erstellt
    • des Feld nächster Wert in Nummerkreise verändert sich nicht, steht auf 1
    • das Feld Nummer bleibt leer

    Hier die komplette Regel aus dem Nuclet von novabit:
    package org.nuclet.nummernkreise.rule;

    import org.nuclos.api.rule.InsertRule;
    import org.nuclos.api.context.InsertContext;
    import org.nuclos.api.annotation.Rule;
    import org.nuclos.api.businessobject.BusinessObject;
    import org.nuclos.api.businessobject.facade.Modifiable;
    import org.nuclos.api.exception.BusinessException;
    import org.nuclos.api.provider.BusinessObjectProvider;
    import org.nuclos.api.provider.QueryProvider;

    import org.nuclet.nummernkreise.logic.NummernkreiseLogik;

    /** @name GeneriereNummer
    * @description Generiert fortlaufende Nummern
    * @usage
    * @change
    */
    @Rule(name="GeneriereNummer", description="Generiert fortlaufende Nummern")
    public class GeneriereNummer implements InsertRule
    {
    public void insert(InsertContext context) throws BusinessException
    {
    //
    // @replace Bitte mit bei Nuclet-Integration mit eigenem Code füllen!
    //
    // Es folgen zwei Beispiele einer konkreten Umsetzung:
    //
    // Beispiel 1 (Nummerngenerierung nur für eine Entität "Auftrag"):
    //
    // final Auftrag test = context.getBusinessObject(Auftrag.class);
    // auftrag.setNummer(NummernkreiseLogik.getNextValue(Auftrag.class));
    //
    //
    // Beispiel 2 (Nummerngenerierung nur für verschiedene Entitäten):
    //
    // final Modifiable businessObject = context.getBusinessObject(Modifiable.class);
    //
    // if (businessObject instanceof Auftrag) {
    // ((Auftrag)businessObject).setNummer(NummernkreiseLogik.getNextValue(Auftrag.class));
    // } else if (businessObject instanceof Bestellung) {
    // ((Bestellung)businessObject).setNummer(NummernkreiseLogik.getNextValue(Bestellung.class));
    // } else if (businessObject instanceof Lieferschein) {
    // ((Lieferschein)businessObject).setNummer(NummernkreiseLogik.getNextValue(Lieferschein.class));
    // }

    final Kooperationspartner test = context.getBusinessObject(Kooperationspartner.class);
    Kooperationspartner.setNummer(NummernkreiseLogik.getNextValue(Kooperationspartner.class));
    }
    }

    Danke für alle Hinweise!

    #7568
    Frank Pavlic
    Teilnehmer

    Hallo Thomas,
    debug angekreuzt bedeutet, dass die Variablen mit Werten der Regel in den server.log ausgegeben wird. Damit kann man direkt sehen,warum zum Beispiel das Feld im Nummernkreis immer noch auf 1 steht. Allerdings musst du auch bei NummernkreiseLogik ebenfalls debug ankreuzen. Ohne die NummernkreiseLogik zu kennen, vermute ich, dass entweder in der Funktion getNextValue nach bestimmten Klassen-Instanzen gefragt wird, z.B. instanceof()-Aufrufe , oder aber dein Datensatz in Nummernkreise bzgl. Kooperationspartner falsch geschrieben ist. Ich kenne das nuclet selbst nicht, aber auf den ersten Blick kann es eigentlich nur einer dieser beiden Fehlerquellen sein.
    Wenn du also debug bei GeneriereNummer und NummernkreiseLogik setzt, anschliessend deinen Test wiederholst, wird die server.log den Fehler anzeigen. Lade
    diese dann nach den Tests hoch.

    Gruß
    Frank

    #7570
    Thomas Hempel
    Teilnehmer

    Danke für den Hinweis.
    Die Haken für debug habe ich bei beiden Regeln gesetzt.
    Beim heutigen Systemneustart ist jetzt ein rotes Ausrufezeichen an der Regel aufgetaucht. Das war gestern nicht da!? Siehe screenshot..

    Tut mir leid, ich kann aus den meterlangen Logbüchern nichts entnehmen, da das für mich unlesbar ist. Auch die Objekte von nuclos scheinen nirgends dokumentiert. Wenn ich ein Beispiel aus dem !kostenpflichtigen! nuclet Nummernkreise 1:1 umsetze und nichts funktioniert, ist das schon frustrierend. – das musste jetzt mal raus –

    Im Anhang also wieder ein log, in der Hoffnung dass mir hier jemand hilft.

    Der Datensatz im BO Nummernkreise lautet:
    Businessobjekt: Kooperationspartner
    Präfix: KO
    Stellenanzahl: 5
    Nächster Wert: 1

    #7571
    Thomas Hempel
    Teilnehmer

    Hallo vielleicht lerne ich doch das Logbuch zu lesen :sick: :
    Der Fehler lautet:
    2014-04-08 10:05:01,188 INFO [org.nuclos.server.customcode.codegenerator.NuclosJavaCompiler] -
    GeneriereNummer.java:48: cannot find symbol
    symbol: class Kooperationspartner

    Also wird die Regel nach wie vor nicht kompiliert. Da ich diese wie gesagt nur abgeschrieben habe, bitte ich um Hilfestellung.

    Dank und Gruß
    Thomas

Ansicht von 15 Beiträgen - 31 bis 45 (von insgesamt 52)