Language: Deutsch · English
Event rule „Print (final)“: interface, context and an example – how to react to this Nuclos event.
REFERENZ DEVELOPER UPDATED: JUL 2026 APPLIES TO NUCLOS 4.2026.X
On this page
This server-side rule runs after a form/report has been printed. It can be assigned to a business object.
Skeleton of the rule class (the rule editor creates it automatically):
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 {
}
}
Context: PrintContext
The context PrintContext provides the affected BusinessObject via context.getBusinessObject(...); the RuleContext functions (providers) are also available. A BusinessException aborts the operation.
Assign it to the target via drag-and-drop in the server rule manager. Optionally restrict execution to a status or an action; control the order with the arrow buttons.
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);
}
}