Wolfgang Kotzbeck Posted December 22, 2022 Share Posted December 22, 2022 Hallo Community, ich bin ein Neuling bei smap und habe da eine Frage. Ist es möglich den letzten Wert der in ein Zahleneingabefeld getätigt wurde zu speichern. Der Grund ist die Möglichkeit beim Erstellen eines Fahrtenbuches den letzten km-Stand ohne aufwand sichtbar zu machen. Vielen Dank im Vorhinein 2 Link to comment Share on other sites More sharing options...
Steffen Haußmann Posted December 22, 2022 Share Posted December 22, 2022 Hallo Wolfgang, grundsätzlich geht so etwas, der Aufwand, welcher dafür betrieben werden muss, kann aber sehr unterschiedlich sein. Speichern der Eingaben in der Cloud erfolgt ja erst, wenn man auf senden klickt. Dann sind diese Daten vorhanden und können für eventuelle andere Sachen abgefragt werden. Auf dem jeweiligen Gerät werden die Eingaben vorher aber auch zwischengespeichert. Variante 1 könnte dann sein, dass man im Ablauf definiert, dass das Fahrtenbuch zum Beispiel wöchentlich, oder monatlich gesendet wird und innerhalb der Fahrtenbuchsmap die Daten dann dadurch immer vorhanden wären. Man könnte das Senden vorher auch unterbinden lassen mit einem Abgleich auf das Datum, damit dann wirklich nur einmal die Woche/Monat eins gesendet wird. Variante 2 wäre, dass der Nutzer in seiner App den letzten Bericht öffnet und sich dort die Zahl heraus holt. Für die letzten 30 Tage geht das ja ganz einfach am Gerät. (In der jeweiligen Smap die drei Striche anklicken und dann auf Übertragen. Variante 3 ist sicher die eleganteste, aber auch aufwendigste. Du lässt den Nutzer seinen Eintrag ausfüllen und senden. In deiner Smap baust du einen Datensatzauswahlbaustein ein, zum Beispiel mit den PKW-Daten(Kennzeichen, Marke, Kilometerstand) Durch das Sender der Daten sind die Smapeingaben dann in einer Tabelle, welche du dir im Smapportal unter Daten ansehen kannst. Jetzt kommen andere Programme ins Spiel wie Power Automate, Lobster usw. ins Spiel. Diese nehmen dann quasi die eingegebenen Daten, tragen den Kilometerstand in die Tabelle welche du im Datensatzauswahlbaustein eingebunden hast und aktualisieren diese Datei dann automatisch. Für diese Variante kannst du deinen Smapone-Ansprechpartner ansprechen, oder es mit Entwicklern deiner Firma angehen, wenn ihr so Automatisierungtool im Einsatz habt. Das ist halt stark abhängig wie die verfügbaren Ressourcen aussehen. Machbar ist es aber durchaus. Bin gespannt, ob jemand noch eine Variante 4,5 und 6 hat. Gibt ja meist nicht nur eine Möglichkeit um ans Ziel zu kommen. 2 2 Link to comment Share on other sites More sharing options...
_Moritz_ Posted December 22, 2022 Share Posted December 22, 2022 Danke @Steffen Haußmann! Variante 3 habe ich tatsächlich mal für den Fuhrpark eines Unternehmens umgesetzt. Und genau: Diese Variante ist nicht mit "den Bordmitteln" von smapOne realisierbar, sondern erfordert den Einsatz eines externen Tools (wie PowerAutomate, Lobster, Zapier, IFTTT, Make o.ä.) im Zusammenspiel mit unserer REST-API. 1 Link to comment Share on other sites More sharing options...
_Moritz_ Posted December 22, 2022 Share Posted December 22, 2022 Variante 4 könnte so etwas sein: Jedes Zahlenfeld hat ja einen Standard- bzw. Vorbelegungswert. Wenn man mit der smap immer nur ein Fahrzeug betrachtet, könnte man den jeweils aktuellen Kilometerstand als Vorbelegung in das Feld eintragen. Nach Absenden eines Datensatzes (der den neuen Kilometerstand beinhaltet), könnte man – ebenfalls wieder mit einem externen Tool plus smapOne REST-API – diesen neuen Wert als Vorbelegungswert in dem Feld hinterlegen. Bei mehreren Fahrzeugen ist Variante 3 die aus meiner Sicht sinnvollere Lösung. 1 Link to comment Share on other sites More sharing options...
Wolfgang Kotzbeck Posted December 23, 2022 Author Share Posted December 23, 2022 Vielen Dank Euch @Steffen Haußmann, @Moritz, nachdem es ein Fahrzeug ist (Feuerwehrfahrzeug) würde die Lösung mit der Vorbelegung (Variante 4) perfekt passen. Nun ist es aber so, wie schon in Anfangsbeitrag erwähnt bin ich ein Anfänger in smap und bräuchte somit Starthilfe was den Einsatz externer Tools betrifft und auch smapOne REST-API ist derzeit noch ein Fremdwort. Gib es Dokus dazu? Link to comment Share on other sites More sharing options...
Moritz Münzenmaier Posted January 2, 2023 Share Posted January 2, 2023 (edited) Hallo @Wolfgang Kotzbeck, ich glaube eine umfassende Beschreibung würden mindestens mal das Zeichenlimit des Posts hier sprengen. Ich versuche einmal ganz grob eine Fahrtrichtung vorzugeben, warne allerdings einmal vor: Das ist schon ein kleiner Berg an Wissen. Wenn du dich da selbst dran versuchen willst, dann sind die ersten Schritte die Grundlagen draufzuschaffen. Das Video beschreibt ganz gut die Grundlagen und Prinzipien einer Rest API allgemein - es gibt bei Youtube sicherlich auch fortgeschrittenere Tutorials: Die geschilderten Methoden (GET, POST, PUT, DELETE) findest du alle auch in unserer REST API Dokumentation unter: https://platform.smapone.com/Backend/swagger/ui/index In dieser Dokumentation kannst du auch die entsprechenden Routen und Befehle direkt ausführen: Ein Beispiel für das Ansprechen einer solchen API-Route, um einen Datensatzauswahlbaustein zu aktualisieren, findest du hier: https://faq.smapone.com/kb/guide/de/wie-kann-ich-meine-stammdaten-uber-die-api-aktualisieren-oK5G8uWJfS/Steps/730010 Der Rest ist dann eine gute Mischung aus googeln, Tutorials lesen und ausprobieren, würde ich sagen. Als Hinweis: Du benötigst wie von @Steffen Haußmann absolut richtig in Variante 3 beschrieben eine Software in der Mitte, die diese Routen für dich ausführt und die anzusprechende Route aus Variante 4 von @Moritz aus der API wäre die Route Smaps/Definition, da die Vorbelegung eines Feldes ein Teil des Aufbaus der smap ist. Edited January 2, 2023 by Moritz Münzenmaier 2 Link to comment Share on other sites More sharing options...
_Moritz_ Posted January 2, 2023 Share Posted January 2, 2023 @Wolfgang Kotzbeck da die Fragestellung gut generalisierbar ist (in etwa: "Wie kann ich Daten, die ich in einer smap eingegeben habe, für die weitere Datenerhebung mit in die smap aufnehmen?"), werde ich die Tage mal ein kurzes Tutorial entwickeln, so dass man das Beispiel gut nachvollziehen und -bauen kann. Der Hinweis mit dem Video von @Moritz Münzenmaier ist auf jeden Fall empfehlenswert, um sich allgemein in das Thema ein wenig einzudenken (à la Wenn man es nur nachbaut und nicht versteht, ist der Effekt für die eine smap vielleicht gegeben; wenn man aber gleich "das Angeln mitlernt", dann ist man auch für zukünftige smaps "satt" 😉) Link to comment Share on other sites More sharing options...
Solution _Moritz_ Posted January 3, 2023 Solution Share Posted January 3, 2023 @Wolfgang Kotzbeck ich habe mir den Prozess nochmal durch den Kopf gehen lassen. Variante 4 (Kilometerstand neu als Vorbelegung in das Zahleneingabefeld) ist die schwierigste Variante von allen (weil die Definition über die API anzupassen tatsächlich Köpfe zum Rauchen bringen kann). Ich sehe noch eine abgespeckte Variante, die vergleichsweise einfach umzusetzen ist: Und zwar können wir den neuen Kilometerstand nach Absenden eines Datensatzes abgreifen und als neuen Ausgangswert in eine Aufgabe zu schreiben. Diese Variante setzt allerdings voraus (zumindest dieses konkrete Szenario), dass die smap immer nur von einem User verwendet wird (damit immer klar ist, wem die Aufgabe zuzuweisen ist) und nicht mehrere unterschiedliche User auf die smap zugreifen. Das gesamte Szenario sieht in etwa wie folgt aus: Wir tragen den neuen Kilometerstand in der smap ein. Ein (zuvor einmalig in der API eingerichteter) Webhook sendet den Datensatz an einen Automatismus-Dienst (z.B. PowerAutomate). Der Automatismus extrahiert aus den übermittelten Daten den neuen Kilometerstand... ... und erzeugt eine neue Aufgabe mit diesem neuen Kilometerstand als neuem Ausgangswert für die nächste Fahrt. Aber die Schritte im Einzelnen und was dafür zu tun ist: Um einen Datensatz absenden zu können, muss natürlich die smap dafür existieren und ein entsprechendes Zahleneingabefeld beinhalten. Für unseren Szenario nenne ich diesen Baustein {Kilometer_neu}. Für den nächsten Schritt ist es erforderlich, dass wir über die REST-API einen Webhook einrichten. Ein Webhook informiert ein externes HTTPS-Ziel darüber, dass ein neuer Datensatz eingegangen ist und sendet diesen (sofern entsprechend konfiguriert) direkt mit an das Ziel. ➡️ FAQ: Welche Funktion hat ein Webhook und wie verwalte ich sie? Damit der Webhook die Daten sinnvoll an das HTTPS-Ziel übergeben kann, muss dieses natürlich existieren. Also muss hierzu entweder selbstständig ein HTTP-Server betrieben werden oder alternativ Cloud-Systeme wie PowerAutomate oder Zapier eingesetzt werden. Für mein Beispiel habe ich einen PowerAutomate "Flow" entwickelt (so heißen Algorithmen, mit denen bei PowerAutomate automatisiert/integriert wird). Dieser Flow führt folgende Schritte durch Entgegennehmen des Webhooks (in dieser Action wird auch eine URL erzeugt, die dann als HTTPS-Ziel verwendet werden kann) Hinterlegen der smapID. Hinterlegen des API-Tokens (siehe ➡️ FAQ REST-API-Token verwalten). Abrufen der letzten/aktuellen smap-Version (um später die Aufgabe für die richtige Version zu verteilen). Extrahieren der smapVersion aus vorherigem Abruf. Extrahieren des neuen Kilometerstands aus den Daten des per Webhook erhaltenen Datensatzes. Eintragen des neuen Kilometerstands (in das Feld "Kilometerstand alt") und Abenden/Zustellen als Aufgabe. ➡️ FAQ: Die Aufgabenfunktion einer smap: Wie ermögliche, erstelle und verwalte ich Aufgaben? Die Schritte im Einzelnen zu erklären, geht über diesen Thread hinaus. Ich werde in Zukunft in (Video-)Tutorials zeigen, wie man die o.g. Varianten oder dieses Szenario hier mit Hilfe von PowerAutomate umsetzen kann. Ich stelle den Flow aber gerne als Export zum Download und Import in den eigenen PowerAutomate-Account zur Verfügung: TutorialKilometerstand_PowerAutomate.zip Der PowerAutomate-Flow hat nun via die smapOne-API eine Aufgabe erzeugt, die dem ursprünglichen Absender eine Aufgabe erzeugt, in der der neue Kilometerstand als Wert im neuen Kilometerstand-Feld eingetragen ist. So sieht das Ganze dann im Einsatz aus: ... PowerAutomate rödel, tut und macht; beschafft sich den alten Wert und trägt ihn in das Feld für den neuen KM-Stand ein... ... und siehe da, wir haben eine Aufgabe, in der der neue Kilometerstand auf Basis des alten Werts eingetragen wurde: ... und in der smap selber ist der Wert natürlich auch schon eingetragen (kann aber auch korrigiert werden): Tadaaaa: Easy as that... 😉 4 1 Link to comment Share on other sites More sharing options...
_Moritz_ Posted January 3, 2023 Share Posted January 3, 2023 Einige Hinweise: Die Aufgabenfunktion ist hier sicher nicht so gut geeignet, wie Variante 3 (Daten werden in einem DSAB hinterlegt) oder Variante 4 (Vorbelegung des Zahlenfeldes über die smap-Definition). Dieses Beispiel über die Aufgabenfunktion ist aber für einen Automatisierungsanfänger sicherlich einfacher zu verstehen und umzusetzen als die anderen. Für die Variante 3 (mit einem DSAB) gibt es ein Step-by-Step-Tutorial, wie ein DSAB per Automatismus angepasst werden kann (➡️ FAQ: Wie kann ich meine Stammdaten über die API aktualisieren?). Die Variante 3 ist die Synthese aus dem von mir bereitgestellten Flow als ZIP in Kombination mit dem FAQ-Tutorial - es muss dann nur der letzte Schritt der Aufgabenerzeugung durch die Schritte im FAQ-Tutorial ersetzt werden. Ich werde in Zukunft Tutorials zum "Power Usen" von smaps und der API erstellen, darin dann auch die Varianten 3 (DSAB) und 4 (über die Definition) demonstrieren. Für die Hacker unter euch: Sowohl der Flow ist deaktiviert, ihr könnt mit einer URL, falls ihr sie findet, nichts mehr anfangen. Und na klar, ich habe auch mein API-Token refreshed, so dass das in der ZIP enthaltene Token ungültig ist! 😉 Wer die smap haben möchte, kann sich innerhalb von 7 Tagen (ab jetzt, 03.01. 12 Uhr) die Kopie ziehen und importieren: https://platform.smapone.com/ImportSharedApp/4e2d9fcc-3a97-4b50-b4fc-808d532a7edb/4f3c93c4002ab676cea521976c07e56f2a54d467?lang=de 2 Link to comment Share on other sites More sharing options...
Elisa Philipps Posted January 3, 2023 Share Posted January 3, 2023 @Moritz mega!! Danke für den grandiosen und ausführlichen Beitrag. Werde ich mich gleich mal dran setzen! 2 1 Link to comment Share on other sites More sharing options...
Wolfgang Kotzbeck Posted January 3, 2023 Author Share Posted January 3, 2023 Zuerst mal ein gutes neues Jahr der ganzen Community!! @Moritz, @Moritz Münzenmaier, @ Steffen Haußmann -- Ihr seid wirklich der Hammer! Vielen, vielen Dank für EURE Unterstützung. Ich glaube das dieses Thema auch für andere Sehr Interessant ist. Nochmals vielen DANK 3 2 Link to comment Share on other sites More sharing options...
_Moritz_ Posted January 3, 2023 Share Posted January 3, 2023 @Wolfgang Kotzbeck vielen Dank, das geht ja runter wie Öl! 😄❤️ Schau mal, ob du mit der Anleitung etwas anfangen kannst. Wie schon gesagt, ich gieße das auch nochmal in ein nachklickbares Video-Tutorial, das ist dann ggf. noch einfacher nachbaubar... 2 1 Link to comment Share on other sites More sharing options...
Recommended Posts
Please sign in to comment
You will be able to leave a comment after signing in
Sign In Now