Versionen im Vergleich

Schlüssel

  • Diese Zeile wurde hinzugefügt.
  • Diese Zeile wurde entfernt.
  • Formatierung wurde geändert.

...

Eine bestehende Nuclos-Instanz umfasst die Entität das Businessobjekt Bestellungen. Weiterhin wurde ein Job eingerichtet, der jede Nacht um eine bestimmte Uhrzeit ausgeführt wird. Die folgende Regel wird mit dem Job verknüpft und bei jedem Lauf ausgeführt. Aufgabe ist es, alle Bestellungen auf ihre formale Korrektheit zu prüfen und je nach Verstoß Meldungen zu loggen.

...

Codeblock
package org.nuclet.company; 

import java.util.List;

import org.nuclos.api.annotation.Rule;
import org.nuclos.api.context.JobContext;
import org.nuclos.api.provider.QueryProvider;
import org.nuclos.api.rule.JobRule;

/** @name        
  * @description 
  * @usage       
  * @change      
*/
@Rule(name="JobBestellungenPruefen", description="JobBestellungenPruefen")
public class JobBestellungenPruefen implements JobRule {

    public void execute(JobContext context){ 
        // Get all Bestellungen
        List<Bestellung> lstBestellungen = QueryProvider.execute(
                QueryProvider.create(Bestellung.class));
        
        for (Bestellung b : lstBestellungen) {
            // orders that are not confirmed are ok, but should be logged as infos
            if (Boolean.FALSE.equals(b.getBestaetigt())) {
                context.joblog("Info: Bestellung " + b.getNummer() + " wurde noch nicht bestätigt.");
            }
            
            // orders without articles are formally valid, but dont make sense
            if (b.getPosition().size() <= 0) {
                context.joblogWarn("Warnung: Bestellung " + b.getNummer() + " besitzt keine Positionen");
            }
            
            // orders without an internal advisor are formally invalid 
            if (b.getSachbearbeiter() == null) {
                context.joblogError("Fehler: Bestellung " + b.getNummer() + " besitzt keinen Sachbearbeiter");
            }
                        
        }
        
    }
}