0

Dateiname ändern

Guten Morgen, 

ich habe folgende Frage, ich bin dabei eine Datenbank zu erstellen damit Dokumente nach dem Einpflegen automatisch korrekt und immer einheitlich benannt werden. 

Wenn ich angenommen nun ein Bild hochlade kann ich dann nachträglich über eine Textzeile und einem Button den Dateiname ändern? Oder ist das nur Manuell möglich. 
Es handelt sich nicht um interne Dokumente die erstellt werden sondern externe welche eingepflegt werden ein ein Bildfeld. 
Vielen Dank für die Hilfe! 
LG 

13 Antworten

null
    • UweG
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Das ist schon machbar über einen Button.
    Es existiert ein:
    Bildfeld ->'Bild'
    Textfeld -> 'Neuer Name inkl. Dateieendung'
    Button

    Im Button steht folgendes Script:
    let vShare := shareFile(Bild);
    Bild := importFile(this, vShare, 'Neuer Name inkl. Dateiendung')

    In der Form hat es den Nachteil, dass bei jeder Umbenennung der bisherige Inhalt des Bildfeldes in den Anhang des Records verschoben wird und nicht gelöscht.
    Das bläht die Datenbank auf.
    Wenn die App genutzt wird (ohne Cloud-Abo), muss man die Datei aus dem Anhang manuell löschen, das funktioniert in der reinen App nicht per Script.
    Wenn man ein Cloud-Abo hat, kann man den Button so erweitern, dass das in den Anhang verschobene File über die REST-Api von Ninox automatisch gelöscht wird.
    Ich mache es über eine Globale Funktion. Wenn interesse an dem Script besteht, einfach melden.

    • Michi.1
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Hallo Uwe,

    das würde mich sehr Interesieren, die Dateinamen sehe ich zwar nicht, da sie Auftragsbezogen in die betreffenden Bildfelder gezogen werden, jedoch werden Sie halt an unsere Auftraggeber automatisch per E-Mail versand. Dort würde es dann doch besser aussehen. Sie müssen aber Automatisch wieder aus dem Anhang Raus. 

     

    Grüße Michi

    • UweG
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Hallo Michi

    Hier die Funktion, um einen Anhang im Record zu löschen.
    function fx_AnhangLoeschen(xUrl : text) do
    let vAPIKey := first(select NinoxDaten).NinoxApiKey; (Oder den Ninox API-Key direkt eintragen)
    let vHeader := {
    Authorization: "Bearer " + vAPIKey
    };
    http("DELETE", xUrl, vHeader, "")
    end

    Der Aufruf erfolgt mit:
    let vFileName := get(this, "BILDFELD");(Wichtig: Der Name des Bildfeldes muss in Gänsefüßchen stehen)
    let vUrl := "https://api.ninoxdb.de/v1/teams/" + teamId() + "/databases/" + databaseId() + "/tables/" + tableId(this) + "/records/" + Nr + "/files/" + vFileName;
    fx_AnhangLoeschen(text(vUrl))

    Ich habe mir angewöhnt alles was Anhang ist in eine zentrale Tabelle zu speichern und für jede Tabelle eine n:m LinkTabelle zu erstellen.
    Das hat den Vorteil, dass alle Files zentral verwaltet werden und ich in den entsprechenden Records keine Bildfelder mehr nutzen muss, sondern mit einem einzigen Funktionsfeld und einem dyn. Auswahlfeld Bilddateien im Record oder Untertabellen darstellen kann.
    Diese kann auch per API gefüllt werden und die übertragenen Files automatisch mit dem oder den entsprechenden Record/Records verknüpft werden.
    Da ich hauptsächlich NodeRed oder n8n statt Integromat nutze, ist das kein großer Aufwand maßgeschneiderte Abläufe zu bauen.
    Ich habe mir eine GrundDB gebaut, in der die entsprechende File-Tabelle mit einer Bsp-Tabelle und Linktabelle vorhanden ist und nutze diese um neue DB'en zu bauen.
    Diese enthält auch noch eine Tabelle, wo ich Zentral alle Keys, Webhooks, und sonstige Zugangsdaten zu Drittprogrammen ablege.
    Bei Interesse kann ich diese auch zugänglich machen.
    Momentan bin ich dabei alle Files von Ninox auf eine Synology auszulagern und bei Bildfiles nur noch Thumbnails oder ShareLinks in Ninox zu nutzen um die DB klein zu halten.
    Ein Beispiel für die Synology-Anbindung über n8n findet man im NX-API Team in der Carbone-Beispiel DB.

    • Michi.1
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Danke dir,

    Das probiere ich natürlich gerne aus. Wird sicherlich eine große Herausforderung, da ich noch keine Ahnung von Api und Co habe. Was man jedoch damit so erreichen kann klingt sehr gut. 

    Es geht bei mir ja um eine Auftragsverwaltung. Sie beinhaltet lagerplätze, über blick Wareneingang/ Ausgang, retourenverwaltung, Liefertermin als Vorspannung zum avis bzw terminvergabe . Klappt alles auch wunderbar soweit. Bis auf die Liefertermine im Kalender. Die sind nicht nach teams geordnet angezeigt für den Tag. Aber das geht wohl nicht anders zu ordnen im Kalender. 

    Aber zurück. Die lieferscheine und Abrechnungen der Fahrer, werden eh eingescannt im netzwerkordner auf einer synology gespeichert. In ninox such ich den Kunden, im Reiter Lieferschein, wird ein neuer verknüpften Datensatz erzeugt, Lieferschein mit Angabe lagerplatz, hersteller und eingangsdatum, bildfeld bekommt den Lieferschein. Dann wird der Lieferschein per Mail versendet und der sharelink für die Anzeige im fx erzeugt. CloseRecord am ende. 

    Der Ablauf ist eigentlich immer der gleiche. Halt mit verschiedenen verknüpften Tabellen. "Lieferschein" + Auftrag+Abrechnug+Retouren. Da wächst die Größe der DB natürlich sehr schnell, wenn man dir pdf natürlich physisch auslagern kann und nur über den sharelink link arbeitet (der ja für die Betrachtung sowieso da ist) würde die größe wirklich verdammt viel kleiner werden.

    • UweG
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Hallo Michi
    Ja, die API erweitert die Funktionalität von Ninox enorm.
    Bspw. OCR auf Belege/Rechnungen und automatische Recorderstellung mit den ausgelesenen Daten.
    Dazu habe ich auch mal eine Ninox-DB gebaut, die meine Einkaufsbelege per Handy scannt und automatisch Datum und Kaufbetrag als neuen Record in Ninox anlegt.
    Man muss sich halt reinarbeiten, aber es ist kein Hexenwerk und man erhält im Forum auch Unterstützung wenn man nicht weiterkommt.
    Im NX-API Team gibt es einige Beispiel-DB'en für die Nutzung der API.
    Zur Synology:
    Wenn die Synology von außen zugänglich ist, funktioniert auch der Sharelink der Synology.
    Vorteil dabei ist die Zeitdauer der Gültigkeit des Synology ShareLink den man selbst bestimmen kann bis er automatisch abläuft.Hatte ich auch mal für Ninox programmiert.
    Das schafft man aber nicht ohne Drittprogrammen wie Integromat, wenn man die Synology von außen erreichen kann. Das wird aber mit der Zeit kostspielig.
    Ich habe meine Synology nur im internen Netzwerk und nutze n8n/NodeRed für die Zugriffe aus Nnox heraus.
    Der n8n-Flow sieht bei mir wie folgt aus.
    Bildschirmfoto 2022-02-05 um 10.43.55

    • Michi.1
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Soll ich da an den Support eine Anfrage für die Aufnahme in das NX-API Team stellen, oder wie kann man da aufgenommen werden. 

    Das klingt wirklich alles sehr gut. Das forum ist ja wirklich auch spitze. Wenn man überlegt das ich vor dem Entschluss Ninox zu nutzen Null Ahnung hatte von der Materie hatte, so hat man mit Hilfe von euch, schon sehr viel erreichen können, auch wenn man nur an der Oberfläche als Laie kratzt. 

    • UweG
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Ja, einfach eine Mail an Support.

    Hilfreich ist auch: https://docs.ninox.com/de/ 
    Wenn auch noch nicht ganz vollständig.

    • Michi.1
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Hallo Uwe,

    Hab jetzt n8n auf der synology drauf. Die synology an sich ist je nach Berechtigung auch von außen erreichbar. Den n8n Port hab ich auch erst mal freigegeben über eine sub Domain und Zertifikat.

    Ich hab mal geschaut wie groß die DB's sind. Bin jetzt bei 5 GB. Da ist zwar noch einiges an Platz bevor es teuer wird, jedoch würde ich gern vollgendes umsetzen.

     

    Alle Physischen Dateien (Bilder und pdf. ) sollen auf die synology ausgelagert werden. Als Ersatz soll in Ninox nur noch der dementsprechende sharelink in einem fx angezeigt werden.

    Das heist: Die bereits vorhandenen datein müßten auf die Synology übertragen werden und der sharelink zurück übergeben werden.

    Neue datein würde ich wie bereits gelebt, in ein Bildfeld ziehen, dann sollen diese im gleichen Verfahren wie die bereits vorhandenen datein behandelt werden.

     

    Ist das möglich? Der Zugriff von ninox auf die nass  und zurück muss dabei auch von außen also außerhalb des internen Netzwerks erfolgen können.

    Wie gesagt große ziehe für ein Laien wie mich

    • UweG
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Hallo Michi
    Den n8n Port muss man nicht freigeben, da man n8n über den Webhook oder MQTT-Node von außen erreichen kann.
    Die Synology muss von außen erreichbar sein, wenn man mit Synology-ShareLinks arbeiten möchte.
    Dein Scenario habe ich in n8n bereits gelöst.
    Ich bin gerade in den letzten Zügen eine Ninox Grund-DB zu vollenden, die Grundlage für zukünftige Datenbank-Entwicklungen sein wird.
    Sie beinhaltet bereits eine zentrale FileTabelle, in der alle Dokumente abgelegt werden und mit allen zukünftigen neuen Tabellen verknüpft werden.
    Gleichzeitig sind bereits alle Buttons mit script integriert um Files auf die Synology zu übertragen, Thumbnails / ShareLinks von der Synology zu holen oder das komplette File wieder nach Ninox zu laden.
    Wenn du die ShareLinks auch für Ausdrucke in Ninox nutzen möchtest, musst du statt des Ninox eigenen Druckeditors Carbone nutzen. Ninox kann meines Wissens keine Sharelinks als Grafik drucken. Ich kann mich aber auch irren, da ich den Ninox-Druckeditor bisher nie benutzt habe.
    Der n8n-Flow zeigt dir, bis auf das Erstellen des Synology-Sharelinks, deine Anforderung.
    Über den n8n-Webhook oder den MQTT-Node hast du von außen immer zugriff. Auch mit mobilen Geräten wenn die Internetanbindung schnell und stabil ist.
    Von n8n aus kommst du mit dem HTTP-Node über die REST-Api von Ninox an die notwendigen Daten ran.
    n8n ist nicht so einfach wie Integromat zu lernen und bedarf etwas Einarbeitung und JavaScript-Kenntnisse. Aber die Community dort ist vergleichbar mit der Ninox-Community und extrem Hilfreich. 
    P.S. Den n8n Webhook aktivierst du, indem du n8n wie folgt startest. 'n8n start --tunnel'
    Damit kannst du für jeden n8n-Flow einen eigenen Webhook nutzen.
    Sei es, um eMails aus Ninox miteigener MailAdresse zu versenden oder zu empfangen (Habe ich auch einen Flow gebaut) oder dich mit Microsoft oder Google-Produkten zu verbinden.
    Ich bin kein Experte mit n8n und habe mir mit der Zeit einiges, mit Unterstützung der Community angeeignet, um meine Flows zu bauen.
    Ich würde mit einfachen Flows starten bspw. Ein Bild aus Ninox zu laden und einen neuen Record in rinr andere Ninox-Tabelle oder Ninox-DB zu erzeugen und dieses Bid dort in ein Bildfeld zu speichern.
    Wenn du fragen hast, kannst du dich ja melden und ich kann versuchen im Rahmen meiner Möglichkeiten zu helfen.

    • Michi.1
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Meld mich bestimmt 😁,

    Aber gut zu wissen das es machbar ist.

    • Michi.1
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Blöde frage, kannst den n8n-Flow als Datei zur Verfügung stellen. Der wird zwar so nicht funktionieren, aber man kann es eventuell nachvollziehen. Mein Problem ist die Daten last in Ninox. Das geht auf Dauer nicht. Da ist bei 14 GB Schluss ohne extra Kosten. Die pdf welche ich drucke sind entweder direkt erzeugt in Ninox über den Editor, aber die sind nicht groß. Das meiste sind jedoch druck Aufträge aus den abgelegten PDF datein, welche vom Auftraggeber kommen. Diese werden über das fx mit sharelink direkt gedruckt 

    • UweG
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Hallo Michi.
    Ich erweitere gerade meine Ninox-Grund-DB um die Synology-Anbindung.
    Bis zum Wochenende sollte ich soweit durch sein.
    Die kann ich dir zum testen zur Verfügung stellen. 

    Darin wird der n8n-Flow zum testen der DB mit der Synology enthalten sein, sowie einige andere Grundtabellen für die Erstellung von neuen Ninox-Projekten. (zentrale Fileverwaltung, zentrale CSS-Anpassungen für Formulare) 
    Vorab noch etwas Literatur für die Synology, damit du weist, worauf du dich einlässt.

    https://global.download.synology.com/download/Document/Software/DeveloperGuide/Package/FileStation/All/enu/Synology_File_Station_API_Guide.pdf
    Meine Mailadresse lautet foren.uwe@gmx.de

    • Michi.1
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Danke dir,

    Scheitern kann nur, wer es nicht probiert. Irgendwie werd ich das schon in meinen Schädel bekommen 

    😂

    meine ist: michaelzub@gmx.de

Content aside

  • vor 2 JahrenZuletzt aktiv
  • 13Antworten
  • 618Ansichten
  • 1 Folge bereits