Tabelleneinstellung "Nach Änderungen folgendes Skript ausführen" bei Dateianhängen
Hallo
In der Tabelleneinstellung gibt es den Punkt "Nach Änderungen folgendes Skript ausführen", welcher sich auf den einzelnen Datensatz der Tabelle bezieht.
Das klappt auch ganz gut, wenn man im Datensatz etwas ändert und per Skript daraus eine weitere Aktion auslösen möchte.
Ich habe festgestellt, das diese Funktion sich jedoch nicht auf die zum Datensatz zugehörigen Dateianhänge bezieht.
Wenn dort Veränderungen (Neu oder Löschen) passieren, wird die Skriptabhängigkeit ignoroert.
Bsp; Farbfeld im Datensatz, welches per Skript eine Farbe setzt wenn mindest. ein Attachment abgespeichert ist,
if number(cnt(files(this))) >0 then
Farbfeld := color(0, 255, 0)
else
Farbfeld := color(255, 255, 255)
end
Wenn per REST-API ein Attachment hochgeladen wird funktioniert es nicht.
Wenn per REST-API im Datensatz etwas geändert wird, funktioniert es.
Man könnte sich behelfen mit einem Zusatzfeld, welches nach Upload des Attachment mit einem Wert geändert wird.
Das ist aber nicht Ninox-Like für mich.
Sollte das als ChangeRequest agestossen werden oder habe ich hier eine falsche Denke im Ansatz?
Gruss
UweG
9 Antworten
-
Das wäre ein Change Request, ja. Der Workaround gefällt mir aber auch :-)
Birger
-
Würde ein (verstecktes) Funktionsfeld
cnt(files(this))
sich nicht ändern, wenn ein Attachement hochgeladen wird?lg, Torsten
-
Änderungen in einem Funktionsfeld lösen den Trigger nicht aus.
Birger
-
OK, schade ;-)
lg, Torsten
-
Also, ich habe eine Anwendung, wo jeder Datensatz ein Bildfeld-"Produktbild" hat und die Anwender noch dazu die Anhänge machen dürfen. Ich habe ein Funktionsfeld mit der Formel:
---
let my := files(this);
let myF := Produktbild;
let myCNT := cnt(my) - if myF then 1 else 0 end;
if myCNT = 1 then myCNT + " Anhang: " else myCNT + " Anhänge: " end + concat(for i in my do
if i != myF then
let myT := text(i);
myT := substr(myT, index(myT, "/") + 1);
myT
end
end)
---
und die Sichtbarkeit des Funktionsfeldes:
---
let my := files(this);
let myF := Produktbild;
let myCNT := cnt(my) - if myF then 1 else 0 end;
myCNT > (> 0)
---
Und das ganze sieht dann so aus:
Grün habe ich jetzt in den Feldeigenschaften ausgewählt. Fielleicht hilft's hier weiter.
Leo
-
Hallo Alle.
Danke für die Antworten.
Zu Torsten: Das hatte ich auch zum Anfang probiert. Aber wie Birger sagte, bringt ein Funktionsfeld nichts.
Zu Birger: Kannst du die Anforderung im ChangeRequest bitte Anstossen?
Zu Leo: Deeinen Ansatz werde ich mal ausprobieren.
Wie gesagt ich ändere die Dateianhänge per Node-Red nur über die REST-API und fasse den Datensatz aus Ninox heraus nicht an.
Gruss
UweG
-
Hallo Uwe,
warum das Farbfeld nicht direkt als Funktionsfeld?
if cnt(files(this)) >0 then
styled("",color(0,255,0))
else
styled("",color(255,255,255))
end
lg, Torsten
-
Hallo Torsten
Deine Idee das Funktionsfeld zu nutzen für die Farbdarstellung funktioniert für Übertragungen über die Rest-API.
Das klappt jetzt mit meinem Node-Red Flow ganz gut.
Einzig muss ich dann bei der Tabellenansicht den Aktualisierungsknopf betätigen, damit die Änderungen in der Tabelle auch sichtbar werden. Weisst du ob da einen Script-Befehl existiert, der die Aktualisierung ausführt.
Gruss
UweG
-
Hallo Uwe,
das geht meines Wissens nach leider (noch) nicht... :-/
lg, Torsten
Content aside
- vor 5 JahrenZuletzt aktiv
- 9Antworten
- 1951Ansichten