Solution Moritz Posted November 15, 2022 Solution Share Posted November 15, 2022 Ich wurde einmal gefragt, ob bzw. wie es möglich sei, Inhalte aus QR-Codes in verschiedene Felder aufzutrennen. Zugegeben, das ist nicht trivial. Aber mit Hilfe unserer Formeln und Ergebnisbausteinen können wir uns das Ergebnis zusammenschustern. Beispielsweise beinhaltet dieser QR-Code... ... den folgenden Textinhalt: Moritz|Hesse|moritz.hesse@smapone.com|https://forum.community.smapone.com/profile/58-moritz-hesse/ Also zunächst einmal meinen Vornamen, Nachnamen, Emailadresse und Link zu meinem Profil hier in der Community. Alle jeweils getrennt durch ein "|" ("Pipe"). Diese vier Einzelwerte kann ich mir nun auf vier eigenen Ergebnis- oder auch Eingabefelder aufsplitten, so dass die Daten nicht nur "diskret" im QR-Code hinterlegt, sondern auch für uns Menschen lesbar und weiterverarbeitbar sind. Wenn ich das ganze nun in einer smap abbilden möchte, dann muss ich mit einigen Zwischenschritten arbeiten. Der Einfachkeit halber lege ich diese Zwischenschritte im Folgenden in eigene Ergebnisfelder. Da diese Zwischenwerte in einem echten Datensatz allerdings nicht benötigt werden, kann man die Formeln auch enstprechend verdichtet ohne Zwischenergebnisfelder aufbauen (bei Interesse einfach mal bei mir nachfragen, wie das geht). Sodenn, los geht's: Klar, die smap benötigt natürlich zunächst einmal einen Codescanner-Baustein. Als nächstes erstellen wir einen Textergebnisbaustein, in den wir die folgende Formel einfügen: TEXTPOS({CodeScanner}, "|") Diesen Baustein nenne ich {Pipe_pos_1}, da er die Position des ersten Pipes in dem Text zurückgibt. Dieses Ergebnis, also diese Zahl kann ich nun verwenden, um im nächsten Schritt aus dem Codescanner-Inhalt meinen Vornamen zu extrahieren. Denn wir wissen: Alles bis zum ersten Pipe ist der Vorname. Also nehmen wir die Formel... SUBTEXT({CodeScanner}, 0, SUB({Pipe_pos_1}, 1)) ... und erhalten damit bereits sauber extrahiert den Vornamen. Da wir das Pipe-Trennzeichen selber nicht mitnehmen wollen, subtrahiere ich von der Positionsnummer noch eine 1. Um die weiteren Felder zu extrahieren, muss ich zunächst den "Rest-Text" ermitteln. Das mache ich, indem ich einfach den Text vom ersten Pipe bis zum Ende des Codescanners extrahiere: SUBTEXT({CodeScanner}, ADD({Pipe_pos_1}, 1), LENGTH({CodeScanner})) Und diesen Rest werte ich nun nach dem gleichen Schema aus, wie ich das schon initial mit dem Vornamen gemacht habe: Ich ermittle die Position des zweiten Pipes in dem vorhandenen Rest-Text. TEXTPOS({Rest_1}, "|") Und mit Hilfe dieser Position kann ich nun auch den Nachnamen extrahieren: SUBTEXT({Rest_1}, 0, SUB({Pipe_pos_2}, 1)) Die Emailadresse wird wieder nach dem gleichen Verfahren extrahiert, nun einfach ein Pipe "später": Dazu ermittle ich den Rest ohne Vor- und Nachname in ein Textfeld... SUBTEXT({Rest_1}, ADD({Pipe_pos_2}, 1), LENGTH({Rest_1})) ... dann ermittle ich wieder die Position des nächsten (und letzten) Pipes in ein Zahlenergebnisfeld... TEXTPOS({Rest_2}, "|") ... und kriege die Emailadresse als Subtext zwischen Anfang und Pipe: SUBTEXT({Rest_2}, 0, SUB({Pipe_pos_3}, 1)) Um am Ende die URL zu meinem Community-Profil zu extrahieren, brauchen wir nur noch den Rest, reduziert um das letzte noch vorhandene Pipe. Die Formel ist also die gleiche wie oben, um den jeweils noch übrigen Rest zu ermitteln: SUBTEXT({Rest_2}, ADD({Pipe_pos_3}, 1), LENGTH({Rest_2})) Das Resultat der ganzen Initiative sollte dann in etwa so aussehen: Beziehungsweise, wenn ihr (sinnvollerweise) die Zwischenschritte ausblendet ("Den Baustein in der App nicht anzeigen") oder (noch besser) direkt ohne Zwischenschritte arbeitet, dann sollte euer Ergebnis so oder so ähnlich aussehen: Na, bis hierhin durchgehalten? Gratulation, du bist ein echter smappie! 😉 Wenn du dir diese Lösung gerne einmal in einer fertigen smap in deinem eigenen Designer ansehen möchtest, schick mir eine kurze Nachricht, dann lasse ich dir diese Beispielsmap als smap-Kopie zukommen. 6 4 Link to comment Share on other sites More sharing options...
Britta Köhler Posted November 15, 2022 Share Posted November 15, 2022 Absoluter Pro-Hack - so gut! Danke dir für's Teilen 🚀 2 1 Link to comment Share on other sites More sharing options...
Moritz Posted November 15, 2022 Author Share Posted November 15, 2022 Das aus deinem Munde (für alle unwissenden Mitleser, Britta ist ebenfalls Mitglied in der Tafelrunde der Formelninja 😉) adelt mich natürlich spontan – hab Dank! 🤗 1 Link to comment Share on other sites More sharing options...
Johanna Becker Posted November 16, 2022 Share Posted November 16, 2022 vor 18 Stunden schrieb Moritz Hesse: Das aus deinem Munde (für alle unwissenden Mitleser, Britta ist ebenfalls Mitglied in der Tafelrunde der Formelninja 😉) adelt mich natürlich spontan – hab Dank! 🤗 🥷 Link to comment Share on other sites More sharing options...
Flo Dietrich Posted November 16, 2022 Share Posted November 16, 2022 Hej @Moritz HesseHast du noch ein Anwendungsbeispiel/einen praktischen Fall dafür? Was könnte man damit lösen? LG Flo Link to comment Share on other sites More sharing options...
Moritz Posted November 18, 2022 Author Share Posted November 18, 2022 @Flo Dietrich wir hatten uns dieses Verfahren einmal für einen Produzenten angesehen, der in QR-Codes Stammdaten für seine Produktionsstätten hinterlegt hat. Mit Hilfe von QR-Codes kannst du komplexe Daten (ich nenne durch ein Zeichen getrennte Texte hier einfach mal "komplex") in die smap einbringen (und dann halt auch auf die Felder aufsplitten, so dass du mit den Daten arbeiten kannst), ohne dass du die Daten vorher in die smap importieren musstest (z.B. über einen Datensatzauswahlbaustien) und auch ohne Erfordernis der Anbindung an ein externes Datenhaltungssystem. Ergo: Du kannst damit halt sehr schnell, einfach und effektiv Daten (sowohl Stammdaten als auch transaktionale Daten) "von außen" in die smap einbringen und weiterverarbeiten. 1 Link to comment Share on other sites More sharing options...
Marco Föttinger Posted November 24, 2022 Share Posted November 24, 2022 @MoritzEin Usecase, welcher auch immer wieder vorkommt, doch häufig fehlen die Ideen zur Umsetzung. In dem Sinne, sehr starker Post! und verdammt gut erklärt 🚀 1 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