Die folgenden Systemrollen müssen im TIM Admin Client den entsprechenden Usern zugeordnet werden, so dass sie die Ausbaustufen der TIM Smartform Suite nutzen können:
Der Zugang zum Konfigurator der TSS erfolgt über das TIM Repository. Im Tab Smartform des gewünschten Prozess befindet sich der BEARBEITEN-Button. Ein Klick auf ihn öffnet den Konfigurator.
Alle Datei-Artefakte, die für die Erstellung von Smartforms benötigt werden, werden in der Datenbank zentral abgelegt. Zur Verwaltung der Artefakte wurde eine Oberfläche im Admin Client integriert.
Die folgende Rolle wird zur Verwaltung von TSS-Resourcen (z.B. Konfigurationsdateien, csv-Dateien, css-Dateien, etc.) in Ihrem Mandanten oder im super-Mandant benötigt:
Im super-Mandanten müssen nach der Installation/ einem Update der TSS die grundlegenden Konfigurationen (Dokumententyp Konfigurationsdateien) für die Applikationen CMD und CFG hochgeladen werden
In Ihrem Mandanten können Sie analog Artefakte verwalten, die nur innerhalb des Mandanten gelten und verfügbar sind
Im Fokus des Smartform Designers steht das Smartform.
Im Smartform Designer werden die Attribute für die strukturierte Erfassung und Darstellung von Prozessinformationen angelegt.
Feld | Beschreibung |
---|---|
Attribut | technischer Identifikator für das Attribut. Kann auch in Aufgabenmails mit ${…} referenziert werden(„status“ sowie „name“ sind als Attribut zu vermeiden) |
Beschreibung | Erscheint als Tooltip, wenn der Nutzer mit der Maus über das Feld fährt |
Datentyp | Auswahl eines Datentyps oder Erstellen eines eigenen zur individuellen Validierung (siehe Datentypen) |
Beschriftung | Wird als Text links neben dem Eingabefeld dargestellt |
UI-Flag | Definition der Editierbarkeit des Attributs (Details s.u.) |
Layout | Auswahl eines Layouts zur Darstellung des Attributs (siehe Datentypen) |
Breite Überschrift | Breite des Bereiches, in dem die oben angegebene Beschriftung dargestellt werden soll |
Breite Zwischenraum | Abstand zwischen Beschriftung und Feld |
Breite Wert | Breite des Eingabefeldes |
Höhe | Höhe des Eingabefeldes. Bei allem über 24px wird die Layoutvariante „groß“ verwendet. (siehe Datentypen) |
Buttons | Beschreibung |
---|---|
Für alle Status auf Standard zurücksetzen | Dieser Button erscheint, wenn die Statusdropdown auf „—“ steht. Damit können alle Status-spezifischen Varianten des Attributs zurückgesetzt werden |
Auf Standard zurücksetzen | Dieser Button erscheint, wenn die Statusdropdown auf einem Status ungleich „—“ steht. Damit kann die Status-Variante auf die Grundkonfiguration des Attributs zurückgesetzt werden |
„Zurücksetzen einzelner Attributvarianten auf Standard“-Icon | Jede Attributeigenschaft, die für einen ausgewählten Status von der Grundkonfiguration abweicht, wird fett dargestellt. Zudem erscheint daneben ein Icon, mit dem die betroffene Eigenschaft auf die Grundkonfiguration zurückgesetzt werden kann |
Kopieren-Icon | Nutzt das geöffnete Attribut als Grundlage für eine Neuanlage. Die Felder Attribut und Beschriftung werden zurückgesetzt |
Löschen-Icon | Löscht das Attribut aus der Konfiguration. Dieses Icon ist nur im Status „—“ verfügbar. Wenn Sie ein Attribut für einen Status nur ausblenden möchten, dann ziehen Sie es bitte per drag and drop auf die Fläche Attribut ausblenden neben der Statusdropdown. Sobald die Fläche rot wird, lassen Sie die linke Maustaste los. Das Attribut wird für den Status ausgeblendet, es verbleibt aber links in der Attributauswahlliste |
Speichern-Icon | Speichert die getätigten Änderungen/ Neuanlage |
Rückgängig-Icon | Setzt die getätigten Werte auf den Stand zurück, zu dem das Attribut das letzte mal gespeichert wurde |
Hinweis: Details zum Statusabhängigen Konfigurieren siehe Statusabhängige Konfiguration - Aktivitäten einlesen
Die UI-Flags dienen zur Konfiguration der Editierbarkeit und können im Attribute-Popup entweder durch die Lupe in einem Popup ausgewählt, oder direkt eingegeben werden:
Der Testmodus dient dazu, das Smartform für einen ausgewählten Status zu testen, d.h. es öffnet sich nach Klick auf TESTEN ein Popup, in dem das Smartform voll funktional dargestellt wird. Dort können Sie prüfen, ob für den jeweiligen Status die konfigurierten Attribute sichtbar/ editierbar sind:
Nachdem Sie Ihr Smartform für den Status „—“ konfiguriert haben, können Sie es nun an die Besonderheiten der Aktivitäten im Prozess anpassen. Hierzu klicken Sie bitte auf AKTIVITÄTEN EINLESEN. Die Dropdown füllt sich mit den Namen der Aktivitäten.
* z.B. können Sie dadurch einstellen, dass ein Attribut für eine konkrete Aktivität ein Pflichtfeld wird Hinweis: Wenn Sie ein Attribut nur für einen konkreten Status benötigen, dann müssen Sie es zuerst für den Status „—“ anlegen, und dort auf Attribut ausblenden schieben. Wenn Sie nun den gewünschten Status auswählen, dann können Sie das Attribut links in der Attributliste auswählen und in das gewünschte Element schieben.
Im Attribute-Popup können Sie aus einer Liste vordefinierter Datentypen auswählen:
Datentyp | Beschreibung | Beispielhafte Verwendung |
---|---|---|
boolean | Boolescher Wert | Als Checkbox |
decision-no-yes | Boolscher Wert nein/ja | Als Radio Button mit Ausprägung Ja/ Nein |
date | Datums-Angabe | Als Textfeld mit Date Picker |
Text mit automatischer Validierung von E-Mails | Als Textfeld | |
float.2 | Gleitkommazahl mit zwei Nachkommastellen | Als Textfeld, welches den Input versucht, zu einer Zahl mit 2 Nachkommastellen umzuwandeln. Alle anderen Eingaben werden verweigert |
int | Ganze Zahl | Als Textfeld, welches den Input versucht, zu einer Zahl umzuwandeln. Alle anderen Eingaben werden verweigert |
message | Darstellung einer Meldung | Zur Darstellung von Hinweistexten |
percent.0 | Prozentwert ohne Nachkommastelle | Als Textfeld mit fester Einheit % und Validierung auf Zahlen |
price-€ | Preisangabe mit Tausendertrennzeichen und Währung EUR | Als Textfeld mit fester Einheit EUR und Validierung auf Zahlen mit 2 Nachkommastellen |
string4000 | Zeichenkette mit einer Maximallänge von 4000 Zeichen | Als ein- oder mehrzeiliges Textfeld |
Anlegen von komplexeren Datentypen ist aber auch im Designer möglich:
Dafür ist es notwendig einen neuen, eigenen, Datentypen zu erstellen, wie oben bereits beschrieben. Nachdem man auf das PLUS-Icon geklickt hat, muss man als Basistyp „String“ auswählen, die Rot hinterlegten Felder ausfüllen und bei „Eigenschaften“ „Werteliste“ auswählen. Der Wert „Länge“ gibt hierbei an, wie viele Zeichen das Label (Text vor dem jeweiligen Radiobutton) eines Radiobuttons enthalten darf. Wenn man nun auf Speichern (Diskette) klickt, erscheinen 2 Reiter: „Werte“ und „Layout“. Sie müssen in dem Reiter „Werte“ jeden gewünschten Radiobutton als einzelne Zeile hinterlegen, wobei „Wert“ den Wert angibt, den der Radiobutton bei Auswahl senden wird. Nun müssen Sie alles speichern und das Pop-Up schließen. Im übrig bleibenden Pop-Up müssen Sie nun als Layout das „Layout 3“ auswählen und für „Höhe“ „25“ oder mehr Pixel angeben.
Grundlegend basiert das Smartform auf einem Template, welches das grobe Layout vorgibt. Serienmäßig wird das Template 3columns vorgegeben. Wenn Sie ein individuelles Template für Ihren Prozess benötigen, so kann dies im Smartform Architect oder Expert erfolgen. Hierzu öffnet ein Nutzer mit der Rolle smartform-architect oder smartform-expert Ihre Konfiguration und erstellt ein Template. Anschließend können Sie das Template via ELEMENTE ANPASSEN auswählen und Ihre Attribute darin anordnen Hinweis: Der Smartform Architect richtet sich an Fachuser. Deswegen ist eine Pflege von komplexen Layoutelementen, wie z.B. Tabs und Platzhalter für die Darstellung von Tabellen, nicht im Designer pflegbar
Der folgende Screenshot zeigt das konfigurierte Smartform einmal für den Prozessstart und einmal für die erste Aufgabe. Sie können sehen, dass teilweise Attribute ausgeblendet, oder rot als Pflichtfelder hervorgehoben sind:
Die Konfiguration, anhand der die Screenshots erstellt wurden, können Sie hier einsehen und für Ihre Tests verwenden: Beispielkonfiguration
Sie brauchen Architect- oder Expertrechte. Klicken Sie oben rechts auf den Reiter „Templates“, anschließend auf das grüne „PLUS-Icon“. Bennen Sie ihr neues Template in dem Feld „Template“ und speichern Sie alles (Diskette). Anschließend gehen Sie auf den Reiter Elemente und klicken auf das grüne PLUS-Icon am rechten Bildschirmrand. Bennen Sie ihr Element. (Folgendes ist nicht der einzig richtige Weg sondern nur ein Vorschlag wie man ein blankes Template in passender Größe designen kann). Wählen Sie als Position 1 aus, falls Sie noch keine anderen Elemente eingefügt haben, geben Sie als Element-Typ „A-Element“ und als „UIE“ „uie-details Formular-Element“ an. In dem Abschnitt „Positionierung“ können Sie die gewünschte Größe sowie den Abstand zu anderen Elementen in Pixeln angeben. Anschließend drücken Sie auf Speichern (Diskette) und auf „Veröffentlichen“.
Auf jeglicher Art von Tabellen können Filter eingerichtet werden um die Ergebnismenge einzuschränken. Die verschiedenen Filter werden über ein kaufmännisches Und (&) verknüpft. Die folgende Liste gibt an welche Arten der Filterung möglich sind:
Verknüpfung mit einem ODER:
Der folgende Filter zeigt auf wie die verschiedenen Filter über ein ODER verknüpft werden können:
SpalteA={var_A}&SpalteB={var_b}&(SpalteC§{var_c}|SpalteC§{var_d})&
Ergibt folgenden Filter:
Spalte IST GLEICH var_a UND SpalteB IST GLEICH var_B UND ( SpalteC ENTHÄLT var_c ODER SpalteC ENTHÄLT var_d)
Auflistung aller Basistypen und Details dazu
Reguläre Ausdrücke
Masken
def locale = FRAME.getProperty("locale_id").toUpperCase(); if (locale != null && locale.length() > 1 && locale.substring(0,2) != "DE") { DATA_ROW.setValue("mm_sprache","EN"); }
ICbaRow attribut_xxxx = FRAME.searchRow("dd_intattr", "interf_recid=" + CONFIG_ROW.getRecid() + "&attr_id=TECHNISCHER_ATTRIBUTNAME"); attribut_xxxx.setValue("ui_flag", "D");
String wert_des_attributs_im_moment_des_seitenaufbaus = DATA_ROW.getValue("TECHNISCHER_ATTRIBUTNAME");
DATA_ROW.setValue("TECHNISCHER_ATTRIBUTNAME", "neuer_Wert_für_das_Attribut");
UNIT.getProperty("TECHNISCHER_ATTRIBUTNAME");
Auslesen des Names der aktuellen Aktivität
FRAME.BlSelect ("tim_status", "", "", "", 0, 0); ICbaTable timStatus= FRAME.getTable("tim_status",true); ICbaRow currentRow = timStatus.findRow(FRAME.getProperty("status").toInteger()); if(currentRow != null){ // MIT currentRow.getValue("status_id") wird der Name der aktuellen Aktivität ausgelesen DATA_ROW.setValue("testField", currentRow.getValue("status_id")); } FRAME.getProperty("node_id");
Validierungen in der validateRow Methode
String result = ""; if(a > b){ result = result + "Erster Fehler"; } if(a > b){ result = result + "\n Zweiter Fehler"; } if(result != ""){ ICbaTable rtable = FRAME.getTable("tim_process", true); UNIT.setMessage(1, result, "E", "6", null, null, null); return "0"; } else { return "1"; }
Aufruf der validateRow per Hand
String result = UNIT.validateRow(UNIT.viewAttributes(""),DATA_ROW);