rbitdd
Returning Responder

Datensatz hängt im Arbeitsablauf fest

Hallo Community!

Ich hatte dieses Problem schon einmal vor ein paar Jahren, jedoch natürlich in einer anderen FS-Version und der damals verwendete Workaround klappt jetzt leider nicht mehr.

Kundin hat auf einen Datensatz den Workflow "Freigabe anfordern" gestartet. Da sie die entsprechenden Rechte besitzt gehe ich davon aus, das sie den Datensatz sofort freigeben wollte. Jetzt ist es jedoch so, dass der Datensatz einen undefinierten Zustand angenommen hat und kein Workflow auf diesen Datensatz mehr ausgeführt werden kann.

Der damalige Workaround war "Server aufräumen, alles älter als 0 Wochen löschen und Workflow neustarten / Datensatz freigeben". Das funktioniert nun leider nicht mehr.

Ich habe jetzt über die Versionsverwaltung einen alten Stand im definierten Zustand wieder hergestellt und die entsprechenden Änderungen nachgezogen. Danach konnte ich den Arbeitsablauf erfolgreich starten und durchführen.

Ich will nicht wissen, was die Kundin sagt, wenn ich ihr dies als Vorgehensweise bei weiteren Problemen vorschlage.

Hat jemand eine bessere Idee?

Danke für die Hilfe!

8 Replies
hoebbel
Crownpeak employee

Hallo rbitdd,

Sie können das Problem folgendermaßen lösen:

- Öffnen Sie das Projekt mit Administratoren-Rechten (entweder einem Benutzer, der in der Gruppe Administratoren ist oder direkt mit dem Benutzer Admin)

- Wechseln Sie zu dem Ordner Vorlagen/Arbeitsabläufe

- Suchen Sie in der Liste auf der rechten Seite die entsprechende Aufgabe

Tipp: Sie können die Liste nach dem Kontext sortieren, indem Sie den entsprechenden Spaltenkopf anklicken

- beenden Sie die Aufgabe, sobald Sie sie gefunden haben. [über den X Button]

Auf dem Datensatz müsste nun problemlos ein neuer Arbeitsablauf gestartet werden können.

Wenn dieses Vorgehen beim nächsten Auftreten des problems nicht zur Lösung führt, öffnen Sie bitte ein entsprechendes Helpdeskticket.

{Die nächste Lösung wäre dann die "Holzhammermethode", bei der der Task per Skript vom Datensatz entfernt wird. Dass sollte aber eigentlich nicht notwendig sein!}

Viele Grüsse aus Dortmund,

  Holger

0 Kudos
rbitdd
Returning Responder

Hallo Holger,

stehen in dieser Liste andere Aufgaben, als in der "normalen" Aufgabenliste? In dieser habe ich nämlich den entsprechenden Eintrag nicht finden können. (Es war nur ein Eintrag drin, daher kann ich mir sicher sein! Smiley Wink)

Viele Grüße

rbitdd

0 Kudos
hoebbel
Crownpeak employee

Hallo rbitdd,

wenn Du mit Admin-Rechten die Liste aufrufst, siehst Du alle Tasks, die in dem Projekt offen sind (also ja Smiley Wink).

In der Aufgabenliste stehen "nur" alle Tasks drin, die der aktuelle Benutzer weiterschalten darf oder für Administratoren, die weitergeschaltet werden können.

Der Unterschied ist also, dass die Liste unter Vorlagen/Arbeitsabläufe für Admins auch die Tasks anzeigt, die in einem Status sind, in dem Sie nicht manuell weitergeschaltet werden können.

Theoretisch gibt es dann noch die Möglichkeit, dass der Tasks geschlossen wurde, aber auf den Datensatz trotzdem noch eingetragen ist. [Das wäre dann der Fall für das Skript, wobei ich meine, dass dieser Zustand in den neueren Versionen erkannt werden müsste, aber da bin ich mir nicht ganz sicher ;( ]

Viele Grüsse aus Dortmund,

  Holger

0 Kudos
rbitdd
Returning Responder

Hallo Holger,

ich versuche mal mit der Versionierung den Zustand wieder herzustellen und werde dann berichten! Smiley Happy

Gruß

DD

0 Kudos
rbitdd
Returning Responder

Also, Zustand wieder hergestellt, aber der Eintrag fehlt leider doch in der genannten Liste... Smiley Sad

0 Kudos
hoebbel
Crownpeak employee

Such mal nach der Aufgabe (Lupe) und hake auch geschlossene Aufgaben im Dialog an.

Taucht die Aufgabe dann auf? Und wenn ja, welchen Status hat Sie?

0 Kudos
Marsupilami
I'm new here

Hi,

da es sich um einen Datenstz handelt, wie sieht es denn mit dieser Abfolge aus:

row = context.getSelectedRow();
print(row.getValue("wf id"));
--> Wenn hier keine Zahl ausgegeben wird, dann print(row.getAttributeNames()); und die korrekte Spalte für die Workflow ID für getValue benutzen.
us = context.getUserService();
task = us.getTask(row.getValue("wf id"));
us.closeTask(task);

War ein Tipp von Holger (schon lange her ;-))

phillip_austerf
New Creator

Hi Diana,

Du kannst die Seite aus dem Arbeitsablauf wieder mittels des unteren Codes herausholen:

//

// akt. element

//

pElem = context.getStoreElement();

//

// user service

//

us = context.getUserService();

//

// offenen Task schließen

//

if (pElem.getTask() != null)

     us.closeTask(pElem.getTask());

Ich hatte das selbe Problem. Eine Seite/Element hing in eniem Ablauf, jedoch wurde mir kein offener Ablauf mehr angezeigt.

Daher dann die Scriptlösung.

Viele Grüße,
Phillip.