Home › Forum › Nuclos Konfiguration › Sonstiges › Referenzfelder im REST Service
- Dieses Thema hat 7 Antworten und 2 Teilnehmer, und wurde zuletzt aktualisiert vor 9 Jahren, 7 Monaten von
Papa Schlumpf.
-
AutorBeiträge
-
21 Januar 2014 um 15:34 Uhr #7427
Papa Schlumpf
TeilnehmerHallo,
wenn ich einen Datensatz per REST lade (mit /data/get) dann kann ich herauasfinden, ob ein Feld ein Referenzfeld ist und auch den Schlüssel des referenzierten Datensatzes erhalten (aus dem Feld „pk:
„). Ich habe aber keine Möglichkeit gefunden, die UID der referenzierten Entität herauszufinden. Die brauche ich aber, um alle Informationen über den Datensatz zu bekommen. Habe ich da etwas übersehen, oder geht das tatsächlicht noch nicht? Vielen Dank.
21 Januar 2014 um 17:12 Uhr #7429Papa Schlumpf
TeilnehmerUnd wenn ich gerade schon dabei bin zu Fragen: /meta/entity enthält bei mir (Nuclos 4.0.3) keine Informationen zu den Feldern. Es kommt eine leere Liste zurück. Ich meine allerdings, dass das schon mal funktioniert hat.
4 Februar 2014 um 16:24 Uhr #7453Oliver Brausch
Teilnehmer[quote=“schlumpf123″ post=6451]Hallo,
wenn ich einen Datensatz per REST lade (mit /data/get) dann kann ich herauasfinden, ob ein Feld ein Referenzfeld ist und auch den Schlüssel des referenzierten Datensatzes erhalten (aus dem Feld „pk:“). Ich habe aber keine Möglichkeit gefunden, die UID der referenzierten Entität herauszufinden. Die brauche ich aber, um alle Informationen über den Datensatz zu bekommen.
Habe ich da etwas übersehen, oder geht das tatsächlicht noch nicht? Vielen Dank.[/quote]
Ab Nuclos 4.0 ist die referenzierte Entität implizit in der Feld UID enthalten, d.h. nicht mehr explizit nötig. Der Service zum Befüllen der Refererenzliste „ReferenceList (Path: /data/referencelist/{uid}/{field}, Method: GET, Return: JSON-Array „ReferenceValue“)“ braucht also diese „uid“ nicht mehr, ab 4.0 kann dort auch ein beliebiger String mitgebenen werden. Es wird wohl auch bald die Syntax dieses Services verändert und dort die „uid“ wegfallen.
4 Februar 2014 um 16:27 Uhr #7454Oliver Brausch
Teilnehmer[quote=“schlumpf123″ post=6453]Und wenn ich gerade schon dabei bin zu Fragen: /meta/entity enthält bei mir (Nuclos 4.0.3) keine Informationen zu den Feldern. Es kommt eine leere Liste zurück. Ich meine allerdings, dass das schon mal funktioniert hat.[/quote]
Das kommt auf die Entität an. Bei Entitäten mit Statusmodell dürfen keine Feldinformationen vorab mitgeliefert werden, da die Feldberichtigungen vom Status abhängen. Bitte mal das Verhalten dieses Services in diesem Zusammenhang überprüfen.
4 Februar 2014 um 19:16 Uhr #7456Papa Schlumpf
TeilnehmerVielen Dank für Ihre Antwort. So richtig hilft mir das aber nicht ;).
Nehmen wir an, es gibt eine Entität Auftrag mit einer Referenz auf einen Kunden. Wenn ich nun einen Auftrag lade, dann enthält dieser folgende Informationen:
- Das Feld „Kunde“ ist ein Referenzfeld
- Die UID des Kunden-Feldes
- Den Schlüssel des referenzierten Kunden
Ich weiß also, welcher Kunde referenziert wird, aber ich weiß nicht, dass das ein Kunde ist. Wenn ich nun ReferenceList mit der UID des Kunden-Feldes aufrufe, erhalte ich eine Liste aller Kunden, die referenziert werden könnten. Daraus kann ich natürlich den mit dem richtigen Schlüssel heraussuchen. In dem dazu passenden „name“ Feld steht auch, wie der Kunde heißt, aber das bringt mir nichts. Ich möchte ja den kompletten Datensatz zum Kunden laden, um mir weitere Informationen darüber zu besorgen. Das geht aber nur mit der UID der Entität Kunde, die auch die ReferenceList nicht zurückgibt.
7 Februar 2014 um 15:34 Uhr #7462Oliver Brausch
Teilnehmer[quote=“schlumpf123″ post=6480]Vielen Dank für Ihre Antwort. So richtig hilft mir das aber nicht ;).
Nehmen wir an, es gibt eine Entität Auftrag mit einer Referenz auf einen Kunden. Wenn ich nun einen Auftrag lade, dann enthält dieser folgende Informationen:
- Das Feld „Kunde“ ist ein Referenzfeld
- Die UID des Kunden-Feldes
- Den Schlüssel des referenzierten Kunden
Ich weiß also, welcher Kunde referenziert wird, aber ich weiß nicht, dass das ein Kunde ist. Wenn ich nun ReferenceList mit der UID des Kunden-Feldes aufrufe, erhalte ich eine Liste aller Kunden, die referenziert werden könnten. Daraus kann ich natürlich den mit dem richtigen Schlüssel heraussuchen. In dem dazu passenden „name“ Feld steht auch, wie der Kunde heißt, aber das bringt mir nichts. Ich möchte ja den kompletten Datensatz zum Kunden laden, um mir weitere Informationen darüber zu besorgen. Das geht aber nur mit der UID der Entität Kunde, die auch die ReferenceList nicht zurückgibt.[/quote]
Ich verstehe das Problem. Der Restservice ist momentan um den WebClient aufgebaut.
Ich denke, hier würde auf jeden Fall helfen, wenn die Methode GetData, welche den kompletten Datensatz liefert, anstatt der UID der Entität auch die UID eines beliebigen Feldes der Entität akzeptieren würde.Nachtrag: Wir haben nun einige Methoden erweitert, so dass auch ein Feld reicht, um die Entität/Businessobjekt anzugeben. Sie auch:
„Die {uid} des Businessobjektes kann bei einigen Methoden alternativ auch die {uid} eines Feldes des Businessobjektes sein, da durch das Feld das Businessobjekt eindeutig identifiziert ist. Dies gilt für GetData, PreviewData, GetInfo, Delete, SubGetData und SubOpen.“
7 Februar 2014 um 15:50 Uhr #7464Papa Schlumpf
TeilnehmerDas wäre eine super Lösung. Oder dass die UID von Referenzfeldern in den Metadaten angegeben wird.
3 Mai 2014 um 21:57 Uhr #7621Papa Schlumpf
TeilnehmerIch hatte bisher nicht die Möglichkeit, es zu testen, wollte das nun aber mit der neuen 4.2.2 BETA tun. Ist die neue Funktionalität denn dort eingebaut? Es hat bei mir nämlich nicht funktioniert.
-
AutorBeiträge