Relationsgraphen

Einführung in Relationsgraphen in ConSol CM

Relationsgraphen sind eine Möglichkeit zur Visualisierung der Relationen zwischen Vorgängen, Kontakten und Ressourcen in ConSol CM. Sie können in allen Abschnitten des Web Clients, die Relationen enthalten, eingeblendet werden. Zusätzlich ist es möglich, einen eigenen Abschnitt mit einem benutzerdefinierten Relationsgraphen zu erstellen.

Konzepte, Begriffe und Definitionen

Konzept

Andere Begriffe

Definition

Relation

 

Verknüpfung zwischen zwei Objekten in ConSol CM. Die Objekte können vom gleichen oder unterschiedlichen Typen sein.

Zweck und Verwendung

Der Inhalt der Web Client-Abschnitte, die Relationen enthalten, kann entweder als Liste oder als Graph angezeigt werden. Der Benutzer kann den Anzeigemodus auswählen, indem er in der Kopfzeile des Abschnitts auf den Link Graph oder Liste klickt.

Relationsgraphen zeigen die Verknüpfungen des aktuellen Objekts (Vorgang, Kontakt oder Ressource) als Graph. Das heißt, jedes Objekt ist ein mit einem Icon dargestellter Knoten und es gibt Kanten zwischen den verknüpften Objekten. Die Knoten und Kanten haben Label, die die Art der Verknüpfung angeben.

Relationsgraphen haben folgende Zwecke:

Relationsgraphen basieren auf der Bibliothek Network von vis.js, siehe https://visjs.github.io/vis-network/docs/network/.

Die folgenden Abbildungen zeigen den Abschnitt Verknüpfte Vorgänge eines Vorgangs im Listen- und Graphenmodus. Im Graphenmodus wird auch ein Vorgang angezeigt, der nicht mit dem aktuellen Vorgang verknüpft ist, sondern mit einem verknüpften Vorgang.

Abbildung 48: ConSol CM Web Client - Normale Anzeige des Abschnitts mit den verknüpften Vorgängen

Abbildung 49: ConSol CM Web Client - Graph im Abschnitt mit den verknüpften Vorgängen

Verfügbare Einstellungen

Abschnitte zur Anzeige von Relationsgraphen

Relationsgraphen sind für alle Abschnitte, die Relationen enthalten, verfügbar.

Die Graphenansicht kann in der Seitenanpassung aktiviert werden, siehe Aktivieren von Relationsgraphen. Standardmäßig zeigt sie die direkten Relationen zwischen dem aktuellen Objekt und den anderen Objekten und einige Relationen auf der zweiten Ebene. Sie können die Anzeige erweitern und ändern, siehe Ändern von Relationsgraphen.

Sie können einen benutzerdefinierten Abschnitt mit einem Relationsgraphen zu Vorgangs-, Kontakt- und Ressourcenseiten hinzufügen. Der Inhalt dieses Graphen ist nicht vordefiniert, Sie müssen ihn in einem Skript vorgeben, siehe Hinzufügen eines eigenen Abschnitts mit einem Relationsgraphen.

Verfügbare Konfigurationsparameter

Die folgenden Attribute sind für die meisten Arten von Relationen verfügbar:

Relationen auf Vorgangsseiten

Relationen auf Kontaktseiten

Relationen auf Ressourcenseiten

Grundlegende Aufgaben

Aktivieren von Relationsgraphen

Standardmäßig sind die Relationsgraphen deaktiviert, d. h. der Link Graph wird nicht angezeigt. Gehen Sie folgendermaßen vor, um Relationsgraphen zu aktivieren:

  1. Melden Sie sich als Administrator an.
  2. Öffnen Sie die Seite, auf der Sie einen Relationsgraphen anzeigen möchten.
  3. Klicken Sie im Hauptmenü auf Seitenanpassung aktivieren.
  4. Gehen Sie im Abschnitt der Seitenanpassung zum Typ relationGraph und öffnen Sie den Unterbereich des Abschnitts, in dem der Graph angezeigt werden soll.
  5. Setzen Sie das Attribut graph auf On (standardmäßig wird der Abschnitt als Liste angezeigt) oder Default (standardmäßig wird der Abschnitt als Graph angezeigt). In beiden Fällen kann der Benutzer die Ansicht wechseln.

