Versionen im Vergleich

Schlüssel

  • Diese Zeile wurde hinzugefügt.
  • Diese Zeile wurde entfernt.
  • Formatierung wurde geändert.
Kommentar: Mandantenabhängige Verarbeitung in Jobs

...

Codeblock
package example.rest; 

import java.util.ArrayList;
import java.util.List;

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

/** @name        
  * @description 
  * @usage       
  * @change      
*/

@Rule(name="OrderJob", description="Example transactional job rule")
public class OrderJob implements JobRule, TransactionalJobRule {

	public void execute(JobContext context) {
		// encapsulated transaction begin
		Order myOrder = (Order) context.getTransactionalObject();
		// do something ...

		// encapsulated transaction end
	}

	public List<Object> getTransactionalObjects(JobContext context) {
		List<Object> result = new ArrayList<Object>();
		try {
			result.addAll(QueryProvider.getByState(Order.class, ExampleorderSM.State_80));
		} catch (BusinessException e) {
			context.joblogError(e.getMessage());
		}
		return null;
	}
}


Mandantenabhängige Verarbeitung in Jobs

(ab Nuclos 4.3)

Wird die Mandantenfähigkeit für ein BO aktiviert, werden automatisch alle objektbezogenen Regeln (Speichern, Status, etc.) im Kontext des im BO hinterlegten Mandanten ausgeführt. Damit werden z.B. Queries auf andere BOs, welche ebenfalls mandantenabhängig sind, automatisch auf den gleichen Mandanten eingeschränkt. 

Da ein Job nicht objektbezogen arbeitet kann in der Jobsteuerung gepflegt werden, für welche Mandanten dieser Job laufen soll. Ein Joblauf wird dann alle eingetragenen Mandanten berücksichtigen und hintereinander die execute Methode mit einem entsprechenden mandanteneingeschränkten Kontext aufrufen.

Eine weitere Alternative bietet die TransactionalJobRule (siehe weiter oben), wenn die Liste mandantenabhängige BOs enthält. In solch einem Fall ist die neue Transaktion auch gleich auf den im BO hinterlegten Mandanten eingeschränkt. Das hat den Vorteil, dass keine zusätzliche Konfiguration im Job nötig ist.

Zuweisung

Klassen des Typs "Job" können nur Fristen zugewiesen werden. Nach der Verknüpfung erscheint die Klasse nach Auswahl der Frist und des Typs im Zuweisungsfenster.

...