Drücke „Enter”, um zum Inhalt zu springen.

Kleine Toolbox für K2-Anwendungen

Nachfolgend möchte ich Euch meine kleine Toolbox vorstellen, die kleine Helferleinchen und Funktionen bereitstellt, die eigentlich bei jeder K2-App helfen können.

Das Paket bietet z.B. folgende Funktionen:

  • Verwaltung von Anwendungen (Metadaten wie z.B: Name, Beschreibung, Link zur Startseite etc.)
  • Zuordnung von Administratoren
  • Verwaltung von Rollen (nicht K2-Rollen), die den Anwendungen zugeordnet werden können
  • Smartobjekte und Formulare zur Verwaltung von Key-Value Listen (z.B. für Comboboxen etc.)
  • Verwaltung von Workflowstatus-Zuständen (Bezeichnung, Farben, Icons)
  • Einfache Log-Funktion
  • Diverse Smartobjekte und Datenbankfunktionen um z.B. Rollenmitgliedschaften zu ermitteln oder Base64-codierterBilder zu konvertieren

Verwaltung von Anwendungen

Diese Funktion bietet die Möglichkeit, K2-Anwendungen zu erfassen und zu beschreiben. Die angelegten Anwendungen dienen als Basis für fast alle oben genannten Funktionen. D.h. alle Rollen, Key-Value Listen, Logeinträge etc. können den Anwendungen eindeutig zugeordnet werden. Auf diese Weise müssen nicht jedes mal neue Smartobjekte für das  Speichern von möglichen Statuszuständen, Logeinträgen oder Listen angelegt und verwaltet werden.

Für kleinere bis mittlere Anwendungen kann das sehr hilfreich sein.

Zuordnung von Administratoren

Den erfassten Anwendungen können direkt Administratoren zugeordnet werden. Diese haben dann z.B. die Möglichkeit, die Angaben der Anwendung zu bearbeiten oder die anwendungsspezifischen Rollen zu verwalten.

Verwaltung von Anwendungs-Rollen

Diese Funktion bietet im Vergleich zum K2-Rollensystem etwas mehr Flexibilität. Es können beliebig viele Rollen angelegt werden und alle User, die in K2 registriert sind, zugeordnet werden. Die Rollen sind immer einer Anwendung zugeordnet. Die Anwendungsadministratoren können diese Rollen selbst verwalten.

Mit den zugehörigen Smartobjekten können Gruppenmitgliedschaften einfach abgeprüft werden oder auch Rollenmitglieder sehr einfach ausgelesen werden (z.B. zur Zuweisung von Tasks in einem Workflow)

Key-Value Lists

In nahezu jeder Anwendung werden Auswahlwerte benötigt. Die Werte können natürlich unterschiedlich an die entsprechenden Controls gebunden werden. Die statische Methode ist da sicherlich nicht immer die beste Wahl. Entweder wird die Auswahlliste öfters, in unterschiedlichen Views/Formularen benötigt oder die Auswahllisten müssen angepasst werden können (neue Werte hinzufügen oder löschen etc.).

Dann bleibt eigentlich nur die Möglichkeit eine Tabelle oder ein Smartboxobjekt anzulegen, welches die Werte speichern kann. Außerdem wird dann wiederum ein Userinterface benötigt, über das die Werte verwaltet werden können. Unter dem Strich sind das sich wiederholende Tätigkeiten, die mit der Key-Value Lists Funktion entfallen.

Mit der Funktion wird eine gemeinsame Tabelle bereitgestellt, die unterschiedliche Auswahlwerte auch in unterschiedlichen Formaten aufnehmen kann. Es können über sogenannte „UseCase-Keys“ unterschiedliche Key-Value Listen aufgebaut werden.

Alle Key-Value Listen werden außerdem ebenfalls einer registrierten Anwendung zugeordnet. D.h. jede registrierte Anwendung kann seine eigenen Listen verwalten – das wiederum ist den jeweiligen Anwendungs-Administratoren gestattet.

Für die Abfrage der Werte bietet das Paket natürlich ebenfalls ein entsprechendes Smartobjekt.

Liste für Workfow-Satatuszustände

Nahezu jeder Workflow verfügt über unterschiedliche Statuszustände, mit deren Hilfe z.B. beschrieben werden soll, wo sich der Workflow im Moment befindet. Diese Information soll oftmals in Views/Listviews/Formularen angezeigt werden. Ich speichere diese unterschiedlichen Zustände meistens in einer eigenen Tabelle um diese dann mit den eigentlichen Prozessdaten zu verknüpfen.

Ähnlich wie bei den Key-Value Lists bietet das Paket ein Formular zu Verwaltung dieser Statuszustände sowie die entsprechenden Smartobjekte. Die Statusangaben werden ebenfalls jeweils einer Anwendung zugeordnet. Es können beliebig viele Angaben verwaltet werden.

Um den aktuellen Status in den Anwendungen auch visuell etwas „aufzupeppen“, können nicht nur Bezeichnungen definiert werden, sondern Farbcodes und Bilder festgelegt werden.

Log

Noch eine weitere Funktion ist das Wegschreiben von Log-Daten. Ein Formular kann die jeweiligen Log-Einträge anzeigen und filtern. Alle Logeinträge können auch bei dieser Funktion wieder eindeutig einer Anwendung zugeordnet werden. Die Anwendungsadministratoren können die Logs ihrer Anwendungen getrennt nach Anwendung oder Usecases anzeigen lassen (oder auch alle Einträge aller Anwendungen die ihm zugeordnet sind)

Ein Smartobjekt bietet die Möglichkeit Logeinträge zu erstellen (z.B. in einem Workflow oder auch in einem Formular etc.)

Unter dem Strich sind die oben beschriebenen Funktionen Tätigkeiten die ich in sehr vielen Anwendungen benötige. Zu Beginn habe ich diese Funktionen individuell auf die Bedürfnisse der jeweiligen Anwendung erstellt. Ist ja mit den Smartforms und Smartobjekten kein Hexenwerk, aber dennoch benötigen auch diese einfachen Funktionen immer wieder eine gewisse Zeit. Hinzu kommt, das jedes mal neue Artefakte wie z.B. Views/Forms/Smartobjekte hinzukommen.

Forms / Views / Smartobjekte:

Wer auf ähnliche Art und Weise vorgeht, kann mich vielleicht verstehen. Und wer weiß vielleicht hat ja sogar jemand Verwendung für die kleine Toolbox – daher könnt ihr euch das Paket gerne  runterladen.

Installation:

  1. DB-Schema,Tabellen, Stored Procedures, Functions und Views anlegen (CW-K2Application-Toolbox.sql – bitte ersetze den Platzhalter für die Datenbank mit dem Namen Deiner Datenbank)
  2. Notwendige Daten importieren (CW-K2Application-Data.sql – bitte ersetze den Platzhalter für die Datenbank mit dem Namen Deiner Datenbank und definiere den FQN und Displayname für Deinen Account – damit Du anschließend die Adminoberfläche aufrufen kannst)
  3. Serviceinstanz anlegen oder aktualisieren
  4. Deploymentpaket einspielen (CW-K2Application-Toolbox.kspx)
  5. Loslegen!! Die Anwendung ist nach dem Deployment unter dieser Adresse zu finden: http(s)://<Dein-K2-Server>/Runtime/Runtime/Form/bas.Application/

Bild von Chris Reading auf Pixabay