Document toolboxDocument toolbox

Unterstütze Adressierung von Steuerelementen

In diesem Artikel beschreiben wir, welche Möglichkeiten es gibt, Konfigurationen für den Designer als Steuerelement bereitzustellen; egal ob Sie in .NET oder eine andere beliebige Programmiersprache entwickeln.

Angabe von Konfigurationselementen

Grundlegend erkennt das System Konfigurationselemente anhand der jeweiligen Definition in der info.json des Moduls. Hierzu wird an der entsprechenden stelle in der Moduldefinitionsdatei folgendes JSON-Objekt hinzugefügt:

{ "type": "native/json/http/website", "native": {...}, "json": {...}, "http": {...}, "website": {...} }

Im obigen Abschnitt ist das JSON-Objekt für die Adressierung von Steuerelementen aufgeführt. Alle Eigenschaften sind in der unten stehenden Tabelle aufgeführt:

Feld

Beschreibung

Feld

Beschreibung

type

Angabe, wie die zentrale Konfiguration bezogen werden muss. Hier sind folgende Typen gültig: 

json Angabe der benötigten Steuerelemente im JSON Format. (Siehe Abschnitt Angabe desKonfigurationselements im JSON- Format

native Angabe, dass ein .NET Steuerelement geladen werden muss. Dieses Steuerelement wird aus dem Modul- Container bezogen. 

http Angabe, dass die JSON-Definition für die Konfiguration per http Aufruf bezogen werden soll. 

messagequeue Angabe, dass die JSON-Definition für die Konfiguration per Message-Queue bezogen werden soll.

website Angabe, dass eine Webseite angezeigt werden soll. Die Konfiguration wird direkt an eine JavaScript Funktion übergeben.

native

 

json

 

http

 

Angabe von Konfigurationselementen als .NET Bibliothek

Wenn das Konfigurationselement als .NET Steuerelement bereitgestellt wird, muss das nachstehende JSON-Objekt verwendet werden. In diesem JSON-Objekt wird dann die jeweilige .NET Bibliothek adressiert, welche die Schnittstelle Module aus dem Software Development Kit implementiert hat.

{ "type": "native", "native": { "library": "Core.Config.dll", "namespace": "Module.Core", "class": "Config" } }

Im obigen Abschnitt ist das JSON-Objekt für die Verwendung von .NET Bibliotheken aufgeführt. Alle Eigenschaften sind in der unten stehenden Tabelle aufgeführt:

Feld

Beschreibung

Feld

Beschreibung

type

native Angabe, dass ein .NET Steuerelement geladen werden muss. Dieses Steuerelement wird aus dem Modul- Container bezogen.

library

Angabe, welche Bibliothek aus dem Modul-Container verwendet werden muss um das Steuerelement zu laden.

namespace

Hier wird der Namensraum zu der Klasse angegeben. Dies ist notwendig, damit der Designer die richtige Klasse initialisieren kann um das Steuerelement zu laden.

class

Angabe des Klassennamen, der die Schnittstelle IModule implementiert hat. Sollte die Klasse nicht existieren oder nicht die richtige Schnittstelle implementiert haben, wird der Designer einen Fehler melden.

Angabe von Konfigurationselemente als JSON-Formular

Wenn die Konfiguration im JSON-Format angegeben werden soll, muss das nachstehende JSON-Objekt verwendet werden.

{ "type": "json", "json": [{ "name": "General", "language_code": "MOD_TXT_TAB_GENERAL", "controls": [{...}] }] }

Zunächst werden die Tabs definiert, welche die Konfiguration beinhaltet. Wenn nur ein Tab definiert ist, werden die Steuelemente ohne Tab-Control-Rahmen angezeigt.

Feld

Beschreibung

Feld

Beschreibung

name

Der Name und Anzeigetext des Tabs.

language_code

Sprachindex um den Anzeigetext des Tabs zu übersetzen.

controls

Die Elemente, welche das Tab beinhaltet.

Ein Control wird wie folgt definiert:

Feld

Beschreibung

name

Name des Eingabefeldes. Dieser wird auch für die Adressierung und Speicherung verwendet. Aus diesem Grund darf der Name nur 1-mal vorkommen.

display_text

Der Anzeigetext für das Eingabefeld.

description

Die Beschreibung des Eingabefeldes.

watermark

Wasserzeichen für das Eingabefeld.

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.

language_code_watermark

Sprachindex, um den Text für das Wasserzeichen zu übersetzen.

type

Hier wird der Eingabefeldtyp angegeben, der verwendet werden soll. 

Siehe Abschnitt: Unterstützte Eingabeformulartypen

default_value

Angabe, welcher Standardwert dieser Eigenschaft zugewiesen werden soll.

delimiter

Angabe, welches Trennzeichen verwendet werden soll, wenn ein Feld mehrere Werte zulässt.

items

Bei der Verwendung von Checkboxen, Radio-Buttons und Auswahlboxen müssen die jeweiligen Einträge in diesem Bereich angegeben werden.

display_text

Anzeigetext, der zur Auswahl angezeigt wird.

language_code

Sprachindex, um die Anzeigetext zu übersetzen.

value

Der Wert, welcher bei der Auswahl gespeichert werden muss.

image
(experimental)

Wenn das Eingabeformular TreeView verwendet wird, kann mit dieser Option angegeben werden, welche Bild-Datei in dem Eingabeformular dargestellt werden soll.https://actiware-development.atlassian.net/browse/IO-1183

childs
(experimental)

Wenn das Eingabeformular TreeView verwendet wird, kann man für eine hierachische Darstellung der Einträge mit dieser Eigenschaft weitere Elemente hinzufügen.

repository_items
(experimental)

Bei der Verwendung von Checkboxen, Radio-Buttons und Auswahlboxen müssen die jeweiligen Einträge in diesem Bereich angegeben werden.

module_id

Angabe der Identifikationsnummer des Moduls, welches das Repository Add-In ausliefert.

addin_id

Angabe der Identifikationsnummer des Repository Add-Ins, welches adressiert wurde.

item_id

Angabe der Identifikationsnummer des Eintrages.

Mit der Identifikationsnummer wird im weiteren Verlauf auf das Element referenziert. Somit wird diese Nummer immer benötigt, wenn eine Anwendung das Element beziehen möchte.

type

Angabe, ob es sich um ein Paket, Ordner oder Datei handelt.

Folgende Werte sind zulässig;

  • Package

  • Folder

  • File

name

Anzeigetext, der zur Auswahl angezeigt wird.

file_name

Name des Paketes, Ordners oder Datei.

attributes

Optionale informationen zu dem Eintrag.

items

Mit dieser Eigenschaft können Sie untergeordnete Einträge zu dem Element hinzufügen.

options

Bei der Anlage von Eigenschaft muss dieses Objekt immer mit angegeben werden.

required

Gibt mit true an, dass dieses Eigenschaftsfeld mit einem Wert befüllt werden muss. Mit false wird festgelegt, dass der Anwender keinen Eingabewert eintragen muss.

Der Standardwert ist: false.

disable

Gibt mit true an, dass dieses Eigenschaftsfeld deaktiviert ist und keine Eingabewerte zulässt. Mit false wird festgelegt, dass das Eigenschaftfeld aktiviert ist und vom Anwender Eingabewert eingetragen werden können.

Der Standardwert ist: false.

multiple_selection

Gibt mit true an, dass bei Selektionsfelder mehrere Werte ausgewählt werden können. Mit false wird festgelegt, dass nur ein einzelner Eintrag aus einer Liste selektiert werden kann.

Der Standardwert ist: false.

item_selection_only

Gibt mit true an, dass bei Selektionsfeldern nur Werte aus der angegebenen Liste (Werte aus dem Array items) gültig sind. Mit false wird festgelegt, dass dieses Feld nicht nur die Werte aus items zulässt, sondern auch eigene Benutzereingaben.  

Der Standardwert ist: true.

input_mask_type

Hier kann entschieden werden, welche Maskenelemente verwendet werden sollen: 

Simple Unterstützung von einfachen Maskenelementen. 

Regular Unterstützung von einfachen regulären Ausdrücken als Maskenelement. 

RegEx Unterstützung von regulären Ausdrücken als Maskenelement.

input_mask

Angabe der Maske, die für das Eingabefeld MaskedTextBox verwendet werden kann. 

Siehe Abschnitt: Unterstützte Eingabeformulartypen

date_input_pattern

Hier kann ein Muster für ein Eingabe von Datumswerten hinterlegt werden. Wird dieses Feld nicht angegeben, verwendet jegliches Datumsfeld die Standardeinstellungen vom Betriebssystem.

date_output_pattern

Hier kann ein Muster für die Ausgabe von Datumswerten hinterlegt werden. Wird dieses Feld nicht angegeben, wird das Datum in die universelle Zeit umgewandelt (2018-11-02 10:48:28Z).

input_line_count

Angabe, wie viele Linien ein mehrzeiliges Textfeld darstellen soll.

support_syntax_fields

Angabe, ob das Konfigurationselement den Syntaxassistenten unterstützt bzw. auf diesem Feld die Funktion für die Formatierung der Syntax ausgeführt wird.

max_length

Gibt an, wie viele Zeichen das Eingenschaftenfeld maximal zulässt. Wird die Zeichenfolge überschritten, setzt das Eingeschaftenfeld den Status: Error.

Der Standardwert ist: 0.

Wird der Wert 0 eingetragen, hat das System keine Limitierung die es beachtet.

min_length

Gibt an, wie viele Zeichen das Eingenschaftenfeld mindestens enthalten muss. Wird die Zeichenfolge unterschritten, setzt das Eingeschaftenfeld den Status: Error.

Der Standardwert ist: 0.

Wird der Wert 0 eingetragen, hat das System keine Limitierung die es beachtet.

repository_source

Ordner oder Netzwerkname, welcher als Quelle für das File-Repository verwendet werden soll. 

file_repository_filter

Bei der Verwendung eines File-Repositories kann mit dem Filter angegeben werden, welche Dateien bei dem Auslesen eines Verzeichnisses beachtet werden sollen. 

Dieser Filter kann eine Kombination aus gültigen Literalpfad- und Platzhalterzeichen (* und ?) enthalten, unterstützt jedoch keine regulären Ausdrücke.

include_sub_directories

Mit dem Wert true wird angegeben, ob beim Auslesen von Dateien auch alle Unterverzeichnisse aus dem Quellverzeichnis beachtet werden sollen. Mit false sucht das System nur auf der obersten Ebene des Quellverzeichnis nach Dateien.

Der Standardwert ist: false.

source_selection_enabled

Gibt mit true an ob das Quellverzeichnis vom Anwender geändert werden kann. Möchte man verhindern, dass der Anwender das Quellverzeichnis ändern kann muss der Wert false verwendet werden.

Der Standardwert ist: false.

add_button_language_code

Sprachindex für die Übersetzung der Schaltfläche für das Hinzufügen von Parametern, wenn das Eingabefeld Key-Value verwendet wird. 

add_button_display_text

Standardtext, der für die Schaltfläche für das Hinzufügen von Parametern verwendet werden soll.

credential_stores

Angabe der Credential-Store Identifizierungsnummern, von denen die verfügbaren Login-Profile geladen werden sollen.

file_selection_only
(experminetal)

Gibt mit true an, ob der Anwender in der Auswahlliste eines Repositories nur Dateien auswählen kann. Möchte man erlauben, dass der Anwender auch Pakete und/oder Ordner auswählen kann, muss der Wert mit false verwendet werden.

Angabe von Konfigurationselementen als JSON-Formular per http

Wenn die Konfiguration im JSON-Format angegeben werden soll, muss das nachstehende JSON-Objekt verwendet werden. In diesem JSON-Objekt wird der Service adressiert, welcher die Route für das Laden der JSON-Definition bereitstellt.

Feld

Beschreibung

Feld

Beschreibung

type

http Angabe, dass die JSON-Definition für die Konfiguration per http Aufruf bezogen werden soll.

http

Angabe für den http Aufruf um die JSON-Definition zu laden.

method

Angabe, welche http-Methode für den Aufruf verwendet werden muss.

url

Die Url, welche aufgerufen werden muss um die Definition zu beziehen.

request_headers

Angabe der Header, die beim Aufruf neben den zentralen Headers mitgesendet werden müssen.

Angabe von Konfigurationselementen als Webseite

Wenn die Konfiguration über eine Webseite bereitgestellt wird, kann das nachfolgende JSON Objekt verwendet werden.

Feld

Beschreibung

Feld

Beschreibung

type

Soll eine Webseite angezeigt werden, muss als type website angegeben werden

website

Beschreibt, wo die Webseite zu finden ist und welche JavaScript Funktionen verwendet werden sollen

url

Die Url, welche aufgerufen werden muss um die Webseite anzuzeigen.

js_function

Name der JavaScript-Funktion, welche für die Route (LOAD und SAVE) aufgerufen werden soll.

load_function

(Nur zentrale Modulkonfiguration) Wird der Type website in der Zentralen Modulkonfiguration verwendet, muss statt js_function eine load_function angegeben werden. Diese Funktion wird aufgerufen, um die Modul-Konfiguration an die Webseite zu übergeben.

save_function

(Nur zentrale Modulkonfiguration) Wird der Type website in der zentralen Modulkonfiguration verwendet, muss statt js_function eine save_function angegeben werden. Diese Funktion wird aufgerufen, um die Modulkonfiguration aus der Webseite auszulesen.

Beispiel für JavaScript Funktionen

Die Load und Save Funktionen ähneln .NET-SDK Funktionen sehr stark. Der hauptsächliche Unterschied ist, dass in JavaScript die Eigenschaftennamen in “Lower Camel Case” definiert sind. Des Weiteren unterscheiden wir in den nachstehenden Beispielen zwischen dem Ansteuern einer LOAD-Method aktiv vom Designer aus und von dem aktiven Laden der Konfiguration von der Webseite aus.

Laden von Konfigurationen nach dem die Seite aufgerufen wurden (React, Angular, etc.)

In einigen Frameworks müssen die Konfigurationen aktiv von der Webseite aus aufgerufen werden. Bei diesem Verfahren müssen aber nicht nur die Konfigurationen aktiv geladen werden, sondern auch weitere Einstellungen wie alle Verfügbaren Prozesse oder Datenabfragen, sofern diese benötigt werden.

Um die Konfiguration aktiv zu laden kann folgende Code-Schnipsel verwendet werden:

Das obige Beispiel ist in TypeScript geschrieben und wir mit React verwendet. Zu sehen ist, dass unterhalb des Window-Object sdkUiEvents vom Designer bereitgestellt wird, welche die Methode loadConfig() beinhaltet. Da es sich dabei um eine asynchrone Methode handelt, kann diese mit await angesteuert werden, um direkt das Konfigurationsobjekt zu erhalten.

Laden von Konfigurationen bei der Verwendung von simplen Html-Seiten

Der Load-Funktion wird ein Parameter übergeben. Dieser Parameter beinhaltet die Klasse ConfigInformation (siehe https://actiware-development.atlassian.net/wiki/spaces/AWIO/pages/942112778 unter ConfigInformation). Da hier die JSON-Objekte 1-zu-1 als JavaScript zurückgegeben wird, werden z.B. aus den Properties Parameters, BusinessObjects, DataQueries, die Properties parameters, business_objects und data_queries:

Speichern der Einstellungen

Im Gegensatz zur .NET Save Funktion, wird die JavaScript Funktion ohne Parameter aufgerufen. Es wird allerdings auch hier das Objekt ItemConfig zurückerwartet:

Weitere Schritte für die Entwicklung von Webseiten als Konfigurationsoberfläche

Die obigen Beispiele sind nur eine kurze Übersicht über die Funktionen die für Konfigurationsoberflächen welche als Webseite betrieben wird zur Verfügung stellen. Alle weiteren JavaScript Funktionen sind im nachstehenden Artikel beschrieben:

https://actiware-development.atlassian.net/wiki/spaces/AWIO/pages/2765619239