BasicWorkflows

e-Spirit AG

16.10.2023
Inhaltsverzeichnis

1. Allgemeine Einführung

Mit FirstSpirit lassen sich kundenspezifische Projekte, die unterschiedlichsten Anforderungen unterliegen, umsetzen. In diesen Projekten eingesetzte Arbeitsabläufe sind in der Regel ebenso individuell und auf das jeweilige Projekt abgestimmt.

In Arbeitsabläufen für das Freigeben bzw. Löschen von FirstSpirit-Elementen lassen sich trotz projektbedingter Unterschiede immer auch Gemeinsamkeiten in Form der „üblichen“ Freigabe- und Löschlogiken identifizieren. Damit diese nicht in jedem neuen Projekt erneut implementiert werden müssen, wurden sie im Rahmen neuer Arbeitsabläufe zusammengefasst. Dabei wurde auch das Thema „Erweiterbarkeit der Arbeitsabläufe“ berücksichtigt, um weiterhin projektspezifische Anpassungen zu ermöglichen.

Das vorliegende Dokument beschreibt diese für FirstSpirit Version 5 neu entwickelten Arbeitsabläufe zum Löschen bzw. Freigeben von Elementen im SiteArchitect und im ContentCreator. Durch die Berücksichtigung von Abhängigkeiten beim Freigeben und Löschen werden potentielle Generierungsfehler minimiert und die Erreichbarkeit von Elementen sichergestellt.

Die neuen Arbeitsabläufe bieten – im Vergleich zu den bereits aus früheren FirstSpirit-Versionen bekannten Arbeitsabläufen – in beiden FirstSpirit-Clients einen erweiterten Funktionsumfang für Redakteure an. Dieser kann durch eigene Implementierungen individuell erweitert und somit den Besonderheiten im Projekt angepasst werden.

Das Dokument gliedert sich in eine Erklärung der notwendigen Vorbereitungen für den Einsatz der Arbeitsabläufe, eine Erläuterung ihrer Funktionalitäten und eine Beschreibung zur Implementierung von Erweiterungen (siehe Kapitel Themen dieser Dokumentation)

Nähere Informationen zu Arbeitsabläufen finden Sie im Handbuch für Entwickler.

Zur Erstellung und Ausführung von Arbeitsabläufen wird eine entsprechende FirstSpirit-Lizenz benötigt, in welcher der Parameter license.WORKFLOW den Wert 1 besitzt.

Manipulationen an der fs_license.conf führen zu einer ungültigen Lizenz. Sollten Änderungen notwendig werden, wenden Sie sich bitte an den Technical Support.

Die BasicWorkflows haben die folgenden technischen Voraussetzungen:

  • FirstSpirit (Isolated- oder Legacy-Mode) ab der Version 2018-10
  • Java 8 oder höher

Das vorliegende Dokument richtet sich an technische Projektleiter und FirstSpirit-Entwickler. Es ist kein Handbuch für Redakteure. Ein solches muss jeweils projektspezifisch verfasst werden.

Es wird daher vorausgesetzt, dass der Leser mit FirstSpirit vertraut ist und insbesondere Wissen zur Funktionalität und zur Verwendung von Arbeitsabläufen im SiteArchitect und im ContentCreator besitzt.

1.1. Themen dieser Dokumentation

Dieses Dokument beschreibt die neuen Arbeitsabläufe zum Freigeben bzw. Löschen von FirstSpirit-Elementen, erläutert die unterschiedlichen Funktionalitäten und erklärt die Installation des notwendigen Moduls.

Kapitel 2: In diesem Kapitel wird die Installation des notwendigen Moduls auf dem FirstSpirit-Server, die Aktivierung der Arbeitsabläufe für den ContentCreator sowie der Web-Komponente, der Import der Arbeitsabläufe in ein Projekt und die Rechtedefinition erklärt.

Kapitel 3: In diesem Kapitel wird der Freigabe-Arbeitsablauf beschrieben. Es wird dabei zwischen dem Einsatz im SiteArchitect und dem Einsatz im ContentCreator unterschieden. Des Weiteren erfolgt ein Vergleich mit dem bereits aus vorherigen FirstSpirit-Versionen bekannten Freigabe-Arbeitsablauf und der administrativen Freigabe.

Kapitel 4: In diesem Kapitel wird der Lösch-Arbeitsablauf beschrieben. Es wird dabei zwischen dem Einsatz im SiteArchitect und dem Einsatz im ContentCreator unterschieden. Des Weiteren erfolgt ein Vergleich mit dem nativen Löschen von Objekten.

Kapitel 5: In diesem Kapitel werden die Handlungen zur Auflösung eines potentiell während der Ausführung eines Arbeitsablaufs auftretenden Konflikts erläutert.

Kapitel 6: In diesem Kapitel erfolgt die Beschreibung zur Implementierung von Erweiterungen. Über diese können die beiden neuen Arbeitsabläufe individuell erweitert werden. Des Weiteren wird ein Beispiel für eine solche Erweiterung bereitgestellt.

Kapitel 7: In diesem Kapitel sind einige häufig gestellte Fragen und deren Antworten zusammengefasst.

2. Modul-Installation und Import der Arbeitsabläufe

Vor dem Einsatz der beiden neuen Arbeitsabläufe sind verschiedene Schritte notwendig:

2.1. Installieren des Moduls auf dem Server

Das Modul muss zunächst mithilfe der mitgelieferten basicworkflows.fsm-Datei auf dem FirstSpirit-Server hinzugefügt werden. Für die Installation des Moduls öffnen Sie die Server- und Projektkonfiguration und wählen Sie den Bereich Server-EigenschaftenModule.

Liste der Module in den Server-Eigenschaften
Abbildung 1. Liste der Module in den Server-Eigenschaften


Im Hauptpanel ist eine Liste der auf dem Server installierten Module zu sehen. Wählen Sie nach dem Klicken auf Installieren die mitgelieferte basicworkflows.fsm-Datei aus und bestätigen Sie die Auswahl mit Öffnen. Nach der erfolgreichen Installation wurde der Liste ein Ordner BasicWorkflows hinzugefügt (siehe Abbildung Liste der Module in den Server-Eigenschaften). Schließen Sie die Server-Eigenschaften dann durch Klicken auf OK.

Nähere Informationen finden Sie in der FirstSpirit Dokumentation für Administratoren.

Nach jeder Modul-Installation bzw. einer Aktualisierung eines Moduls ist ein Neustart des FirstSpirit-Servers notwendig.

2.2. Aktivierung der Arbeitsabläufe für den ContentCreator

Durch die Installation des Moduls wurde ein sogenannter Element Status Provider bereitgestellt, der manuell ausgewählt werden muss. Dieser Element Status Provider regelt die Status-Anzeige im ContentCreator.

Status-Anzeige im ContentCreator
Abbildung 2. Status-Anzeige im ContentCreator


Öffnen Sie für die Einstellung des Element Status Providers die Server- und Projektkonfiguration und wechseln Sie auf den Bereich Projekt-EigenschaftenContentCreator.

Im Hauptpanel sind verschiedene Optionen für die Arbeit im ContentCreator sichtbar. Ändern Sie die Einstellung des Element Status Providers auf den Eintrag BasicWorkflows Status Provider (siehe Abbildung Auswahl des Element Status Providers für den ContentCreator). Schließen Sie die Projekt-Eigenschaften anschließend durch Klicken auf OK.

Weitere Informationen finden Sie in der FirstSpirit Dokumentation für Administratoren.

Auswahl des Element Status Providers für den ContentCreator
Abbildung 3. Auswahl des Element Status Providers für den ContentCreator


2.3. Aktivierung der Web-Komponente und des Webservers

Dem Projekt muss eine Web-Komponente hinzugefügt werden. Öffnen Sie hierfür die Server- und Projektkonfiguration und wechseln Sie auf das Tab Projekt-EigenschaftenWeb-KomponentenContentCreator.

Wählen Sie nach dem Klicken auf Hinzufügen die Web-Komponente BasicWorkflows_ContentCreator_Libary aus und bestätigen Sie die Auswahl mit OK. Nach dem erfolgreichen Hinzufügen erscheint die Web-Komponente als Eintrag innerhalb des Tabs (siehe Abbildung Aktivierung der Web-Komponente und des aktiven Webservers).

Existiert noch kein aktivierter Webserver, muss dieser ebenfalls aktiviert werden. Wählen Sie diesen (z.B. InternalJetty) in der Auswahlliste aus und starten Sie die Installation mit Klicken auf Installieren. Nach der erfolgreichen Installation aktivieren Sie den Webserver mit Klicken auf Aktivieren.

Existiert bereits ein aktivierter Webserver, muss dieser lediglich aktualisiert werden.

Nähere Informationen finden Sie in der FirstSpirit Dokumentation für Administratoren.

Schließen sie die Projekt-Eigenschaften anschließend über Klicken auf OK.

Aktivierung der Web-Komponente und des aktiven Webservers
Abbildung 4. Aktivierung der Web-Komponente und des aktiven Webservers


2.4. Import der Arbeitsabläufe

Um die Funktionalitäten der Arbeitsabläufe verwenden zu können, müssen diese zunächst in das Projekt importiert werden. Die beiden Arbeitsabläufe und die zugehörigen Skripte werden nicht automatisch bei der Installation des Moduls importiert. Der Import muss manuell vorgenommen werden.

Öffnen Sie hierfür die Vorlagen-Verwaltung Ihres Projekts im FirstSpirit SiteArchitect und fügen Sie die Arbeitsabläufe über das Kontextmenü hinzu. Der Kontextmenüeintrag Importieren (siehe Abbildung Kontextmenü - Importieren) öffnet einen Importdialog, in dem aus den Verzeichnissen des Arbeitsplatzrechners die Importdatei export_basic_release bzw. export_basic_delete ausgewählt werden kann.

Kontextmenü - Importieren
Abbildung 5. Kontextmenü - Importieren


Nach dem erfolgreichen Import wurden den Punkten Arbeitsabläufe und Skripte in der Vorlagen-Verwaltung die entsprechenden Einträge hinzugefügt.

Hinzugefügte Elemente nach dem Import der Arbeitsabläufe
Abbildung 6. Hinzugefügte Elemente nach dem Import der Arbeitsabläufe


Nähere Informationen zum Importieren finden Sie im Handbuch für Entwickler.

2.5. Rechtedefinition

Um die Arbeitsabläufe auf FirstSpirit-Elementen starten zu können, muss die Ausführung zunächst in den einzelnen Verwaltungen erlaubt werden.

Rufen Sie hierfür auf den Root-Knoten der Verwaltungen über das Kontextmenü die Rechtevergabe auf und wechseln Sie in dem sich über den Kontextmenüeintrag Rechte ändern (siehe Abbildung Kontextmenü Extras - Rechte ändern) öffnenden Dialog auf den Reiter Arbeitsablauf Rechte.

Abhängig von der Konfiguration der Benutzerrechte steht dieser Kontextmenüpunkt potentiell nur Projektadministratoren zur Verfügung.

Kontextmenü Extras - Rechte ändern
Abbildung 7. Kontextmenü Extras - Rechte ändern


In dem Reiter Arbeitsablauf Rechte muss die Checkbox Erlaubt für die beiden Arbeitsabläufe und für den Freigabe-Arbeitsablauf außerdem der Haken Freigabe-Rechte nutzen aktiviert werden (vgl. Abbildung Erlauben der Arbeitsabläufe).

Erlauben der Arbeitsabläufe
Abbildung 8. Erlauben der Arbeitsabläufe


Schließen Sie den Dialog anschließend über Klicken auf OK.

Nähere Informationen zur Definition von Rechten für Arbeitsabläufe finden Sie im Handbuch für Redakteure bzw. im Handbuch für Entwickler.

2.6. Auswahl des Arbeitsablaufs zum Löschen von Elementen

Soll das Löschen von Elementen in Ihrem FirstSpirit-Projekt standardmäßig über die Ausführung des Lösch-Arbeitsablaufs erfolgen, muss dies explizit definiert werden.

Pro Projekt kann nur genau ein einziger Lösch-Arbeitsablauf in den Projekteigenschaften definiert werden.

Öffnen Sie hierfür die Server- und Projektkonfiguration und wechseln Sie auf den Bereich Projekt-EigenschaftenOptionen.

Im Hauptpanel sind verschiedene Optionen zur Konfiguration des Projekts sichtbar (vgl. Abbildung ausgewählter Lösch-Arbeitsablauf für ein Projekt). Ein Klick auf die Auswahl-Schaltfläche des Punktes Arbeitsablauf zum Löschen von Elementen öffnet einen weiteren Dialog, der eine Liste aller im zugrunde liegenden Projekt existierenden Arbeitsabläufe enthält (siehe Abbildung Auswahl eines Lösch-Arbeitsablaufs). Das heißt der Lösch-Arbeitsablauf muss bereits im Projekt vorhanden sein (siehe Kapitel Import der Arbeitsabläufe). Wählen Sie aus dieser Liste den Lösch-Arbeitsablauf und bestätigen Sie die Auswahl mit OK.

Auswahl eines Lösch-Arbeitsablaufs
Abbildung 9. Auswahl eines Lösch-Arbeitsablaufs


Der Lösch-Arbeitsablauf wird danach im Hauptpanel angezeigt (siehe Abbildung ausgewählter Lösch-Arbeitsablauf für ein Projekt).

ausgewählter Lösch-Arbeitsablauf für ein Projekt
Abbildung 10. ausgewählter Lösch-Arbeitsablauf für ein Projekt


Schließen sie die Projekt-Eigenschaften anschließend über Klicken auf OK.

Der Arbeitsablauf muss in den Verwaltungen des zugrunde liegenden Projekts erlaubt sein (siehe Kapitel Rechtedefinition). Andernfalls ist ein Löschen von Elementen nicht möglich.

Jede Handlung zum Löschen von Elementen innerhalb des Projekts (Entf-Taste, Lösch-Symbol) führt nun den Lösch-Arbeitsablauf aus. Das native (von einem Arbeitsablauf unabhängige) Löschen von Elementen steht nicht mehr zur Verfügung – auch nicht für den Administrator.

Die Löschaktion muss somit explizit im Lösch-Arbeitsablauf modelliert sein. Andernfalls wird der Lösch-Arbeitsablauf zwar erfolgreich beendet, das zu löschende Element existiert jedoch immer noch.

Nähere Informationen zum Löschen von Elementen über einen Arbeitsablauf finden Sie in der FirstSpirit Dokumentation für Administratoren.

