1

file "auf leer setzen"

Hi,

ich möchte im größeren Stil Dateien, die im Bildfeld hinterlegt sind und älter als Tag X sind löschen. Praktisch wäre ja die Massendatenänderungsoption der Tabelle, die auch Manipulation an dem Bildfeld erlaubt.  Allerdings frage ich mich ob das Feld "auf leer setzten" einer Löschung gleichkommt. Soweit ich verstehe wird dadurch nur der Pfad zur Datei aufgehoben. Hat jemand eine Idee wie ich die Löschung dennoch mit möglichst wenig Aufwand hinbekomme? Alternativ kann ich natürlich die Löschung manuell über das Formular  über "Datei löschen" realisieren. Der Tabelleneintrag soll erhalten bleiben, es geht nur um die Löschung der Dateien aus dem Bildfeld.

Vielen Dank und Grüße

3 Antworten

null
    • ⭐ Ninox Partnerin - Kennes Digital
    • Stefanie_K
    • vor 10 Monaten
    • Gemeldet - anzeigen

    Hallo,

    endgültiges löschen klappt über die API. Wenn du nur Bildfeld := null setzt, wird die Datei lediglich in den Anhang des Datensatzes verschoben.

    Siehe https://docs.ninox.com/en/api/public-cloud-apis#delete-a-single-file

    • Ninox-Professional
    • planoxpro
    • vor 10 Monaten
    • Gemeldet - anzeigen

    Hallo Odielia, das Löschen der Dateien per API, wie   vorschlägt, ist sicher die eleganteste Lösung. Ich meine, dazu existieren hier im Forum auch schon verschiedene Threads.

    Es gibt aber auch eine mögliche Alternative ohne API. Wenn es bspw. um eine Art Archivierung geht, bei der die Daten erhalten und nur die Anhänge entfernt werden sollen, dann könnte man die betreffenden Datensätze auch duplizieren und sie dann komplett löschen (inkl. Datei-Anhängen).

    Als einfaches Beispiel für alle Datensätze, deren Datum älter als 10 Jahre ist:

    let myYear := year(today) - 10;
    for i in select TABELLE where year(Datum) < myYear do
       let newRecord := duplicate(i);
       newRecord.(Status := "Archiviert");
       delete i
    end

    Dabei würden alle Daten inkl. Untertabellen und N:1-Verknüpfungen übernommen, aber ohne Datei-Anhänge. Der neue Datensatz wäre also eine exakte Kopie des ursprünglichen und hätte lediglich eine andere interne Datensatznummer (die für den Nutzer aber normalerweise sowieso keine Bedeutung hat). Sortierungen (z. B. nach Datum), Gruppierungen und Filter würden weiterhin genauso funktionieren wie vorher. 

    Ob ein solches Vorgehen sinnvoll ist, hängt natürlich von der Art der Daten (mit Rechnungen bspw. würde ich es nicht unbedingt machen) und deren Komplexität im Hinblick auf mögliche Verknüpfungen ab. Da letztere immer auf der N-Seite gesetzt werden, müsste man vorhandene 1:N-Verknüpfungen ggf. im Script neu setzen. Aber es ist immerhin eine Möglichkeit, Datei-Anhänge bestimmter Datensätze mit einem einfachen Ninox-Script zu entfernen. Ich habe das selbst vor einiger Zeit schon mal bei einer Tabelle mit Angeboten gemacht, um die PDF-Dokumente aus den Bildfeldern zu löschen.

    Vor dem Ausprobieren sollte man aber unbedingt ein Backup der Datenbank erstellen. 😉

    Grundsätzlich kann es natürlich sinnvoll sein, Datei-Anhänge generell in einer externen Tabelle zu speichern und nur zu verknüpfen. Dann stellt sich das Problem erst gar nicht.

      • ⭐ Ninox Partnerin - Kennes Digital
      • Stefanie_K
      • vor 10 Monaten
      • Gemeldet - anzeigen

       du bist ja mal wieder ein Fuchs 😉 Das ist auch ein guter Trick, auf den ich sicherlich zurückgreifen werde!