flba
I'm new here

Dialog einblenden bei Auftrag

Jump to solution

Guten Tag zusammen,

gibt es eine Möglichkeit aus einem Auftrag heraus Dialoge, sei es den undokumentierten CMSDialog oder die JOptionPane, zu erzeugen?

Wenn ich das Ganze als Skript in den Vorlagen anlegen und ausführe funktioniert es einwandfrei, aber im ScheduleContext scheint das Skript keine Rückschlüsse auf die GUI ziehen zu könne und es kommt zu Fehlern. Generell ist das Verhalten auch nachvollziehbar, da die Aufträge ja in erster Linie GUI-unabhängig ablaufen. Besteht aber dennoch die Möglichkeit solche einen Dialog, im Falle einer bestehenden GUI, anzuzeigen?

Schöne Grüße,

Florian Bätz

0 Kudos
1 Solution

Accepted Solutions
Wenn der Auftrag über Projekt->Auftrag ausführen gestartet wird habe ich aber nicht mehr die Möglichkeit 1 und 4 selbst zu steuern oder seh ich das falsch?

Korrekt, an dieser Stelle besteht keine Möglichkeit, sich einzuklinken.

Peter

View solution in original post

0 Kudos
9 Replies
andre
I'm new here

Hallo,

Welche FirstSpirit-Vesion wird genutzt und wie sieht der/die StackTrace(s) aus?

generell kann mit GraphicsEnvironment#isHeadless getestet werden ob eine MOuse,Keyboard, Grafikarte angesprochen werden kann.

gruss

andre

0 Kudos

Genutzt wird 4.2.432.

Und der StackTrace sieht im Falle des CMSDialogs folgendermaßen aus (der Import ist drin):

ERROR 05.04.2011 12:09:51.208 {seID=427417} (de.espirit.firstspirit.server.scheduler.ScriptTaskExecutor): error during script execution : de.espirit.firstspirit.access.script.ExecutionException: Attempt to resolve method: showInfoDialog() on undefined variable or class name: CMSDialog at line 21

de.espirit.firstspirit.access.script.ExecutionException: Attempt to resolve method: showInfoDialog() on undefined variable or class name: CMSDialog at line 21

    at de.espirit.firstspirit.server.script.BeanshellScriptEngine$BeanshellExecutable.execute(BeanshellScriptEngine.java:122)

    at de.espirit.firstspirit.common.ScriptUtil.execute(ScriptUtil.java:88)

    at de.espirit.firstspirit.server.scheduler.ScriptTaskExecutor.run(ScriptTaskExecutor.java:93)

    [...]

Im Falle der JOptionPane:

ERROR 05.04.2011 12:12:30.830 {seID=427417} (de.espirit.firstspirit.server.scheduler.ScriptTaskExecutor): error during script execution : de.espirit.firstspirit.access.script.ExecutionException: Method Invocation JOptionPane.showMessageDialog at line 21

de.espirit.firstspirit.access.script.ExecutionException: Method Invocation JOptionPane.showMessageDialog at line 21

    at de.espirit.firstspirit.server.script.BeanshellScriptEngine$BeanshellExecutable.execute(BeanshellScriptEngine.java:120)

    at de.espirit.firstspirit.common.ScriptUtil.execute(ScriptUtil.java:88)

    at de.espirit.firstspirit.server.scheduler.ScriptTaskExecutor.run(ScriptTaskExecutor.java:93)

    [...]

0 Kudos

Aufträge werden auf dem FirstSpirit-Server ausgeführt. Daher macht es keinen Sinn, dort Dialoge anzuzeigen.

Wenn der Redakteur Parameter des Auftrages beeinflussen soll, müssen die Werte vor dem Start abgefragt werden.

Peter
0 Kudos

Generell mag das stimmen, aber in diesem Fall kann der Auftrag eben auch manuell ausgeführt werden und es soll am Ende eine spezielle Rückmeldung an den Benutzer geliefert werden.

0 Kudos

prinzipiell sollte CMSDialog nicht verwendet werden und auf dem FsServer ist CMDDialog natuerlich nicht bekannt. Also müsste man wohl Headless testen und JOptionPane nutzen o.ä.

Nicht "generell" sondern immer Smiley Wink

Der Ablauf für deinen Anwendungsfall ist dann:

  1. Parameter abfragen
  2. Auftrag starten
  3. (Auftrag läuft auf dem Server)
  4. Ergebnis des Auftrages dem Benutzer präsentieren

Schritt 1,2 und 4 können auf dem Client laufen, Schritt 3 nicht.

Peter

Ja, stimmt - laufen wird der Auftrag immer auf dem Server Smiley Happy

Wenn der Auftrag über Projekt->Auftrag ausführen gestartet wird habe ich aber nicht mehr die Möglichkeit 1 und 4 selbst zu steuern oder seh ich das falsch?

0 Kudos
Wenn der Auftrag über Projekt->Auftrag ausführen gestartet wird habe ich aber nicht mehr die Möglichkeit 1 und 4 selbst zu steuern oder seh ich das falsch?

Korrekt, an dieser Stelle besteht keine Möglichkeit, sich einzuklinken.

Peter
0 Kudos

pjodeleit schrieb:

Wenn der Auftrag über Projekt->Auftrag ausführen gestartet wird habe ich aber nicht mehr die Möglichkeit 1 und 4 selbst zu steuern oder seh ich das falsch?

Korrekt, an dieser Stelle besteht keine Möglichkeit, sich einzuklinken.

Könnte nicht von einer Auftragsaktion ein Workflow gestartet werden, der wiederum in einer automatischen Aktion nach dem Start ein Skript aufruft, welches die gewünschten Ergebnisse einblendet? [Der Workflow müsste sich danach natürlich auch direkt wieder beenden.]

Oder bekomme ich die Informationen aus dem Auftrag nicht in den Client kommuniziert?

Anstatt diesen [häßlichen und fragilen] Umweg zu nehmen, wäre es aber besser direkt einen Workflow zu starten und in diesem den Auftrag per Skript auszuführen und dann dort die Rückmeldung des Auftrags auszuwerten.

Viele Grüsse aus Dortmund,

  Holger

0 Kudos