Die Funktionalität des Lösch-Arbeitsablaufs unterscheidet sich in den beiden FirstSpirit-Clients. Die durch ihn löschbaren Elemente werden im jeweiligen Kapitel für den SiteArchitect bzw. den ContentCreator detailiert aufgeführt und erläutert.

3. Freigabe-Arbeitsablauf

Der Freigabe-Arbeitsablauf orientiert sich an der im SiteArchitect über das Kontextmenü ausführbaren und nur für Administratoren verfügbaren administrativen Direktfreigabe (siehe Abbildung Dialog der administrativen Direktfreigabe).

Nähere Informationen zur administrativen Direktfreigabe finden Sie im Handbuch für Redakteure.

Dialog der administrativen Direktfreigabe
Abbildung 11. Dialog der administrativen Direktfreigabe


Einige Wahlmöglichkeiten dieser Freigabe wurden in den neuen Freigabe-Arbeitsablauf übernommen und sind damit auch von Redakteuren ausführbar. Die Berücksichtigung von Medien sowie die rekursive Freigabe stellen dabei die einzigen manuell auswählbaren Optionen dar. Sie werden beide über ein im Arbeitsablauf verwendetes Formular bereitgestellt (siehe Abbildung Formular des Freigabe-Arbeitsablaufs - SiteArchitect). Während die Berücksichtigung von Medien standardmäßig aktiviert ist, muss die rekursive Freigabe individuell ausgewählt werden.

Der Arbeitsablauf berücksichtigt somit prinzipiell nur das Element, auf dem er gestartet wurde. Durch die Aktivierung der Option rekursive Freigabe inkl. Kindelementen werden darüber hinaus jedoch auch alle Kindelemente des ausgewählten Elements mit freigegeben.

Die rekursive Freigabe steht nur im SiteArchitect zur Verfügung.

Ist die Option Freigabe inkl. Medien aktiviert, werden bei der Freigabe alle direkt referenzierten Medien mit freigegeben. Dabei ist es irrelevant, ob diese zuvor schon einmal freigegeben waren. Eine Seite wird somit „wie gesehen“ freigegeben.

Ist die Option Freigabe inkl. Medien deaktiviert, werden referenzierte Medien bei der Freigabe nicht berücksichtigt. Enthält die Menge der referenzierten Medien jedoch noch niemals freigegebene Elemente, wird ein Konflikt ausgelöst. Dieser muss manuell behoben werden, bevor der Arbeitsablauf abgeschlossen werden kann (siehe Kapitel Auflösung von Konflikten). Ohne diesen Konflikt würden Fehler in der Generierung und auf der Liveseite auftreten.

Formular des Freigabe-Arbeitsablaufs - SiteArchitect
Abbildung 12. Formular des Freigabe-Arbeitsablaufs - SiteArchitect


Die Möglichkeit der administrativen Direktfreigabe, nur neue Objekte freizugeben, steht innerhalb des Freigabe-Arbeitsablaufs nicht zur Verfügung.

Dahingegen wird die Erreichbarkeit des freizugebenden Elements, d. h. die Freigabe der Vaterkette, automatisch durch den Arbeitsablauf sichergestellt.

Bei der Freigabe der Vaterkette bleiben deren Startknoten unberücksichtigt. Enthält sie dadurch noch niemals freigegebene Elemente eines Startknotenpfads, wird dem Redakteur eine entsprechende Fehlermeldung angezeigt.

Zusätzlich werden alle weiteren abhängigen Elemente ermittelt und auf mögliche Konflikte geprüft. Die Ermittlung berücksichtigt – mit Ausnahme der aus der Vorlagen-Verwaltung referenzierten Elemente – alle Objekte, die durch den Referenzgraphen von FirstSpirit zurückgeliefert werden (outgoing References). Im Falle einer Seitenreferenz werden auch die ausgehenden Kanten der referenzierten Seite betrachtet.

Bei der rekursiven Freigabe bezieht sich die Prüfung möglicher Konflikte auch auf die Kindelemente und die von ihnen referenzierten Elemente.

Metadaten und Referenzen auf Objekte aus Remote-Projekten werden durch den Freigabe-Arbeitsablauf ignoriert.

Die Freigabe eines Elements durch den Freigabe-Arbeitsablauf erfolgt über eine von zwei Freigabe-Möglichkeiten, die über den Dialog des Arbeitsablaufs bereitgestellt werden (vgl. Abbildung Startdialog des Freigabe-Arbeitsablaufs - SiteArchitect):

  • Direkte Freigabe
  • Anfordern
Startdialog des Freigabe-Arbeitsablaufs - SiteArchitect
Abbildung 13. Startdialog des Freigabe-Arbeitsablaufs - SiteArchitect


Direkte Freigabe

Diese Option steht dem Redakteur nur dann zur Verfügung, wenn dieser das Freigabe-Recht für das freizugebende Objekt besitzt.

Die Option Direkte Freigabe bietet dieselbe Funktionalität wie die nachfolgend beschriebene Option Anfordern. Allerdings wird beim direkten Freigeben die Zuweisung an einen nachfolgenden Bearbeiter umgangen und die Prüfung auf potentielle Konflikte automatisch ausgelöst. Treten während der Ausführung des Arbeitsablaufs keine Konflikte auf, läuft der Arbeitsablauf nach dem Start ohne weitere Unterbrechung durch. Das 4-Augen-Prinzip ist somit in diesem Fall nicht gegeben.

Mit der Erläuterung der Option Anfordern erfolgt eine genaue Beschreibung der einzelnen Schritte des Arbeitsablaufs.

Anfordern

Durch die Anforderung einer Freigabe wird der Arbeitsablauf einem nächsten Bearbeiter zugewiesen. Dieser lehnt die Anforderung entweder ab, indem er manuell einen Konflikt auslöst, oder er stößt die Freigabe des Elements durch die Weiterschaltung des Arbeitsablaufs an (vgl. Abbildung Weiterschaltung durch den nächsten Bearbeiter).

Weiterschaltung durch den nächsten Bearbeiter
Abbildung 14. Weiterschaltung durch den nächsten Bearbeiter


Durch die Weiterschaltung wird vor der tatsächlichen Freigabe zunächst ein Test durchlaufen – z. B. zur Feststellung, ob keines der durch den Freigabe-Arbeitsablauf betroffenen Objekte zum Zeitpunkt der Ausführung des Arbeitsablaufs durch einen Redakteur gesperrt ist. Treten während dieses Tests Fehler auf, wird ein Konflikt ausgelöst und der Arbeitsablauf wird unterbrochen. Erst wenn dieser Test erfolgreich ist, wird die Freigabe durchgeführt und der Freigabe-Arbeitsablauf kann beendet werden.

Abbrechen

Der Button Abbrechen besitzt die gleiche Funktionalität wie der Schließen-Button des Dialogs: Der Arbeitsablauf wird nicht weiter geschaltet und das gewählte Element verbleibt in dem Zustand, in welchem es sich vor dem Öffnen des Dialogs befand.

3.1. Funktionsumfang

Der Freigabe-Arbeitsablauf lässt sich in beiden Clients ausführen. Da die Menge der Elemente, auf denen der Arbeitsablauf gestartet werden kann, in den beiden Clients jedoch divergiert, werden sie differenziert betrachtet.

Generell dient der für FirstSpirit Version 5 neu entwickelte Freigabe-Arbeitsablauf der Freigabe von Seiten bzw. Datensätzen inklusive der von ihnen referenzierten Medien. Außerdem erfolgt eine Prüfung zur Vermeidung von Generierungsfehlern, indem auch alle referenzierten Objekte, die keine Medien sind, durch den Arbeitsablauf berücksichtigt werden. Diese Prüfung berücksichtigt bei der rekursiven Freigabe auch die Kindelemente des ausgewählten Elements.

Die BasicWorkflows unterstützen ab der Version 1.0.8 nur noch die FirstSpirit-Version 5.1 oder höher. Sie sind ab dieser Modulversion nicht mehr zu FirstSpirit 5.0 kompatibel.

Formal muss für die erfolgreiche Freigabe eine der folgenden Bedingungen erfüllt sein:

  • es werden nur Medien referenziert und die Option Freigabe inkl. Medien ist aktiviert
  • die Option Freigabe inkl. Medien ist aktiviert und von allen direkt referenzierten Objekten, die keine Medien sind, existiert eine Freigabeversion
  • die Option Freigabe inkl. Medien ist deaktiviert und von allen referenzierten Objekten existiert eine Freigabeversion

Ist keine der genannten Bedingungen erfüllt oder existiert eine kaputte Referenz, wird ein Konflikt ausgelöst, der manuell behoben werden muss (siehe Kapitel Auflösung von Konflikten).

Seiten stellen in Bezug auf die notwendige Existenz einer Freigabeversion (Punkt 2 und 3 der obigen Liste) eine Ausnahme dar: Sie werden als Einheit mit der ihnen zugehörigen Seitenreferenz betrachtet. Wird der Freigabe-Arbeitsablauf auf einer Seitenreferenz gestartet, wird die referenzierte Seite immer automatisch mit freigegeben – unabhängig davon, ob von ihr bereits eine Freigabeversion existiert (siehe auch Kapitel Seitenreferenz (SiteArchitect) und Kapitel Seitenreferenz (ContentCreator)).

Die sich im Arbeitsablauf befindenden Objekte werden während dessen Ausführung nicht mit einem Schreibschutz versehen.

3.1.1. SiteArchitect

Im SiteArchitect wird der Freigabe-Arbeitsablauf über das Kontextmenü gestartet. Es öffnet sich der bekannte Arbeitsablauf-Dialog, in dessen Formular-Tab jedoch die Berücksichtigung von Medien sowie die rekursive Freigabe aktiviert bzw. deaktiviert werden kann (siehe Abbildung Formular des Freigabe-Arbeitsablaufs - SiteArchitect). Während die Berücksichtigung von Medien standardmäßig aktiviert ist, muss die rekursive Freigabe individuell ausgewählt werden.

Der Arbeitsablauf kann im SiteArchitect auf zahlreichen Objekten ausgeführt werden, deren Referenzen der Arbeitsablauf ebenfalls berücksichtigt. Die möglichen Objekte sind in diesem Kapitel aufgeführt.

Metadaten und Referenzen auf Remote-Objekte werden durch den Freigabe-Arbeitsablauf ignoriert. Dies gilt ebenso für referenzierte Datensätze aus nur lesbaren Datenbanken.

Medium

Ein Start des Freigabe-Arbeitsablaufs auf einem Medium gibt das gewählte Element und die zugehörige Vaterkette frei. Dabei ist zu beachten, dass nur Ordner freigegeben werden, die zuvor noch nie freigegeben waren (siehe auch Kapitel Ordner).

Entity

Entgegen der über das Kontextmenü ausführbaren Freigabe aller Zeilen einer Datenquelle, erfolgt die Durchführung des Arbeitsablaufs nur auf genau dem einen Datensatz, auf dem er gestartet wurde. Die übrigen (nicht freigegebenen) Zeilen der zugehörigen Datenquelle bleiben vom Arbeitsablauf unberührt.

In der Regel enthalten Datensätze Referenzen in die Struktur- und in die Medien-Verwaltung. Solche Referenzen werden durch den Arbeitsablauf ebenfalls berücksichtigt.

Metadaten und Referenzen auf Remote-Objekte werden durch den Freigabe-Arbeitsablauf ignoriert. Dies gilt ebenso für referenzierte Datensätze aus nur lesbaren Datenbanken.

Die Aktivierung der rekursiven Freigabe hat keinen Einfluss auf Datensätze. Die Freigabe mehrerer Datensätze ist nicht möglich.

Referenzierte Medien werden nur dann – entsprechend der für sie geltenden Bedingungen (vgl. Kapitel Medium) – freigegeben, wenn die Checkbox Freigabe inkl. Medien innerhalb des Arbeitsablaufs (vgl. Abbildung Formular des Freigabe-Arbeitsablaufs - SiteArchitect) aktiviert ist. Ansonsten erfolgt lediglich eine Prüfung auf potentielle Konflikte.

Unabhängig vom Status der Checkbox werden Referenzen auf Objekte, die keine Medien sind, ebenfalls nur auf Konflikte geprüft und nicht durch den Arbeitsablauf freigegeben.

Ein Konflikt tritt auf, wenn keine der im Kapitel Funktionsumfang genannten Bedingungen erfüllt ist.

Der Arbeitsablauf kann nur dann erfolgreich beendet werden, wenn alle aufgetretenen Konflikte manuell aufgelöst wurden (siehe dazu Kapitel Auflösung von Konflikten).

Datenquelle

Die Durchführung des Freigabe-Arbeitsablaufs auf Datenquellen ist nicht möglich. Die Auswahl einer Datenquelle selektiert automatisch den ersten Datensatz. Ein Start des Arbeitsablaufs auf einer Datenquelle bezieht sich somit auf diesen Datensatz.

Seite

Ein Start des Freigabe-Arbeitsablaufs auf einer Seite in der Inhalte-Verwaltung gibt die ausgewählte Seite und deren Vaterkette frei. Dabei sind die Freigabe-Bedingungen für Ordner zu beachten.

Die ausgehenden Referenzen einer Seite werden ebenfalls durch den Arbeitsablauf berücksichtigt. Dies gilt auch für Absatzreferenzen (siehe auch Kapitel Erweiterung der Implementierung).

Metadaten und Referenzen auf Remote-Objekte werden durch den Freigabe-Arbeitsablauf ignoriert. Dies gilt ebenso für referenzierte Datensätze aus nur lesbaren Datenbanken.

Die Freigabe referenzierter Medien ist abhängig von der Checkbox Freigabe inkl. Medien (vgl. Abbildung Startdialog des Freigabe-Arbeitsablaufs - SiteArchitect) und erfolgt nur dann, wenn diese aktiviert ist (siehe auch Kapitel Medium). Ist sie deaktiviert, werden die referenzierten Medien lediglich auf potentielle Konflikte geprüft und bei der Freigabe ignoriert.

Referenzen auf Objekte, die keine Medien sind, werden grundsätzlich nur auf Konflikte geprüft und nicht durch den Arbeitsablauf freigegeben.

Ein Konflikt tritt auf, wenn keine der im Kapitel Funktionsumfang genannten Bedingungen erfüllt ist .

Der Arbeitsablauf kann nur dann erfolgreich beendet werden, wenn alle aufgetretenen Konflikte manuell aufgelöst wurden (siehe dazu Kapitel Auflösung von Konflikten).

Seitenreferenz

Handelt es sich bei dem Start-Element des Freigabe-Arbeitsablaufs um eine Seitenreferenz, muss auch die referenzierte Seite betrachtet werden, da sonst Generierungsfehler auftreten könnten.

