Questions & Answers

SOLVED
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

Type a product name