alexanderan
I'm new here

Executable Interface

Hallo zusammen,

ich habe einige meiner alten Skripte auf das Executable Interface umgestellt. Leider lässt mich die Doku etwas im Dunkeln tappen.

Welche Methode wird wann aufgerufen?

In der Access API sind die beiden Methoden des Interfaces Executable definiert, jedoch habe ich noch nicht herausbekommen, wofür die beiden Versionen gebraucht werden.

public Object execute(Map<String,Object> context) throws ExecutionException

public Object execute(Map<String,Object> context, Writer out, Writer err) throws ExecutionException

Bei meinen Aufrufen (Script in Auftragsverwaltung und aus JavaClient über Kontextmenu) würde stets die zweite Methode aufgerufen.

Wann wird der Rückgabewert ausgewertet?

Beide Varianten der execute Methode liefert ein Object als Rückgabewert zurück. In den Beispielen, die ich bisher gefunden habe wird hier stets ein boolean zurückgegeben.

Ist der Rückgabewert überhaupt relevant?

Kann ich innerhalb eines Auftrages auf die Rückgabewerte anderer Tasks in meinem Auftrag zugreifen?

Über Hinweise zu den obigen Themen würde ich mich freuen.

Viele Grüße,

Andreas Alexander

0 Kudos
2 Replies
Peter_Jodeleit
Crownpeak employee

Der Rückgabewert ist nur bei einigen Einsatzzwecken relevant. Bei der Verwendung in Aufträgen beispielsweise wird der Rückgabewert nicht ausgewertet oder gespeichert.

Bei der Verwendung aus einem Template heraus kann der Rückgabewert ein Text sein, der dann in die Ausgabe (z.B. die generierte HTML-Seite) geschrieben wird.

Peter

Danke für die schnelle Antwort.

Diesen Einsatzzweck hatte ich nicht im Fokus. Da macht der Rückgabewert Sinn. Bei der Verwendung in Templates wird auch die zweite Aufrufvariante (also mit Writer-Objekten für out und error) verwendet?

0 Kudos