Nuclos Event-Regel Drucken (im Anschluss): Interface, PrintContext, Struktur, Zuweisung im Server-Regelmanager, Beispielcode (Java).

globe with meridians Sprache: Deutsch · English

open book Event - Drucken (im Anschluss)

Ereignis-Regel „Drucken (im Anschluss)“: Interface, Kontext und ein Beispiel – so reagierst du auf dieses Nuclos-Ereignis.

Auf dieser Seite

Wann greift die Regel?

Diese serverseitige Regel wird ausgeführt nach dem Drucken eines Formulars/Reports. Sie kann einem Businessobjekt zugewiesen werden.

Struktur

Grundgerüst der Regelklasse (der Regeleditor legt es automatisch an):

package org.nuclet.businessentity; 
import org.nuclos.api.rule.PrintFinalRule; 
import org.nuclos.api.context.PrintFinalContext; 
import org.nuclos.api.annotation.Rule; 
import org.nuclos.api.exception.BusinessException; 
/** @name        
  * @description 
  * @usage       
  * @change      
*/
@Rule(name="Dokumente archivieren", description="Dokumente archivieren")
public class Dokumentearchivieren implements PrintFinalRule {
    public void printFinal(PrintFinalContext context) throws BusinessException { 
    }
}

Der Kontext PrintContext liefert das betroffene BusinessObject über context.getBusinessObject(...); zusätzlich stehen die Funktionen des RuleContext (Provider) bereit. Eine BusinessException bricht den Vorgang ab.

Zuweisung

Im Server-Regelmanager per Drag-and-Drop dem Ziel zuweisen. Optional lässt sich die Ausführung auf einen Status oder eine Aktion einschränken; die Reihenfolge steuerst du über die Pfeil-Buttons.

Beispiel

Das folgende Beispiel soll den Aufbau einer Regel vom Typ „PrintFinal„ und die Weiterverarbeitung der übergebenen Inhalte veranschaulichen.

package de.mynuclet; 
import org.nuclos.api.rule.PrintFinalRule; 
import org.nuclos.api.context.PrintFinalContext; 
import org.nuclos.api.annotation.Rule; 
import org.nuclos.api.exception.BusinessException; 
import org.nuclos.api.context.PrintResult;
import org.nuclos.api.provider.BusinessObjectProvider;
/** @name        
  * @description 
  * @usage       
  * @change      
*/
@Rule(name="PrintFinalRuleBeispiel", description="PrintFinalRuleBeispiel")
public class PrintFinalRuleBeispiel implements PrintFinalRule {
    public void printFinal(PrintFinalContext context) throws BusinessException { 
        final Auftrag auftrag = context.getBusinessObject(Auftrag.class);
        for (final PrintResult result : context.getPrintResults()) {
            Auftragsdokument auftragsdokument = new Auftragsdokument();
            auftragsdokument.setDatei(result.getOutput());
            auftragsdokument.setDatum(new java.util.Date());
            context.log("insert Auftragsdokument " + result.getOutput().getName());
            auftrag.insertAuftragsdokument(auftragsdokument);
        }
        BusinessObjectProvider.update(auftrag);
    }
}

Verwandte Seiten

open book Regeln (serverseitig)


Grundlagen.

Öffnen →

gear Server Regelmanager


Zuweisen.

Öffnen →

clipboard Ausführungsreihenfolge der Regeln


Reihenfolge.

Öffnen →