Erweiterte Aufgaben

Ändern von Relationsgraphen

Es gibt zwei Möglichkeiten zum Ändern eines Relationsgraphen:

Skript-Codierung

Das Skript, mit dem ein Relationsgraph definiert wird, muss ein Objekt der Klasse RelationGraph zurückgeben. Mit Methoden der Klasse RelationCriteria definieren Sie den Umfang des Graphen, d. h. die Arten von Relationen und die Tiefe (wie viele Ebenen von Relationen der verknüpften Objekte). Optional können Sie das Layout des Graphen mit den Klassen RelationNode und RelationEdge definieren. Die Methode load() der Klasse RelationService wird benötigt, um den Graphen zu laden. Weitere Details finden Sie in der ConSol CM-API-Dokumentation.

Abhängig von der Seite, auf der der Graph angezeigt wird, sind folgende Objekte implizit im Skript verfügbar:

Hinzufügen eines eigenen Abschnitts mit einem Relationsgraphen

Sie können einen eigenen Abschnitt mit einem Relationsgraphen zu Vorgangs-, Kontakt- und Ressourcenseiten hinzufügen. Gehen Sie folgendermaßen vor, um so einen benutzerdefinierten Abschnitt zu erstellen:

  1. Melden Sie sich als Administrator an.
  2. Öffnen Sie die Seite, auf der Sie den neuen Abschnitt hinzufügen möchten.
  3. Klicken Sie im Hauptmenü auf Seitenanpassung aktivieren.
  4. Gehen Sie im Abschnitt der Seitenanpassung zum Typ section und öffnen Sie den Unterbereich customRelationGraphSection.
  5. Setzen Sie das Attribut state auf collapsed oder expanded.
  6. Gehen Sie zum neu erstellten Typ customRelationGraph und nehmen Sie folgende Einstellungen vor:
    • Geben Sie den Namen des Skripts des Typs Relationsgraph, das die Graphenkonfiguration zurückgibt, im Attribut graphScriptName ein.
    • Geben Sie den Text, der in der Kopfzeile des Abschnitts angezeigt werden soll, im Attribut sectionHeader ein.
    • Falls nötig, ändern Sie die Höhe des Abschnitts im Attribut sectionHeight, damit der Graph in den Abschnitt passt. Der Standardwert 0 bedeutet, dass die Standardhöhe verwendet wird.

Der angezeigte Graph hängt komplett vom angegebenen Skript ab, das Zugriff auf die gesamte ConSol CM-API hat.

Beispielskript, das die Relationen der aktuellen Ressource und die Relationen der verknüpften Ressourcen anzeigt:

import com.consol.cmas.common.model.relation.*

 

//create criteria using java api

def relationCriteria = new RelationCriteria()

.withResourceTickets(new RelationCriteria.ResourceTickets()

.withMaximumStepsFromRoot(2))

.withTicketResources(new RelationCriteria.TicketResources()

.withMaximumStepsFromRoot(2))

.withResourceUnits(new RelationCriteria.ResourceUnits()

.withMaximumStepsFromRoot(2))

.withResourceResources(new RelationCriteria.ResourceResources()

.withMaximumStepsFromRoot(2));

 

//variables available in script: ticketId, unitId, resourceId (depending on page)

def resource = resourceService.getById(resourceId)

def relationGraph = relationService.load(resource, relationCriteria);

 

//modify graph nodes, edges and visjs property

for (RelationNode node : relationGraph.getNodes()) {

node.withProperty("font", [size:9,color:"black"]) //change default property

}

for (RelationEdge edge : relationGraph.getEdges()) {

edge.withProperty("font", [size:12, color:"red"]); //change default property

}

relationGraph.withProperty("layout", [improvedLayout:true]) //change default property

 

return relationGraph;