Externe Datenquellen verwalten

Wichtig

Die Schnittstelle für externe Datenquellen für DMN Datenobjekte ist für Ihr On Premises-System auf Anfrage verfügbar. Falls Sie die Schnittstelle aktivieren möchten, wenden Sie sich bitte an das Signavio Support Team, das Sie unter support@signavio.com erreichen.

Im Signavio Decision Manager können Sie Glossareinräge zur Definition von Eingabewerten von Entscheidungstabellen verwenden.

Für die Datentypen Textliste und Hierarchie können Sie diese Definitionen über einen externen Service beziehen.

Dieser Artikel erklärt, wie Sie einen solchen Service implementieren und konfigurieren können.

Architektur

Das folgende Diagram bietet eine Übersicht über die Systemarchitektur der Schnittstelle:

Überblick über die Systemarchitektur der Schnittstelle

Die Komponente auf der linken Seite stellt den Signavio Decision Manager dar. Die rechte Seite repräsentiert den externen Service, der die gewünschten Datenquellen zur Verfügung stellt. Falls dies notwendig ist, konvertiert der externe Service die Daten zudem in das Datenformat, das vom Signavio-System akzeptiert wird.

Es gibt zwei Möglichkeiten, einen Dienst einzurichten, damit der Signavio Decision Manager auf Daten von Drittanbietern zugreifen kann.

Die Optionen werden durch die beiden ausgehenden Anfrage- / Antwortkanäle im Diagramm dargestellt.

  • Der Signavio Decision Manager greift direkt auf den Service zu. Hierfür ist es notwendig, dass der Service vom Signavio Decision Manager über HTTP(S) GET-Anfragen erreichbar ist. Zudem muss die entsprechende Antwort dem Signavio-Datenformat entsprechen. So können Sie das Format anpassen.
  • Alternativ können Sie auf die Range Accessor Service Webanwendung, die von Signavio zur Verfügung gestellt wird, zurückgreifen. Hierdurch können Sie bestehende Services einfach anpassen, da der Range Accessor Service die Konvertierung des Datenformats entsprechend vornehmen kann. Um diese von Signavio bereitgestellte Web-App nutzen zu können, müssen Sie Signavio entsprechend kalibrieren. Lesen Sie mehr im Abschnitt .Range Accessor Service

Direkter Zugriff durch Dritte: Datenformat

Der Signavio Decision Manager erwartet, dass die Antwort des externen Services der folgenden JSON-Struktur entspricht:

 <response> := <enumResponse> | <hierarchyResponse> | [<enumItem>*] <enumResponse> := { type: "enumeration", enumItems: [<enumItem>*] } <enumItem> := { id:<String>, title:<String> } <hierarchyResponse> := { type: "hierarchy", hierarchyItems: [<hierarchyItem>*] } <hierarchyItem> := {id:<String>, title:<String>, children: [<hierarchyItem>*] }

Die Antwort wird entweder als Aufzählung oder als Hierarchie deklariert und enthält eine Typdefinition und Elemente.

Die folgenden Beispiele dienen als Referenzen für die Datenobjekte, die Ihr externer Service anbieten soll:

Beispiel Aufzählung:

{ type: "enumeration", enumItems: [ {id:"firstPlace", title:"Gold medal"}, {id:"secondPlace", title:"Silver medal"}, {id:"thirdPlace", title:"Bronze medal"} ] }

Die Aufzählungsantwort ist ein JSON-Objekt mit einer Typdeklaration und einem JSON-Array von Aufzählungselementen. Jedes Item ist ein JSON-Objekt mit den Pflichtattributen id und title.

Beispielhierarchie:

{ type: "hierarchy", hierarchyItems: [{ id: "am", title: "America" }, { id: "eu", title: "Europe", children: [{ id: "uk", title: "United Kingdom" }, { id: "de", title: "Germany", children: [{ id: "berlin", title: "Berlin" }] }, { id: "fr", title: "France" }] }, { id: "as", title: "Asia" }] }

