Document toolboxDocument toolbox

Die Definition eines Modules

Um ein Modul zu erstellen muss zuvor eine Modul-Definitionsdatei erstellt werden. In dieser Datei werden alle nötigen Informationen zu einem Modul hinterlegt und welche Aktionen und/oder Prozessoren das Modul bereitstellt und wie diese angesteuert werden müssen.

Dabei ist erwähnen, dass es nicht mehr zwingend nötig ist ein Modul als .NET Anwendung zu entwickeln. Modul können auch als Service bereitgestellt werden und/oder als Zusammenschluss von mehrere Micro-Services. Somit sind keine Beschränkungen für die Entwicklung eines Moduls in der Programmier-/Skriptsprache gesetzt.

Zu beachten ist, dass bei der Entwicklung eines Moduls mit Konfiguration dieser zwischen eines WPF-Steuerelements und eines JSON-Format entschieden werden kann. Bei der Verwendung des JSON-Formats, bestehen diverse Einschränkungen in der Wahl der Steuerelemente und dessen Verhalten.

Muss eine komplexere Konfiguration entwickelt werden, sollte diese als WPF-Anwendung bereitgestellt werden. Sie müssen dann aber nicht die Ausführung auch als .NET Anwendung bereitstellen. Hier können Sie die Ausführung des Prozessors/Aktion auch in ein Service auslagern.

Definitionsdatei für ein Modul

Die Definitionsdatei für ein Modul muss im JSON-Format bereitgestellt werden. In dieser werden die Basisinformationen zu einem Modul und welche Funktionen dieses bereitstellt festgelegt.

{ "module_id": "{3276B76A-445F-4520-A3CB-ACEBA90E9F25}", "version": "1.9.21", "name": "Core", "display_text": "Core", "description": "Extends the system with various functions.", "language_code": "MOD_CORE_TITLE", "language_code_description": "MOD_CORE_DESCRIPTION", "service_address": "https://localhost:12345", "icon": { "small": "<<BASE64>>/<<PATH TO FILE>>/<<FONTAWESOME NAME>>", "medium": "<<BASE64>>/<<PATH TO FILE>>/<<FONTAWESOME NAME>>", "large": "<<BASE64>>/<<PATH TO FILE>>/<<FONTAWESOME NAME)>>" }, "config_control": { "type": "native", "native": { "library": "Core.Config.dll", "namespace": "Module.Core", "class": "Config" } }, "authorization": {…}, "credential_store": […], "data_query_addins": […], "actions": […], "processors": […], "smart_search_addins": […], "plugins": […], "triggers": […], "desktop_extensions": […], "desktop_plugins": […] }

Nachstehend werden die einzelnen Bereiche des Datenformats erläutert und auf spezielle Datentypen und Klassendefinitionen eingegangen. Damit sollte ein besserer Einblick in das Datenschema erfolgen und das Verständnis geschaffen werden, wie dieses anzuwenden ist.

Kopfdaten des Datenschemas

In dem Datenschema sind die Modulinformationen hinterlegt. Sie geben an welche Identifizierungsmerkmale, wie eindeutige Nummer, Version und Name, das Modul besitzt. Des Weiteren können in den Kopfdaten erfasst werden, welche Funktionen das Modul ausliefert und ob dieses eine zentrale Konfiguration besitzt.

{ "module_id": "{3276B76A-445F-4520-A3CB-ACEBA90E9F25}", "version": "1.9.21", "name": "Core", "display_text": "Core", "description": "Extends the system with various functions.", "language_code": "MOD_CORE_TITLE", "language_code_description": "MOD_CORE_DESCRIPTION", "service_address": "https://localhost:12345", "icon": {…}, "config_control": {…}, "authorization": {…}, "credential_store": […], "data_query_addins": […], "actions": […], "processors": […], "smart_search_addins": […], "plugins": […], "triggers": […], "desktop_extensions": […], "desktop_plugins": […] }

Folgende Information sind in diesem Bereich hinterlegt:

Feld

Beschreibung

Feld

Beschreibung

module_id

Die eindeutige Identifikationsnummer für das Modul. Über diese Identifikationsnummer kann ein Modul immer adressiert werden.

Version

Angabe der Versionsnummer des Moduls.

Name

Bezeichnung des Moduls.

display_text

Der Anzeigetext für das Modul.

Description

Die Beschreibung des Moduls.

language_code

Sprachindex um den Anzeigetext für das Modul zu übersetzen.

language_code_description

Sprachindex um die Beschreibung für das Modul zu übersetzen.

icon

Angabe des Modul-Icons als Base64 oder als Pfadangabe zur Datei in dem ZIP-Container des Modules.

service_address

Angabe der Basisadresse zum Webservice.

Die Basisadresse kann im Designer und pro Projekt angepasst werden. Die Adresse wird vom System benötigt, damit das System weiß wie welche Funktion vom Modul anzusteuern sind.

config_control

Die Konfiguration kann dabei zwischen einem nativen .NET Benutzersteuerelement sein oder eine Funktion um eine JSON-Definition für die Konfiguration zu erhalten.

service_address

Gibt die Basisadresse für die Kommunikation via http an. Sollte das Modul keine http Aufrufe unterstützen, muss dieser Wert nicht angegeben werden. Wird er angegeben, kann der Standardwert im Designer überschrieben werden.

authorization

Angabe welche Werte für eine zentrale Authentifizierung benötigt wird. Die Angabe in diesem Bereich müssen in der Modulkonfiguration als Authentifizierungseinstellungen angezeigt und gespeichert werden.

credential_store

Angabe welche Werte das Modul für die Speicherung von Zugangsdaten benötigt. Das Modul selbst verwaltet Zugangsdaten nicht mehr selbst, diese werden vom Designer im Bereich des Credential Store getätigt.

data_query_addins

Definition welche Add-Ins das Modul für DataConnect ausliefert.

smart_search_addins

Definition welche Add-Ins für Smart Search das Modul ausliefert.

actions

Definition welche Aktionen das Modul ausliefert.

processors

Definition welche Prozessoren das Modul ausliefert.

desktop_extensions

Definition welche Desktop-Erweiterungen (keine Anwendungen) das Modul ausliefert.

Die Desktop-Erweiterungen müssen in .NET entwickelt werden. Der Grund hierfür ist, dass die Desktop-Erweiterungen ausschließlich für den lokalen Windows-Client sind, welcher in .NET entwickelt wurde.

desktop_plugins

Definition welche Desktop-Plugins das Modul ausliefert.

plugins

Definition welche Plugins das Modul ausliefert.

triggers

Definition welche Auslöser das Modul ausliefert.

Referenzen

Die einzelnen Definitionsbereiche wie Authentifizierung, Credential Store, Add-Ins, etc. werden im Detail in den unten stehenden Referenzen erläutert.