Questions & Answers

joschka
I'm new here

Entsperren von Elementen ohne Workflowmodul

Hallo zusammen,

bei einem Kunden haben wir ein รœbersetzungsworkflow Modul implementiert, allerdings ohne auf das FS Workflowmodul aufzusetzen, da dies nicht lizensiert ist.

Es gibt aktuell aber noch ein Problem.

Anforderung ist, dass die zur รœbersetzung freigegebenen Elemente nicht bearbeitet werden dรผrfen.

Hierfรผr werden die betroffenen Store Elemente auf "nur lesend" gestellt:

    try {

        element.setLock(true, false);

        element.setWriteLock(true);

        element.save("setting write lock", false);

    } catch (LockException e) {

        Logging.logError("Lock error: " + e.getMessage(), LOGGER);

    } catch (ElementDeletedException e) {

        Logging.logError("Lock error: " + e.getMessage(), LOGGER);

    } finally {

        try {

            element.setLock(false, false);

        } catch (Exception e) {

            Logging.logError("Lock error: " + e.getMessage(), LOGGER);

        }

    }

   

Beim Import der รผbersetzten Dateien soll dieser Schreibschutz folgendermaรŸen wieder aufgehoben werden:

    try {

        element.setLock(true, false);

        element.setWriteLock(false);

        element.save("removing write lock", false);

    } catch (LockException e) {

        Logging.logError("Lock error: " + e.getMessage(),LOGGER);

    } catch (ElementDeletedException e) {

        Logging.logError("Lock error: " + e.getMessage(), LOGGER);

    } finally {

        try {

            element.setLock(false, false); // unlock non-recursive

        } catch (Exception e) {

            Logging.logError("Lock error: " + e.getMessage(), LOGGER);

        }

    }

   

Allerdings bekomme ich beim unlock dann folgende Exception:

de.espirit.firstspirit.access.store.templatestore.WorkflowLockException: Element '15964' is locked by workflow!

Habe ich hier irgendwo einen Fehler beim Sperren / Entsperren? Ich vwerwende wie gesagt nie das Workflowmodul. Wie bekomme ich denn das Element wieder entsperrt?

Schon mal vielen Dank und GruรŸ

Joachim Biggel

0 Kudos
4 Replies
mbergmann
Crownpeak employee

Hallo Joachim,

hier muss zuerst der WriteLock entfernt werden und dann das Lock erfolgen:

element.setWriteLock(false);

element.setLock(true, false);

Viele GrรผรŸe

Michael

0 Kudos

Hallo Michael,

habe ich jetzt mal probiert, aber das geht leider auch nicht.

Das

element.setWriteLock(false);

lรคuft noch durch, beim

element.setLock(true, false);

bekomm ich die o.g. LockException. Ich habe auch versucht, davor mit element.setLock(false, false); einen evtl. bestehenden lock zu entfernen. Hilft nix, bei element.setLock(true, false); kommt die LockException dann wieder.

Bin auf FS 4.2.501.62540.

Das Ganze ist ein Modul, welches รผber ein Client Skript aufgerufen wird. Kann es sein, dass es auch ein Berechtigungsproblem der ausfรผhrenden Person ist? Allerdings kann selbst der Projektadmin die Sperre nicht aufheben. Er bekommt die gleiche Fehlermeldung.

Danke und GruรŸ

Joachim

0 Kudos

Hallo Joachim,

sind hier ggf. Ordner in der Vaterkette des entsprechenden Elementes auch noch mit Schreibschutz versehen? Der Schreibschutz wirkt rekursiv (er wird allerdings nicht rekursiv gesetzt), d.h. wenn ein Ordner einen Schreibschutz hat, kann man auch alle darin enthaltenen Elemente nicht bearbeiten.

Mit einem setLock(false) kannst Du รผbrigens immer nur eigene Locks entfernen, keine fremden (wobei sich das "fremd" hier auf Sessions und nicht User bezieht).

Viele GrรผรŸe

Michael

0 Kudos

Hallo Joachim,

benรถtigst du noch weitere Hilfe oder konnten dir Michaels Antworten bereits weiterhelfen? In diesem Fall wรคre es toll, wenn du die "richtige Antwort" entsprechend markierst.

Solltest du zwischenzeitlich eine eigene Lรถsung gefunden haben, wรคre es super, wenn du diese hier bereitstellst.

Viele GrรผรŸe

Michaela

0 Kudos

Type a product name