Die Hierarchieantwort ist ein JSON-Objekt mit einer Typdeklaration und einem Array von Hierarchieelementen. Jedes Item ist ein JSON-Objekt mit den Pflichtattributen id und title und dem optionalen Attribut children. children ist ein JSON-Array, welches dasselbe Format wie ein Hierarchieelement hat. Alle weiteren Attribute werden ignoriert.

Hinweis

Das idAttribut darf keine Leerzeichen enthalten und das titleAttribut muss mit einem alphabetischen Buchstaben beginnen.

Range Accessor Service

Signavio stellt eine Webapplikation zur Verfügung, die entweder als Adapter eines bereits existierenden Services oder als eigenständige Datenquelle verwendet werden kann.

Erweitern Sie zur Verwendung dieses Dienstes die AbstactExternalValueRange-Klasse (unter Verwendung einer nicht abstrakten Klasse) und senden Sie das RangeServingServlet. Dies kann die Wiederverwendung eines bestehenden Dienstes erleichtern. Der Dienst kann aufgerufen werden und die Daten können dem angegebenen Datenformat zugeordnet werden.

In beiden Fällen muss die Ausgabe dem oben angegebenen Datenformat entsprechen. Die Beispiel-Web-App Signavio Range Accessor Service enthält (unter anderem) die folgenden Dateien und Ordner (Pakete):

RangeServingServlet.java (com/signavio/rangeservice/servlet)

AbstractExternalValueRange.java (com/signavio/rangeservice/conversion/)

public byte[] getValues(HttpServletRequest req) throws JsonProcessingException {...} .

Die Unterklassen im Beispiel-Subpackage dienen als Referenzbeispiele für die Implementierung von Auflistungs- und Hierarchieprovidern.

AbstractRangeExchange.java (com/signavio/rangeservice/util/exchange/)

Wichtig

Keine weiteren Dateien, Ordner und JAR-Dateien sollten geändert, gelöscht oder verschoben werden, um eine einwandfreie Funktionalität zu gewährleisten. Einige von ihnen werden nur beim Kompilieren benötigt, andere zur Laufzeit

Externe Datenquellen hinzufügen

Um einen externen Dienst nutzen zu können, muss dieser im entsprechenden Signavio-Arbeitsbereich registriert sein. Öffnen Sie unter Setup den Dialog Notationen/Attribute verwalten und wählen Sie das Tab Glossar aus. Wählen Sie nun den Link im Beschreibungstext aus:

Wählen Sie nun den Link externe Datenquellen verwalten im Beschreibungstext aus:

Klicken Sie Hinzufügen:

Klicken Sie auf "Hinzufügen" um einen neuen Service zu registrieren.

Ein Service besteht aus seinem Namen, seiner unique URL und seiner Cache-Konfiguration:

  • Name

    Der Name wird im Signavio Glossar als Label verwendet.

  • URL

    Dies ist die Service-URL, auf die über eine HTTP-GET-Anforderung zugegriffen werden kann, die mit Daten im oben angegebenen Signavio-Datenformat antwortet.

  • Cache

    Es ist möglich, die Daten temporär zwischenzuspeichern. Falls Caching aktiviert ist, wird der referenzierte Service für das konfigurierte Zeitintervall nicht kontaktiert und stattdessen auf die vorkonfigurierten Werte zugegriffen.

    Es wird dringend empfohlen, das Caching zu aktivieren. Andernfalls werden die Daten des Dienstes jedes mal erneut abgefragt, wenn der Glossareintrag geladen wird. Wenn der Dienst vorübergehend nicht verfügbar ist, wird ohne caching das Zeitlimit für die vom Signavio Decision Manager an den Dienst gesendete Anforderung überschritten, und die Daten stehen erst zur Verfügung, wenn die Anforderung beantwortet wurde.

Klicken Sie Hinzufügen, um einen neuen Service zu registrieren.

Unter Externe Datenquellen referenzieren erfahren Sie, wie Sie bei der Datenmodellierung im Glossar externe Services referenzieren können.