Home › Forum › Nuclos Konfiguration › Businessprozesse › Automatisch fortlaufende Nummer
- Dieses Thema hat 51 Antworten und 15 Teilnehmer, und wurde zuletzt aktualisiert vor 9 Jahren, 7 Monaten von
caf.
-
AutorBeiträge
-
12 April 2012 um 13:15 Uhr #5493
Mario Reuter
TeilnehmerHallo 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
12 April 2012 um 15:06 Uhr #5496Frank Pavlic
TeilnehmerHallo 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ß
Frank13 April 2012 um 12:16 Uhr #5499Mario Reuter
TeilnehmerHallo Frank,
Danke … die ZIP doch einfach übersehen … :huh:
Funktioniert nach etwas testen auch wunderbar … danke auch an Hugo 🙂
13 April 2012 um 22:12 Uhr #5503Frank Pavlic
Teilnehmer… und die Lorbeeren für Matthias nicht vergessen 😛
Gruß
Frank22 September 2012 um 15:55 Uhr #5970Markus Meier
TeilnehmerMit version 3.6 klappt es nicht mehr gibt nur noch ne Fehlermeldung aus.
23 September 2012 um 17:19 Uhr #5971Frank Pavlic
TeilnehmerHallo,
hast du auch noch die Fehlermeldung inklusive Log-Einträgen parat? Dann kann ich Dir evtl. weiterhelfen.Gruß
Frank
27 Juni 2013 um 16:13 Uhr #6781Thorsten Forkel
TeilnehmerIch 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
Thorsten27 Juni 2013 um 18:47 Uhr #6782Ramin Goettlich
TeilnehmerAm einfachsten lässt sich das mit dem Nuclet für Nummerngenerierung aus dem Nuclet Downloadbereich erreichen.
7 April 2014 um 12:55 Uhr #7563Thomas Hempel
TeilnehmerHallo,
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!
7 April 2014 um 13:52 Uhr #7565Frank Pavlic
TeilnehmerHallo 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ß
Frank7 April 2014 um 14:31 Uhr #7566Thomas Hempel
TeilnehmerOk, 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:7 April 2014 um 14:40 Uhr #7567Thomas Hempel
TeilnehmerAlso, 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!7 April 2014 um 15:58 Uhr #7568Frank Pavlic
TeilnehmerHallo 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ß
Frank8 April 2014 um 12:16 Uhr #7570Thomas Hempel
TeilnehmerDanke 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: 18 April 2014 um 16:34 Uhr #7571Thomas Hempel
TeilnehmerHallo 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 KooperationspartnerAlso wird die Regel nach wie vor nicht kompiliert. Da ich diese wie gesagt nur abgeschrieben habe, bitte ich um Hilfestellung.
Dank und Gruß
Thomas -
AutorBeiträge