Mit der Graph-API kann in unterschiedlichen Kontexten auf einen Graphen zugegriffen werden: sowohl in Daten- und Aktionfunktionen innerhalb des Graphen selbst als auch in externen Scripten und GUI-Apps.
Um sicherzustellen, dass Datenfunktionen keine Seiteneffekte haben, sind die in Datenfunktionen verwendbaren API-Funktionen sehr weitgehend eingeschränkt.
erzeuge(string $knoten_typ): ?string
Erzeugt eine neue Instanz vom Knoten-Typ $knoten_typ
.
Ist der Knoten-Typ unbekannt so wird null
zurückgegeben.
Darf nicht in Datenfunktionen verwendet werden.
vernichte(string $node_guid): ?boolean
Vernichtet die Instanz $node_guid
.
Gibt true
zurück, wenn die Instanz tatsächlich vernichtet wurde.
Darf nur in Aktionfunktionen *_loeschen
verwendet werden.
knotentyp(string $node_guid): ?string
Gibt den Knoten-Typ zu der gegebenen Instanz $node_guid
zurück.
Darf nicht in Datenfunktionen verwendet werden.
setze(string $node_guid, string $attributknoten_typ, string $wert): ?boolean
Setzt den Wert des Attributknoten $attributknoten_typ
an der Instanz
$node_guid
auf $wert
.
Gibt true
zurück, wenn der gespeicherte Wert sich geändert hat.
Darf nicht in Datenfunktionen verwendet werden.
attribut(string $node_guid, string $attributknoten_typ): ?string
Gibt den Wert zurück, den der Attributknoten $attributknoten_typ
an der
Instanz $node_guid
hat.
attribute(string $node_guid, string $knoten_typ, string $attribute): ?array<string, ?string>
Gibt ein assoziatives Array mit den Werten zurück, die die Atttribute in
$attribute
an der Instanz $node_guid
vom Knoten-Typ $knoten_typ
haben.
attributsknoten(string $attributknoten_typ, string $wert): ?string
Gibt die eindeutige Instanz zurück, an der der Attributknoten
$attributknoten_typ
den Wert $wert
hat.
Darf nicht in Datenfunktionen verwendet werden.
berechne(string $node_guid, string $datenfunktion_name): ?mixed
Berechnet den Wert der Datenfunktion $datenfunktion_name
an der Instanz
$node_guid
und gibt ihn zurück.
verknuepfe(string $node_guid1, string $node_guid2): ?boolean
Verknüpft die beiden Instanzen $node_guid1
und $node_guid2
.
Gibt true
zurück, wenn die Instanzen neu verknüpft wurden.
Darf nicht in Datenfunktionen verwendet werden.
entknuepfe(string $node_guid1, string $node_guid2): ?boolean
Entknüpft die beiden Instanzen $node_guid1
und $node_guid2
.
Gibt true
zurück, wenn zuvor verknüpfte Instanzen entknüpft wurden.
Darf nicht in Datenfunktionen verwendet werden.
knoten(string $node_guid, string $knoten_typ): ?string
Gibt die eindeutige Instanz vom Knoten-Typ $knoten_typ
zurück, welche mit
der Instanz $node_guid
verknüpft ist.
Kann keine solche Instanz gefunden werden, so wird null
zurück gegeben.
Darf in Datenfunktionen nur auf der fest gesetzten Variable $node_guid
aufgerufen werden.
Reihenfolgen werden in allen der folgenden API-Funktionen verwendet, die mehrere Instanzen zurückgeben. Eingrenzungen auf Instanzen, die bestimmte Bedingungen erfüllen, werden zusätzlich auch in den API-Funktionen verwendet, die eine Anzahl von Instanzen ermitteln.
Reihenfolgen sind kommaseparierte Listen von Attributen des entsprechenden
Knoten-Typs, wobei optional eine Richtung (asc
oder desc
) angegeben
werden kann.
Vorgabe ist eine aufsteigende Reihenfolge (asc
).
Die Ergebnisse werden dann nacheinander nach den Werten dieser Attribute
sortiert.
Für einen Knoten mit den Attributen datum
und nummer
könnte eine
Reihenfolge beispielsweise "datum desc, nummer asc
" lauten, um die
neuesten Daten am Anfang des Ergebnisses zu haben, aber innerhalb eines
Datums dann nach aufsteigenden Nummern zu sortieren.
Eingrenzungen können aus einer Bedingung und einer Limitierung bestehen, wobei eines von beiden vorhanden sein muss.
Eine Bedingung kann mit den logischen Operatoren and
, or
, not
und
xor
und Klammern aus atomaren Bedingungen !attribut
, attribut
und
Vergleichen von Attributen mit den Operatoren =
, !=
, >=
, <=
, >
,
<
, like
, not like
, regexp
und not regexp
zusammengesetzt werden.
Die rechte Seite eines Vergleichs kann dabei eine literale Konstante, ein
anderes Attribut oder ein mit :
beginnender Parameter sein.
Beispiele für solche zusammengesetzten Bedingungen sind:
offen and !storniert
: An den Instanzen des abgefragten Knoten sind im
Ergebnis das Attribut offen
gesetzt und das Attribut storniert
nicht
gesetzt.datum >= "2020-01-01" and kunde like :k
: Das Attribut datum
ist
auf einen Wert größer als 1. Januar 2020 gesetzt und das Attribut kunde
erfüllt das im Parameter :k
gegebene like
-Muster.Parameter müssen in einem assoziativen Array als letztem Argument des jeweiligen API-Aufrufs gesetzt werden.
Eine Limitierung besteht aus dem Schlüsselwort limit
und entweder nur der
Anzahl der Ergebnisse, die maximal zurückgegeben werden sollen, oder einem
Offset, bei welchem Ergebnis begonnen werden soll, und einer solchen Anzahl
durch Komma getrennt.
Beispiele für solche Limitierungen sind:
limit 1
: Gebe nur das erste Ergebnis zurück.limit 1, 1
: Gebe nur das zweite Ergebnis zurück.limit 10
: Gebe die ersten zehn Ergebnisse zurück.limit 20, 10
: Gebe die Ergebnisse 21 bis 30 zurück.liste(string $node_guid, string $knoten_typ, string|false $reihenfolge = false, string|false $eingrenzung = false, array<string, mixed> $parameter = array()): ?list<string>
Gibt eine Liste der GUIDs der mit der Instanz $node_guid
verknüpften
Instanzen vom Knoten-Typ $knoten_typ
zurück.
Für die Parameter $reihenfolge
, $eingrenzung
und $parameter
, siehe
vorheriger Abschnitt.
Darf in Datenfunktionen nur auf der fest gesetzten Variable $node_guid
aufgerufen werden.
listeattribute(string $node_guid, string $knoten_typ, string $attribute, string|false $reihenfolge = false, string|false $eingrenzung = false, array<string, mixed> $parameter = array()): ?array<string, array<string, ?string>>
Gibt ein GUID-indiziertes Array von Attribut-indizierten Arrays für alle
mit der Instanz $node_guid
verknüpften Instanzen vom Knoten-Typ
$knoten_typ
mit den Werten der Attribute in $attribute
zurück.
Für die Parameter $reihenfolge
, $eingrenzung
und $parameter
, siehe
vorheriger Abschnitt.
Darf in Datenfunktionen nur auf der fest gesetzten Variable $node_guid
aufgerufen werden.
listezahl(string $node_guid, string $knoten_typ, string|false $eingrenzung = false, array<string, mixed> $parameter = array()): ?integer
Gibt die Anzahl der Instanzen zurück, welche durch einen Aufruf von
liste()
mit gleichen Parametern zurückgegeben würden.
Für die Parameter $eingrenzung
und $parameter
, siehe vorheriger
Abschnitt.
Darf in Datenfunktionen nur auf der fest gesetzten Variable $node_guid
aufgerufen werden.
moegliche(string $node_guid, string $knoten_typ, string|false $reihenfolge = false, string|false $eingrenzung = false, array<string, mixed> $parameter = array()): ?list<string>
Gibt eine Liste der GUIDs aller Instanzen vom Knoten-Typ $knoten_typ
zurück, die noch mit der Instanz $node_guid
verknüpft werden können, also
noch nicht mit ihr verknüpft sind und bei einer zu-1-Verknüpfung oder
Gruppe auch noch nicht mit einer anderen Instanz verknüpft sind.
Für die Parameter $reihenfolge
, $eingrenzung
und $parameter
, siehe
entsprechender Abschnitt.
Darf nicht in Datenfunktionen verwendet werden.
moeglicheattribute(string $node_guid, string $knoten_typ, string $attribute, string|false $reihenfolge = false, string|false $eingrenzung = false, array<string, mixed> $parameter = array()): ?array<string, array<string, ?string>>
Gibt ein GUID-indiziertes Array von Attribut-indizierten Arrays aller
Instanzen vom Knoten-Typ $knoten_typ
zurück, die noch mit der Instanz
$node_guid
verknüpft werden können, mit den Werten der Attribute in
$attribute
.
Für die Parameter $reihenfolge
, $eingrenzung
und $parameter
, siehe
entsprechender Abschnitt.
Darf nicht in Datenfunktionen verwendet werden.
moeglichezahl(string $node_guid, string $knoten_typ, string|false $eingrenzung = false, array<string, mixed> $parameter = array()): ?integer
Gibt die Anzahl der Instanzen zurück, welche durch einen Aufruf von
moegliche()
mit gleichen Parametern zurückgegeben würden.
Für die Parameter $eingrenzung
und $parameter
, siehe entsprechender
Abschnitt.
Darf nicht in Datenfunktionen verwendet werden.
alle(string $knoten_typ, string|false $reihenfolge = false, string|false $eingrenzung = false, array<string, mixed> $parameter = array()): ?list<string>
Gibt eine Liste der GUIDs aller Instanzen vom Knoten-Typ $knoten_typ
zurück.
Für die Parameter $reihenfolge
, $eingrenzung
und $parameter
, siehe
entsprechender Abschnitt.
Darf nicht in Datenfunktionen verwendet werden.
alleattribute(string $knoten_typ, string $attribute, string|false $reihenfolge = false, string|false $eingrenzung = false, array<string, mixed> $parameter = array()): ?array<string, array<string, ?string>>
Gibt ein GUID-indiziertes Array von Attribut-indizierten Arrays aller
Instanzen vom Knoten-Typ $knoten_typ
mit den Werten der Attribute in
$attribute
zurück.
Für die Parameter $reihenfolge
, $eingrenzung
und $parameter
, siehe
entsprechender Abschnitt.
Darf nicht in Datenfunktionen verwendet werden.
allezahl(string $knoten_typ, string|false $eingrenzung = false, array<string, mixed> $parameter = array()): ?integer
Gibt die Anzahl der Instanzen zurück, welche durch einen Aufruf von
alle()
mit gleichen Parametern zurückgegeben würden.
Für die Parameter $eingrenzung
und $parameter
, siehe entsprechender
Abschnitt.
Darf nicht in Datenfunktionen verwendet werden.
aktion(string $node_guid, string $aktionfunktion_name): ?boolean
Führt die Aktionfunktion $aktionfunktion_name
für die Instanz
$node_guid
aus.
Darf nicht in Datenfunktionen verwendet werden.
sessionsetze(string $schluessel, mixed $wert): ?boolean
Setzt den Wert $value
einer Session-Variable $schluessel
für diese
GraphConnection.
Gibt true
zurück, wenn sich der Wert geändert hat, false
, wenn er sich
nicht geändert hat, und null
, wenn die Variable nicht existiert.
sessionattribut(string $schluessel, ?mixed $default = null): ?mixed
Ruft den Wert einer Session-Variable $schluessel
an dieser
GraphConnection ab.
Kann kein Wert gefunden werden, so wird $default
zurückgegeben.
service(string $graphmodulservice_name, mixed ...$parameter): mixed
Ruft den Service $graphmodulservice_name
mit den Parametern
...$parameter
auf.