1

Nach Update kein Inhalt von Bilddatei mehr zu öffnen???

Hallo zusammen,

nach dem update kann ich die PDF Dateien (sind von Auftraggebern übermittelte PDF, welche in das Bildfeld gezogen wurde) nicht mehr öffnen!! Vorher ging dies ohne Probleme als Anzeige über 

if contains(text(Montageauftrag), ".pdf") or contains(text(Montageauftrag), ".PDF") then
    link := shareFile(Montageauftrag)
end

oder über den Click auf das Bildfeld. Jetzt komm ich gar nicht mehr an die Datein heran!! Auch nicht über den Click auf das Bildfeld.

Brauche Dringend Hilfe 

15 Antworten

null
    • UweG
    • vor 1 Jahr
    • Gemeldet - anzeigen

    Ninox hat eine neue Bearbeitung für pdf-Dateien eingeführt.

    Die Dateiendung deine Datei lautet 'PDF' statt 'pdf'.
    Damit wird mit Klick auf das Bildfeld automatisch die Datei im neuen Bearbeitungsmodus geöffnet.
    Leider lässt sich die Datei danach nicht mehr nutzen.
    Workarround:
    Alle .PDF-Dateiendungen ändern nach .pdf

    Du solltest es tunlichst vermeiden, bevor die Änderung vorgenommen wurde, das Pdf zu öffnen.
    Dann ist die Datei nicht mehr nutzbar.

    !!!! Achte zukünftig auf die Schreibweise der Dateiendung bei zu importierenden pdf-Dateien !!!!
     

      • Michi.1
      • vor 1 Jahr
      • Gemeldet - anzeigen

      UweG scheiße.... bist de mal 2 Wochen im Urlaub. Das ist echt nicht toll, jetzt darf ich alle Aufträge neu anfordern von dem Auftraggeber und gleichzeitig darum bitten das die möglichst  Ihr program zum erstellen der pdf´s umstellen lassen.

      Die Datein kann ich ja beim "reinziehen" sicherlich nicht Automatisch abändern lassen oder?

      Danke dir

    • Michi.1
    • vor 1 Jahr
    • Gemeldet - anzeigen

    hast du eventuell ein Skript für mich, das die gesamte Datenbank dementsprechend abgeändert wird und der shareFile link neu erstellt wird, so das nicht noch mehr verloren geht?  Müßte wenn das geht über do as server laufen (1260 Datensätze) 

    Danke im voraus

    • Tabelle := Montageauftrag
    • (Bildfeld mit Datei) := Montageauftrag 
    • Textfeld für shareFile(Montageauftrag) := link 
    • UweG
    • vor 1 Jahr
    • Gemeldet - anzeigen

    do as server
        for i in Montageauftrag do
            i.link := shareFile(i.Nr,i.last(split(text(Montageauftrag), "/")))
        end
    end

    Ich wäre vorsichtig in einer Tabelle den Tabellennamen nochmals als Feldnamen zu benutzen.
    Das muss nicht bei Abfragen zu einem Fehler führen, aber man kann es auch nicht ausschließen.

      • Michi.1
      • vor 1 Jahr
      • Gemeldet - anzeigen

      UweG ich meinte das so in der Richtung aber für die ganze Tabelle.

      Es hat nur so 2 Nachteile.

      • Zum ersten haue ich mir die Datei in den Anhang und mit API kenne ich mich nicht aus um sie dort zu löschen.
      • zum zweiten bekomme ich in bb zwar alles vor dem eigentlichen ursprünglichen Dateinamen weg, aber das falsche .PDF ist so im Dateinamen enthalten. (xyz.PDF.pdf ist das ergebniss)

      Hast du da ne Lösung?

      if contains(text(Montageauftrag), ".PDF") then
          let aa := shareFile(Montageauftrag);
          let bb := last(split(text(Montageauftrag), "/"));
          Montageauftrag := importFile(this, aa, bb + ".pdf");
          link := shareFile(Montageauftrag)
      end

      • Michi.1
      • vor 1 Jahr
      • Gemeldet - anzeigen

      UweG

      Hab mal ne API generiert und versucht dein Skript dazu heran zu nehmen. Funktioniert leider nicht, das löschen des Anhangs. .... Da fehlt mir ganz viel wissen. Kannst mir da helfen? Muss bestimmt noch irgendwie das Team bestimmen.

       

      if contains(text(Montageauftrag), ".PDF") then
          let aa := shareFile(Montageauftrag);
          let bb := last(split(text(Montageauftrag), "/"));
          Montageauftrag := importFile(this, aa, bb + ".pdf");
          link := shareFile(Montageauftrag);
      let vFileName := get(this, "Montageauftrag");
      let vUrl := "https://api.ninoxdb.de/v1/teams/" + teamId() + "/databases/" + databaseId() + "/tables/" + tableId(this) + "/records/" + Nr + "/files/" + vFileName;
      fx_AnhangLoeschen(text(vUrl))

       

      Global:

      function fx_AnhangLoeschen(xUrl : text) do
          let vAPIKey := first(select 'Ninox Daten').API;
          let vHeader := {
                  Authorization: "Bearer " + vAPIKey
              };
          http("DELETE", xUrl, vHeader, "")
      end

    • UweG
    • vor 1 Jahr
    • Gemeldet - anzeigen

    "//
    // Funktion um Anhang im Record zu löschen
    // Aufgerufen von Tbl: XXXXX 
    //";
    function fx_AnhangLoeschen(xUrl : text) do
        let Antwort := "";
        let vHeader := {
                Authorization: "Bearer 43539e70-22b2-11ed-891d-3713f75a6892"
            };
        Antwort := text(http("DELETE", xUrl, vHeader, ""))
    end;
    for i in select Montageauftrag do
        if contains(text(i.Montageauftrag), ".PDF") then
            let aa := shareFile(i.Montageauftrag);
            let bb := extractx(last(split(text(i.Montageauftrag), "/")), "([^.]*)");
            let vFileName := bb + ".PDF";
            i.(Montageauftrag := importFile(i.Nr, aa, bb + ".pdf"));
            i.(link := shareFile(i.Montageauftrag));
            let vUrl := "https://api.ninoxdb.de/v1/teams/" + teamId() + "/databases/" + databaseId() + "/tables/" + tableId("Montageauftrag") + "/records/" + i.Nr + "/files/" + vFileName;
            fx_AnhangLoeschen(text(vUrl))
        end
    end

     

    Damit werden alle Records in der Tabelle behandelt.
    WICHTIG!!!!! KEIN 'do as server' einfügen. Dann schmiert dir Ninox ab und 'der Kreisel des Todes' läuft.
    In der Funktion musst du noch den Fake-ApiKey mit deinem eigenen ersetzen.

      • Michi.1
      • vor 1 Jahr
      • Gemeldet - anzeigen

      UweG Danke wie verrückt 👍

      • Michi.1
      • vor 1 Jahr
      • Gemeldet - anzeigen

      UweG kann ich das auch im bildfeld nach Änderung nur für den Datensatz ausführen? 

      Unser Partner bekommt das nicht so schnell geändert, sonst muss ich jetzt die datein erst händig ändern und dann rein ziehen

      • UweG
      • vor 1 Jahr
      • Gemeldet - anzeigen

      Michi Auf den Trigger kannst du es nicht legen, da importFile() nicht mit Triggern funktioniert.
       

      • Michi.1
      • vor 1 Jahr
      • Gemeldet - anzeigen

      UweG  hätte noch nen Butten, da könnte ich es mit einbinden. Der ist zum senden via mail. muss also immer nach dem einfügen gedrückt werden.

    • UweG
    • vor 1 Jahr
    • Gemeldet - anzeigen

    Ich füge mal eine DB bei mit einem möglichen Lösungsvorschlag.
    Die Funktion ist jetzt in den 'globalen Funktionen'
    Der Ali-Key liegt zentral in der Tabelle Admin.

    • Michi.1
    • vor 1 Jahr
    • Gemeldet - anzeigen

    Perfekt .... danke für deine mühe!!!👍

    • UweG
    • vor 1 Jahr
    • Gemeldet - anzeigen

    DerFehler sollte mit dem Update auf 3.7.6 behoben sein.

      • Michi.1
      • vor 1 Jahr
      • Gemeldet - anzeigen

      UweG du warst schneller 😁

Content aside

  • 1 „Gefällt mir“ Klicks
  • vor 1 JahrZuletzt aktiv
  • 15Antworten
  • 100Ansichten
  • 3 Folge bereits