Hallo zusammen,
folgendes Szenario: ich habe eine Relation mit einem Attribut für Dateien. Eine zweite Relation (innerhalb der selben App) soll eine Art von Verlauf abbilden, in welchem jedoch nur ausgewählte Werte aus der ersten Relation - u. a. auch die genannten Dateien - verlinkt werden.
Ich weiss natürlich, dass R3 eine integrierte Funktion für die Änderungshistorie von Datensätzen bietet. In meinem Fall ist diese aber nicht zielführend.
Mit einem AFTER INSERT Trigger auf der ersten Relation erzeuge ich also einen Datensatz in der zweiten Relation, und übertrage die Werte aus den gewünschten Feldern. Das funktioniert soweit problemlos.
In dem Moment, in welchem der Trigger ausgelöst wird, scheinen die Dateien in der ersten Relation vom Frontend jedoch noch nicht mit dem Datensatz abgespeichert/verlinkt worden zu sein.
Zur Erklärung: mit Hilfe von instance.files_get und instance.files_link habe ich mir eine Backend-Funktion gebastelt, welche Dateien zu einem Datensatz aus der ersten Relation ermittelt, und diese in dem neu erzeugten Datensatz der zweiten Relation verlinkt.
Rufe ich diese Funktion aus dem oben genannten Trigger oder mit Hilfe einer Frontend Funktion beim Ereignis "nachdem Datensatz gespeichert" in einem Formular auf, dann findet instance.files_get dort keine Dateien.
Starte ich die Backend-Funktion im Builder manuell - nachdem ich die Datensätze in den Relationen zuvor über die Formulare und den Trigger angelegt habe - dann werden die Dateien von instance.files_get erfolgreich ermittelt, und von instance.files_link in der zweiten Relation verlinkt.
Habe ich eine andere Chance diesen Prozess zu einem Zeitpunkt auszulösen, unmittelbar nachdem die Dateien mit dem Datensatz der ersten Relation verknüpft sind, ausser über eine Art von Hilfstabelle und einen Scheduler, welcher dann "Jobs" für die Verlinkung im Hintergrund abarbeitet?