PDF an Google Drive
Hallo zusammen,
ich habe eine Datenbank basierend auf der Vorlage "Beschaffung" erstellt und dort einen Button hinzugefügt, der in der Maske für eine neue Bestellung verfügbar ist.
Dieser Button soll über "Make" das PDF-Dokument zunächst in Google Drive speichern. Hierfür habe ich folgendes Skript im Button:
let myID := this;
if myID then
let documentLink := first(Links[Dokumente.Dokumenttyp = 4].Dokumente);
if documentLink then
let path := text(documentLink.Dokument);
let parts := split(path, "/");
let fileName := last(parts);
let response := do as server
http("POST", "https://hook.eu2.make.com/qn84wtuq6zr5q8guu2okjym1yxu77nru", {
'Content-Type': "application/json"
}, {
TeamID: teamId(),
Ninox_Database_ID: databaseId(),
Ninox_Table_ID: tableId(myID),
Ninox_Record_ID: number(myID),
Ninox_Filename: urlEncode(fileName)
})
end;
myID.(Google_Drive_File_ID := text(response.result))
else
alert("Keine Datei vorhanden!")
end
else
alert("Keine Datei vorhanden!")
end
Die Daten kommen auch in der Webhook an und in einer anderen Datenbank verwende ich das Ganze schon ähnlich, dort klappt es einwandfrei, aber dort versende ich ein Bild aus der selben Tabelle.
Danach verwende ich dann das Modul "Ninox Download File from Record", jedoch kann dieses Modul die Datei nicht finden, die ich eigentlich hinschicke, und der Prozess wird unterbrochen. Ich ging davon aus, dass es am Dateinamen liegt, weshalb man den "split"-Befehl im Skript findet, aber auch das hat das Problem nicht gelöst.
Es wäre super, wenn jemand eine Idee hat, wie ich das hinbekomme, dass mein PDF in meinem Google Drive gespeichert wird. Falls etwas unklar ist, meldet euch gerne.
Ich bin für jede Hilfe sehr dankbar.
Liebe Grüße,
Olli
9 Antworten
-
Moin ,
in dem Ninox-Node den du gepostet hast sehe ich eine statische Record-ID (1) eingetragen.
Hier muss die Ninox-Record-ID vom Webhook (wäre hier die 44) gemappt sein.
In deinem Beispiel kommt der Datensatz 44 und du willst das File von Record 1 laden...VG Ronald
-
In welcher Tabelle liegt denn das Bild.
Laut Script scheinbar in einer verknpften Tabelle: documentLink.Dokument
da du von dort den Bildnamen erzeugst.
Zeigt denn der Make Node für den File-Download auf die Tabelle, wo das File hinterlegt ist oder auf die Tabelle, von wo der Wbhokk aufgerufen wird.
Leider sind die Informationen etwas spärlich wie so häufig. -
Hallo bei mir hat es so funktioniert:
mit splitx und einem regex kommst du an die korrekte TableID, RecordID und den Filenamen.
(File liegt bei mir auch in einer anderen Tabelle)
let myID := this;
if myID.Bilder.Bild then
alert("bild gibt es: " + myID.Bilder.Bild);
let myFileDatas := splitx(string(myID.Bilder.Bild), "^(?<tabelle>[A-Z]+)(?<id>\d)/(?<dateiname>.+)$");
let myFileDatasTableID := item(myFileDatas, 1);
let myFileDatasRecordID := item(myFileDatas, 2);
let myFileDatasFileName := item(myFileDatas, 3);
let response := do as server
http("POST", "https://hook.eu2.make.com/deineHookAdresse", {
'Content-Type': "application/json"
}, {
TeamID: teamId(),
Ninox_Database_ID: databaseId(),
Ninox_Table_ID: myFileDatasTableID,
Ninox_Record_ID: myFileDatasRecordID,
Ninox_Filename: myFileDatasFileName
})
end;
myID.('Google-ID' := text(response.result))
else
alert("gibt kein Bild ")
end -
Hallo
bei mir hat es so funktioniert:
mit splitx und einem regex kommst du an die korrekte TableID, RecordID und den Filenamen.
(File liegt bei mir auch in einer anderen Tabelle)
let myID := this;
if myID.Bilder.Bild then
alert("bild gibt es: " + myID.Bilder.Bild);
let myFileDatas := splitx(string(myID.Bilder.Bild), "^(?<tabelle>[A-Z]+)(?<id>\d)/(?<dateiname>.+)$");
let myFileDatasTableID := item(myFileDatas, 1);
let myFileDatasRecordID := item(myFileDatas, 2);
let myFileDatasFileName := item(myFileDatas, 3);
let response := do as server
http("POST", "https://hook.eu2.make.com/deineHookAdresse", {
'Content-Type': "application/json"
}, {
TeamID: teamId(),
Ninox_Database_ID: databaseId(),
Ninox_Table_ID: myFileDatasTableID,
Ninox_Record_ID: myFileDatasRecordID,
Ninox_Filename: myFileDatasFileName
})
end;
myID.('Google-ID' := text(response.result))
else
alert("gibt kein Bild ")
end -
noch zur Ergänzung:
der Regex müsste eigentlich noch so angepasst werden:
^(?<tabelle>[A-Z]+)(?<id>\d)\/(?:[^\/]+\/)*(?<dateiname>.+)
(Danke ChatGPT :-)
dann würde er aus dem folgenden String:
B3/unterordner/meinDateiname.pdf
tabelle: B
id: 3
dateiname: meinDateiname.pdf
extrahieren.
hier getestet; siehe Screenshot.
https://regex101.com/
Gibt es da evtl. auch eine andere Möglichkeit als den regex mit splitx zu verwenden um die Tabelle die id und den Dateinamen herauszufinden, wenn die Datei/Bild in einer anderen Tabelle liegt?
Content aside
-
1
„Gefällt mir“ Klicks
- vor 1 MonatZuletzt aktiv
- 9Antworten
- 130Ansichten
-
6
Folge bereits