Die Freigabe einer Seitenreferenz kann nur auf der Basis einer zuvor schon einmal freigegebenen Seite erfolgen. Um dies in jedem Fall zu gewährleisten, wird sie somit zuerst durch den Arbeitsablauf freigegeben. Dabei wird auch die Vaterkette der Seite durch den Arbeitsablauf freigegeben, sofern die Knoten dieser Kette zuvor niemals freigegeben waren (vgl. Kapitel Ordner). Besitzt die referenzierte Seite eigene ausgehende Referenzen, werden diese ebenfalls berücksichtigt.

Anschließend erfolgt die Freigabe der Seitenreferenz und der zugehörigen Vaterkette unter den bereits genannten Bedingungen.

Die Freigabe der Vaterkette bezieht sich ausschließlich auf die übergeordneten Ordner der ausgewählten Seitenreferenz. Die in diesen Ordnern enthaltenen Inhalte bleiben von der Freigabe jedoch unberücksichtigt, so dass zwar Menüpunkte, nicht aber ihre Startknoten freigegeben werden. Da dies dem Standardverhalten FirstSpirits entspricht, tritt kein Konflikt auf und der Arbeitsablauf wird erfolgreich abgeschlossen. Allerding erhält der Redakteur eine Fehlermeldung, die ihn auf die nicht freigegebenen Startknoten hinweist.

Fehlermeldung bezüglich Elementen eines Startknotenpfads
Abbildung 15. Fehlermeldung bezüglich Elementen eines Startknotenpfads


Seitenreferenzen besitzen außerdem die Möglichkeit, Bilder für die Menü-Übersicht referenzieren zu können (siehe Abbildung Seitenreferenz mit referenziertem Bild für die Menü-Übersicht).

Seitenreferenz mit referenziertem Bild für die Menü-Übersicht
Abbildung 16. Seitenreferenz mit referenziertem Bild für die Menü-Übersicht


Ist die Checkbox Freigabe inkl. Medien innerhalb des Arbeitsablaufs (vgl. Abbildung Startdialog des Freigabe-Arbeitsablaufs - SiteArchitect) aktiviert, werden diese durch den Arbeitsablauf gemäß den Bedingungen für Medien ebenfalls freigegeben (siehe Kapitel Medium).

Ist die Checkbox deaktiviert, werden die referenzierten Medien bei der Freigabe ignoriert. Es erfolgt lediglich eine Prüfung auf Konflikte.

Ein solcher Konflikt tritt auf, wenn keine der im Kapitel Funktionsumfang genannten Bedingungen erfüllt ist.

Der Arbeitsablauf kann nur dann erfolgreich beendet werden, wenn alle aufgetretenen Konflikte manuell aufgelöst wurden.

Metadaten und Referenzen auf Remote-Objekte werden durch den Freigabe-Arbeitsablauf ignoriert. Dies gilt ebenso für referenzierte Datensätze aus nur lesbaren Datenbanken.

Dokumentengruppe

In einer Dokumentengruppe können Seitenreferenzen sowie Struktur-Ordner zusammengefasst werden, um als eine Seite dargestellt zu werden.

Ein auf einer Dokumentengruppe ausgeführter Freigabe-Arbeitsablauf gibt nur den Knoten dieser Dokumentengruppe sowie dessen Vaterkette frei, sofern die Knoten dieser Kette zuvor niemals freigegeben waren. Die innerhalb der Dokumentengruppe referenzierten Struktur-Ordner und Seitenreferenzen bleiben bei der Freigabe unberücksichtigt. Sie werden jedoch auf potentielle Konflikte überprüft.

Bei der Freigabe der Vaterkette bleiben deren Startknoten unberücksichtigt. Enthält sie dadurch noch niemals freigegebene Elemente eines Startknotenpfads, wird dem Redakteur eine entsprechende Fehlermeldung angezeigt.

Da in einer Dokumentengruppe beliebig tiefe Verschachtelungen vorliegen können, werden nur die Elemente der ersten Inhaltsebene zur Konfliktprüfung herangezogen. Jegliche Kindelemente werden ignoriert!

Ein Konflikt tritt genau dann auf, wenn mindestens eines der Elemente der ersten Inhaltsebene kaputte Referenzen besitzt oder noch niemals freigegeben war.

Erläuterung anhand eines Beispiels

Ein zu einer Dokumentengruppe hinzugefügter Struktur-Ordner kann seinerseits Ordner mit weiteren Unterordnern enthalten. In der nachfolgenden Abbildung ist eine solche Schachtelung in einfacher Form dargestellt.

einfache Schachtelung innerhalb einer Dokumentengruppe
Abbildung 17. einfache Schachtelung innerhalb einer Dokumentengruppe


In diesem Beispiel befinden sich die Elemente „Folder 1“ und „Page 2“ auf der ersten Inhaltsebene. Ausschließlich sie sind bei der Konfliktprüfung relevant.

Waren beide Element bereits schon einmal freigegeben und besitzen beide keine kaputten Referenzen, liefert die Konfliktprüfung ein positives Ergebnis, der Knoten der zugehörigen Dokumentengruppe wird freigegeben und der Freigabe-Arbeitsablauf beendet.

War mindestens eines der beiden Elemente noch niemals freigegeben oder besitzt eines von ihnen kaputte Referenzen, liefert die Konfliktprüfung ein negatives Ergebnis, der Freigabe-Arbeitsablauf wird unterbrochen und ein Konflikt tritt auf. Dieser muss zunächst manuell behoben werden, bevor der Arbeitsablauf fortgeführt werden kann (siehe dazu Kapitel Auflösung von Konflikten).

Informationen zu Dokumentengruppen finden Sie auch im Handbuch für Redakteure.

Ordner

Beim Start des Freigabe-Arbeitsablaufs auf einem Ordner, wird dieser und die zugehörige Vaterkette freigegeben, sofern die Knoten dieser Kette zuvor niemals freigegeben waren. Ist außerdem die rekursive Freigabe aktiviert, werden ausgehend vom ausgewählten Element alle Kindelemente ebenfalls freigegeben.

Die Freigabe der Vaterkette bezieht sich ausschließlich auf die übergeordneten Ordner des ausgewählten Elements. Die in diesen Ordnern enthaltenen Inhalte bleiben von der Freigabe jedoch unberücksichtigt. Dies bedeutet für die Strukturverwaltung, dass zwar Menüpunkte, nicht aber ihre Startknoten freigegeben werden. Da dies dem Standardverhalten FirstSpirits entspricht, tritt kein Konflikt auf und der Arbeitsablauf wird erfolgreich abgeschlossen. Allerding erhält der Redakteur eine Fehlermeldung, die ihn auf die nicht freigegebenen Startknoten hinweist.

Fehlermeldung bezüglich Elementen eines Startknotenpfads
Abbildung 18. Fehlermeldung bezüglich Elementen eines Startknotenpfads


Vaterknoten, die bereits schon einmal freigegeben waren, werden nicht automatisch noch einmal freigegeben.

Diese Einschränkung betrifft auch die einzelnen Root-Knoten, die nicht durch den Arbeitsablauf freigegeben werden.

Eine Ausnahme machen hierbei Struktur-Ordner, wenn die entsprechende Seitenreferenz (bzw. Seite) im ContentCreator freigegeben wird. In diesem Fall werden die betroffenen Struktur-Ordner ebenfalls freigegeben.

Die Durchführung des Freigabe-Arbeitsablaufs auf Ordnern der Datenquellen-Verwaltung ist nicht möglich. Der Freigabe-Arbeitsablauf ist auf diesen Knoten nicht verfügbar.

Struktur-Ordner

Ordner aus der Struktur-Verwaltung stellen gegenüber den Ordnern aus den anderen FirstSpirit-Verwaltungen eine Besonderheit dar, weil nur sie ausgehende Referenzen besitzen können (vgl. Abbildung Struktur-Ordner mit referenziertem Bild).

Diese Referenzen ergeben sich aus der Möglichkeit, Menü-Grafiken auszuwählen.

Struktur-Ordner mit referenziertem Bild
Abbildung 19. Struktur-Ordner mit referenziertem Bild


Existieren Referenzen auf Medien und ist die Checkbox Freigabe inkl. Medien aktiviert (vgl. Abbildung Formular des Freigabe-Arbeitsablaufs - SiteArchitect), werden die referenzierten Medien gemäß den für sie geltenden Bedingungen bei einer Ausführung des Arbeitsablaufs ebenfalls freigegeben (siehe Kapitel Medium).

Metadaten und Referenzen auf Remote-Objekte werden durch den Freigabe-Arbeitsablauf ignoriert. Dies gilt ebenso für referenzierte Datensätze aus nur lesbaren Datenbanken.

Ist die Checkbox deaktiviert, werden referenzierte Medien bei der Freigabe durch den Arbeitsablauf ignoriert. Es erfolgt lediglich eine Prüfung auf potentielle Konflikte. Im Fall der rekursiven Freigabe betrifft diese Prüfung auch die Kindelemente des ausgewählten Elements.

Ein Konflikt tritt auf, wenn keine der im Kapitel Funktionsumfang genannten Bedingungen erfüllt ist.

Der Arbeitsablauf kann nur dann erfolgreich beendet werden, wenn alle aufgetretenen Konflikte manuell aufgelöst wurden (siehe dazu Kapitel Auflösung von Konflikten).

Da auf den Struktur-Variablen basierende bzw. aus Seitengruppen resultierende Abhängigkeiten nicht im Referenzgraph angezeigt werden, gelten sie nicht als ausgehende Referenzen. Sie werden daher durch den Freigabe-Arbeitsablauf ignoriert. Auch eine Konfliktprüfung findet nicht statt.

Nähere Informationen zu Struktur-Variablen und zu Seitengruppen finden Sie im Handbuch für Redakteure.

Globale Seiten & Projekteinstellungen

Das Verhalten des Freigabe-Arbeitsablaufs für Globale Seiten und für die Projekteinstellungen in den Globalen Einstellungen entspricht dem Verhalten für Seiten aus der Inhalte-Verwaltung.

3.1.2. ContentCreator

Der Freigabe-Arbeitsablauf wird im ContentCreator über das Statusmenü gestartet. Es öffnet sich der Dialog des Arbeitsablaufs. Über eine in diesem Dialog enthaltene Schaltfläche lässt sich ein weiterer Dialog öffnen, in welchem die Berücksichtigung von Medien während der Freigabe aktiviert bzw. deaktiviert werden kann. Standardmäßig ist die Option aktiviert (vgl. Abbildung Start-Dialog & Formular des Freigabe-Arbeitsablaufs - ContentCreator).

Start-Dialog & Formular des Freigabe-Arbeitsablaufs - ContentCreator
Abbildung 20. Start-Dialog & Formular des Freigabe-Arbeitsablaufs - ContentCreator


Im ContentCreator ist eine Ausführung des Freigabe-Arbeitsablaufs nur auf Seitenreferenzen, Content-Store-Detailseiten und Dokumentengruppen möglich. Diese Elemente werden im Folgenden näher beschrieben.

Die rekursive Freigabe steht im ContentCreator nicht zur Verfügung.

Zur Verwendung des Freigabe-Arbeitsablaufs im ContentCreator ist es zwingend erforderlich, dass der durch das Modul bereitgestellte Element Status Provider ausgewählt und die Web-Komponente sowie der Webserver aktiviert wurden (siehe Kapitel Aktivierung der Arbeitsabläufe für den ContentCreator und Kapitel Aktivierung der Web-Komponente und des Webservers).

Seitenreferenz

Redakteure arbeiten im ContentCreator auf Seitenreferenzen, die jedoch auf Seiten basieren. Eine Seitenreferenz kann nur dann freigegeben werden, wenn von der zugehörigen Seite eine Freigabeversion existiert. Aus diesem Grund werden Seitenreferenzen und die ihnen jeweils als Basis dienende Seite vom Freigabe-Arbeitsablauf als eine Einheit betrachtet.

Wird der Arbeitsablauf auf einer Seitenreferenz gestartet, wird automatisch immer zuerst die Seite freigegeben – unabhängig davon, ob von ihr bereits eine Freigabeversion existiert. Um die Erreichbarkeit der Seite zu gewährleisten, wird dabei auch ihre Vaterkette durch den Arbeitsablauf berücksichtigt, sofern die Knoten dieser Kette zuvor niemals freigegeben waren (vgl. Kapitel Ordner). Besitzt die Seite selbst ausgehende Referenzen, werden diese auf potentielle Konflikte geprüft bzw. im Fall von Medien mit freigegeben, wenn die Option beim Start des Arbeitsablaufs aktiviert ist.

Erst danach erfolgt eine Bearbeitung der Seitenreferenz und ihrer Vaterkette unter den bereits genannten Bedingungen. Im Unterschied zur Struktur der Seite, wird der Vaterknoten der Seitenreferenz immer mit freigegeben, auch wenn er vorher bereits freigegeben war. Alle anderen Knoten der Vaterkette werden jedoch nur dann freigegeben, wenn sie zuvor niemals freigegeben waren.

Auch Seitenreferenzen können ausgehende Referenzen in die Medien-Verwaltung besitzen. Diese sind im ContentCreator zwar sichtbar, können durch den Redakteur aber nur im SiteArchitect editiert werden (vgl. Abbildung Seitenreferenz mit referenziertem Bild für die Menü-Übersicht). Ebenso verhält es sich mit Struktur-Ordnern (vgl. Abbildung Struktur-Ordner mit referenziertem Bild).

Sollen diese für den ContentCreator-Redakteur „unsichtbaren“ Referenzen ebenfalls durch den Arbeitsablauf freigegeben werden, muss die Freigabe von Medien aktiviert sein (vgl. Abbildung Start-Dialog & Formular des Freigabe-Arbeitsablaufs - ContentCreator). Ist die Option nicht aktiviert, erfolgt lediglich eine Prüfung auf Konflikte (siehe auch Kapitel Medium).

Ein solcher Konflikt tritt auf, wenn keine der im Kapitel Funktionsumfang genannten Bedingungen erfüllt ist.

Der Arbeitsablauf kann nur dann erfolgreich beendet werden, wenn alle Konflikte behoben wurden (siehe dazu Kapitel Auflösung von Konflikten).

Referenzen auf Objekte eines Remote-Projekts werden durch den Freigabe-Arbeitsablauf nicht berücksichtigt.

Wird im ContentCreator die Menüstruktur verändert, wird die davon betroffene Page als nicht freigegeben angezeigt. Somit ist es möglich, die veränderte Menüstruktur auch mit dem ContentCreator freizugeben.

Entity

