Versionen im Vergleich

Schlüssel

  • Diese Zeile wurde hinzugefügt.
  • Diese Zeile wurde entfernt.
  • Formatierung wurde geändert.

...

context."#FUNCTION{org.nuclet.rules.MyFunction}"(context."#{DEF.Kunde.kundennr}")


Logausgaben

Um Clientregeln zu debuggen, können Logausgaben eingegeben werden:

    log.info("Logausgabe")

Die Ausgabe kann in der Scripting-Ausgabe (Fenster / Ausgabe (Scripting)) eingesehen werden.


Aktueller User (Nuclos Version 4.0.15 und höher)

Die Variable username kann in Groovy Skripten verwendet werden.

In dieser Variable vom Typ java.lang.String steht der aktuelle User.

z.B.: def anwender = username

Der aktuelle User wird in die Variable anwender übertragen.


Known Issues- Best Practice

Feld aus Elternbusinessobjekt / Hauptbusinessobjekt auslesen

Codeblock
languagegroovy
fieldFromParent = context."#{<NUCLET>.<SUBENTITY>.<REFERENCEFIELD>.context}"."#{<NUCLET>.<PARENTENTITY>.<FIELD>}"

z.B. Statusnumeral des Elternobjektes ermitteln:

Codeblock
languagegroovy
stateNumeral = context."#{NUC.Rechnungsposition.rechnung.context}"."#{NUC.Rechnung.nuclosStateNumber}"
Hinweis

(Warnung) Das Feld, das aus dem Elternbusinessobjek ausgelesen werden soll, muss im Layout vorhanden sein. Soll es nicht sichtbar sein für den Benutzer, kann es deaktiviert werden.

Messagebox anzeigen


Codeblock
languagegroovy
firstline0
linenumberstrue
import groovy.swing.SwingBuilder
import javax.swing.*
import java.awt.*

def swing = new SwingBuilder()
def myMainFrame = new Frame()

if (context."#{S663.Auftrag.eingangsdatum}" != null) {
	swing.edt {
		JOptionPane.showMessageDialog(
			myMainFrame, "Hello There"
		);
	}
}


Berechnungsrichtung abhängig von einem Parameter ändern

Szenario: Feld A soll aus Feld B berechnet werden, wenn eine boolena-Variable den Wert wahr hat, andernfalls soll Feld B soll aus Feld A berechnet werden.

Codeblock
languagegroovy
firstline0
titleBerechnungsvorschrift Feld A
linenumberstrue
def berechneAausB = context."#{J94R.businessobject.aausb}"
if (berechneAausB==false) {
	def currentValue = context."#{J94R.businessobject.felda}"
	return currentValue
} else {
	def feldB = context."#{J94R.businessobject.feldb}"
	return feldB*10
}


Codeblock
languagegroovy
firstline0
titleBerechnungsvorschrift Feld B
linenumberstrue
def berechneAausB  = context."#{J94R.businessobject.aausb}"
if (berechneAausB) {
    def currentvalue = context."#{J94R.businessobject.feldb}"
    if (currentvalue == null)
       throw new Exception("Exit")	
    else
       return currentvalue     
} else {
	def feldA = context."#{J94R.businessobject.felda}"
	return feldA/10
}