Home Forum Nuclos Konfiguration Businessprozesse Automatisch fortlaufende Nummer Automatisch fortlaufende Nummer

#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!