0

Datei speichern unter lokalem Pfad

Hallo zusammen,

 

gibt es einen Weg (Script, Funktion), ein Attachment in einen lokalen Ordner Pfad zu speichern? Ich würde so gerne meine Rechnungen ans DMS übergeben.

Weiß da jemand was?

 

LG Bettina

39 Antworten

null
    • UweG
    • vor 10 Monaten
    • Gemeldet - anzeigen


    Hallo
    Ich habe mal was gebaut, das ohne einen API-Key auskommt.
    Das kann man auch mit der Ninox-App verwenden um Dateien auf die Disk zu speichern.

    Ich habe es so gebaut, dass alle in einem Record hinterlegten Dateien in einem Rutsch unter ihrem gespeicherten Namen auf die lokale Disk abgelegt werden.
    Unerheblich ob es sich um eine oder mehrere Dateien handelt.
    Die gängigsten Dateiformat habe ich hinterlegt und fehlende müssten dann in den Nodes 'MimeTypeSwitchMulti' und 'MimeTypeSwitchSingle' ergänzt werden.

    Wie in einem vorherigen Post beschrieben habe ich auch den Speicherort variabel gestaltet.
    So sieht der n8n-Flow aus:

    Am Besten den Flow mit der beigefügten Ninox-DB testen.
    Hier muss nur bei beiden Nodes 'Write binary File ...' der Dateipfad für sich angepasst werden und auch in der entsprechenden Ninox-Tabelle die LocalFolder-Werte.

    Ich nutze einen Apple Rechner, und der String von mir: /Users/uweg/Desktop/ muss auf den eigenen Speicherort angepasst und auch die entsprechenden Unterordner auf der Festplatte müssen angelegt werden.
     

    Man könnte den vorhanden Flow so umbauen, dass er auch für das Speichern der Dateien auf andere Systeme wie Google oder andere Cloud-Speicherorte verwendet werden kann.

      • Michael.3
      • vor 10 Monaten
      • Gemeldet - anzeigen

       

       

      wahnsinn!!!!!

       

      vielen vielen Dank. Ich werde es heute Abend testen. Ich freu mich.

       

      VG

       

      Michael

    • UweG
    • vor 10 Monaten
    • Gemeldet - anzeigen

    Sorry, habe statt der Ninox-DB den JSOn-Flow 2x geladen.
    Hier die passende Ninox-DB

    • UweG
    • vor 10 Monaten
    • Gemeldet - anzeigen

    Da war noch ein Fehler beim Testen im N8n-Flow.
    Habe ich bereinigt.
    Bitte die Adresse des n8n-Webhook mit der Ninox-DB abgleichen.
     

      • Michael.3
      • vor 10 Monaten
      • Gemeldet - anzeigen

       

       

      Das ist ja der Wahnsinn! Das funktioniert in der Testumgebung auch bei mir. Das ist das wonach ich schon sehr sehr lange gesucht habe.

       

      Also vielen vielen Dank für Deinen Support!

       

      Ich werde mir jetzt mal Gedanken machen, wie ich das in meine Datenbank einbauen kann, so dass die Zahlungsträgerdateien nun automatisch an das Online-Banking-Tool übertragen werden.

       

      Bin total begeistert.

       

      VG

      Michael

      • Michael.3
      • vor 9 Monaten
      • Gemeldet - anzeigen

       

      Hallo UweG,

       

      ich habe Dein tolles Beispiel in meine Testdatenbank integrieren können. Alles läuft perfekt wenn ich den Button Zahlungsträger ausführe. Hier werden auch die in Ninox generierten Dateien als csv abgelegt.

       

      ich habe mir ein Dashbord gebaut, auf dem drei Buttons liegen um den Zahlungsverkehr zu steuern. Die einzelnen Zahlungsträgerdateien liegen in der Tabelle Zahlungsträger, welche als Ansicht ins Dashbord eingebaut ist.

       

      ich habe Skript etwas umgebaut, um auf die Tabelle Zahlungsträger zuzugreifen, so dachte ich, aber immer wenn ich das Skript ausführe bekomme ich zurückgemeldet, dass keine Datei vorhanden ist.

       

      hast Du eine Idee was man da machen muss?

       

      viele Grüss

      Michael

      • Michael.3
      • vor 9 Monaten
      • Gemeldet - anzeigen

       

      genauer gesagt, auf dem Dashboad liegen die drei Buttons bezüglich der Zahlungsverkehrssteuerung. Unter der Klammer auf dem Dashboard befinden sich keine Dateien. Die Dateien liegen alle in der Tabelle Zahlungsträger!

       

      wenn ich nun vom Dashbord das Dein Skript ausführe findet er die Dateien nicht ich vermute, dass files unter der Klammer des Dashbords nachguckt und nicht in der Tabelle Zahlungsträger. Kann man das irgendwie anpassen?

      • UweG
      • vor 9 Monaten
      • Gemeldet - anzeigen

       

      Anbei eine DB, die deine Anforderung bedient.

      • Michael.3
      • vor 9 Monaten
      • Gemeldet - anzeigen

       

       

      Hallo Uwe,

       

      vielen Dank für die Beispieldatenbank! Ich. glaube ich habe mich aber nicht korrekt ausgedrückt. Ich habe ein. Dashboard für Eingangsrechnungen, welches sich speziell auf den Zahlungsverkehr konzentriert:

       

      Bis dato besteht dieses Dashboard nur aus den drei Buttons, denn die darunter liegende Liste ist eine Ansicht aus der Tabelle Zahlungsträge. Im Dashboard selbst gibt es keine Dateien:

       

      Wenn ich jetzt den Butten (1. Überleitung MacGiro) tätige, würde ich mir wünschen, dass Dein Skript den Übertragungsprozess anstößt.

       

      Die Tabelle Zahlungsträger, in der auch die Zahlungsträgerdateien liegen, habe ich wie folgt ergänzt:

       

      Hier liegt auch die Datei. Wenn ich auf Übertragen klicke funktioniert es!!!

       

      Drücke ich auf den 1. Button aus dem Dashboard habe ich den Eindruck, dass Files NICHT auf den Tabellenanhang der Tabelle geht, sondern egal was ich bis dato ausprobiert habe immer auf den Anhang des Dashboards zugreift.

       

      Wie kann ich Files dazu bewegen, dass es auf eine andere Tabelle zugreift?

       

      Hättest Du dafür auch eine Lösung?

       

      Nochmals ganz herzlichen Dank für Deine tolle Unterstützung.

       

      Michael

      • UweG
      • vor 9 Monaten
      • Gemeldet - anzeigen

       

      kannst du mal eine kleine Bsp-DB reinstellen. Momentan verstehe ich das Problem nicht. Man müsste das Script eigentlich nur so anpassen, dass es über die Ansicht auf dem Dashboard iteriert.

      Ich würde aber für jeden Record den Webhook in n8n auslösen, da ansonsten die zu übertragende Datenmenge in einem Rutsch zu groß wird und der Request mit Fehlermeldung abgebrochen wird.

      • Michael.3
      • vor 9 Monaten
      • Gemeldet - anzeigen

       

       

      Hallo Uwe,

       

      um mein Problem verstehen bitte nach dem Öffnen der DB links auf den Eintrag Rechnungsläufe gehen. Den Datensatz öffnen und dann den TAB Zahlungsträger anklicken. Es öffnet sich das Dashboard mit drei Buttons.

      Der erste Button (1. Überleitung MacGiro) beinhaltet u. a. Dein Skript. Von hier würde ich gerne Dein Skript ausführen, dass er den Dateianhang aus der Ansicht darunter über den n8n Workflow an den Zielordner überträgt. Das habe ich noch nicht hinbekommen.

       

      Öffne ich die Ansicht oder geh direkt in die Tabelle Zahlungsträger TAB Protokoll, kann ich den Button drücken und der Workflow startet und funktioniert.

       

      Was muss geändert werden, damit es direkt aus dem Dashboard geht?

       

      Gruß

       

      Michael

      • UweG
      • vor 9 Monaten
      • Gemeldet - anzeigen

       

      So richtig verstehe ich den Aufbau nicht.
      Du hast eine Verknüpfung zur Tabelle Zahlungsverkehr, benutzt aber eine Ansicht mit select auf die Gleiche Tabelle als Datengrundlage.
      Ich habe das Script mal auf die Daten der Ansicht angepasst:
       

      let myBNK := 'BNK-Lauf-ID';
      alert("Die MacGiro-Übertragung wird für den ausgewählten Bankenlauf: " + 'BNK-Lauf-ID' +
      " vermerkt!");
      let myArray2 := (select 'Zahlungsträger' where 'BNK-ID' = myBNK);
      for y in myArray2 do
          y.(MacGiro := "Ja")
      end;
      'Zahlungsträger'.(Response := null);
      ---
      if 'Zahlungsträger'.Files and 'Zahlungsträger'.LocalFolder then
      ---;
      if cnt(select 'Zahlungsträger') > 0 then
          for i in select 'Zahlungsträger' do
              let vCnt := cnt(files(i));
              let vFiles := files(i);
              let vFileName := "";
              let vFilePFix := ""
              let vURL := "DEINE n8n URL"
              let vHeader := {
                      'Content-Type': "application/json"
                  };
              let vBody := for ii in range(0, vCnt) do
                      {
                          vLocalFolder: "DEIN SPEICHERORT",
                          vFileCnt: vCnt,
                          vImageName: last(split(text(item(vFiles, ii)), "/")),
                          vDateiEndung: replace(extractx(text(item(vFiles, ii)), "(\.[A-Za-z0-9]+$)"), ".", ""),
                          vImageData: loadFileAsBase64(item(vFiles, ii))
                      }
                  end;
      ---'Zahlungsträger'.Response := do as server
                  formatJSON(http("POST", vURL, vHeader, vBody))
              end ---;
              do as server
                  formatJSON(http("POST", vURL, vHeader, vBody))
              end
          end
      else
          alert("Kein File vorhanden / kein Speicherort ausgewählt")
      end
      

      Das Funktioniert so mit den in der DB vorgegebenen Daten.

      • Michael.3
      • vor 9 Monaten
      • Gemeldet - anzeigen

       

       

      Hallo Uwe,

       

      vielen Dank, ich werde das Skript integrieren!

      Ja das mag sein, dass da einiges nicht effizient aufgebaut ist. Die Datenbank ist ohne Programmiervorkenntnisse über die Zeit gewachsen.

       

      Nochmals vielen vielen Dank für Dein Support.

       

      VG

      Michael

      • Michael.3
      • vor 9 Monaten
      • Gemeldet - anzeigen

       

       

      guten Morgen Uwe,

       

      ich habe das Kristin in meine Testumgebung eingebaut. Der Transfer funktioniert in soweit dass eine Datei übertragen wird.

       

      im Falle der bereitgestellten Datenbank ist das die korrekte Datei. Liegen weitere Testdaten in der Tabelle Zahlungsträger vor, dann wird eine andere Datei übertragen. 
       

      Hast Du hierzu eine Idee? Ich habe das Feld Response für alle übrigen Datensätze gefüllt, bis auf den, den ich übertragen wollte, aber es wurde dann erneut wieder ein anderer übertragen.

       

      VG

       

      Michael

      • Michael.3
      • vor 9 Monaten
      • Gemeldet - anzeigen

       

       

      Hallo Uwe,

       

      was ist das für eine interessante Schreibweise? Ich erkenne zwar eine If-Anweisung aber ohne  Vergleichsanweisung und ohne Anweisung was zu tun ist, wenn die Bedingung erfüllt ist. Wie muss ich das interpretieren?

       

      VG 

      Michael

       

      if 'Zahlungsträger'.Files and 'Zahlungsträger'.LocalFolder then
      ---

Content aside

  • vor 9 MonatenZuletzt aktiv
  • 39Antworten
  • 717Ansichten
  • 6 Folge bereits