Home › Forum › Nuclos Entwicklung › Makros und Regeln › Neue Zeilen in Unterformular hinzufügen › Neue Zeilen in Unterformular hinzufügen
Hallo Frank.
Ich bekomme bei dem Status wechsel nur ein
2015-02-06 11:18:32,623 INFO [org.nuclos.server.common.NuclosRemoteInvocationExecutor] - client invocation of RemoteInvocation: method name 'changeStateByUser'; parameter types [org.nuclos.common.UID, java.lang.Long, org.nuclos.common.UID, java.lang.String] on org.nuclos.server.statemodel.ejb3.StateFacadeBean@7e632e98 took 298 (276) ms
es wird aber eine Mail versendet (Regel)
Die Regeln werden vorher bzw beim speichern geladen:
INFO [org.nuclos.server.customcode.codegenerator.NuclosJavaCompiler] - Execute Java compiler for source files: {benachrichtigunguser.java=PlainCG[code=org.nuclet.gig.benachrichtigunguser], kontaktnotizEintragen.java=PlainCG[code=org.nuclet.gig.kontaktnotizEintragen], NeuerBlickfeldSpieler.java=PlainCG[code=org.nuclet.gig.NeuerBlickfeldSpieler], test.java=PlainCG[code=org.nuclet.gig.test]}
System.out.println seh ich keines in den logs.
den Code zur regel habe ich eigentlich schon gepostet.
package org.nuclet.gig;
import org.nuclos.api.rule.StateChangeFinalRule;
import org.nuclos.api.context.StateChangeContext;
import org.nuclos.api.provider.StatemodelProvider;
import org.nuclos.api.annotation.Rule;
import org.nuclos.api.exception.BusinessException;
import org.nuclos.api.provider.BusinessObjectProvider;
import org.nuclos.api.provider.QueryProvider;
import java.text.SimpleDateFormat;
/** @name
* @description
* @usage
* @change
*/
@Rule(name="kontaktnotizEintragen", description="kontaktnotizEintragen")
public class kontaktnotizEintragen implements StateChangeFinalRule {
public void changeStateFinal(StateChangeContext context) throws BusinessException {
Spieler boSpieler = context.getBusinessObject(Spieler.class);
//kontakt info
String kontaktinfo = boSpieler.getKontaktinfo();
//Frist Datum auslesen und neu formatieren
SimpleDateFormat df = new SimpleDateFormat("dd.MM.yyyy");
String frist = df.format(boSpieler.getKontaktfrist());
Kontakt newKontaktnotiz = new Kontakt();
Spieler mySpieler = QueryProvider.getById(Spieler.class, boSpieler.getId());
newKontaktnotiz.setSpielerId(mySpieler.getId());
newKontaktnotiz.setNotiz("kontaktinfo");
boSpieler.insertKontakt(newKontaktnotiz);
System.out.println("TEST OUTPUT");
}
}
bezüglich referenzfeld – wie meinst du das ?
newKontaktnotiz.setSpielerId(mySpieler.getId());
sollte doch den aktuellen „Spieler“ (Datensatz im BO Spieler) auslesen – damit die Kontaktnotiz zum richtigen Datensatz zugeordnert wird ?
Das mit direkt in der Datenbank nachsehen mache ich nun.
lg und danke für dein Hilfe !!