Datensatz-IDs in globalen Funktionen
Hallo liebe Community,
ich versuche gerade die Funktion createTextFile(nid, string, string) in den globalen Funktionen anzuwenden. Das Problem ist, dass die Funktion meckert wenn ich Ihr einen text- oder number-Wert übergebe. Anscheinend kann ich stattdessen einen 'Tabellennamen' dem Funktionsattribut (recordId) geben. Das würde auch klappen aber ich möchte diese Funktion gern in jeder Tabelle anwenden und nicht nur in der 'Tabellennamen'-Tabelle.
Vereinfacht habe ich folgende Funktion der ich gerne meine Datensatzid mitgeben würde ohne auf nur eine Tabelle beschränkt zu sein.
function createMyFile(recordId : 'Tabellennamen') do
createTextFile(recordId, "Inhalt", "Dateiname.txt");
end;
Hoffe ich konnte es verständlich niederschreiben. Ich bin dankbar für jede Antwort und eure Unterstützung!
3 Antworten
-
Die einzige Möglichkeit, die ich bisher kenne um die RecordID/Tabellennamen in Funktionen mit diesem Argument als Variable zu handhaben ist die Funktion eval().
Bsp.:
eval("select '"+TABELLENNAMEVARIABLE+"'",this)Das Problem hierbei, man kann eval() in dieser Form nicht in globalen Funktionen nutzen, da eval() auch als Argument eine sofort überprüfbare, gültige ID voraussetzt.
Somit ist es aus meiner Sicht momentan nicht möglich, deinen Anwendungsfall als globale Funktion darzustellen.Ich weiss nicht, inwieweit man mit Code-Hacks dies vielleicht doch noch umsetzen kann.
-
Noch eine Anmerkung:
Wie sich herausstellt, birgt das Ablegen von Dateien in Ninox auch die Gefahr von erhöhtem Verbrauch von Speicherplatz. Und wenn die erzeugten Dateien (Textdateien, Bilddateien, Druckausgaben) wild in der Datenbank liegen wird es beim späteren Aufräumen in der DB etwas unübersichtlich.
Wäre es nicht einfacher, alle Dateien in einer DateiTabelle abzulegen und über Verknüpfungen den jeweiligen Records zuzuordnen.
Damit kann man die Idee der globalen Funktion verwirklichen, da die Ablagetabelle immer die Gleiche ist. Man muss halt nur die RecordID/Verknüpfung neben den anderen notwendigen Daten mit übergeben und dann das Script walten lassen.
Auch hat man es später leichter, die Dateien später auszulagern und nur noch mit ShareLinks auf die Dateien zu arbeiten sofern ShareLinks möglich sind.
Ich verweise hierzu nochmal auf folgenden ForumBeitrag:https://forum.ninox.de/t/p8hdfhr/was-machen-mit-den-gespeicherten-files-in-der-ninox_db
Content aside
- vor 2 JahrenZuletzt aktiv
- 3Antworten
- 96Ansichten
-
2
Folge bereits