phillip_austerf
New Creator

Arbeitsablauf WebClient - Workflow stoppt nach Formulareingabe

Jump to solution

Hallo zusammen,

ich habe eine Frage bzgl. eines Arbeitsbalaufs "generate Partly" im WebClient.

Mein Arbeitsablauf verwendet ein Formular, welches im WebClient auch angezeigt werden soll. Hier kann der User eine Seite/Folder auswählen, welcher dann in ein Generierungsskript übertragen werden soll.

Im JavaClient gibt es hier keine Probleme, jedoch im WebClient.

Es scheint, als würde der Arbeitsablauf noch am Startelement des Ablaufs hängen bleiben. Das Formular (also Teil meines Scripts) wird jedoch korrekt angezeigt.

Gibt es hier eine besondere Einstellung, welche ich wählen muss?

Hier der Code:

import de.espirit.firstspirit.access.store.templatestore.WorkflowScriptContext;

import de.espirit.firstspirit.access.store.IDProvider.UidType;

import de.espirit.firstspirit.access.store.sitestore.PageRef;

import de.espirit.firstspirit.access.store.sitestore.SiteStoreFolder;

import com.idmedia.fs.publisher.Publisher;

wsc = (WorkflowScriptContext) context;

storeElement = wsc.getWorkflowable();

pData = wsc.showForm();

if (pData != null)

{

    try

    {

        pElem = pData.get(null, "st_ref");

        if (pElem != null)

            storeElement = pElem.get().get(); // FormData.TargetReference.IDProvider

    }

    catch(Exception x)

    {

        storeElement = null;

    }

}

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

RequestOperation pRequestOperation = operationAgent.getOperation(RequestOperation.TYPE);

pRequestOperation.setKind(RequestOperation.Kind.INFO);

pRequestOperation.setTitle("Generate Partly");

pRequestOperation.perform("do transition done");

context.doTransition("Final");

Viele Grüße,
Phillip.

0 Kudos
13 Replies

Auf dem Level gibt es die Api-Doc.

Mit welchem User wird den die Verbindung zum RemoteProject genutzt? Technischer oder eingeloggter Nutzer?

Wie schon gesagt würde ich mir die RemoteConnection zugreifen nicht über den UserService. Stichwort ist also: Connection

0 Kudos

Ich möchte eigentlich den aktuellen User verwenden (dieser hat auch Zugriff auf das Remote Project).

So habe ich es ursprünglich gemacht (funktionsfähig im JavaClient):

     WorkflowScriptContext m_pContext

     UserService pUserService = m_pContext.getUserService().getRemoteUserService(sSymName);

     Project pProject = pUserService.getProject();

Dann konnte ich über den ScheduleStorage mittels des RemoteProjects den gewünschten ScheduleEntry holen und ausführen lassen.

Über den Connection Weg würde ich es anders machen und komme auch durch bis zum Task, welchen ich auch starten kann.

     m_pContext.getConnection().getRemoteConnection(pRemoteCfg);

     m_pRemoteConnection.connect();

+++ generation task started: generate partly +++


Das Problem ist leider die nachfolgende Exception:

INFO  14.08.2013 13:10:59.750 (de.espirit.firstspirit.server.io.AbstractServerConnection): InvalidSession: sessionId=null

FSVersion=5.0.210.55494#3503;JDK=1.7.0_25 32bit Oracle Corporation;OS=Windows XP 5.1 x86;Date=14.08.2013 13:10:59

de.espirit.firstspirit.access.InvalidSessionException: No session (probably not connected)!

Zudem wird auch keine Anpassung im Generate-Task der Auftrags "generate partly" vorgenommen.

Ist der Weg über die Connection der Einzige für den Webclient?

Viele Grüße,

Phillip.

0 Kudos

okay ein letzter versuch meinerseits:

connection = wFSContext.getConnection().getRemoteConnection(configuration);

final Project remoteProject = connection.getProjectByName(projectName);

wie wird der schedule entry geholt? AdminService über die connection?

Wenn das nicht hilft  muss ich leider passen, dann müsste man sich das im Detail ansehen.

Viele Grüße

Tobias

0 Kudos

Perfekt, es funktioniert.

Ich dachte es gäbe evtl. ne Möglichkeit direkt das Project über die RemoteProjectConnection zu bekommen (also das nun verbundene Projekt); so klappt es aber nun wunderbar und der Auftrag wird korrekt befüllt.

Vielen Dank für den guten Support!

Phillip.

0 Kudos