Document ID: /fineweb-2-swissfilter-quality_10-filterrobots/filtered/03273.jsonl.gz/2782

Container-Felder sind für eine Ansicht schnell in den temporären Pfad exportiert und automatisch geöffnet. Doch eine geänderte Version wieder in das Container-Feld einzufügen ist meistens umständlich und mühsam.
Das Prinzip / Wie funktioniert das
Was wir dazu benötigen ist ein Script für den Export, eine globale Variable mit Container-Identifikations-Informationen sowie ein Script für den Import.
Die einzelnen Schritte
- Im Script "FileStack__Container_oeffnen__XML" wird der Container in den temporären Ordner exportiert und automatisch geöffnet.
- Direkt nach dem erfolgreichen Container-Export wird die globale Variable $$ReImport.Master aktualisiert. In dieser globalen Variable werden alle datensatzspezifischen bzw. containerspezifischen Informationen in Form von XML-Strings verwaltet. Der einzelne XML-Tag identifiziert den Container, und der XML-Wert wird für das Ein-/Ausblenden des Re-Import-Buttons sowie als zusätzliche Absicherung beim Re-Import verwendet.
- Im Schritt der Aktualisierung prüfen wir, ob in der globalen Variable $$ReImport.Master der für diesen Datensatz bzw. Container entsprechende XML-Tag vorhanden ist.
- Ist der XML-Tag vorhanden, wissen wir, dass wir die Datei aus dem temporären Pfad wieder importieren können (jedenfalls so lange bis FileMaker geschlossen wird).
- Ist der Wert nicht vorhanden, erstellen wir den entsprechenden XML-Tag und ergänzen ihn in der globalen Variable $$ReImport.Master mittels der Funktion "Liste ()".
Der XML-Tag (<FileStack.ID>1</ FileStack.ID>) muss eindeutig sein. Aus diesem Grund beinhaltet der XML-Tag ein Präfix und eine ID. Das Präfix dient der Unterscheidung von verschiedenen Containern bzw. Container aus verschiedenen Tabellen. Die ID (z.B. eine Datensatz-ID oder eine Seriennummer) dient der Unterscheidung der Datensätze innerhalb einer Tabelle. Anstelle von Präfix und ID könnte auch eine UUID verwendet werden.
Im Script "FileStack__Container_ReImport__XML" wird die Datei wieder über den Script-Schritt "Datei einfügen []" re-importiert.
Abschließende Bemerkungen
Da der Benutzer weder für den Export noch für den Re-Import den Dateinamen beeinflussen kann, wird der Dateiname über die Funktion "HoleContainerAttribute (Container;filename)" ermittelt und verwendet (Auch hier könnte eine UUID verwendet werden). Auf weitere Absicherungen wie z.B. das Änderungsdatum der exportierten Datei mit dem Änderungsdatum des Containers zu vergleichen oder den Re-Import für gewisse Datei-Formate zu unterbinden habe ich in diesem Beispiel unterlassen.
In der Beispiel-Datei gibt es auch eine JSON-Variante. Diese basiert auf demselben Prinzip. Aber je nach FileMaker-Version steht JSON nicht zur Verfügung oder wird nicht unterstützt (z.B. Runtime-Lösung).