0

REST-API

Wie komme ich bei Abfrage von Werten einer Ninox-Tabelle an den zum Abfragezeitpunkt berechneten Wert eines Berechnungsfeldes.

Über Postmen werden Funktionsfelder nicht angezeigt.

Auch über den REST-API Befehl bekomme ich keine Rückgabe.

Berechnungsfelder in einem Datensatz werden ignoriert.

Ich möchte nur über die REST-API das Ergebnis des Berechnungsfeldes auslesen.

Jemand eine Idee.

Gruss

UweG

14 Antworten

null
    • Leonid_Semik
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo Uwe,

    Berechnungsfelder werden nicht mit REST-Protokoll übertragen. Einzige Idee - die Berechnung nach der Synchronisierung nachzubauen. 

    Leo

    • BugTrapper
    • vor 5 Jahren
    • Gemeldet - anzeigen

    oder zusätzliche Text-/Zahlenfelder als Ergebnisfelder einzubauen, in die die im Funktionsfeld berechneten Werte übertragen werden, und diese dann nach der Berechnung auszulesen, evtl. lassen sich diese zusätzlichen Felder auch verstecken.

    • Leonid_Semik
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Stimmt, ist viel besser. Da muss man nach der Datenübergabe nichts mehr machen

    • Torsten_Stang.1
    • vor 5 Jahren
    • Gemeldet - anzeigen

    ... den Werteübertrag muss man dann aber auch Ninoxseitig irgendwo triggern - aus dem Funktionsfeld funktioniert das ja nicht.

     

    Im Änderungstrigger der Tabelle wäre das machbar, dann könnte ich mir aber auch die Funktionsfelder an sich sparen.

    • UweG
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Danke für die Vorschläge.

    Aber wie bereits beschrieben nützt mir das Hiflsfeld nichts, wenn ich es aus dem Funktionsfeld nicht beschreiben kann.

    Und der Änderungstrigger der Tabelle funktioniert auch nicht mit dem Funktionsfeld.

    Bsp. Hilfsfeld := Funktionsfeld (Fehlermeldung: Circular Reference)

    Scheinbar wird hierbei nicht der Wert erfragt sondern die Formel.

    • BugTrapper
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Doch das geht, Beispiel-Datenbank folgt in Kürze.

    • BugTrapper
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Beispiel-Datenbank:

    https://www.dropbox.com/s/fucm06d1vqv4bu7/Funktions%C3%9CbergabeAnFelder.ninox?dl=0

    Ok, direkt vom Funktionsfeld aus kann man das versteckte Feld nicht befüllen, aber mit einem Trigger, wenn ein Datensatz geändert wird.

    • UweG
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Danke Bug Trapper für deine Antwort.

    Aber sie hilft hier nicht.

    Ich füge per REST-API Dateianhänge dem Datensatz an.

    Ein Funktionsfeld zeigt mitr mit cnt(files(this)) die Anzahl der Anhänge an.

    Über die Rest-API kann ich den Wert des  Funktionsfeldes nicht abfragen.

    Die Idee ist ein Hilfsfeld zu bauen, das den Wert des Funktionsfeldes automatisch übernimmt.

    Aber wo und wie  setze ich den Trigger damit das Hilfsfeld befüllt wird ohne den Datensatz aufzurufen? 

    In der Tabelle bei Änderung geht nicht: siehe obige Fehlermeldung.

    Gruss

    UweG

    Wo 

    • Leonid_Semik
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo Uwe,

    da Ninox per POST keine Dateianhänge speichern kann gehe ich davon aus, dass du eine GET Abfrage hast und in json dann ein Array mit URLs zum downloaden. Diese URLs fragst dann in der Schleife mit importFile(this, URL). Stimmt?

    Wenn es so ist, dann würde ich den Zähler hier einbauen: 

    ---

    importFile(this, URL);

    Zahler:=cnt(files(this))

    ----

    Oder liege ich komplett daneben?

    • UweG
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo Leonid.

    Ich speicher die Anlage nicht aus Ninox heraus, sondern extern per REST-API.

    Und das passiert per POST.

    Ich habe die Datenbank in der Tabellenansicht und sehe dann, wenn ich den Aktualisierungsknopf in der Tabellenansicht betätigt habe, die Änderungen. Wäre schön wenn das Aktualisierungsfeld (Kringel links oben) als Sctiptbefehl existieren würde. Dann könnte man über die neue Query-Funktion der API, dies ausführen lassen.

    Ich benötige das Hilfsfeld um von extern per GET-Abfrage einen Wert zu erhalten und diesen weiter zu verarbeiten.

    Und das Hilfsfeld soll automatisch nach dem POST aus dem Funktionsfeld den Wert erhalten.

    Gruss

    UweG

    • UweG
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo Leonid.

    Ich speicher die Anlage nicht aus Ninox heraus, sondern extern per REST-API.

    Und das passiert per POST.

    Ich habe die Datenbank in der Tabellenansicht und sehe dann, wenn ich den Aktualisierungsknopf in der Tabellenansicht betätigt habe, die Änderungen. Wäre schön wenn das Aktualisierungsfeld (Kringel links oben) als Sctiptbefehl existieren würde. Dann könnte man über die neue Query-Funktion der API, dies ausführen lassen.

    Ich benötige das Hilfsfeld um von extern per GET-Abfrage einen Wert zu erhalten und diesen weiter zu verarbeiten.

    Und das Hilfsfeld soll automatisch nach dem POST aus dem Funktionsfeld den Wert erhalten.

    Gruss

    UweG

    • Leonid_Semik
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Ok, mit dem POST war ich nicht auf dem neuesten Stand - ist tätsächlich möglich. Und was spricht dagegen, wenn du den  Zahlenfeld vor POST mit GET abfragst, dann das Ergebniss in deiner Anwendung mit Anzahl der Dateien addierst und dann diese Zahl per POST wieder an Ninox zurück gibst?

    Leo

    • BugTrapper
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Wie gut, dass die tatsächlichen Anforderungen dann doch immer viel komplizierter sind als die Ursprungsfrage :o)

     

    Es sei denn, er möchte überprüfen, ob die Daten auch sicher in Ninox angekommen sind,

    also, dass der REST-API-Aufruf auch wirklich geklappt hat, dann müsste er schon einmal in der Ninox-Datenbank nachschauen.

    • UweG
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Ich schau nach der Übertragung schon per GET-Befehl nach.

    Dabei wird aber nichts im Datensatz geändert.

    wue gesagt: Nur gucken, nicht anfassen;-)

    Geuss

    UweG