| Auszug | ||
|---|---|---|
| ||
Nuclos Event-Regel Drucken (im Anschluss): Interface, PrintContext, Struktur, Zuweisung im Server-Regelmanager, Beispielcode (Java). |
Sprache: Deutsch · English
Ereignis-Regel „Drucken (im Anschluss)“: Interface, Kontext und ein Beispiel – so reagierst du auf dieses Nuclos-Ereignis.
| Status | ||||
|---|---|---|---|---|
|
| Status | ||||
|---|---|---|---|---|
|
| Status | ||||
|---|---|---|---|---|
|
| Status | ||||
|---|---|---|---|---|
|
| Panel | ||||
|---|---|---|---|---|
| ||||
Auf dieser Seite
|
Regeln des Typs "PrintFinal" können nur Businessobjekte zugewiesen werden und müssen das Interface "PrintFinalRule" implementieren.
Innerhalb des Baums mit der Regelbibliothek werden sie dem Knoten "PrintFinal" zugeschrieben.
|
Diese serverseitige Regel wird ausgeführt nach dem Drucken eines Formulars/Reports. Sie kann einem Businessobjekt zugewiesen werden.
Grundgerüst der Regelklasse (der Regeleditor legt es automatisch an):
...
| Codeblock | ||
|---|---|---|
|
...
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 {
}
} |
| Info | ||
|---|---|---|
| ||
Der Kontext |
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.
Das folgende Beispiel soll den Aufbau einer Regel vom Typ „PrintFinal„ und die Weiterverarbeitung der übergebenen Inhalte veranschaulichen.
| Codeblock | ||
|---|---|---|
| ||
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);
}
} |
Das entsprechende Interface schreibt die Implementierung der Methode "printFinal" vor und liefert als Kontext die Klasse PrintFinalContext.
Darin enthalten sind
Weiterhin können die Funktionen des übergeordneten RuleContexts genutzt werden.
Nach dem Absenden der Druckaufträge an Nuclos wird eine Instanz der PrintFinalRule erstellt und die print-Methode mit einem PrintFinalContext aufgerufen.
Dieser enthält die gesammelten Druckergebnisse.
Innerhalb der printFinal-Methode kann der Regelprogrammierer auch eine BusinessException werfen, die zum Abbruch des Events führt. Die Fehlermeldung wird in Nuclos angezeigt.
Die Angabe der Annotation "Rule" ist nicht zwingend notwendig, wird aber empfohlen, da die Beschreibungen (name und description) im Regelbibliotheksbaum angezeigt werden.
Klassen des Typs "Print" können nur Businessobjekte zugewiesen werden. Nach der Verknüpfung erscheint die Klasse nach Auswahl des Businessobjekts und des Typs im Zuweisungsfenster und bietet folgende weitere Einstellungsmöglichkeiten:
Mit dem Symbol des Mülleimers kann die Zuweisung der Klasse zum Businessobjekt gelöscht werden. Wichtig ist, dass damit nur die Zuweisung gelöscht wird, nicht die Regel selbst. Weiterhin lässt sich mit Hilfe der Pfeile-Buttons die Ausführungsreihenfolge verändern. Jede Änderung wird automatisch gespeichert.
Hier finden Sie ein Beispiel, das den Aufbau einer Regel vom Typ "PrintFinal" veranschaulicht.