Zum Inhalt springen

Moritz

smapOne
  • Gesamte Inhalte

    721
  • Benutzer seit

  • Letzter Besuch

  • Tagessiege

    80

Alle Inhalte von Moritz

  1. Du meinst "des jeweiligen Creators", oder? Das Token hängt am Creator... Tatsächlich kann man mit dem Master-Token in der internen API die Subscriptions der Childs (per /Subscriptions) einsehen, darin sind auch die Child-Token enthalten. Damit kann man also eine "Fahrt" über alle smaps aller Creatoren realisieren...
  2. Ja genau, einfach über die API per PowerQuery in eine Excel-Tabelle laden. Das würde auf jeden Fall einen Überblick ermöglichen. Man müsste die Query in zwei Schritten gestalten. Zunächst würde über /Smaps erstmal eine Liste aller smaps (bzw. konkret der smapIDs) beschafft. Und über diese Liste wird dann iteriert, um die Aufgaben für jede smap zu ziehen. In der Tabelle könnte die smap dann als Spalte enthalten sein, so dass man nach smap filtern kann. Weitere Filter (z.B. nach User, Titel usw.) wären dann natürlich auch möglich.
  3. @David Susami würde euch eine Übersicht in Excel bereits weiterhelfen?
  4. @Christian B. Gütthoff deine Webapplikation muss den Aufruf an der API durchführen, so dass darin Daten aus der Webseite an smapOne übertragen werden. Es müsste also Code ähnlich diesem hier in deiner Webapplikation hinzugefügt werden: document.getElementById('myButton').addEventListener('click', function() { const smapID = "6fca7319-e2f2-4c8e-957e-4f56875430ff"; const version = "1.0"; const url = "https://platform.smapone.com/Backend/intern/Smaps/" + smapID + "/Versions/" + version + "/Data"; const username = "abc123"; // Can by any arbitrary dummy username const password = "SMAPONE_API_PASSWORT"; // Your API token const auth = btoa(username + ":" + password); fetch(url, { method: 'POST', headers: { 'Authorization': 'Basic ' + auth, 'Content-Type': 'application/json' }, body: JSON.stringify({ "userEmail": "string", "title": "string", "comment": "string", "hasPriority": true, "dueDate": { "date": "string" }, "data": {} }) }) .then(response => response.json()) .then(data => console.log(data)) .catch(error => console.error('Error:', error)); }); Mehr Infos zur Aufgabenerzeugung über die API in unserer FAQ: https://faq.smapone.com/kb/guide/de/wie-konnen-aufgaben-uber-die-rest-api-generiert-werden-nA03jLD4w0/Steps/966370 Außerdem ein smappetizer Deep Dive Tutorial, das die Aufgabenerstellung adressiert Eure Aufgabe bzw. die des Webentwicklers wäre jetzt auch noch, die jeweiligen Daten aus der vom User ausgewählten Gruppe, Untergruppe, Element usw. in das Body-Objekt mit aufzunehmen. Allgemeiner wichtiger Sicherheitshinweis: Die vorgestellte Lösung sollte nicht auf einer öffentlich zugänglichen Webseite umgesetzt werden, da jeder Besucher damit Zugriff auf das API-Token erhalten kann, was ein erhebliches Sicherheitsrisiko darstellt. Dies ist nur für interne Zwecke sinnvoll, idealerweise eine Webseite, auf die nur der Creator selber Zugriff hat. Grundsätzlich besteht aber auch die Möglichkeit, öffentlich zugängliche Webseiten in die smapOne API zu integrieren, ohne dass das Token jedem Besucher zugänglich/einsehbar ist.
  5. In der präsentierten Auswahlliste sind nicht immer alle Bausteine enthalten. Du kannst den gewünschten Baustein aber einfach per {{bricks.BausteinID}} manuell in das Schema übernehmen. Ich würde aus dem Bauch heraus sogar behaupten, dass du den Textergebnisbaustein gar nicht brauchst, sondern auch direkt {{bricks.DataRecordSelect[Spalte]}} einfügen kannst - aber das wäre nochmal zu prüfen eine kurze Prüfung bestätigte mein Bauchgefühl 🙂
  6. Wenn deine Finger auch einen Lötkolben halten können, würde ich mir mal einen ESP8266 in Verbindung mit einem WLED-fähigen LED-Streifen ansehen (z.B. WS2812B). Du kannst den Streifen danach lokal (oder wenn du die IP entsprechend durchroutest auch remote) direkt per HTTPS ansprechen und steuern... (hat aber auch APIs für JSON, MQTT, DMX usw.; super Projekt!)
  7. Vorangestellt, hinten angeklemmt oder irgendwo dazwischen, solange du die Syntax für die Parameter einhältst: sie werden durch Fragezeichen (?) von der Adresse getrennt und jeweils durch ein kaufmännisches Und-Zeichen (&). Beispiele: https://www.smapone.com?key1=value1&key2=value2&key3=value3 ?accessToken=x&$filter=y&$orderBy=z ?$filter=y&$orderBy=z&accessToken=x
  8. Falls als nächstes die Frage kommt, wie man das sendDate jetzt in der Power Query dynamisieren kann: Es lohnt sich inzwischen, hier einfach mal im Forum ein wenig zu wühlen, was man alles so Feines findet 😄
  9. Das geht mit Hilfe der Preview API (siehe FAQ). In der kannst du einen Filter z.B. auf das sendDate setzen (nicht älter als 2 Tage) $filter=sendDate%20gt%202024-03-02T15:05:00Z und dann auch entsprechend beliebig sortieren, z.B. auch das sendDate absteigend von jung nach alt. $orderBy=sendDate%20desc Die URL sieht dann so aus (ersetze einfach die smapID gegen die von deiner smap): https://platform.smapone.com/Backend/preview/Smaps/65384867-3375-4c53-b7d4-27bf9bbdb477/Records?$filter=sendDate%20gt%202024-03-02T15:05:00Z&$orderBy=sendDate%20desc Dieser Abruf ruft alle Datensätze der letzten 48h ab (hier ist jetzt ~16:05 Uhr, also alle seit UTC 15:05 Uhr, im Query String "2024-03-02T15:05:00Z"), also alle Datensätze, wo das sendDate greater than ("gt") – also nach – diesem Zeitpunkt ist und sortiert ("orderBy") die Datensätze nach dem sendDate, und zwar absteigend (engl. "descending", also "desc"), also quasi von jung nach alt. (Aufsteigend wäre "asc" für engl. "ascending").
  10. @Christian B. Gütthoff das kannst du in der Word-Berichtsvorlage einstellen – mehr Infos in der Dokumentation bzw. auch in der FAQ.
  11. Der Fehler bei dir erschien übrigens, weil das Ergebnis deiner Formel ein true oder false ist (entweder ist die AND()-Bedingung erfüllt oder nicht) und ein Zahlenergebnisfeld natürlich Zahlen erwartet und nicht true/false. AND(IF(LESSTHAN({END1_Innen_4},50),1),(NOTEMPTY({END1_Innen_4}))) Du müsstest die AND()-Bedingung also mit in das IF() nehmen: IF(AND(..., ...), 1, 0) Das hier sollte 1 in deinem Zahlenergebnisbaustein ausgeben, wenn die Zahl END1_Innen_4 gesetzt ist und kleiner als 50, ansonsten 0. IF(AND(NOTEMPTY({END1_Innen_4}), LESSTHAN({END1_Innen_4}, 50)), 1, 0)
  12. @Christian B. Gütthoff in der smap oder im PDF-Bericht? Wenn im Bericht, schau mal hier: https://platform.smapone.com/Documentation/de/Topic/Reports#beispiele-für-zahlenwerte
  13. "Nicht nochmal sendbar" – ja, nicht der Selbe. Aber der Gleiche! 😉 (siehe folgende Anleitung) @Christian B. Gütthoff hinter dem Thread findest du einen sehr einfachen Weg, um an bereits abgesendete Datensätze nochmal zu kommen. Den neuen Entwurf kannst du dann korrigieren und den alten löschen. Das ist fast wie ändern (Achtung: bis auf die geänderten Zeitstempel). Wenn du indes nur eine Kleinigkeit auf dem Bericht ändern willst, kannst du dir auch einfach immer die Word-Datei (statt PDF) beschaffen, die Datei anpassen und PDF neu erstellen.
  14. Oh, schöne Lösung! Ich wollte was mit 2 DSABs und konsolidierten Ergebnisfeldern vorschlagen, finde deinen Vorschlag aber deutlich charmanter!
  15. @Simon Liniger du findest diese Einstellungen direkt im Designer, wenn du den Wiederholungsgruppenbaustein ausgewählt hast in der rechten Eigeschaften-Spalte: Ist es denn das, was du suchst?
  16. Ich weiß nicht ob ich dein Anliegen richtig verstehe. Aber wenn du die Einträge einer Wiederholungsgruppe in dem PDF-Bericht tabellarisch anzeigen lassen willst, gibt es hierfür eine entsprechende Einstellungsmöglichkeit:
  17. Super Idee... ... da klinke ich mich doch gerne mit rein! 🥳 Also ich bin Moritz. Ich bin ebenfalls schon eine Weile hier. Ich hatte mich nie offiziell vorgestellt, aber einige dürften mich hier aus dem Forum bereits kennen oder in dem einen oder anderen Video als "smappetizer" kennengelernt haben. Business-Portale (ich bin hier im Vergleich zu vielen Kollegen eher eher mäßig aktiv, ihr erreicht mich aber dort; einfach folgen, konnektieren, anschreiben 👍🏼 ) LinkedIn: moritzhesse Xing: Moritz_Hesse Code und Technik GitHub: moritzhesse Stack Overflow: dialogik (noch aus meinen PHP-Zeiten 😄; immerhin auch fast 10k Reputation) Twitch: dialogikTV (vor meiner Zeit bei smapOne hatte ich auch schon ein wenig über Technik, Automatisierung & Co. auf Twitch gelivestreamt – oder sagt man livegestreamed?) smappetizer (es dürfte der Community aufgefallen sein: wird aktuell aus Kapazitätsgründen nicht aktiv bespielt) YouTube: @smappetizer Instagram: @smappetizer GitHub: smappetizer Privatkram Privates Instaprofil gibt es ggf. auf Anfrage 😄 Meine dreiundachzig Profile auf X (z.T. schlimmste Schwurbeleien...) bleiben lieber geheim 😅
  18. Das Token muss per ?accessToken=<API_TOKEN> übergeben werden, nicht mit "Token"... Aber ehrlich gesagt bin ich mir gar nicht sicher, ob hier die smapOne-API das Problem ist, da sich deine Fehlermeldung auf einen Datenbankserver bezieht. Die Web-API wird von Excel nach meinem Kenntnisstand nicht als "Datenbankserver" bezeichnet. Aber ich bin auf diesem Gebiet nur Teilzeit-bewandert 😉
  19. Hast du das API-AccessToken direkt mit in der URL angegeben? Oder über die separate Authentifizierung? Letztere wird nämlich auf dem Gerät, nicht aber in der Datei gespeichert. Wenn das Token direkt mit in der URL enthalten ist, sollte der Aufruf von überall klappen. Allerdings Achtung: Dann hat auch jeder mit der Excel-Datei potentiell Zugriff auf die API via dein Token!
  20. Nein, das sind die beiden einstellbaren. Was Paul möglicherweise meint, ist dass du Vorbelegungswerte auf Basis z.B. der User-Emails gestaltest. Beispiel: Wenn uta@firma.de die smap aufmacht, steht in dem Textfeld "Vorlage". Wenn jens@firma.de die smap aufmacht, steht in dem Textfeld "Abschlussbericht". Und wenn es weder Uta noch Jens sind, die die smap bearbeiten, steht "Projekt" in dem Feld. Formel dafür wäre dann sowas hier: IF(EQUALS({user:email}, "uta@firma.de"), "Vorlage", IF(EQUALS({user:email}, "jens@firma.de"), "Abschlussbericht", "Projekt"))
  21. Du müsstest dir halt ein Konstrukt aufbauen, dass bei maximal 3 Stellen vor dem Komma Folgendes erfüllt: Prüfung (IF), ob die Zahl größer 99, wenn ja, dann nimm die erste Stelle und ersetze 1 mit "Eins" bis 9 mit "Neun" + der statische Text "hundert"; falls die Prüfung fehlschlägt, bleibt dieser Teil leer. Umwandlung der letzten Stelle (vor dem Komma), auch wieder 1 = "ein" bis 9 = "neun" + der statische Text "und". Umwandlung der vorletzten Stelle (die Zehnerstelle) von 1 = "zehn", via 2 = "zwanzig" bis 9 = "neunzig". Es muss außerdem noch eine Prüfung für die Zahlen 11 ("elf") und 12 ("zwölf") stattfinden, so dass das auch mit abgedeckt ist. Für die Entwicklung des Ganzen würde ich wahrscheinlich sogar auch erst einmal mit drei Bausteinen (Baustein-IDs "Hunderter", "Zehner" und "Einer" o.ä.) und in einem finalen Result-Feld dann alles per CONCAT() zusammenfügen.
  22. Das ist machbar (man müsste vorab mal klären, wie groß die Zahl maximal werden könnte; das limitiert die Komplexität bzw. Umfang der Lösung), wird aber eine ekelhaft lange Formel (mit u.U. Auswirkungen auf die Performance der smap)… jedenfalls fällt mir nix Knackiges ein. Anyone else?
  23. Hast du schon die Excel-Funktion HYPERLINK() ausprobiert? Die unterstützt die optionale Angabe eines Link-Texts:
×
×
  • Neu erstellen...