Hallo Zusammen!
Ich habe für eine Entität „Auftrag“ einen Event angelegt, der die Summe der Positionen errechnen soll (im Beispiel nur die Schleife implementiert):
package org.nuclet.businessentity;
import org.nuclos.api.rule.InsertRule;
import org.nuclos.api.context.InsertContext;
import org.nuclos.api.annotation.Rule;
import org.nuclos.api.exception.BusinessException;
/** @name
* @description
* @usage
* @change
*/
@Rule(name="AuftragAnlegen", description="Auftrag anlegen")
public class AuftragAnlegen implements InsertRule {
public void insert(InsertContext context) throws BusinessException {
Auftrag auftrag = context.getBusinessObject(Auftrag.class);
// jetzt werden alle Positionen überprüft
for (AuftragPos position : auftrag.getAuftragPos()) {
}
}
}
Dabei erhalten ich immer folgenden Fehler:
Ein Fehler ist aufgetreten.
java.lang.IllegalArgumentException: CollectableComparison.error
Der Comparand (Vergleichswert) darf für einen Vergleich nicht leer sein.
Ist es so, dass bei Anlegen (also noch vor dem Speichern) nicht auf die Positionen (die im einem Subform eingegeben werden) zugegriffen werden kann?
Viele Grüße
Ronald
Im Logfile findet sich übrigens folgendes:
2013-06-02 17:11:33,169 WARN [org.springframework.remoting.support.RemoteInvocationTraceInterceptor] - Processing of HttpInvokerServiceExporter remote call resulted in fatal exception: org.nuclos.server.genericobject.ejb3.GenericObjectFacadeRemote.create
java.lang.IllegalArgumentException: CollectableComparison.error
at org.nuclos.common.collect.collectable.searchcondition.CollectableComparison.(CollectableComparison.java:82)
at org.nuclos.common.SearchConditionUtils.newEOidComparison(SearchConditionUtils.java:121)
at org.nuclos.server.nbo.AbstractBusinessObject.loadDependantsFromDB(AbstractBusinessObject.java:205)
at org.nuclos.server.nbo.AbstractBusinessObject.getDependents(AbstractBusinessObject.java:121)
at org.nuclet.businessentity.Auftrag.getAuftragPos(Auftrag.java:301)
at org.nuclet.businessentity.AuftragAnlegen.insert(AuftragAnlegen.java:34)