Nuclos Event-Regel Objektgenerierung: Interface, GenerateContext, Struktur, Zuweisung im Server-Regelmanager, Beispielcode (Java). |
Sprache: Deutsch · English
Ereignis-Regel „Objektgenerierung“: Interface, Kontext und ein Beispiel – so reagierst du auf dieses Nuclos-Ereignis.
Auf dieser Seite |
Diese serverseitige Regel wird ausgeführt während einer Objektgenerierung (vor dem Speichern). Sie kann einem Objektgenerator zugewiesen werden.
Grundgerüst der Regelklasse (der Regeleditor legt es automatisch an):
package org.nuclet.lager;
import org.nuclos.api.rule.GenerateRule;
import org.nuclos.api.context.GenerateContext;
import org.nuclos.api.annotation.Rule;
import org.nuclos.api.exception.BusinessException;
/** @name
* @description
* @usage
* @change
*/
@Rule(name="Arbeitschritt Lager", description="Arbeitschritt Lager")
public class ArbeitschrittLager implements GenerateRule {
public void generate(GenerateContext context) throws BusinessException {
}
} |
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 „Objektgenerierung„ und die Weiterverarbeitung der übergebenen Inhalte veranschaulichen.
package org.nuclet.company;
import org.nuclos.api.rule.GenerateRule;
import org.nuclos.api.context.GenerateContext;
import org.nuclos.api.annotation.Rule;
import org.nuclos.api.exception.BusinessException;
import java.util.Collection;
/** @name
* @description
* @usage
* @change
*/
@Rule(name="BestellungErstellen", description="BestellungErstellen")
public class BestellungErstellen implements GenerateRule {
public void generate(GenerateContext context) throws BusinessException {
Collection<Anfrage> sourceObjects = context.getSourceObjects(Anfrage.class);
int sumOfArticles = 0;
for (Anfrage a: sourceObjects) {
// How many articles are in this inquiry
sumOfArticles += a.getAnfrageposition().size();
}
Bestellung targetObject = context.getTargetObject(Bestellung.class);
targetObject.setKurzbeschreibung("Diese Bestellung umfasst " + sumOfArticles + " Artikelpositionen.");
}
} |