importfile() von Webserver
Hallo zusammen,
Ich habe folgendes Problem. Ich versuche über eine Schleife Bilder in eine Menge Datensätze zu importieren, so weit so gut aber es sind Produkte wo die Artikelnummer gleichzeitig der Bildname ist.
z.b Artikel 123456 hat das Bild 123456.jpg
Wenn es aber für den Artikel z.b 654321 noch kein Produktbild gibt wird in Ninox ein leeres 654321.jpg angelegt. Hat da jemand ein Idee wie ich das beheben kann??
Detto auch Batchlauf um die Bilder komplett aus denn Attachments zu bekommen.
Danke euch,
lG Chris
17 Antworten
-
Hallo Christoph Gerassimoff ,
zeige doch mal deinen Code, den du bislang nutzt.
-
Hallo Stefanie
for i in select Produkte do
let bildurl := "Weburl" + i.'Art. Nr.' + ".jpg";
importFile(i, bildurl);
i.(Produktbild := i.'Art. Nr.' + ".jpg")
endHiermit importiere. Wie ich alle Bilder lösche auch aus den Attachments bin ich auch noch nicht dahinter gekommen.
LG Chris
-
Vielleicht hilft Prüfung auf die Endung
contains(text(Bild), ".jpg")
-
Aus Anhang löschen funktion:
"//
// Funktion um Anhang im Record zu löschen
// Aufgerufen von Tbl: XXXXX
//";
function fx_AnhangLoeschen(xUrl : text) do
let Antwort := "";
let vHeader := {
Authorization: "Bearer " + first(select 'Ninox Daten').Key
};
Antwort := text(http("DELETE", xUrl, vHeader, ""))
endAufruf in datensatz:
let aa := shareFile(Bild);
let bb := extractx(last(split(text(Bild), "/")), "([^.]*)");
let vFileName := bb + ".jpg";
Bild := importFile(Nr, aa, bb + ".pdf");
"link := shareFile(Bild)";
let vUrl := "https://api.ninoxdb.de/v1/teams/" + teamId() + "/databases/" + databaseId() +
"/tables/" +
tableId("Tabelle") +
"/records/" +
Nr +
"/files/" +
vFileName;
fx_AnhangLoeschen(text(vUrl)) -
Das löschen der Anhänge funktioniert perfekt vielen Dank dafür.
Das importieren leider nicht. Es wird in Ninox trotzdem ein File angehängt obwohl am Webserver für das Produkt kein Bild existiert. -
importFile() prüft nicht, ob tatsächlich ein File hinterlegt ist.
Deshalb wird eine Leerdatei angelegt unter dem Filenamen, der in der Url enthalten ist.
Ninox impliziert mit der hinterlegten Adresse in importFile(), dass auch eine entsprechende Datei vorhanden ist.
-
Ja, das wird - wie UweG schon schrieb - nicht funktionieren.
Ich habe für einen Kunden ein ähnliches Konstrukt aufgesetzt. Du wirst immer dieses graue Bild haben, wenn ein Bild nicht existiert. Eine Lösung wäre, vorher über API den Speicherort abzufragen (man kann über RestAPI zB. direkt einen Dropbox Ordner abfragen... wenn dann das entsprechende JPG dort vorhanden ist, findet der Import in die NINOX statt.
Oder du gehst einen Umweg über MAKE (Integromat) mit entsprechendem Filter. "Wenn Bild auf FTP dann upload File in Ninox"....
-
Vielen Dank für euren Input,
Hab es nun gelöst, das ich immer wieder eine Fileliste generiere die ich dann importiere und mir am Artikel ein Flag Field befüllt. Dann starte ich die Aktualisierung der Bilder unter der Condition if flag = 1 then…
Hab jetzt erfolgreich 39.000 Bilder importiert .
PS: Bilder werden nun von einem lokalen Medienserver MAMP importiert somit Erspare ich mir den FTP Upload.
LG Chris
-
Moin Christoph Gerassimoff ,
ich hab einige unterschiedliche Szenarien mit Files auf externen Servern und find das unter dem Aspekt Dateien auslagern bzw. Verlinkung immer wieder spannend.
MAMP kenne bisher nicht. Verstehe ich aus deiner bzw. der MAMP - Beschreibung richtig, dass du die Mac App verwendest und es deshalb lokal funktioniert?
Content aside
- vor 1 JahrZuletzt aktiv
- 17Antworten
- 261Ansichten
-
7
Folge bereits