Die Änderung eines Datensatzes ist im ContentCreator an zwei Stellen möglich:

  • auf der Übersichtsseite aller Datensätze
  • auf der Detailseite des gewählten Datensatzes

Wird der Freigabe-Arbeitsablauf auf einer Übersichtsseite angestoßen, bezieht sich der Kontext auf die Änderungen an der Übersichtsseite und nicht auf den Datensatz.

Für die Freigabe von Änderungen an einem Datensatz muss der Freigabe-Arbeitsablauf auf der Detailseite des Datensatzes und nicht auf der Übersichtsseite aller Datensätze gestartet werden.

Die Änderungen an einem Datensatz werden beim Start des Freigabe-Arbeitsablaufs auf der Übersichtsseite nicht berücksichtigt und somit auch nicht freigegeben. Bei der Übersichtsseite handelt es sich um eine Seitenreferenz und der Freigabe-Arbeitsablauf verhält sich entsprechend.

Wird der Freigabe-Arbeitsablauf auf einer Detailseite angestoßen, bezieht sich der Kontext auf den gewählten Datensatz und nicht auf die Detailseite. Es werden nur die Änderungen an dem Datensatz berücksichtigt und entsprechend freigegeben.

Die Freigabe von Änderungen an der Detailseite eines Datensatzes (nicht dem Datensatz selber) ist somit im ContentCreator nicht möglich und hat im SiteArchitect zu erfolgen. Dort entspricht sie einer Seitenreferenz und der Freigabe-Arbeitsablauf verhält sich entsprechend.

Die meist zu einem Datensatz bestehenden Referenzen in andere FirstSpirit-Verwaltungen werden durch den Arbeitsablauf ebenfalls berücksichtigt.

Referenzen auf Objekte eines Remote-Projekts werden durch den Freigabe-Arbeitsablauf nicht berücksichtigt.

Entsprechend der für sie geltenden Bedingungen werden referenzierte Medien mit freigegeben (vgl. Kapitel Medium), wenn die Checkbox Freigabe inkl. Medien beim Start des Arbeitsablaufs aktiviert ist (siehe Abbildung Start-Dialog & Formular des Freigabe-Arbeitsablaufs - ContentCreator).

Wurde die Option beim Start des Arbeitsablaufs deaktiviert, werden die referenzierten Medien nur auf potentielle Konflikte geprüft.

Referenzen auf Objekte, die keine Medien sind, werden – unabhängig vom Status der Checkbox – grundsätzlich nur auf Konflikte geprüft und niemals durch den Arbeitsablauf freigegeben.

Ein Konflikt tritt auf, wenn keine der im Kapitel Funktionsumfang genannten Bedingungen erfüllt ist.

Zur Beendigung des Arbeitsablaufs ist eine Beseitigung aller Konflikte erforderlich (siehe dazu Kapitel Auflösung von Konflikten).

Dokumentengruppe

Dokumentengruppen können im ContentCreator nur über eine direkte Verlinkung oder über die Verwendung der ContentCreator-Suche geöffnet und angezeigt werden. Eine Referenzierung über die Navigation und die Bearbeitung einer Dokumentengruppe im ContentCreator ist nicht möglich. Die Ausführung eines Arbeitsablaufs ist jedoch zulässig und wie gewohnt über das Statusmenü durchführbar.

Der auf einer Dokumentengruppe ausgeführte Freigabe-Arbeitsablauf gibt nur den Knoten dieser Dokumentengruppe frei. Von ihr referenzierte Struktur-Ordner oder Seitenreferenzen werden bei der Freigabe nicht berücksichtigt. Sie werden jedoch auf potentielle Konflikte geprüft.

Da in einer Dokumentengruppe beliebig tiefe Verschachtelungen vorliegen können, werden nur die Elemente der ersten Inhaltsebene zur Konfliktprüfung herangezogen. Jegliche Kindelemente werden ignoriert!

Ein Konflikt tritt genau dann auf, wenn mindestens eines der Elemente der ersten Inhaltsebene kaputte Referenzen besitzt oder noch niemals freigegeben war.

Für ein erläuterndes Beispiel siehe Kapitel Dokumentengruppe (SiteArchitect).

Informationen zur Auflösung eines Konflikts finden Sie im Kapitel Auflösung von Konflikten.

Informationen zu Dokumentengruppen finden Sie im Handbuch für Redakteure.

3.2. Konflikte

Der beschriebene Freigabe-Arbeitsablauf ist auf die Erzeugung eines konsistenten Freigabestands ausgelegt. Während der Ausführung des Arbeitsablaufs können sogenannte Konflikte auftreten, die manuell zu beheben sind. Konflikte weisen somit auf eine drohende Inkonsistenz des Freigabestands hin. Es würden Fehler in der Generierung und auf der Live-Seite auftreten, die sich in Form „toter Links“ äußern würden. Dies wird durch die Konflikt-Prüfung abgefangen. Im Fall der rekursiven Freigabe bezieht sich die Prüfung auch auf die Kindelemente des ausgewählten Elements.

Bei der Freigabe der Vaterkette bleiben deren Startknoten unberücksichtigt. Dadurch kann sie auch nach der Beendigung des Freigabe-Arbeitsablaufs noch niemals freigegebene Elemente eines Startknotenpfads enthalten. Dem Redakteur wird in diesem Fall eine entsprechende Fehlermeldung angezeigt, es tritt jedoch kein Konflikt auf.

Formal gesehen tritt bei der Ausführung des Freigabe-Arbeitsablaufs immer genau dann ein Konflikt auf, wenn eine kaputte Referenz existiert oder keine der folgenden Bedingungen erfüllt ist:

  • es werden nur Medien referenziert und die Option Freigabe inkl. Medien ist aktiviert
  • die Option Freigabe inkl. Medien ist aktiviert und von allen direkt referenzierten Objekten, die keine Medien sind, existiert eine Freigabeversion
  • die Option Freigabe inkl. Medien ist deaktiviert und von allen referenzierten Objekten existiert eine Freigabeversion

