==== Allgemein ==== Durch das Section Handling wird festgelegt, welcher User bestimmte Teile (sog. Sections) innerhalb der Smartform sehen kann/darf. Diese Beschränkungen können entweder innerhalb eines ganzen Prozesses gelten oder bei einem gewissen Stand innerhalb des Prozessverlaufs. Die folgenden Rechte können vergeben bzw. entzogen werden: * Schreibrecht * Leserecht ---- ==== Vorbereitung der Smartform ==== In der Smartform wird der Bereich, der durch das Section Handling beeinflusst werden soll, beispielsweise mit einem **DIV** umschlossen und markiert somit einen abgeschlossen Teil. \\ Diesem **DIV** muss zwingend das Attribut class="section" mitgegeben werden. Ein Element welches das Attribut class="section" erhalten hat, darf keine weiteren Klassen besitzen. Die ID des **DIV**s kann dabei beliebig gewählt werden.\\ In dem folgenden Beispiel sind zwei DIV-Bereiche zu sehen: * DIV mit der ID="section1", beinhaltet: * Label "Section1" * Textfeld * DIV mit der ID="section2", beinhaltet: * Label "Section2" * Textfeld Wobei der Inhalt innerhalb eines **DIV**s keine Rolle spielt und beliebig sein kann.
>> Befindet sich die Section innerhalb einer Tabelle (), so muss ein tBody(tr,td) anstatt eines DIVs benutzt werden, um die Section abzugrenzen. ==== Section Handling Parameter ==== Die Parameter für das Section Handling, mit welchen die Rechte zugewiesen werden, werden in [[software:signavio| Signavio]] für den Prozess definiert : {{ software:tim:eigenschaften.jpg?200 }} ==== Section Handling Parameter Allgemein ====
* **** : das section-node-mapping Element ist das Hauptstück des Section Handlings, innerhalb welchem sich die Regeln für die Beschränkungen befinden * **** : hier kann optional das Attribut name mitgegeben werden. Damit ist es möglich die Beschränkungen so zu konfigurieren, dass diese nur an einem bestimmten Stand innerhalb des Prozesses gelten, z.B. User A darf das Textfeld sehen, wenn die Smartform während der ersten Node geöffnet wird, aber nicht mehr sobald der Prozess sich auf Node B befindet. \\ Wird das Attribut name an dieser Stelle nicht mitgegeben erstrecken sich die Beschränkungen auf den gesamten Prozessverlauf .Zudem können innerhalb des **** Elements mehrere **** s angegeben werden. * **
** diesem Element muss das Attribut name mitgegeben werden, welches die ID der gewünschten Section aus der Smartform angibt. Innerhalb des Section Elements können nun die Rechte verteilt werden, die für die angegebene Section gelten sollen. * **** über das read Element wird nun bestimmt, wer den Inhalt innerhalb einer Section sehen darf. Die Personen werden über das Assignement Attribut bestimmt. * **** über das write Element wird nun bestimmt, wer den Inhalt innerhalb einer Section bearbeiten darf (z.B. in ein Textfeld schreiben). Die Personen werden über das Assignement Attribut bestimmt. ---- ====Assignment==== Für die Assignments innerhalb der read und write Elemente stehen nun folgende Möglichkeiten zur Auswahl: ^ Zielgruppe ^ Schreibweise ^ | einzelne Benutzer | "user(Benutzername)" | | Swimlanes | "swimlane(Swimlanename)" | | Gruppe | "group(Gruppenname)" | | Wildcard (für keinen Benutzer) | "" | |Wildcard (für alle Benutzer) | "*"| |Negation(dieser User darf nicht...) | "! user(…)"| Mehrere Angaben können getrennt durch Semikolons realisiert werden, z. B.: "group(Vertrieb);group(Controlling);user(Max.Mustermann)" ====Locking==== Locking kann zusätzlich zu den Assignments angegeben werden und dient als Bearbeitungssperre. Um das Locking zu implementieren muss der Parameter lockable="true" angegeben werden. Locking kann auf das node-mapping oder die section selbst gelegt werden. Das locking Attribut der section überwiegt immer das Attribut des node-mappings.
Wird nun die Smartform geöffnet, ist der Bereich standardmäßig gesperrt, jedoch befindet sich hinter den gelockten Elementen ein Stiftsymbol : {{ software:tim:locking.jpg?200 }} Über einen Klick auf das Symbol kann das gelockte/gesperrte Feld entsperrt werden und somit auch bearbeitet werden. Das Feld ist nach dem Klick für alle anderen User gesperrt, d.h. öffnet ein anderer Benutzer die Smartform ist es für ihn nicht möglich das für ihn gesperrte Feld ebenfalls zu entsperren und zu bearbeiten während das Feld von dem ersten User entsperrt ist. Damit wird verhindert dass eingegebene Daten versehentlich von einem anderen Nutzer überschrieben werden. Das Feld kann erst dann wieder von anderen Nutzern entsperrt werden, wenn der Benutzer der das derzeitige Bearbeitungsrecht besitzt die Smartform speichert und schließt. ====Siftsymbole ausblenden==== Ist lockable auf false gesetzt, wird vor der einer Section ein Stiftsymbol angezeigt, solange sich der Prozess nicht an der Node befindet die in dem zugehörigen NodeMapping angegeben wurde. Befindet sich der Prozess dann an der Stelle, die angegeben wurde, so wird das Stiftsymbol ausgeblendet. Sollen nun alle Stiftsymbole ausgeblendet werden, so muss ein globales NodeMapping angegeben werden, in welchem alle Sections einmal definiert werden und ein Assignment bekommen. Soll sich an der Funktionsweise der Smartform nichts ändern, so reicht es in dem globalen NodeMapping jeder Section eine Wildcard zu geben. ====NodeMapping bereits vor Instanzstart==== Sollen bereits vor Start der Instanz Bereiche eingegrenzt werden, so muss ein NodeMapping eingefügt werden, welches den Namen des Starts trägt. Ist kein Name für den Start angegeben, so bekommt der Start standardmäßig den Namen **"StartEvent_1"** und das Ende den Namen **"EndEvent_1"**, dieser kann dann im NodeMapping benutzt werden ----- ==== Section Handling Parameter Beispiele anhand des Smartform Beispiels ==== Das folgende Bild zeigt den Ausgangszustand der Smartform ohne Section Handling (alles ist sichtbar und bearbeitbar): {{ software:tim:sfohne.jpg?200 }} Der obere Teil befindet sich in der ersten Section und der untere Teil befindet sich in der zweiten Section. Bei den Beispielen werden alle auf einen User als Beschränkter ausgelegt, es ist jedoch genauso möglich alle folgenden Beispiele mit den oben genannten Assignments durchzuführen. Es können nun die folgenden Szenarien mit Hilfe des Section Handlings erzeugt werden: ---- === Section nur für bestimmten User sichtbar und bearbeitbar === Nun soll der obere Teil nur für einen bestimmten User sichtbar und bearbeitbar sein. Die dafür benutzten Section Handling Parameter könnten wie folgt aussehen:
Die Smartform würde für den User TIM nach wie vor aussehen wir der Ausgangszustand für alle anderen jedoch würde sich das folgende Bild ergeben: {{ software:tim:nosection1.jpg?200 }} Wie man sieht ist nur der untere Teil der Smartform sichtbar. ---- === Section nur für bestimmten User bearbeitbar === Nun soll der obere Teil zwar sichtbar sein, jedoch nur für den User TIM bearbeitbar sein. Die dafür benutzten Section Handling Parameter könnten wie folgt aussehen:
Daraus ergibt sich wiederrum das folgende Bild für alle anderen User, die die Smartform öffnen wollen: {{ software:tim:sfwritebottom.jpg?200 }} Die obere Section ist nun zwar für alle sichtbar, jedoch kann in das Textfeld nichts eingegeben werden, da der read Parameter nicht gesetzt ist. ---- === Section Beschränkung auf begrenzten Bereich innerhalb des Prozesses === Die Beschränkungen in den bisherigen Beispielen waren global und gelten für den gesamten Prozess.Nun kann man die Beschränkungen aber auch nur an bestimmten Stellen in einem Prozess geltend machen. Nun soll das erste Beispiel, in dem nur die zweite Section sichtbar ist so erweitert werden, dass die Beschränkung nur dann gilt, wenn sich der Prozessfortschritt auf einer bestimmten Node befindet. Dies soll anhand des folgenden Prozesses verdeutlicht werden:\\ {{ software:tim:prozess.jpg?550 }} Das gewünschte Ziel ist, dass solange sich der Prozess auf der Node A befindet nur der User TIM den oberen Teil der Smartform sehen darf. Sobald sich der Prozess auf Node B befindet darf zwar jeder den oberen Teil sehen, aber nicht bearbeiten. Hierfür müssen für jede Node die section Parameter angegeben werden .Die Parameter um dieses Ziel zu erreichen sind die folgenden:
Während des ganzen Prozesses kann der User TIM die gesamte Smartform einsehen und bearbeiten da für ihn keine Beschränkungen angegeben sind. Befindet sich der Prozess auf der Node A ergibt sich für alle anderen das folgende Bild wenn die Smartform geöffnet wird: Nur der untere Teil ist sichbar. {{ software:tim:nosection1.jpg?200 }} Wird die Aufgabe nun erledigt und der Prozess schreitet auf Node b voran, kann der User TIM weiterhin alles sehen. Für alle anderen sieht die Smartform so aus: Der obere Teil ist nicht bearbeitbar, aber sichtbar. {{ software:tim:sfwritebottom.jpg?200 }} ---- === Wie verhält sich das Sectionhandling in der Smartform Suche? === In der Smartform Suche werden nur die Read-Expressions angewendet welche für den ganzen Prozess gültig sind.\\ \\ Das heißt:\\ \\ Wenn ich die Section generell sehen darf, darf ich auch danach suchen und vice versa.