kuaza
Elite Observer

ValidationAgent geht nicht in Einblendelogik eines Arbeitsablaufes?

Jump to solution

Hallo,

kann es sein, dass der ValidationAgent in der Einblendelogik von Arbeitsabläufen generell nicht zur Verfügung steht?

Ich hatte ein zunächst ein Script angelegt, dass in etwa wie folgt anfing:

import de.espirit.firstspirit.access.store.Store;

import de.espirit.firstspirit.agency;

import de.espirit.firstspirit.agency.*;

import de.espirit.firstspirit.agency.ValidationAgent;

import de.espirit.firstspirit.agency.ValidationAgent.*;

import de.espirit.firstspirit.ui.operations.*;

storeElement = context.getStoreElement();

if (storeElement != null) {

     storeType = storeElement.getStore().getType();            

     validationAgent = context.requireSpecialist(de.espirit.firstspirit.agency.ValidationAgent.TYPE);

....

Als Kontektmenü-Skript funktioniert dies auch einwandfrei.

In der Eingabelogik eines Arbeitsablaufes wiederrum erzeugt die fett-markierte Zeile einen Fehler:

Target exception: java.lang.IllegalStateException: No specialist found for 'de.espirit.firstspirit.agency.ValidationAgent$1@87a036bc'!

Hab ich etwas übersehen, oder steht er in der Einblendelogik wirklich nicht zur Verfügung?

Gruß,

Micha

1 Solution

Accepted Solutions
kuaza
Elite Observer

Bin nun den Weg über  Broker + BrokerAgent gegangen. So funktionierts nun komischerweise auch in der Einblendelogik:

SpecialistsBroker broker = context.getConnection().getBroker();

BrokerAgent brokerAgent = broker.requireSpecialist(BrokerAgent.TYPE);

broker = brokerAgent.getBrokerByProjectName("PROJEKTNAME");

ValidationAgent validationAgent = broker.requireSpecialist(ValidationAgent.TYPE);

View solution in original post

6 Replies
kuaza
Elite Observer

Bin nun den Weg über  Broker + BrokerAgent gegangen. So funktionierts nun komischerweise auch in der Einblendelogik:

SpecialistsBroker broker = context.getConnection().getBroker();

BrokerAgent brokerAgent = broker.requireSpecialist(BrokerAgent.TYPE);

broker = brokerAgent.getBrokerByProjectName("PROJEKTNAME");

ValidationAgent validationAgent = broker.requireSpecialist(ValidationAgent.TYPE);

Hallo Micha,

das klingt zunächst mal nach einem Fehler. Ich konnte aber keine Stelle sehen, an der der Agent nicht zur Verfügung gestellt wird. Kannst du bitte noch die FirstSpirit-Version und den Typ des StoreElements nennen, auf dem der Workflow gestartet werden soll? In welchem Kontext soll der Arbeitsablauf gestartet werden (anscheinend ja nicht in der UI direkt auf einem ausgewählten Element)? Gibt es evtl. Log-Ausgaben, die mehr als nur "nicht gefunden" sagen?

Dank und Gruß

Stefan

0 Kudos

Hallo Stefan,

das Storeelement ist vom Typ Page und die FS Version ist: 5.0.424.59809.

Weitere Hinweise liefern die Logs leider nicht.

Der Kontext ist mir auch noch ein kleines Rätsel - letztendlich läuft das ja in der Einblendelogik des Workflow (siehe Screen), als Kontext wird mir "GuiWorkflowScriptContextImpl" zurückgeliefert, den ich aber nirgends in der API finden konnte.

screen.png

Gruß

0 Kudos

Hi,

Implementierungsklassen stehen nur äußerst selten in der API Smiley Wink

Das passende Interface ist ClientScriptContext.

Tatsächlich scheint es so, dass in der genannten Version überhaupt keine Agents aus dem ScriptContext heraus zur Verfügung stehen und dies erst ab dem Release von 5.0.5 behoben sein wird.

Grüße

Stefan

0 Kudos

Ok, dann stellt sich mir aber  die Frage, warum der identische Code in einem Kontextmenu-Skript funktioniert hatte - dieser läuft doch auch über den ScriptContext, oder nicht? Smiley Happy

0 Kudos

Über das Kontextmenü bekommt das Skript einen anderen Kontext, keinen Workflow-bezogenen.

0 Kudos