Home › Forum › Allgemeines › Allgemeines zu Nuclos › [HOWTO] Regelentwicklung in Eclipse
- Dieses Thema hat 1 Antwort und 2 Teilnehmer, und wurde zuletzt aktualisiert vor 2 Jahre, 8 Monaten von
caf.
-
AutorBeiträge
-
11 Juli 2011 um 22:46 Uhr #3955
Daniel Hammerschmidt
TeilnehmerEs wurde schon in mehreren Posts geschrieben, dass es problematisch sei, Regeln zu entwickeln und zu debuggen.
z.B.:
https://www.nuclos.de/index.php/de/forum/makros-und-regeln/3022-debugging-und-logfiles
https://www.nuclos.de/index.php/de/forum/makros-und-regeln/1718-beschreibung-der-regeln-apis
https://www.nuclos.de/index.php/de/forum/allgemeines-zu-nuclos/3113-nuclos-309-nicht-einsetzbar-Voraussetzung ist, das sowohl Server als auch Client im Eclipse Debugger laufen und aus den Quellen kompiliert wird. (Wenn das gewuenscht und erlaubt ist, wuerde ich noch posten, wie das geht, oder eine Seite im Wiki dazu schreiben. (Was sagt das Support-Team dazu?))
Jetzt muss der Classpath des NuclosJavaCompilers angepasst werden. Das geschieht in org.nuclos.server.customcode.codegenerator.NuclosJavaCompiler::init().
Index: src/java/org/nuclos/server/customcode/codegenerator/NuclosJavaCompiler.java
===================================================================
--- src/java/org/nuclos/server/customcode/codegenerator/NuclosJavaCompiler.java (revision 32)
+++ src/java/org/nuclos/server/customcode/codegenerator/NuclosJavaCompiler.java (working copy)
@@ -147,8 +147,12 @@
private void init() {
try {
Listclasspath = new ArrayList ();
+ File wsdlDirectory = NuclosSystemParameters.getDirectory(NuclosSystemParameters.WSDL_GENERATOR_LIB_PATH);
+ String classesPath = wsdlDirectory.getAbsolutePath().concat("/../classes");
+ File classesDirectory = new File(classesPath);
+ classpath.add(classesDirectory);
classpath.addAll(getExpandedSystemParameterClassPath());
- classpath.addAll(getLibs(NuclosSystemParameters.getDirectory(NuclosSystemParameters.WSDL_GENERATOR_LIB_PATH)));
+ classpath.addAll(getLibs(wsdlDirectory));
stdFileManager.setLocation(StandardLocation.CLASS_PATH, new ArrayList(classpath));
stdFileManager.setLocation(StandardLocation.SOURCE_OUTPUT, Collections.singleton(getSourceOutputPath()));
stdFileManager.setLocation(StandardLocation.CLASS_OUTPUT, Collections.singleton(getBuildOutputPath()));
Jetzt steht an erster Stelle im Pfad das Verzeichnis webapp/WEB-INF/classes, in das Eclipse die Uebersetzten Quellen wirft.
Jetz brauchen wir noch den Code fuer die Regel:
package org.nuclos.project.bcdb;import org.nuclos.common.collect.collectable.CollectableEntity;
import org.nuclos.common.collect.collectable.CollectableEntityField;
import org.nuclos.common.collect.collectable.Collectable;
import org.nuclos.common.collect.collectable.CollectableField;
import org.nuclos.common.collect.collectable.CollectableValueField;
import org.nuclos.common.collect.collectable.CollectableValueIdField;
import org.nuclos.common.collect.collectable.searchcondition.*;
import org.nuclos.common.*;
import org.nuclos.common.mail.*;
import org.nuclos.common.fileimport.*;
import org.nuclos.server.common.*;
import org.nuclos.server.common.calendar.CommonDate;
import org.nuclos.server.customcode.NuclosRule;
import org.nuclos.server.genericobject.valueobject.*;
import org.nuclos.server.masterdata.valueobject.*;
import org.nuclos.server.ruleengine.*;
import org.nuclos.common.dal.vo.EntityObjectVO;
import java.util.*;public class TestRule {
public static void rule(RuleInterface server) throws NuclosBusinessRuleException {
// do stuff
}
}
und eine Wrapper-Geschaeftsregel in Nuclos.
/** @name TestRegel
*/public void rule(RuleInterface server) throws NuclosBusinessRuleException {
org.nuclos.project.bcdb.TestRule.rule(server);
}
Das eignet sich allerdings nur zum lokalen Entwickeln auf einer Maschine, funktioniert die Regel, kann sie
dann in den Nuclos-Regel-Editor kopiert und dem Codegenerator uebergeben werden.Viel Spass
Daniel
14 September 2020 um 08:34 Uhr #26169caf
VerwalterHallo Zusammen,
es gibt dazu einen guten Wiki Artikel
https://wiki.nuclos.de/display/Entwicklung/Tutorial%3A+Einbinden+von+Nuclos+in+IntelliJ+IDEA -
AutorBeiträge