Home Forum Nuclos Konfiguration Sonstiges Referenzfelder im REST Service

Ansicht von 8 Beiträgen - 1 bis 8 (von insgesamt 8)
  • Autor
    Beiträge
  • #7427
    Papa Schlumpf
    Teilnehmer

    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.

    #7429
    Papa Schlumpf
    Teilnehmer

    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.

    #7453
    Oliver 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.

    #7454
    Oliver 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.

    #7456
    Papa Schlumpf
    Teilnehmer

    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.

    #7462
    Oliver 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.“

    http://wiki.nuclos.de/display/Konfiguration/RESTful+Service

    #7464
    Papa Schlumpf
    Teilnehmer

    Das wäre eine super Lösung. Oder dass die UID von Referenzfeldern in den Metadaten angegeben wird.

    #7621
    Papa Schlumpf
    Teilnehmer

    Ich 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.

Ansicht von 8 Beiträgen - 1 bis 8 (von insgesamt 8)