execute script (Intregration-Funktion)

Prev Next

Die Funktion execute script (Intregration-Funktion) ermöglicht die Ausführung von Java Code als Skript.

images/download/attachments/201673993/image2020-10-26_16-0-58-version-1-modificationdate-1747043977800-api-v2.png

Der Parameter a definiert das Skript entweder direkt als Java Code (Text) oder gibt einen Dateipfad zu einer entsprechenden Textdatei an.

Die Parameter b, ..., j sind für den Funktionsaufruf optional. Zugewiesene Werte können im Skript über die entsprechenden Buchstaben (b, ..., j) adressiert werden.

Außerdem besteht im Kontext des Skripts Lesezugriff für alle im Profil verfügbaren Variablen, Listen und Maps:

  • Variablen können über den Vairablennamen (z. B. VAR_FILENAME) gelesen werden.

  • script.getList(„list_name“) gibt ein Objekt vom Typ java.util.List zurück, das inhaltlich der Liste mit dem Namen list_name entspricht.

  • script.getMap(„map_name“) gibt ein Object vom Typ java.util.Map zurück, das inhaltlich der Map mit dem Namen map_name entspricht.

Darüber hinaus besteht Zugriff auf DOM-Objekte (Typ: org.jdom.Document), die mit der Lobster_data-Standardfunktion call SOAP-WebService erzeugt werden können:

  • script.getDocument(„document_name“) gibt ein Object vom Typ org.jdom.Document zurück, dessen Inhalt dem DOM-Objekt mit dem Namen document_name entspricht.

HINWEIS◄ Ein erzeugtes DOM-Objekt kann innerhalb des Skripts über die Methode script.deleteDocument(„document_name“) oder außerhalb des Skripts über die Lobster_data-Standardfunktion delete DOM object(a) gelöscht werden.

Der Rückgabewert der Funktion kann optional über return „ergebnis“ gesetzt werden (s. Beispiele mit und ohne return).

Parameter

Parameter

Beschreibung

a

Skript oder (relativer) Dateipfad

b, ..., j

Skript-Parameter b, ..., j

Beispiele

Parameter a

Parameter b

Parameter c

Parameter d

...

Parameter j

Rückgabewert

Verkettung der Textwerte von Parameter b und c aus dem Funktionsaufruf:


b+c

Demo

Skript




DemoSkript

Rückgabe des Werts der Variablen VAR_FILENAME (hier: demo.txt):


return VAR_FILENAME;






demo.txt

Aufruf eines Skripts, das als Konfigurationsdatei bereitgestellt wurde:


./conf/MyScript.txt

 ./conf/MyScript.txt

//cast string parameter to long value
long value=Long.valueOf(b).longValue();
switch(value) {
    case 10:
        return "yyyyMMdd";
    case 20:
        return "dd.MM.yyyy";
    case 30:
        return "yyyy-MM-dd";
    default:
        return "yyyyMMdd";
}

30





yyyy-MM-dd

Zugriff auf einen Wert aus einer Map (im Parameter c) oder einer Variablen abhängig vom Wert in Parameter b:


if(b.equals("demo")) return script.getMap(c).get("demo"); else return VAR_FILENAME;

test

map_demo




demo.txt

Aufruf eines Skripts, das das als Parameter b bereitgestellte DOM-Objekt als String aufbereitet:


./conf/webservice/DOM_script.java

./conf/webservice/DOM_script.java

//using imports
import java.util.List;
import org.jdom.Document;
import org.jdom.Element;
 
//method to print jdom Element
private void printElement(List children, StringBuffer res, String tab){
	for (int i = 0; i < children.size(); i++) {
		Element child = (Element)children.get(i);
		res.append(child.getName() +": "+ child.getText() + "\n");
		printElement(child.getChildren(),res, tab+"\t");
	}
}
 
//get jdom Document for DOM name given in parameter b
Document dom = script.getDocument(b);
if(dom == null){
	return "DOM Object does not exsist";
}
Element root = dom.getRootElement();
List children = root.getChildren(); 
StringBuffer res = new StringBuffer();
//call method from above
printElement(children, res, "");
//returns String as Filter result
return res.toString();

myDOM





[object as string]