phillip_austerf
New Creator

Serverseitiges Script - PageRef/Folder per Dialogbox auswählen

Hallo zusammen,

ich habe eine Frage zu folgendem Szenario:

Ich möchte einen Arbeitsauftrag erstellen, welcher eigentlich nur ein Script auf dem Server ausführt (das ist kein Problem). Der Auftrag wird über den JavaClient ausgeführt  - optimalerweise jedoch auch über den WebClient, wäre aber nur ein schöner Bonus.

Diesem Script benötigt als Information jedoch eine PageRef oder -Folder aus der Struktur.

Im Generate Task wird ja hier ein Dialogfenster eingeblendet, welches die Struktur abbildet und Dateien auswählen lässt. Dies wäre natürlich exakt das, was ich brauche um eine entsprechende PageRef auszuwählen.

Gibt es eine Möglichkeit, diesen Dialog bzw. diese Funktionalität in einem Script zu verwenden?

Viele Grüße,
Phillip.

5 Replies
pavone
I'm new here

Hallo Phillip,

ich hätte zwei Lösungsvorschläge für dich:

1. Wenn nichts dagegen spricht, könntest du die Einblende-Logik des Arbeitsablaufes so anpassen, dass ein Aufruf nur auf einem PageRefFolder bzw. einer PageRef möglich ist. Innerhalb deines Skriptes erhältst du über context.getStoreElement() das Element (also ein PageRefFolder oder eine PageRef), auf dem der Arbeitsablauf gestartet wurde.

2. Andernfalls kannst du dir über einen OperationAgent eine SelectStoreElementOperation holen. Mit dieser lässt sich ein Dialog anzeigen, in dem der Benutzer eine Element auswählen kann. Über verschiedene Methoden von SelectStoreElementOperation kannst du die Auswahlmöglichkeiten an deine Anforderungen anpassen.

Viele Grüße

Tim

Hallo Phillip,

benötigst du noch weitere Hilfe oder konnte dir Tims Antwort bereits helfen? In diesem Fall wäre es super, wenn du seine Antwort als "richtige Antwort" kennzeichnest.

Solltest du inzwischen eine eigene Lösung gefunden haben, wäre es toll, wenn du diese hier erläutern könntest, um sie auch den anderen Community-Teilnehmern zur Verfügung zu stellen.

Viele Grüße

Michaela

0 Kudos

Hallo Michaela,

war leider unterwegs. Daher die späte Antwort.

Meine Implementierung sähe wie folgt aus:

//

// executable

//

ScheduleContext context = (ScheduleContext) map.get("context");

OperationAgent operationAgent = context.requireSpecialist(OperationAgent.TYPE);

SelectStoreElementOperation pOperation = operationAgent.getOperation(SelectStoreElementOperation.TYPE);

Dafür bekomme ich eine Fehlermeldung:

java.lang.IllegalStateException: No specialist found for 'de.espirit.firstspirit.agency.OperationAgent$1@ae70ccac'!

Wie muss ich hier vorgehen? Die Befehle werden innerhalb eines Scripts in einem Auftrag ausfgeführt.

Viele Grüße,
Phillip.

0 Kudos

Hallo Tim,

danke für den Hinweis, aber es klappt noch nicht so ganz...

Viele Grüße,
Phillip.

0 Kudos

Ist das Fragment aus einem Auftrags-Skript? Dort kann man keinen Dialog öffnen. Der Code muss in das Skript auf dem Client, wo der Auftrag heraus gestartet wird.

Peter
0 Kudos