Table of Contents

TIM Smartform Suite - DRAFT

1. Vorstellung und Abrenzung der TIM Smartform Suite von HTML Smartforms

2. Zugang zur TIM Smartform Suite

2.1 Systemrollen für den Zugang zur TSS

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:

2.2 Zugang via Repository

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.

2.3 Systemrolle für die Verwaltung von TSS Ressourcen

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:

2.3.1 Globale Ressourcen im super-Mandant

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

2.3.2 Mandantenspezifische Ressourcen

In Ihrem Mandanten können Sie analog Artefakte verwalten, die nur innerhalb des Mandanten gelten und verfügbar sind


3. TIM Smartform Designer

3.1 Zielgruppe & Projektscope

3.2 Erklärung der Oberfläche und Funktionen – Zielgruppe Fachnutzer!

3.2.1 Oberfläche und Bedienphilosophie

Im Fokus des Smartform Designers steht das Smartform.

3.2.2 Attribute

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:

3.2.3 Testmodus

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:

3.2.4 Statusabhängige Konfiguration - Aktivitäten einlesen

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.

3.2.5 Datentypen

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
email 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 ZeichenAls 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.

3.2.6 Templates

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

3.2.7 Ergebnis im ToDo Client

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:

3.2.8 Config zum Selbertesten

Die Konfiguration, anhand der die Screenshots erstellt wurden, können Sie hier einsehen und für Ihre Tests verwenden: Beispielkonfiguration


4. TIM Smartform Architect

4.1 Zielgruppe & Projektscope

4.2 Erklärung der Oberfläche und Funktionen


5. TIM Smartform Expert

5.1 Zielgruppe & Projektscope

5.2 Erklärung der Oberfläche und Funktionen


6. Module des TIM Smartform Architect und Expert

6.1 Modul Bedienoberfläche

6.2 Modul Templates

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“.

6.3 Modul Tabellen

6.3.1. Filter

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)

6.4 Modul Datentypen

Auflistung aller Basistypen und Details dazu

Reguläre Ausdrücke

Masken

6.5 Modul Meldungen

6.6 Modul Übersetzung

6.7 Modul funktionale Struktur

6.8 Verwaltung von TSS-Resourcen


7. praktische Tipps für die gängigsten Smartformanforderungen

7.1 Attribute in Taskliste darstellen

7.2 Besondere Eigenschaften von Attributen

7.3 Einbinden einer csv-Datei für ein Autocomplete-/Dropdownfeld

7.4 Erstellung von Tabpages

7.5 Integration einer fachlichen Tabelle als Grid

7.6 Erstellung eines Accordions

7.7 Erstellung eines Groovy Codes, der beim Laden des Smartforms gezogen werden soll

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);

7.8 Konfiguration von statusabhängigen Attributeigenschaften


8. Installation


9. Altes CBA Wiki

16.0 Übersicht
16.1 Einführung
16.2 Tabellen
16.3 Datentypen
16.4 Templates
16.5 Bedienoberflächen
16.6 Meldungen
16.7 TIM-Anbindung