Seiten stellen in Bezug auf die notwendige Existenz einer Freigabeversion (Punkt 2 und 3 der obigen Liste) eine Ausnahme dar: Sie werden als Einheit mit der ihnen zugehörigen Seitenreferenz betrachtet. Wird der Freigabe-Arbeitsablauf auf einer Seitenreferenz gestartet, wird die Seite immer automatisch mit freigegeben – unabhängig davon, ob von ihr bereits eine Freigabeversion existiert (siehe auch Kapitel Seitenreferenz (SiteArchitect) und Kapitel Seitenreferenz (ContentCreator).

Übertragen auf die Elemente in FirstSpirit lässt sich somit folgende Aussage ableiten:

Ein FirstSpirit-Objekt löst immer genau dann einen Konflikt aus, wenn:

  • es trotz bestehender direkter Referenz gelöscht wurde und somit eine kaputte Referenz erzeugt.
  • von ihm keine Freigabe-Version existiert und es durch das Objekt, auf welchem der Freigabe-Arbeitsablauf ausgeführt wird, referenziert wird.

Ergänzend zu den zuvor genannten Bedingungen tritt bei der rekursiven Freigabe ein Konflikt auf, wenn sich eines der Kindelemente bereits in einem Arbeitsablauf befindet.

Ausnahmen

Referenzierte Medien ohne Freigabe-Version lösen nur dann einen Konflikt aus, wenn die Option Freigabe inkl. Medien nicht aktiviert ist (vgl. Abbildung Formular des Freigabe-Arbeitsablaufs - SiteArchitect und Abbildung Start-Dialog & Formular des Freigabe-Arbeitsablaufs - ContentCreator).
Wird der Freigabe-Arbeitsablauf auf einer Seitenreferenz ausgeführt, muss von der zugrunde liegenden Seite keine Freigabeversion existieren.
Ordner, die ein Teil der Vaterkette eines referenzierten Objekts sind, werden nur dann freigegeben, wenn von ihnen noch keine Freigabeversion existiert. Ihre Startknoten bleiben dabei von der Freigabe unberücksichtigt. Werden Ordner hingegen direkt referenziert, gelten die genannten Bedingungen.

Tritt während der Ausführung des Arbeitsablaufs ein Konflikt auf, wird der Arbeitsablauf unterbrochen. Der Redakteur hat darauf die Möglichkeit, sich die Liste aller zu behandelnden Objekte anzeigen zu lassen und die Konflikte manuell zu beheben, um den Arbeitsablauf danach erfolgreich zu beenden (vgl. Abbildung Hinweisdialog bzgl. bestehender Konflikte (ContentCreator und SiteArchitect)).

Weitere Informationen zur Auflösung von Konflikten finden Sie im Kapitel Auflösung von Konflikten.

Hinweisdialog bzgl. bestehender Konflikte (ContentCreator und SiteArchitect)
Abbildung 21. Hinweisdialog bzgl. bestehender Konflikte (ContentCreator und SiteArchitect)


3.3. Feature Comparison-Matrix

Der für FirstSpirit Version 5 neu entwickelte Freigabe-Arbeitsablauf bietet gegenüber dem aus früheren FirstSpirit-Versionen bekannten Freigabe-Arbeitsablauf und der administrativen Freigabe deutliche Vorteile. Dies zeigt auch die folgende Gegenüberstellung:

Tabelle 1. Feature Comparison-Matrix
 bisheriger Freigabe-Arbeitsablaufneuer Freigabe-Arbeitsablaufadministrative Freigabe

Sicherstellung eines konsistenten Freigabestands

 — 

 — 

Information über aufgetretene Konflikte

 — 

 — 

Freigabe von Datensätzen

 — 

()

Unterstützung von Dynamischen Formularen

 — 

 — 

Berücksichtigung von Absatzreferenzen

 — 

 — 

Freigabe referenzierter Medien

Sicherstellung der Erreichbarkeit (Vaterkette)

rekursive Freigabe

 — 

nur neue Medien freigeben

 — 

 — 



Die BasicWorkflows unterstützen ab der Version 1.0.8 nur noch die FirstSpirit-Version 5.1 oder höher. Sie sind ab dieser Modulversion nicht mehr zu FirstSpirit 5.0 kompatibel.

4. Lösch-Arbeitsablauf

Durch das native Löschen von Elementen wird die Baumstruktur des Projekts verändert. Diese Änderung gilt jedoch nur im Current-Stand. Um sie auch in den Freigabestand zu übernehmen, muss der Vaterknoten des gelöschten Elements freigegeben werden.

Dieser Aspekt ist nicht intuitiv und kann potentiell zu Irritationen führen. Um den Lösch-Prozess für Redakteure zu vereinfachen, wurde für FirstSpirit Version 5 ein auf dem 4-Augen-Prinzip basierender Lösch-Arbeitsablauf entwickelt, der das zu löschende Element sowohl aus dem Current- als auch aus dem Freigabestand entfernt.

Die BasicWorkflows unterstützen ab der Version 1.0.8 nur noch die FirstSpirit-Version 5.1 oder höher. Sie sind ab dieser Modulversion nicht mehr zu FirstSpirit 5.0 kompatibel.

Der neue Lösch-Arbeitsablauf bietet zwei Lösch-Möglichkeiten, die über den Dialog des Arbeitsablaufs bereitgestellt werden (vgl. Abbildung Start-Dialog des Lösch-Arbeitsablaufs (SiteArchitect)):

  • Direkt löschen
  • Anfordern
Start-Dialog des Lösch-Arbeitsablaufs (SiteArchitect)
Abbildung 22. Start-Dialog des Lösch-Arbeitsablaufs (SiteArchitect)


Direkt löschen

Diese Option steht dem Redakteur nur dann zur Verfügung, wenn dieser das Lösch-Recht für das zu löschende Objekt besitzt. Der Redakteur muss außerdem über das Lösch-Recht für Ordner verfügen, da andernfalls Fehler beim Löschen von Ordnern auftreten können.

Die Option Direkt löschen bietet dieselbe Funktionalität wie die nachfolgend beschriebene Option Anfordern. Allerdings wird beim direkten Löschen die Zuweisung an einen nachfolgenden Bearbeiter umgangen und die Prüfung auf potentielle Konflikte automatisch ausgelöst. Treten während der Ausführung des Arbeitsablaufs keine Konflikte auf, läuft der Arbeitsablauf nach dem Start ohne weitere Unterbrechung durch. Das 4-Augen-Prinzip ist somit in diesem Fall nicht gegeben.

Mit der Erläuterung der Option Anfordern erfolgt eine genaue Beschreibung der einzelnen Schritte des Arbeitsablaufs.

Anfordern

Die Anforderung der Löschung eines Elements verändert den Current-Stand zunächst nicht. Das Element existiert weiterhin und ist auch in der Vorschau sichtbar (siehe auch: Kapitelende, Abschnitt Löschanforderungen visualisieren). Der nachfolgende Bearbeiter weist die Löschung des Elements entweder ab oder er stößt sie durch die Weiterschaltung des Arbeitsablaufs an (vgl. Abbildung Weiterschaltung durch den nächsten Bearbeiter). Erst durch die Weiterschaltung erfolgt eine automatische Prüfung auf potentielle Konflikte.

Ein solcher Konflikt tritt auf, wenn das zu löschende Element durch ein anderes FirstSpirit-Objekt referenziert wird. Das Löschen eines noch referenzierten Elementes würde Fehler im Projekt, in der Generierung und auf der Liveseite erzeugen und muss daher vermieden werden.

Weiterschaltung durch den nächsten Bearbeiter
Abbildung 23. Weiterschaltung durch den nächsten Bearbeiter


Erzeugt die Prüfung ein negatives Ergebnis, lässt sich eine Liste der das Löschen verhindernden Elemente anzeigen (vgl. Abbildung Liste der Objekte, die das zu löschende Element referenzieren). Die dargestellten Elemente dieser Liste lassen sich nicht direkt aufrufen. Sie müssen manuell ermittelt werden, um die Konflikte aufzulösen.

Nähere Informationen zur Auflösung von Konflikten finden Sie im Kapitel Auflösung von Konflikten.

Liste der Objekte, die das zu löschende Element referenzieren
Abbildung 24. Liste der Objekte, die das zu löschende Element referenzieren


Erst wenn alle Konflikte beseitig bzw. wenn keine Konflikte festgestellt wurden, lässt sich der Arbeitsablauf fortführen. Das zu löschende Element wird daraufhin aus dem Current-Stand entfernt und der Vaterknoten freigegeben, um die Löschung des Elements auch in den Freigabestand zu übernehmen.

Die Freigabe des Vaterknotens erfolgt bei jeder Ausführung des Lösch-Arbeitsablaufs und ist unabhängig von dem zuvor bestehenden Freigabestatus der Vaterelemente. Das heißt, dass auch zuvor nicht freigegebene Vaterelemente durch den Lösch-Arbeitsablauf freigegeben werden.

Für diesen Schritt muss der Redakteur neben dem Lösch-Recht für Objekte bzw. Ordner auch das Freigabe-Recht besitzen

Die entsprechenden Folgen einer solchen Freigabe müssen vor der Ausführung des Arbeitsablaufs bedacht werden. Ist die Freigabe nicht gewünscht, muss der Arbeitsablauf individuell angepasst werden (siehe Kapitel Erweiterung der Implementierung).

Die potentielle Entstehung von Inkonsistenzen beim Löschen von Ordnern und der damit einhergehenden Entfernung von Kindelementen wird durch den Lösch-Arbeitsablauf nicht geprüft. Solche Inkonsistenzen treten immer dann auf, wenn mindestens eines der Kindelemente durch ein anderes FirstSpirit-Objekt referenziert wird (incoming References). Ist eine solche Prüfung gewünscht, muss der Arbeitsablauf entsprechend erweitert werden (siehe Kapitel Erweiterung der Implementierung).

Abbrechen

Der Button Abbrechen besitzt die gleiche Funktionalität wie der Schließen-Button des Dialogs: Der Arbeitsablauf wird nicht weiter geschaltet und das gewählte Element verbleibt in dem Zustand, in welchem es sich vor dem Öffnen des Dialogs befand.

Löschen abbrechen

Der Arbeitsablauf führt beim Starten zunächst einen automatischen Schritt aus. Ein Abbrechen dieses Schritts würde zu einem Zustand führen, der durch den Redakteur nicht aufgelöst werden könnte. Aus diesem Grund wurde dem Dialog der Button Löschen abbrechen hinzugefügt, auf dessen Transition der Button Abbrechen im ersten Schritt des Arbeitsablaufs mappt. Dies ist notwendig, da dem Button Abbrechen nicht direkt eine Transition zugewiesen werden kann.

Die Buttons Abbrechen und Löschen abbrechen besitzen somit dieselbe Funktionalität.

Mit der FirstSpirit Version 5.2 R2 wurde dem ContentCreator die Medien-Verwaltung hinzugefügt. Diese ermöglicht die Pflege und damit auch das Löschen der im Projekt enthaltenen Medien und Medien-Ordner. Die Löschfunktion steht dabei allerdings nur dann zur Verfügung, wenn ein entsprechender Arbeitsablauf in den Projekteigenschaften ausgewählt wurde.

Ein solcher Arbeitsablauf kann in der Medien-Verwaltung jedoch lediglich gestartet und nicht weitergeschaltet werden. Die Verwendung des Buttons Anfordern führt bei der Ausführung des Lösch-Arbeitsablaufs an dieser Stelle daher zu einem Zustand, der nur im SiteArchitect aufgelöst werden kann. Dies gilt auch für Konflikte durch noch referenzierte Medien bzw. Medien-Ordner.

Löschanforderungen visualisieren

Wie bereits in diesem Kapitel erwähnt, verändert die Anforderung der Löschung eines Elements den Current-Stand zunächst nicht. Das Element existiert weiterhin und ist in der Vorschau sichtbar. Für andere Redakteure ist somit nicht sofort erkennbar, dass es sich um ein im Lösch-Arbeitsablauf befindliches Element handelt.

Besteht der Wunsch, die Löschung eines Elements zu visualisieren, ist dies beispielsweise über die Einbindung des folgenden Code-Schnipsels in das verwendete Seitentemplate möglich. Der Code-Schnipsel stellt lediglich ein Minimal-Beispiel dar und sollte daher entsprechend angepasst werden.

$-- workflow example: begin --$
<style type="text/css">
   .inWorkflow
    {   background-color: white;
        filter:alpha(opacity=50); /* IE */
        opacity: 0.5; /* Safari, Opera */
        -moz-opacity:0.50; /* FireFox */
        z-index: 20;
        height: 100%;
        width: 100%;
        background-repeat:no-repeat;
        background-position:center;
        position:absolute;
        top: 0px;
        left: 0px;
    }
</style>

$CMS_VALUE(#global.node.getTask().refresh())$
$CMS_IF(#global.node.getTask().getWorkflow().getUid().equals("<Referenzname des Arbeitsablaufs>"))$
    <div id="inWorkflow" class="inWorkflow"></div>
$CMS_END_IF$
$-- workflow example: end --$

Alle auf diesem Seitentemplate basierenden Seiten und Seitenreferenzen, die sich innerhalb des Lösch-Arbeitsablaufs befinden, werden daraufhin ausgegraut (vgl. Abbildung Visualisierung des gestarteten Lösch-Arbeitsablaufs). Diese Ansicht wirkt sich sowohl in der Vorschau des SiteArchitects als auch im ContentCreator aus.

Durch das Ausgrauen werden die EasyEdit-Buttons im ContentCreator überdeckt. Eine Bearbeitung der Seite ist dann nicht mehr möglich.

Visualisierung des gestarteten Lösch-Arbeitsablaufs
Abbildung 25. Visualisierung des gestarteten Lösch-Arbeitsablaufs


4.1. Funktionsumfang

Der Lösch-Arbeitsablauf lässt sich sowohl im SiteArchitect als auch im ContentCreator ausführen. Da die Menge der Elemente, auf denen der Arbeitsablauf gestartet werden kann, in den beiden Clients jedoch divergiert und sich der Arbeitsablauf in den Clients unterschiedlich verhält, werden sie differenziert betrachtet.

Generell dient der Lösch-Arbeitsablauf dazu, ein Element sowohl aus dem Current- als auch aus dem Freigabestand des Projekts zu entfernen. Die Übernahme der Löschung in den Freigabestand erfolgt durch die Freigabe des Vaterknotens des gelöschten Elements. Es werden außerdem die auf das zu löschende Element eingehenden Referenzen berücksichtigt, um potentiell durch das Löschen entstehende Inkonsistenzen zu vermeiden.

Entstehende Inkonsistenzen beim Löschen von Ordnern und der damit einhergehenden Entfernung von Kindelementen werden durch den Arbeitsablauf nicht vermieden! Inkonsistenzen treten in diesem Fall immer dann auf, wenn für mindestens ein Kindelement eingehende Kanten (incoming References) existieren.

Formal soll der Arbeitsablauf beim Löschen eines Elements die folgenden Faktoren berücksichtigen:

  • sich aus dem Löschen eines Objekts ergebende Abhängigkeiten:

    • zur Überführung des Löschens in den Freigabestand muss der Vaterknoten freigegeben werden
    • eine Seitenreferenz darf nicht ohne zugrunde liegende Seite existieren
    • beim Löschen einer Startseite in einem Ordner der Struktur-Verwaltung muss eine neue Startseite definiert werden
  • Verhinderung des Löschens bei bestehenden, eingehenden Referenzen auf das zu löschende Objekt (Ausnahme: Kindelemente eines zu löschenden Ordners)
  • Verhinderung des Löschens bei noch offenen Workflow-Instanzen, sollte das zu löschende Objekt ein Workflow sein

Treten beim Löschen eines Elements Konflikte auf, wird der Arbeitsablauf unterbrochen, bis alle Konflikte beseitigt wurden.

Weitere Informationen zur Auflösung von Konflikten finden Sie im Kapitel Auflösung von Konflikten.

Die sich im Arbeitsablauf befindenden Objekte werden während dessen Ausführung nicht mit einem Schreibschutz versehen.

Es besteht keine Möglichkeit, den Lösch-Arbeitsablauf durch sich selbst zu löschen. In diesem Fall wird die Ausführung abgebrochen.

4.1.1. SiteArchitect

Im SiteArchitect wird der Lösch-Arbeitsablauf über das Kontextmenü bzw. bei entsprechender Projektkonfiguration über die Ausführung einer beliebigen Lösch-Operation gestartet (vgl. Kapitel Auswahl des Arbeitsablaufs zum Löschen von Elementen). Es öffnet sich der bekannte Arbeitsablauf-Dialog. In diesem Dialog werden beim Start des Lösch-Arbeitsablaufs je nach Benutzer zwei Optionen zur Verfügung gestellt (vgl. Abbildung Start-Dialog des Lösch-Arbeitsablaufs (SiteArchitect)):

  • Direkt löschen
  • Anfordern

Da die Option Direkt löschen lediglich einer Umgehung des 4-Augen-Prinzips entspricht und ansonsten die Funktionalitäten der Option Anfordern besitzt (siehe Beschreibung in Kapitel Lösch-Arbeitsablauf), beziehen sich die Erläuterungen der nachfolgenden Unterkapitel nur auf die Option Anfordern.

Der Arbeitsablauf kann im SiteArchitect auf zahlreichen Objekten ausgeführt werden. Um Konflikte zu vermeiden, müssen die eingehenden Kanten (incoming References) eines zu löschenden Objekts ebenfalls durch den Arbeitsablauf berücksichtigt werden. Die Funktionsweise des Arbeitsablaufs bei der Ausführung auf den verschiedenen FirstSpirit-Objekten im SiteArchitect wird in diesem Kapitel erläutert.

Es besteht keine Möglichkeit, den Lösch-Arbeitsablauf durch sich selbst zu löschen. In diesem Fall wird die Ausführung abgebrochen.

Medium

Wird der Lösch-Arbeitsablauf auf einem Medium gestartet, wird dieses – nach der Weiterschaltung des Arbeitsablaufs durch den nächsten Bearbeiter – gelöscht und der Vaterknoten des Mediums freigegeben, sofern keine eingehenden Referenzen auf dem Medium bestehen.

Die Freigabe des Vaterknotens erfolgt bei jeder Ausführung des Lösch-Arbeitsablaufs und ist unabhängig von dem zuvor bestehenden Freigabestatus der Vaterelemente. Das heißt, dass auch zuvor nicht freigegebene Vaterelemente durch den Lösch-Arbeitsablauf freigegeben werden.

Für diesen Schritt muss der Redakteur neben dem Lösch-Recht für Objekte bzw. Ordner auch das Freigabe-Recht besitzen.

Bestehen eingehende Referenzen auf dem zu löschenden Medium, tritt ein Konflikt auf, ohne welchen es zu einem inkonsistenten Freigabestand kommen würde. Der Konflikt muss zunächst manuell aufgelöst werden, bevor die Löschung des Mediums durchgeführt werden kann (siehe dazu Kapitel Auflösung von Konflikten).

Ist das Medium ein Kindelement eines zu löschenden Ordners, werden die eingehenden Referenzen des Mediums nicht geprüft. Es kann daher beim Löschen eines Ordners zu Inkonsistenzen kommen.

Entity

Ein Datensatz kann nur dann durch den Arbeitsablauf gelöscht werden, wenn er nicht durch andere FirstSpirit-Objekte referenziert wird (incoming References), da andernfalls Inkonsistenzen auftreten würden.

Referenziert der Datensatz selbst andere FirstSpirit-Objekte (outgoing References), ist der Arbeitsablauf dadurch nicht betroffen.

Zur Vermeidung von Inkonsistenzen tritt bei bestehenden eingehenden Referenzen ein Konflikt auf. Dieser muss zunächst manuell aufgelöst werden, bevor der Datensatz durch den Arbeitsablauf gelöscht werden kann (siehe dazu Kapitel Auflösung von Konflikten).

Datenquelle

Die Durchführung des Lösch-Arbeitsablaufs auf Datenquellen ist nicht möglich. Die Auswahl einer Datenquelle selektiert automatisch den ersten Datensatz. Ein Start des Arbeitsablaufs auf einer Datenquelle bezieht sich somit auf diesen Datensatz.

Das Löschen einer Datenquelle ist somit, wie bisher, nur über die Kontextmenü-Einträge ExtrasDatenquelle löschen möglich. Diese Option steht jedoch nur Projekt-Administratoren zur Verfügung.

Seite

Ein Start des Arbeitsablaufs auf einer Seite in der Inhalte-Verwaltung löscht die Seite – nach der Weiterschaltung durch den nächsten Bearbeiter – und gibt den Vaterknoten frei, wenn die Seite nicht durch ein anderes FirstSpirit-Objekt referenziert wird.

Die Freigabe des Vaterknotens erfolgt bei jeder Ausführung des Lösch-Arbeitsablaufs und ist unabhängig von dem zuvor bestehenden Freigabestatus der Vaterelemente. Das heißt, dass auch zuvor nicht freigegebene Vaterelemente durch den Lösch-Arbeitsablauf freigegeben werden.

Für diesen Schritt muss der Redakteur neben dem Lösch-Recht für Objekte bzw. Ordner auch das Freigabe-Recht besitzen.

Referenziert die Seite selbst andere FirstSpirit-Objekte, ist der Arbeitsablauf dadurch nicht betroffen.

Bestehen eingehende Referenzen, wird ein Konflikt ausgelöst, der manuell aufgelöst werden muss, bevor der Arbeitsablauf fortgeführt werden kann (siehe dazu Kapitel Auflösung von Konflikten).

Ist die Seite ein Kindelement eines zu löschenden Inhalte-Ordners, werden die eingehenden Referenzen der Seite nicht geprüft. Es kann daher beim Löschen eines Ordners zu Inkonsistenzen kommen.

Seitenreferenz

Handelt es sich bei dem Start-Element des Lösch-Arbeitsablaufs um eine Seitenreferenz, so wird diese, wenn sie keine eingehenden Referenzen besitzt, durch den Arbeitsablauf gelöscht und der zugehörige Vaterknoten freigegeben.

Die Freigabe des Vaterknotens erfolgt bei jeder Ausführung des Lösch-Arbeitsablaufs und ist unabhängig von dem zuvor bestehenden Freigabestatus der Vaterelemente. Das heißt, dass auch zuvor nicht freigegebene Vaterelemente durch den Lösch-Arbeitsablauf freigegeben werden.

Für diesen Schritt muss der Redakteur neben dem Lösch-Recht für Objekte bzw. Ordner auch das Freigabe-Recht besitzen.

Referenziert die Seitenreferenz selbst – durch die Auswahl eines Bildes für die Menü-Übersicht (vgl. Abbildung Seitenreferenz mit referenziertem Bild für die Menü-Übersicht) – ein anderes FirstSpirit-Objekt wird der Arbeitsablauf dadurch nicht beeinflusst.

Seitenreferenz mit referenziertem Bild für die Menü-Übersicht
Abbildung 26. Seitenreferenz mit referenziertem Bild für die Menü-Übersicht


Bestehende Referenzen anderer FirstSpirit-Objekte auf die zu löschende Seitenreferenz lösen einen Konflikt aus, da es ansonsten zu Fehlern im Freigabestand käme. Ein Konflikt muss manuell beseitigt werden, bevor die Löschung des gewünschten Elements fortgeführt werden kann (siehe dazu Kapitel Auflösung von Konflikten).

Ist die Seitenreferenz ein Kindelement eines zu löschenden Struktur-Ordners, werden die eingehenden Referenzen der Seitenreferenz nicht geprüft. Es kann daher beim Löschen eines Struktur-Ordners zu Inkonsistenzen kommen.

Handelte es sich bei der gelöschten Seitenreferenz um die Startseite eines Struktur-Ordners, wird automatisch eine andere sich in diesem Ordner befindende Seitenreferenz als Startseite gewählt. Befindet sich keine weitere Seitenreferenz in dem Ordner, erscheint bei der Ausführung des Arbeitsablaufs eine Fehlermeldung.

Dokumentengruppe

In einer Dokumentengruppe können Seitenreferenzen sowie Struktur-Ordner zusammengefasst werden, um als eine Seite dargestellt zu werden.

Die innerhalb der Dokumentengruppe referenzierten Struktur-Ordner und Seitenreferenzen sowie deren zugehörige Seiten beeinflussen den Lösch-Arbeitsablauf nicht und bleiben durch diesen unberücksichtigt, da es sich bei ihnen um ausgehende Referenzen handelt.

Der Lösch-Arbeitsablauf berücksichtigt jedoch eingehende Referenzen. Eine solche Referenz liegt vor, wenn die Dokumentengruppe durch ein anderes FirstSpirit-Objekt referenziert wird. In diesem Fall wird bei der Ausführung des Arbeitsablaufs ein Konflikt ausgelöst. Dieser muss zunächst manuell behoben werden, bevor die Dokumentengruppe gelöscht und ihr Vaterknoten freigegeben werden kann (siehe dazu Kapitel Auflösung von Konflikten).

Informationen zu Dokumentengruppen finden Sie auch im Handbuch für Redakteure.

Die Freigabe des Vaterknotens erfolgt bei jeder Ausführung des Lösch-Arbeitsablaufs und ist unabhängig von dem zuvor bestehenden Freigabestatus der Vaterelemente. Das heißt, dass auch zuvor nicht freigegebene Vaterelemente durch den Lösch-Arbeitsablauf freigegeben werden.

Für diesen Schritt muss der Redakteur neben dem Lösch-Recht für Objekte bzw. Ordner auch das Freigabe-Recht besitzen.

Ordner

Beim Start des Lösch-Arbeitsablaufs auf einem Ordner wird dieser inklusive seiner Kindelemente gelöscht und sein Vaterknoten freigegeben, wenn er nicht durch andere FirstSpirit-Objekte referenziert wird.

Die Freigabe des Vaterknotens erfolgt bei jeder Ausführung des Lösch-Arbeitsablaufs und ist unabhängig von dem zuvor bestehenden Freigabestatus der Vaterelemente. Das heißt, dass auch zuvor nicht freigegebene Vaterelemente durch den Lösch-Arbeitsablauf freigegeben werden.

Für diesen Schritt muss der Redakteur neben dem Lösch-Recht für Objekte bzw. Ordner auch das Freigabe-Recht besitzen.

Bestehende Referenzen auf den zu löschenden Ordner lösen einen Konflikt aus, da es ansonsten zu Fehlern im Freigabestand käme. Ein Konflikt muss manuell beseitigt werden, bevor der Arbeitsablauf fortgeführt werden kann (siehe dazu Kapitel Auflösung von Konflikten).

Die Durchführung des Lösch-Arbeitsablaufs auf Ordnern der Datenquellen-Verwaltung ist nicht möglich. Der Lösch-Arbeitsablauf ist auf diesen Knoten nicht verfügbar.

Eine Prüfung auf die potentielle Entstehung von Inkonsistenzen beim Löschen von Ordnern und der damit einhergehenden Entfernung von Kindelementen wird nicht geprüft. Dies trifft immer dann zu, wenn für mindestens eines der Kindelemente aufgrund bestehender Referenzen eingehende Kanten (incoming References) existieren.

Struktur-Ordner

Ordner aus der Struktur-Verwaltung stellen gegenüber den Ordnern aus den anderen FirstSpirit-Verwaltungen eine Besonderheit dar, weil nur sie Startseiten besitzen. Ein Struktur-Ordner ohne Startseite führt zu Generierungsfehlern. Dieser Zustand muss somit vermieden werden.

Wird die Startseite eines Struktur-Ordners durch den Lösch-Arbeitsablauf gelöscht, wird automatisch eine andere sich in dem Ordner befindende Seitenreferenz als Startseite ausgewählt.

Befindet sich keine weitere Seitenreferenz in dem Struktur-Ordner und wäre er somit durch die Löschung der Startseite anschließend leer, wird während der Ausführung des Arbeitsablaufs eine Warnung angezeigt (vgl. Abbildung Löschen der Startseite als letztes Element eines Struktur-Ordners).

Löschen der Startseite als letztes Element eines Struktur-Ordners
Abbildung 27. Löschen der Startseite als letztes Element eines Struktur-Ordners


Durch die Löschung einer Startseite eines Struktur-Ordners wird eine neue Startseite für diesen Ordner ausgewählt, wenn dieser noch mindestens eine weitere Seitenreferenz beinhaltet.

Die neue Startseite wird automatisch durch den Arbeitsablauf freigegeben – unabhängig von ihrem zuvor bestehenden Freigabestatus. Das heißt, auch eine zuvor nicht freigegebene Seitenreferenz wird freigegeben, wenn sie als Startseite ausgewählt wurde.

Globale Seiten

Das Verhalten des Lösch-Arbeitsablaufs für Globale Seiten in den Globalen Einstellungen entspricht dem Verhalten für Seiten aus der Inhalte-Verwaltung.

Projekteinstellungen

Der Lösch-Arbeitsablauf ist auf Projekteinstellungen nicht verfügbar. Die Durchführung des Arbeitsablaufs ist somit auf diesem Knoten nicht möglich.

4.1.2. ContentCreator

Der Lösch-Arbeitsablauf wird im ContentCreator über das Status- oder das Inhalte-Menü gestartet (vgl. Abbildung Status- und Inhalte-Menü des ContentCreators). Des Weiteren kann er über die mit der FirstSpirit Version 5.2 R2 hinzugekommene Medien-Verwaltung ausgeführt werden.

Der Eintrag innerhalb des Status-Menüs ist aufgrund der standardmäßigen Aktivierung des bereitgestellten Lösch-Arbeitsablaufs für die Ausführung im ContentCreator immer sichtbar. Der Eintrag im Inhalte-Menü sowie die Option in der Medien-Verwaltung erscheinen jedoch nur dann, wenn der Lösch-Arbeitsablauf in den Projekteigenschaften standardmäßig für alle Lösch-Operationen ausgewählt wurde (siehe Kapitel Auswahl des Arbeitsablaufs zum Löschen von Elementen).

Status- und Inhalte-Menü des ContentCreators
Abbildung 28. Status- und Inhalte-Menü des ContentCreators


Durch den Start des Arbeitsablaufs öffnet sich der zugehörige Dialog, in welchem die zwei verfügbaren Lösch-Optionen bereitgestellt werden (vgl. Abbildung Start-Dialog des Lösch-Arbeitsablaufs).

Start-Dialog des Lösch-Arbeitsablaufs
Abbildung 29. Start-Dialog des Lösch-Arbeitsablaufs


Eine Ausführung des Lösch-Arbeitsablaufs ist im ContentCreator nur auf Seitenreferenzen, Content-Store-Detailseiten, Dokumentengruppen und ab der FirstSpirit Version 5.2 R2 zusätzlich auf Medien sowie Medien-Ordnern möglich. Diese Elemente werden im Folgenden näher beschrieben.

In der Medien-Verwaltung kann ein Arbeitsablauf lediglich gestartet und nicht weitergeschaltet werden. Die Verwendung des Buttons Anfordern führt bei der Ausführung des Lösch-Arbeitsablaufs an dieser Stelle daher zu einem Zustand, der nur im SiteArchitect aufgelöst werden kann. Dies gilt auch für Konflikte durch noch referenzierte Medien bzw. Medien-Ordner.

Zur Verwendung des Lösch-Arbeitsablaufs im ContentCreator ist es zwingend erforderlich, dass der durch das Modul bereitgestellte Element Status Provider ausgewählt und die Web-Komponente sowie der Webserver aktiviert wurden (siehe Kapitel Aktivierung der Arbeitsabläufe für den ContentCreator und Kapitel Aktivierung der Web-Komponente und des Webservers).

Seitenreferenz

Redakteure arbeiten im ContentCreator auf Seitenreferenzen, die jedoch auf Seiten basieren. Daher muss bei dem Löschen einer Seitenreferenz auch die zugrundeliegende Seite durch den Lösch-Arbeitsablauf berücksichtigt werden.

Wird der Arbeitsablauf auf einer Seitenreferenz gestartet, wird diese – nach der Weiterschaltung des Arbeitsablaufs durch den nächsten Bearbeiter – zuerst gelöscht. Dies gelingt nur dann, wenn die Seitenreferenz durch kein anderes FirstSpirit-Objekt referenziert wird. Andernfalls wird ein Konflikt ausgelöst, um Inkonsistenzen zu vermeiden. Die den Konflikt auslösenden Elemente lassen sich anzeigen und müssen manuell ermittelt werden (vgl. Abbildung Liste der einen Konflikt auslösenden Elemente (ContentCreator)). Erst nach der Auflösung aller bestehenden Konflikte kann der Arbeitsablauf fortgeführt werden (siehe dazu Auflösung von Konflikten).

Liste der einen Konflikt auslösenden Elemente (ContentCreator)
Abbildung 30. Liste der einen Konflikt auslösenden Elemente (ContentCreator)


Im Anschluss an die Löschung der Seitenreferenz wird der Vaterknoten freigegeben, um die Löschung auch in den Freigabestand zu übernehmen.

Abschließend bearbeitet der Arbeitsablauf die der Seitenreferenz zugrundeliegende Seite. Existieren für sie keine weiteren Referenzen durch andere FirstSpirit-Objekte, wird sie ebenfalls unter den für Seiten geltenden Bedingungen durch den Arbeitsablauf gelöscht.

Die Freigabe des Vaterknotens erfolgt bei jeder Ausführung des Lösch-Arbeitsablaufs und ist unabhängig von dem zuvor bestehenden Freigabestatus der Vaterelemente. Das heißt, dass auch zuvor nicht freigegebene Vaterelemente durch den Lösch-Arbeitsablauf freigegeben werden.

Für diesen Schritt muss der Redakteur neben dem Lösch-Recht für Objekte bzw. Ordner auch das Freigabe-Recht besitzen.

War die gelöschte Seitenreferenz das letzte Element innerhalb des sie zuvor beinhaltenden Struktur-Ordners, so wird der Ordner ebenfalls gelöscht. Dies gilt auch rekursiv für die Vaterkette. Das heißt, dass alle Vaterordner des gelöschten Ordners (der wiederum die gelöschte Seitenreferenz enthielt) ebenso entfernt werden, wenn in ihnen keine weiteren Kindelemente enthalten sind.

Gleiches gilt analog für die der Seitenreferenz zugrunde liegende Seite und ihre Vaterkette.

Entity

Die Bearbeitung eines Datensatzes ist im ContentCreator an zwei Stellen möglich:

  • auf der Übersichtsseite aller Datensätze
  • auf der Detailseite des gewählten Datensatzes

Wird der Lösch-Arbeitsablauf auf einer Übersichtsseite angestoßen, bezieht sich der Lösch-Kontext auf die Übersichtsseite und nicht auf den Datensatz. Bei der Übersichtsseite handelt es sich um eine Seitenreferenz und der Lösch-Arbeitsablauf verhält sich entsprechend. Der Datensatz wird in diesem Fall nicht gelöscht.

Für das Löschen eines Datensatzes im ContentCreator muss der Lösch-Arbeitsablauf auf der Detailseite des Datensatzes und nicht auf der Übersichtsseite aller Datensätze gestartet werden.

Wird der Lösch-Arbeitsablauf auf einer Detailseite angestoßen, bezieht sich der Lösch-Kontext auf den gewählten Datensatz und nicht auf die Detailseite.

Die durch einen Datensatz referenzierten FirstSpirit-Objekte beeinflussen den Lösch-Arbeitsablauf nicht und werden durch diesen ignoriert, da es sich bei ihnen um ausgehende Referenzen handelt.

Der Lösch-Arbeitsablauf berücksichtigt jedoch eingehende Referenzen. Diese liegen vor, wenn der gewählte Datensatz durch andere FirstSpirit-Objekte referenziert wird. In diesem Fall ist die Löschung des Datensatzes durch den Arbeitsablauf nicht möglich und es tritt ein Konflikt auf. Dieser muss zunächst manuell aufgelöst werden, bevor die Löschung des Datensatzes durchgeführt werden kann (siehe dazu Kapitel Auflösung von Konflikten).

Medium

Die Pflege von Medien erfolgt im ContentCreator über die Medien-Verwaltung, die über das Menü MedienMedien verwalten geöffnet werden kann. Ist der Löscharbeitsablauf in den Projekteigenschaften ausgewählt, wird für jedes Bild ein Button mit dem Icon eines Mülleimers eingeblendet (vgl. Abbildung Bild in der Medien-Verwaltung).

Die Medienwaltung wurde dem ContentCreator erst mit der FirstSpirit-Version 5.2 R2 hinzugefügt. Daher steht sie in früheren FirstSpirit-Versionen nicht zur Verfügung. In diesen Fällen ist das Löschen von Medien nur im SiteArchitect möglich (siehe Kapitel Medium).

Bild in der Medien-Verwaltung
Abbildung 31. Bild in der Medien-Verwaltung


Ein Klick auf den Mülleimer-Button startet den Lösch-Arbeitsablauf und entfernt durch dessen Ausführung das Medium aus dem Projekt. Im Anschluss an die Löschung des Bildes wird der Vaterknoten freigegeben, um die Löschung auch in den Freigabestand zu übernehmen.

Die Freigabe des Vaterknotens erfolgt bei jeder Ausführung des Lösch-Arbeitsablaufs und ist unabhängig von dem zuvor bestehenden Freigabestatus der Vaterelemente. Das heißt, dass auch zuvor nicht freigegebene Vaterelemente durch den Lösch-Arbeitsablauf freigegeben werden.

Für diesen Schritt muss der Redakteur neben dem Lösch-Recht für Objekte bzw. Ordner auch das Freigabe-Recht besitzen.

Wie bei den Seitenreferenzen gilt das Löschen des Bildes rekursiv für die gesamte Vaterkette. Dies bedeutet, dass alle Vaterordner des gelöschten Bildes ebenfalls entfernt werden, wenn in ihnen keine weiteren Kindelemente enthalten sind. Lediglich, wenn ein solcher Vaterordner selbst referenziert wird und seine Löschung somit Inkonsistenzen erzeugen würde, bleibt er erhalten.

Die Löschung des Mediums gelingt nur dann, wenn es nicht durch andere FirstSpirit-Objekte referenziert wird. Andernfalls tritt ein Konflikt auf, der manuell behoben werden muss (siehe dazu Kapitel Auflösung von Konflikten).

In der Medien-Verwaltung kann ein Arbeitsablauf lediglich gestartet, aber nicht weitergeschaltet werden. Daher stellt ein auftretender Konflikt an dieser Stelle einen Zustand dar, der nur im SiteArchitect aufgelöst werden kann. Dem Redakteur wird in diesem Fall ein entsprechender Hinweis-Dialog angezeigt (vgl. Abbildung Hinweisdialog im Fall eines Konflikts).

Gleiches gilt für den Button Anfordern im Startdialog des Lösch-Arbeitsablaufs. Er versetzt den Arbeitsablauf in einen Zustand, der eine Weiterschaltung im SiteArchitect erfordert. Bei einem weiteren Klick auf den Mülleimer-Button erhält der Redakteur den Hinweis, dass sich das zu löschende Medium bereits in einem Arbeitsablauf befindet.

Hinweisdialog im Fall eines Konflikts
Abbildung 32. Hinweisdialog im Fall eines Konflikts


Ordner

Im Gegensatz zu den Ordnern der anderen Verwaltungen können im ContentCreator Medien-Ordner gepflegt werden. Dies ermöglicht die Medien-Verwaltung, die sich über das Menü MedienMedien verwalten öffnen lässt. Ist der Lösch-Arbeitsablauf in den Projekteigenschaften ausgewählt, wird im Kontextmenü des selektierten Ordner der Punkt Löschen angezeigt (vgl. Abbildung Ordner in der Medien-Verwaltung).

Die Medienwaltung wurde dem ContentCreator erst mit der FirstSpirit-Version 5.2 R2 hinzugefügt. Daher steht sie in früheren FirstSpirit-Versionen nicht zur Verfügung. In diesen Fällen ist das Löschen von Ordnern nur im SiteArchitect möglich (siehe Kapitel Ordner).

Ordner in der Medien-Verwaltung
Abbildung 33. Ordner in der Medien-Verwaltung


Bei der Durchführung des Lösch-Arbeitsablaufs auf einem Medien-Ordner wird dieser inklusive seiner Kindelemente gelöscht und sein Vaterknoten freigegeben.

Die Freigabe des Vaterknotens erfolgt bei jeder Ausführung des Lösch-Arbeitsablaufs und ist unabhängig von dem zuvor bestehenden Freigabestatus der Vaterelemente. Das heißt, dass auch zuvor nicht freigegebene Vaterelemente durch den Lösch-Arbeitsablauf freigegeben werden.

Für diesen Schritt muss der Redakteur neben dem Lösch-Recht für Objekte bzw. Ordner auch das Freigabe-Recht besitzen.

Wie bei den Seitenreferenzen gilt das Löschen des Ordners rekursiv für die gesamte Vaterkette. Dies bedeutet, dass alle Vaterordner des gelöschten Ordners ebenfalls entfernt werden, wenn in ihnen keine weiteren Kindelemente enthalten sind. Lediglich, wenn ein solcher Vaterordner selbst referenziert wird und seine Löschung somit Inkonsistenzen erzeugen würde, bleibt er erhalten.

Bestehende Referenzen auf dem zu löschenden Ordner lösen einen Konflikt aus, da es ansonsten zu Fehlern im Freigabestand käme. Ein Konflikt muss manuell beseitigt werden, bevor der Arbeitsablauf fortgeführt werden kann (siehe dazu Kapitel Auflösung von Konflikten).

Eine Prüfung auf die potentielle Entstehung von Inkonsistenzen beim Löschen eines Ordners und der damit einhergehenden Entfernung von Kindelementen wird nicht geprüft. Dies trifft immer dann zu, wenn für mindestens eines der Kindelemente aufgrund bestehender Referenzen eingehende Kanten (incoming References) existieren.

In der Medien-Verwaltung kann ein Arbeitsablauf lediglich gestartet, aber nicht weitergeschaltet werden. Aus diesem Grund muss die Fortsetzung des Löschens im Fall eines Konflikts im SiteArchitect erfolgen. Dem Redakteur wird in diesem Fall ein entsprechender Hinweis-Dialog angezeigt (siehe Abbildung Hinweisdialog im Fall eines Konflikts).

Gleiches gilt für den Button Anfordern im Startdialog des Lösch-Arbeitsablaufs. Er versetzt den Arbeitsablauf in einen Zustand, der eine Weiterschaltung im SiteArchitect erfordert. Bei einem weiteren Löschversuch erhält der Redakteur den Hinweis, dass sich der zu löschende Ordner bereits in einem Arbeitsablauf befindet.

Hinweisdialog im Fall eines Konflikts
Abbildung 34. Hinweisdialog im Fall eines Konflikts


Dokumentengruppe

Dokumentengruppen können im ContentCreator nur über eine direkte Verlinkung oder über die Verwendung der ContentCreator-Suche geöffnet und angezeigt werden. Eine Referenzierung über die Navigation und die Bearbeitung einer Dokumentengruppe im ContentCreator ist nicht möglich. Der Lösch-Arbeitsablauf lässt sich jedoch ausführen.

Der auf einer Dokumentengruppe gestartete Lösch-Arbeitsablauf entfernt nur den Knoten dieser Dokumentengruppe. Von ihr referenzierte Struktur-Ordner und Seitenreferenzen werden nicht berücksichtigt und bleiben bestehen.

Die Löschung des Knotens der Dokumentengruppe gelingt nur dann, wenn sie nicht durch andere FirstSpirit-Objekte referenziert wird. Andernfalls tritt ein Konflikt auf, der manuell behoben werden muss (siehe dazu Kapitel Auflösung von Konflikten).

Informationen zu Dokumentengruppen finden Sie auch im Handbuch für Redakteure.

4.2. Konflikte

Der beschriebene Lösch-Arbeitsablauf ist darauf ausgelegt, ein zu löschendes Element sowohl aus dem Current- als auch – durch die Freigabe des Vaterknotens – aus dem Freigabestand zu entfernen. Während der Ausführung des Arbeitsablaufs können sogenannten Konflikten auftreten, die manuell zu beheben sind. Konflikte weisen darauf hin, dass das zu löschende Element noch von anderen FirstSpirit-Elementen referenziert wird. Durch die Löschung würden Referenzen auf ein nicht mehr existierendes Element bestehen. Dies wird durch die Konflikt-Prüfung abgefangen.

Tritt während der Ausführung des Lösch-Arbeitsablaufs ein Konflikt auf, wird der Arbeitsablauf unterbrochen. Der Redakteur hat daraufhin die Möglichkeit, sich eine Liste aller das Löschen verhindernden Objekte anzeigen zu lassen und die Konflikte manuell zu beheben, um den Arbeitsablauf erfolgreich zu beenden (vgl. Abbildung Liste der Elemente, die das zu löschende Element referenzieren).

Liste der Elemente, die das zu löschende Element referenzieren
Abbildung 35. Liste der Elemente, die das zu löschende Element referenzieren


Im ContentCreator zu löschende Medien bzw. Medien-Ordner stellen in Bezug auf Konflikte einen Sonderfall dar, da in diesen Fällen der Arbeitsablauf in der Medien-Verwaltung gestartet wird. In der Medien-Verwaltung lassen sich Arbeitsabläufe jedoch nur starten und nicht weiterschalten. Ein Aufruf der Liste aller das Löschen verhindernden Objekte sowie die Auflösung des Konflikts ist daher in diesem Kontext nicht möglich. Beides muss im SiteArchitect erfolgen.

Weitere Information zur Auflösung von Konflikten finden Sie im Kapitel Auflösung von Konflikten.

4.3. Feature Comparison-Matrix

Der für FirstSpirit Version 5 neu entwickelte Lösch-Arbeitsablauf bietet gegenüber dem nativen Löschen Vorteile, die in der folgenden Gegenüberstellung dargestellt sind:

Tabelle 2. Feature Comparison-Matrix
 natives Löschenneuer Lösch-Arbeitsablauf

Sicherstellung eines konsistenten Freigabestands

( — )

ContentCreator-Support

 — 

Information über aufgetretene Konflikte

Löschen von Datensätzen

automatische Freigabe des Löschens von Datensätzen

 — 

Berücksichtigung von Absatzreferenzen

rekursives Löschen im SiteArchitect (ohne Prüfung der Kinder)



Die BasicWorkflows unterstützen ab der Version 1.0.8 nur noch die FirstSpirit-Version 5.1 oder höher. Sie sind ab dieser Modulversion nicht mehr zu FirstSpirit 5.0 kompatibel.

5. Auflösung von Konflikten

Sowohl während der Ausführung des Freigabe-Arbeitsablaufs als auch während der Ausführung des Lösch-Arbeitsablaufs können sogenannte Konflikte auftreten (siehe Kapitel Konflikte (SiteArchitect) und Kapitel Konflikte (ContentCreator)). Konflikte weisen auf bestehende Referenzen hin, die zu Inkonsistenzen im Freigabestand führen würden.

Beim Freigabe-Arbeitsablauf handelt es sich um ausgehende Referenzen, die auf gelöschte oder noch niemals freigegebene Objekte verweisen.

Beim Lösch-Arbeitsablauf handelt es sich um eingehende Referenzen anderer FirstSpirit-Objekte, die sich auf das zu löschende Objekt beziehen.

Beide Arbeitsabläufe bieten drei Möglichkeiten zum weiteren Vorgehen beim Auftreten eines Konflikts:

Im ContentCreator zu löschende Medien bzw. Medien-Ordner stellen in Bezug auf Konflikte einen Sonderfall dar, da in diesen Fällen der Arbeitsablauf in der Medien-Verwaltung gestartet wird. In der Medien-Verwaltung lassen sich Arbeitsabläufe jedoch nur starten und nicht weiterschalten. Ein in diesen beiden Fällen auftretender Konflikt stellt somit einen Zustand dar, der im ContentCreator nicht auflösbar ist. Die Auflösung eines Konflikt muss dann im SiteArchitect erfolgen.

5.1. Abbruch auslösen

Bei einem Abbruch des entsprechenden Arbeitsablaufs wird dieser beendet und das gewählte FirstSpirit-Objekt, auf dem der Arbeitsablauf ursprünglich gestartet wurde, wieder in seinen zuvor bestehenden Freigabe-Status versetzt (Ausnahme: Datensätze). Eine Freigabe bzw. Löschung des Objekts erfolgt erst, wenn der jeweilige Arbeitsablauf erneut gestartet und erfolgreich durchgeführt wurde.

Es ist ein bekanntes FirstSpirit-Verhalten, dass der Freigabe-Status von Datensätzen durch das Abbrechen von Arbeitsabläufen nicht zurückgesetzt wird. Zuvor freigegebene Datensätze gelten anschließend als verändert und sind nicht mehr freigegeben.

5.2. Handlung erzwingen

Diese Option steht nur dem Projektadministrator zur Verfügung.

In beiden Arbeitsabläufen besteht die Möglichkeit, die jeweils bereitgestellte Handlung trotz bestehender Konflikte zu erzwingen.

Das Element, auf dem der entsprechende Arbeitsablauf gestartet wurde, wird ohne eine Auflösung des Konflikts freigegeben bzw. gelöscht. Eine weitere Prüfung erfolgt nicht.

Die folglich dadurch entstehenden Inkonsistenzen werden bewusst in Kauf genommen!

Freigabe erzwingen (SiteArchitect)
Abbildung 36. Freigabe erzwingen (SiteArchitect)


5.3. Nicht freigegebene bzw. fehlerhafte Objekte überprüfen

Für eine manuelle Auflösung bestehender Konflikte stellen beide Arbeitsabläufe eine Liste der einen Konflikt hervorrufenden Objekte bereit (vgl. Abbildung Einen Konflikt auslösende Objekte (Freigabe- und Lösch-Arbeitsablauf)).

Einen Konflikt auslösende Objekte (Freigabe- und Lösch-Arbeitsablauf)
Abbildung 37. Einen Konflikt auslösende Objekte (Freigabe- und Lösch-Arbeitsablauf)


Es handelt sich dabei um eine rein textuelle Information. Das heißt, die in der jeweiligen Liste dargestellten Objekte lassen sich nicht über den Dialog aufrufen und müssen manuell ermittelt werden.

Da die beiden Arbeitsabläufe Referenzen unterschiedlicher Art (outgoing / incoming References) besitzen, unterscheidet sich das Vorgehen zur Auflösung auftretender Konflikte. Die folgenden Unterkapitel beschreiben das entsprechende Vorgehen.

5.3.1. Freigabe-Arbeitsablauf

Die Prüfung des Freigabe-Arbeitsablaufs berücksichtigt – mit der Ausnahme der Vorlagen-Verwaltung – nur die ausgehenden Referenzen des Objekts, auf dem der Arbeitsablauf gestartet wurde. Somit können nur ausgehende Referenzen Konflikte hervorrufen.

In diesem Fall bietet sich zur manuellen Ermittlung der einen Konflikt erzeugenden Objekte im SiteArchitect die Verwendung des Referenzgraphen an (vgl. Abbildung Referenzgraph einer Seitenreferenz im SiteArchitect). Dieser lässt sich über den Kontextmenüpunkt ExtrasAbhängigkeiten anzeigen oder über die Tastenkombination STRG + R anzeigen.

Kindelemente, die sich bereits in einem Arbeitsablauf befinden, führen bei der rekursiven Freigabe ebenfalls zu einem Konflikt. Sie werden jedoch nicht vom Referenzgraphen erfasst und müssen daher eigenständig ermittelt werden.

Referenzgraph einer Seitenreferenz im SiteArchitect
Abbildung 38. Referenzgraph einer Seitenreferenz im SiteArchitect


Über das Kontextmenü der innerhalb des Referenzgraphen dargestellten Elemente besteht die Möglichkeit, direkt zu einem Element zu springen.

Dieselbe Möglichkeit bietet der ContentCreator über den Report Verwandte Elemente und dem darin enthaltenen Bereich Ausgehende Verweise (vgl. Abbildung Report "Verwandte Elemente" im ContentCreator).

Report "Verwandte Elemente" im ContentCreator
Abbildung 39. Report "Verwandte Elemente" im ContentCreator


Auf diesem Weg lassen sich sowohl im SiteArchitect als auch im ContentCreator die referenzierten Elemente ermitteln und alle Konflikte durch eine Freigabe der entsprechenden Elemente auflösen.

Anschließend kann innerhalb des ursprünglich gestarteten Arbeitsablaufs ein erneuter Freigabe-Versuch ausgelöst werden (vgl. Abbildung Erneute Freigabe auslösen (SiteArchitect)).

Erneute Freigabe auslösen (SiteArchitect)
Abbildung 40. Erneute Freigabe auslösen (SiteArchitect)


5.3.2. Lösch-Arbeitsablauf

Die Ausführung des Lösch-Arbeitsablaufs erzeugt immer dann einen Konflikt, wenn das zu löschende Element noch durch andere FirstSpirit-Elemente referenziert wird. Somit können nur eingehende Referenzen Konflikte hervorrufen.

In diesem Fall bietet sich zur Ermittlung der einen Konflikt auslösenden Elemente die Funktionalität Verwendung anzeigen des SiteArchitects an (vgl. Abbildung Verwendung einer Seitenreferenz (SiteArchitect)). Der zugehörige Dialog lässt sich über den Kontextmenü-Punkt ExtrasVerwendung anzeigen oder über die Tastenkombination STRG + U öffnen.



Über die Schaltfläche Anzeigen oder per Doppelklick auf eines der dargestellten Elemente besteht die Möglichkeit, direkt zu einem Element zu springen.

Dieselbe Möglichkeit bietet der ContentCreator über den Report Verwandte Elemente und dem darin enthaltenen Bereich Wird verwendet von (vgl. Abbildung Report "Verwandte Elemente" im ContentCreator).

Der Report Verwandte Elemente kann nicht für die Auflösung von Konflikten in Verbindung mit der Medien-Verwaltung verwendet werden, da er lediglich die Elemente der jeweils aktuell sichtbaren Seite berücksichtigt. Beim Löschen eines Elements auftretende Konflikte in der Medienverhalten erfordern daher zwingend einen Wechsel in den SiteArchitect. Dort kann dann jedoch die Funktionalität des Dialogs Verwendung anzeigen auf dem zu löschenden Medium angewendet werden.

Report "Verwandte Elemente" im ContentCreator
Abbildung 42. Report "Verwandte Elemente" im ContentCreator


Auf diesem Weg lassen sich sowohl im SiteArchitect als auch im ContentCreator die das zu löschende Objekt referenzierenden Elemente ermitteln und alle Konflikte durch eine Beseitigung der bestehenden Referenzen auflösen.

Anschließend kann innerhalb des ursprünglichen Arbeitsablaufs ein erneuter Lösch-Versuch ausgelöst werden (vgl. Abbildung Erneutes Löschen auslösen (SiteArchitect)).

Erneutes Löschen auslösen (SiteArchitect)
Abbildung 43. Erneutes Löschen auslösen (SiteArchitect)


6. Erweiterung der Implementierung

Arbeitsabläufe unterliegen in der Regel projektspezifischen Anforderungen. Die in diesem Dokument beschriebenen Arbeitsabläufe können daher nur die Grundfunktionalitäten des Löschens bzw. Freigebens von FirstSpirit-Objekten abdecken. Sind darüber hinausgehende Funktionalitäten gewünscht, müssen diese individuell hinzuimplementiert werden. In den folgenden Unterkapiteln sind zwei Beispiele dargestellt.

6.1. MultiNode-Fähigkeit

Im Gegensatz zum Lösch-Arbeitsablauf ist der Freigabe-Arbeitsablauf in Bezug auf Seitenreferenzen MultiNode-fähig. Dies bedeutet, dass er mehrere Seitenreferenzen gleichzeitig berücksichtigen kann. Für diese zusätzlichen Seitenreferenzen ist zu entscheiden, ob sie lediglich auf Konflikte geprüft oder freigegeben werden sollen.

Für die beiden Fälle werden die Parameter relatedPageRefElements und releasePageRefElements bereitgestellt. Sie können der put-Methode einer Session zusammen mit der Liste der zu berücksichtigenden Seitenreferenzen übergeben werden. Dabei ist die folgende Syntax zu beachten:

// PageRef elements that should be checked
workflowScriptContext.getSession().put("relatedPageRefElements", pageRefUids);

// PageRef elements that should be released
workflowScriptContext.getSession().put("releasePageRefElements", pageRefUids);

Der Parameter pageRefUids entspricht einer Liste von Strings (List<String> pageRefUids). Sie muss die Referenznamen der zu berücksichtigenden Seitenreferenzen enthalten. Über ein Skript, das einer Aktivität hinzuzufügen ist, muss diese Liste dem Arbeitsablauf übergeben werden. Es ist sinnvoll, hierfür die erste Aktivität auszuwählen.

hinzugefügtes Skript
Abbildung 44. hinzugefügtes Skript


Ist die übergebene Liste gefüllt, werden ausschließlich die in ihr enthaltenen Elemente vom Arbeitsablauf berücksichtigt. Diese Regel betrifft auch die Seitenreferenz, auf welcher der Arbeitsablauf gestartet wird. Sie wird nur dann auf Konflikte geprüft bzw. freigegebenen, wenn sie ebenfalls ein Element der Liste ist. Andernfalls bleibt sie vom Arbeitsablauf unberücksichtigt, was potentiell zu Problemen führen kann.

Wird keine Liste übergeben oder ist sie leer, verhält sich der Freigabe-Arbeitsablauf gemäß seines Standardverhaltens.

6.2. Absatzreferenzen

Absatzreferenzen werden bereits durch den Freigabe-Arbeitsablauf berücksichtigt (vgl. Kapitel Feature Comparison-Matrix). Dennoch stellt diese Funktionalität ein gutes Beispiel für die Erweiterungsmöglichkeit der Arbeitsabläufe dar.

Ausgehend von der Annahme, diese Funktionalität würde durch den Freigabe-Arbeitsablauf noch nicht abgedeckt, wird in diesem Kapitel beschrieben, wie sie hinzuzufügen wäre.

Da das Hinzufügen einer Funktionalität Änderungen am Code erfordert, muss dieser zunächst heruntergeladen werden. Die aktuelle Version des Quell-Codes wird über ein GitHub-Repository bereitgestellt, welches unter https://github.com/e-Spirit/basicworkflows erreichbar ist.

Der Quell-Code wird unter der Apache-Lizenz zur Verfügung gestellt.

Die innerhalb des Packages com.espirit.moddev.basicworkflows.release enthaltene Klasse WorkflowObject.java enthält die Methoden getRefObjectsFromSection und checkReferences. Die Methode getRefObjectsFromSection ermittelt alle ausgehenden Referenzen eines Absatzes des Elements, auf dem der Freigabe-Arbeitsablauf gestartet wurde. Die Methode checkReferences prüft, ob alle referenzierten Elemente des freizugebenden Elements bereits freigegeben sind.

Die Methode getRefObjectsFromSection besitzt eine if-Abfrage, die ohne die Berücksichtigung von Absatzreferenzen dem folgenden Code-Auszug entspricht:

// add outgoing references of page sections
if (!(section instanceof Content2Section) && !(section instanceof SectionReference)) {
[...] }

Sollen auch Absatzreferenzen durch den Freigabe-Arbeitsablauf berücksichtigt werden, muss die zweite Kondition der if-Abfrage innerhalb des Code-Auszugs entfernt werden:

// add outgoing references of page sections
if (!(section instanceof Content2Section)) {
[...] }

Die Methode checkReferences besitzt eine for-Schleife, in der mehrere if-Abfragen enthalten sind. Ohne die Überprüfung von Absatzreferenzen entspricht der else-Teil der ersten if-Abfrage innerhalb dieser Schleife dem folgenden Code-Auszug:

IDProvider idProvider;

if (object instanceof IDProvider) {
    idProvider = (IDProvider) object;
} else {
    idProvider = (IDProvider) ((ReferenceEntry)object).getReferencedObject();
}

// check if current PAGE within PAGEREF-Release
boolean isCurrentPage = false;
[...]

Zur Berücksichtigung von Absatzreferenzen muss diese Abfrage wie folgt erweitert werden:

IDProvider idProvider;

if (object instanceof IDProvider) {
    idProvider = (IDProvider) object;
} else {
    idProvider = (IDProvider) ((ReferenceEntry)object).getReferencedObject();
}

if (idProvider instanceof Section) {
      idProvider = idProvider.getParent().getParent();
}

// check if current PAGE within PAGEREF-Release
boolean isCurrentPage = false;
[...]

Um alle Änderungen auf den FirstSpirit-Server und somit in das Projekt zu übertragen, wird eine Neu-Erstellung und Neu-Installation des Moduls notwendig.

In dem GitHub-Repository, in dem der Quell-Code bereitgestellt wird, ist auch eine Datei pom.xml zu finden. Diese ermöglicht die Neu-Erstellung des Moduls unter Verwendung von Maven.

Zur Installation von Maven folgen Sie den Schritten der Installationsanleitung auf der Seite: http://maven.apache.org/download.cgi#Installation

Um eine erfolgreiche Kompilierung des geänderten Quell-Codes zu ermöglichen, muss zunächst die fs-access.jar-Datei des verwendeten FirstSpirit-Servers in das lokale Maven-Repository installiert werden. Die fs-access.jar-Datei befindet sich in dem Verzeichnis:

<FirstSpirit-Server-Verzeichnis>/data/fslib

Die Installation erfolgt über die Eingabe des folgenden Befehls in die Kommandozeile:

mvn install:install-file -Dfile=<path-to-acces.jar> -DgroupId=de.espirit.FirstSpirit -DartifactId=fs-access -Dversion=<fs version e.g. '5.0.0'> -Dpackaging=jar

Innerhalb dieses Befehls sind die Parameter für den Pfad zur fs-access.jar-Datei und die verwendete FirstSpirit-Version entsprechend zu ersetzen.

Beispiel

mvn install:install-file -Dfile=C:\fs-access.jar -DgroupId=de.espirit.FirstSpirit -DartifactId=fs-access -Dversion=5.1.2 -Dpackaging=jar

Eine Ausführung des Installationsbefehls innerhalb des Verzeichnisses, in dem die pom.xml-Datei abgelegt wurde, führt zu einem Fehler. Die Installation muss daher außerhalb dieses Verzeichnisses durchgeführt werden.

Das lokale Maven-Repository wurde bei der Installation automatisch im Benutzerverzeichnis unter ${user.home}/.m2/repository angelegt. In diesem sollte sich nach der erfolgreichen Installation der fs-access.jar-Datei eben diese befinden (vgl. Abbildung lokales Maven-Repository mit installierter fs-access.jar-Datei).

lokales Maven-Repository mit installierter fs-access.jar-Datei
Abbildung 45. lokales Maven-Repository mit installierter fs-access.jar-Datei


Anschließend kann die Kompilierung des veränderten Quell-Codes über die Eingabe des folgenden Befehls in die Kommandozeile erfolgen:

mvn package -Dci.version=<version> -DFirstSpirit.version=<fs-version>

In diesem Befehl sind die Werte version und fs-version entsprechend auszutauschen. Der Wert fs-version muss dabei dem Wert des Parameters Dversion des vorherigen Befehls entsprechen.

Beispiel

mvn package -Dci.version=1.0.0 -DFirstSpirit.version=5.1.2

Innerhalb des Verzeichnisses, das die pom.xml-Datei enthält wird durch die Kompilierung ein Unterverzeichnis target erstellt. In diesem befindet sich das neu erzeugte Modul (vgl. Abbildung neu erzeugte fsm-Datei innerhalb des target-Verzeichnisses).

neu erzeugte fsm-Datei innerhalb des target-Verzeichnisses
Abbildung 46. neu erzeugte fsm-Datei innerhalb des target-Verzeichnisses


Das neu erzeugte Modul muss im Anschluss, wie im Kapitel Installieren des Moduls auf dem Server beschrieben, auf dem Server neu installiert werden.

7. Frequently Asked Questions

Q: Der Funktionsumfang der beschriebenen Arbeitsabläufe ist nicht ausreichend oder nicht passend. Was ist nun zu tun?

A: Deckt der Funktionsumfang der in diesem Dokument beschriebenen Arbeitsläufe die Anforderungen Ihres Projekts nicht ab, haben Sie die Möglichkeit, die Arbeitsabläufe individuell zu erweitern und an die Besonderheiten Ihres Projekts anzupassen.

Eine Beschreibung zur Durchführung einer solchen Erweiterung finden Sie im Kapitel Erweiterung der Implementierung.

Q: Ich habe bereits eigene Arbeitsabläufe, möchte aber die neuen Funktionen der beschriebenen Arbeitsabläufe mitnutzen. Wie gehe ich vor?

A: Die beschriebenen Arbeitsabläufe bieten keinen Automatismus zur Übernahme von Funktionalitäten anderer Arbeitsabläufe. Eine entsprechende Anpassung ist somit manuell vorzunehmen.

Dabei sollten Sie abwägen, ob Sie die Funktionalitäten der beschriebenen Arbeitsabläufe in Ihren bestehenden Arbeitsablauf übernehmen oder die beschriebenen Arbeitsabläufe um die Funktionen Ihres Arbeitsablaufs erweitern möchten.

Eine Beschreibung zur Erweiterung der beschriebenen Arbeitsabläufe finden Sie im Kapitel Erweiterung der Implementierung.

Q: Ich habe einen Fehler in den Arbeitsabläufen gefunden. Wo kann ich diesen melden?

A: Zur Meldung eines in den Arbeitsabläufen gefundenen Fehlers wenden Sie sich bitte an unseren Technical Support.

In dem Fall, dass Sie den Fehler bereits behoben haben und uns Ihre Änderungen zur Verfügung stellen möchten, beachten Sie bitte die nachfolgende Frage.

Q: Ich habe eine Erweiterung an einem der Arbeitsabläufe durchgeführt, die auch für andere Projekte interessant sein könnte. Was mache ich damit?

A: Der zu den in diesem Dokument beschriebenen Arbeitsabläufen verfügbare Quell-Code wird in einem Git-Hub bereitgestellt (siehe Kapitel Erweiterung der Implementierung). Möchten Sie uns eine Erweiterung an einem der Arbeitsabläufe zur Verfügung stellen, müssen sie für diesen Git-Hub einen sogenannten Pull-Request erstellen.

Eine Erklärung, wie dafür vorzugehen ist, finden Sie auf der folgenden Seite:

https://help.github.com/articles/using-pull-requests