0

Export von Anhängen

Hallo zusammen,

ich stehe vor einem Problem und suche nach der besten Lösung. Ich habe eine globale Funktion, die getCustomers() heißt. Diese rufe ich mit dem POST-Query-Endpoint ab und bekomme damit alle Daten von den Kunden in der Datenbank. Das Problem ist, dass ich in diesem Export auch gerne irgendwie die Bilder einpacken würde, idealerweise einen Share-Link von dem Anhang. Soweit ich aber sehen kann, kann ich einen Share-Link nur von einem Bildfeld erzeugen und nicht von dem Anhang.

Momentan mache ich abgekürzt folgendes:

In der Funktion:

let detaillierteKunden := for kunde in alleKunden do

    let allFiles := files(kunde);

end;

Attachments: allFiles

Der JSON-Export sieht dann ungefähr so aus:

"Attachments": [ "G2772/example.jpg", "G2772/zentrale1.jpg" ]

Um jetzt hier die Bilder zu bekommen, musste ich dann noch einen API-Abruf für die Bilder machen. Geht es irgendwie, dass ich direkt die Share-Links von Anhängen exportiere, oder komme ich nicht drum herum, noch zusätzliche API-Abrufe zu machen, um die Bilder zu kriegen?

Wie macht ihr das? Was ist die beste Vorgehensweise, um einen kompletten Export mit Bildern auf ein Dritt-System zu liefern?

Die Funktion ist an sich relativ groß und der Export auch. Deswegen habe ich nur die relevanten Dinge herauskopiert.

6 Antworten

null
    • Michi.1
    • vor 5 Monaten
    • Gemeldet - anzeigen

    Bin selber nur Laie....

    let filesauswahl := [Abrechnung, Bild1, Bild2, Bild3, Bild4, Bild5, Bild6, Bild7, Bild8, Bild9, Bild10];
                    for k in filesauswahl do
                        if k != null then
    
                            let data := {
                                    file: shareFile(k),
    
                                };
    
      • fersek
      • vor 5 Monaten
      • Gemeldet - anzeigen

      Hmm sind das Felder mit Bildern oder Anhänge in der Array?

      Ich wollte es jetzt so probieren:

              let detaillierteKunden := for kunde in alleKunden do
                      let allFiles := files(kunde);
                      let fileLinks := for f in allFiles do
                              let fileName := item(split(string(f), "/"), 1);
                              let link := shareFile(fileName)
                          end;

      Macht aber auch keinen Sinn, da ich es ja in einen String umwandle...

      • Michi.1
      • vor 5 Monaten
      • Gemeldet - anzeigen

      Es sind Bildfelder in einem Record, wenn diese nicht leer sind, werden sie als shareFile gesendet

    • fersek
    • vor 5 Monaten
    • Gemeldet - anzeigen

    Soweit ich das jetzt verstehe, kann man ShareFile() überhaupt nicht in einem Formularfeld benutzen. Also gilt das wohl auch für Skripte, die in globalen Funktionen sind, würde ich mal raten? Da ich jetzt bei der Query-Endpoint-Abfrage NULL zurückbekomme wenn ich es so verscuhe:

    let link := shareFile(kunde, fileName)

    • mirko3
    • vor 5 Monaten
    • Gemeldet - anzeigen

    Du kannst schon auch die shareFile() übergeben, benötigst aber ein Textfeld zum "zwischenlagern". Mal beispielhaft für einen Record der Code in einem Button zum Bilden eines JSON mit allen sharefiles(), die Benennung der files erfolgt über den Dateinamen. Dann kann dieses Textfeld in Dein JSON-Objekt eingefügt werden und schlussendlich wieder in JSON konvertiert werden für den API-Versand (habe ich aber nicht geprüft). Natürlich ließe sich dies auch mit einem zentralen Button für alle Datensätze gleichzeitig erledigen.

    let allFiles := files(this);
    let resultObject := {};
    for i in allFiles do
        setItem(resultObject, text(i), shareFile(i))
    end;
    TEXTFELD := formatJSON(resultObject)
    
    let myJSONObjekt := {
            erster: "content1",
            zweiter: "content2",
            Anhang: parseJSON(TEXTFELD)
        };
    formatJSON(myJSONObjekt)
    

    Mirko

      • fersek
      • vor 5 Monaten
      • Gemeldet - anzeigen

       Ganz lieben Dank für deine Hilfe. Ich habe es jetzt so umgesetzt, wie du es vorgeschlagen hast, und es funktioniert gut!