Zum Inhalt springen

Moritz Münzenmaier

smap Experts
  • Gesamte Inhalte

    55
  • Benutzer seit

  • Letzter Besuch

  • Tagessiege

    12

Alle Inhalte von Moritz Münzenmaier

  1. Hallo @René Röder, ich hoffe ich habe die Frage richtig verstanden. Ohne Eingabe können wir uns nicht das aktuelle Datum ausgeben lassen und leider auch keinen Zeitpunkt berechnen (lediglich die Dauer), aber wenn ich es richtig verstehe, dann gibt es in der smap bereits einen Zeitstempel oder Datumsbaustein? Diesen können wir auseinanderpflücken und darauf referenzieren. Dafür ist eine "kleine" Formel notwendig, wenn es um die Ausgabe des gleichen Tages, ein Jahr später, geht. IF(EQUALS(SUBTEXT(TEXT({Timestamp}),9,2),"23"),CONCAT(LEFT(TEXT({Timestamp}),8),"24"), IF(EQUALS(SUBTEXT(TEXT({Timestamp}),9,2),"24"),CONCAT(LEFT(TEXT({Timestamp}),8),"25"), IF(EQUALS(SUBTEXT(TEXT({Timestamp}),9,2),"25"),CONCAT(LEFT(TEXT({Timestamp}),8),"26"), IF(EQUALS(SUBTEXT(TEXT({Timestamp}),9,2),"26"),CONCAT(LEFT(TEXT({Timestamp}),8),"27"), IF(EQUALS(SUBTEXT(TEXT({Timestamp}),9,2),"27"),CONCAT(LEFT(TEXT({Timestamp}),8),"28"), IF(EQUALS(SUBTEXT(TEXT({Timestamp}),9,2),"28"),CONCAT(LEFT(TEXT({Timestamp}),8),"29"), IF(EQUALS(SUBTEXT(TEXT({Timestamp}),9,2),"30"),CONCAT(LEFT(TEXT({Timestamp}),8),"31")))))))) Diese Formel sucht sich die letzten beiden Stellen des Jahres (Stelle 9 und 10 des Datums), vergleicht diese mit den Jahren 23-30 und gibt dann die Jahre 24-31 aus und verbindet diese dann mit den ersten 8 Stellen des Datums (TT.MM.JJ). Damit hat man ein Feld, dass bis inklusive des 31.12.2030 funktioniert. Während ich das geschrieben habe, ist mir aufgefallen, dass die Formel noch deutlich verschlankt werden könnte - wer herausfindet wie genau, dem gibt @Thomas Hoffmann auf dem smapland Festival ein Kaltgetränk seiner Wahl auf meinen Deckel aus. Mitarbeiter von smapOne und deren Verwandte sind vom Gewinnspiel ausgeschlossen.
  2. Hallo @Kai Sandmeyer, es gibt leider zur Zeit keine Möglichkeit, dass man Einträge einer Wiederholungsgruppe kopieren oder duplizieren kann. Meine einzige Idee wäre es die smap umzubauen, dass man die Auswahl der Baustelle aus der Wiederholungsgruppe herausholt und dem Anwender oben in der smap die Entscheidung überlässt, ob er für eine einzelne oder für mehrere Baustellen seine Zeit dokumentieren möchte (1). Wenn er also oben in der smap "eine Baustelle" auswählt, dann blendet sich das Feld außerhalb der Wiederholungsgruppe ein (2) und wird in ein Ergebnisfeld innerhalb der Wiederholungsgruppe übergeben. Wenn er "mehrere Baustellen" auswählt, dann blendet sich das Feld innerhalb der Wiederholungsgruppe ein (3). Beide Felder werden im versteckten Ergebnisfeld konsolidiert, um dort im Bericht oder per Datenabfrage darauf zuzugreifen (4). Die Herausforderung ist, dass es eine "entweder oder"-Entscheidung ist. Aber es würde denjenigen, die wirklich nur auf einer Baustelle arbeiten die Arbeit erleichtern. Man könnte wahrscheinlich auch etwas basteln, wenn beides innerhalb einer Erfassung vorkommen kann - also mehrere Tage auf einer Baustelle und weitere einzelne Baustellen. Dafür müsste man aber mit mehreren Wiederholungsgruppen hantieren. Edit: Das was @Moritz sagt, nur mit einer zusätzlichen Auswahl, also daher komplizierter. 😄
  3. Hallo in die Runde, da ich das Thema eben in der Diskussion mit einem Kollegen hatte, möchte ich hier einmal ein Szenario teilen, dass ich gemeinsam mit einem Kunden umgesetzt habe. Konkret geht es um die dynamische Beschriftung von Wiederholungsgruppen in Verbindung mit Aufgaben, um eine Liste von abzuarbeitenden Objekten zu generieren, über die derjenige, der diese abarbeitet, einen Überblick hat. Die Zielsetzung ist es also, dass bspw. der Disponent dem Nutzer eine Art erweiterte Checkliste gibt, damit dieser weiß welche Tätigkeitsschritte er im Rahmen des Einsatzes durchzuführen hat. Ein kurzes Video gibt es zum Schluss, da es wirklich kompliziert zu beschreiben ist 😄 Wir beginnen mit einer Wiederholungsgruppe und dem Feld "dynamische Beschriftung" Wichtig ist hier zu wissen, dass die dynamische Beschriftung dafür verwendet wird, um Inhalte aus der Wiederholungsgruppe außerhalb der Wiederholungsgruppe im Bezeichner des Eintrags darzustellen. Ebenfalls wichtig zu wissen ist, dass wir hier auch mit IF-Bedingungen arbeiten können, also die Darstellung verändern können, je nachdem was innerhalb oder außerhalb der Wiederholungsgruppe ausgewählt wurde. In diesem konkreten Fall möchten wir den Wiederholungsgruppen-Eintrag mit "OFFEN" kennzeichnen, solange noch nicht die Checkbox bei "Aufgabe erledigt" angehakt wurde. Im Umkehrschluss möchten wir bei Anhaken des Erledigt-Status den Eintrag mit "ERLEDIGT" kennzeichnen. Was wir nun also tun ist innerhalb der dynamischen Beschriftung "Fragen zu stellen" in welchem Prozessschritt wir uns gerade befinden. In Textform steht da: "Wenn wir in der Planungsphase sind und die Checkbox "Aufgabe bearbeitet" noch nicht angehakt ist, dann benenne die Wiederholungsgruppe mit ERSTELLT und dem Feld Select" ANSONSTEN "Wenn wir in der Bearbeitungsphase sind und die Checkbox "Aufgabe bearbeitet" angehakt ist, dann benenne die Wiederholungsgruppe mit ERLEDIGT und dem Feld Select" ANSONSTEN "Benenne die Wiederholungsgruppe mit OFFEN und dem Feld Select" Das Ergebnis sieht folgendermaßen aus: In der Aufnahme durch den Disponenten: Nun stellt er um auf Bearbeitung und leitet die Aufgabe weiter an den Nutzer. Dieser wird von folgendem Datensatz begrüßt Und im Zuge der Bearbeitung ändert sich durch das Bearbeiten der einzelnen Einträge die Maske In meinem konkreten Fall habe ich die Formel noch erweitert um "ERSTELLT", solange der Datensatz noch beim Disponenten liegt und das ganze mit Emojis aufgehübscht, wie in Marcos Post vorgeschlagen. Natürlich lässt sich die Benennung auch noch erweitern - das bestimmte Eingaben hier auch eine komplett andere Benennung auslösen. Und nun, wie versprochen das kurze Video im Einsatz - es ist irgendwie sehr groß und ich kann die Größe nicht verändern. 2023-03-14_17h25_39.mp4
  4. Die Fehlermeldung liegt daran, dass Excel in der Hyperlink-Funktion lediglich 255 Zeichen verarbeiten kann, der zusammengebaute Link auf die oben genannte Art allerdings ca. 300 Zeichen hat. Ich kann hier leider nur den Grund für die Fehlermeldung mitteilen, habe hier selbst auch noch keine Lösung dafür gefunden. 😞
  5. Ich habe es eben mal durchprobiert mit allen möglichen Wildcards, davon hat nichts funktioniert. 😞 Wenn ich jetzt dringend eine Lösung bräuchte, dann wäre der einzige Lösungsansatz für den konkreten Fall mir das Zeichen herauszusuchen, dass sich alle Einträge, die Daten haben, teilen. In dem konkreten Fall wäre das wohl das @-Zeichen und damit diese Bedingung Funktioniert auch bei einem Datums-Feld, bspw. mit einem Leerzeichen oder einem Punkt. "Ist leer" und "ist nicht leer" halte ich ebenfalls für deutlich pragmatischer als meinen untenstehenden Lösungsansatz. Ich gebe es mal an die Kollegen aus dem Produktmanagement weiter, mit Referenzierung auf diesen Post hier.
  6. Hi @Ina Roth, ich antworte einfach mal an deiner Frage vorbei - wenn mein vorgeschlagener Weg bei euch nicht umgesetzt werden kann aus Gründen, die mir nicht bekannt sind, dann sag einfach Bescheid. Meine Faustformel ist immer so wenige Formeln wie möglich im Bericht zu verorten. Meine Empfehlung ist es die Bedingung für die Warnung nicht einmal im Bericht und einmal in der smap zu pflegen, sondern den Hirnschmalz, den du in der Formel der smap schon reingesteckt hast auch im Bericht zu nutzen. Damit meine ich, dass du in der smap Aktivierungsregeln auf Textergebnisfelder setzt und im Bericht einfach nur diese Textergebnisfelder ausgibst, ohne Bedingung oder weiteres. In deinem ersten Beispiel wäre dies ein Textergebnisfeld mit folgendem Inhalt: CONCAT("ACHTUNG! \n\nFolgender Mitarbeiter ist in der Auswahlliste nicht vorhanden:\n\nName: ",{Textbox_2},"\nPersoNr.: ",{Textbox_3},"\n\nEine Info an das SmapOne Team wird nun generiert. Die Datensatzliste im Hintergrund der Smap wird aktualisiert, so dass eine Auswahl des Mitarbeiters zu einem späteren Zeitpunkt möglich ist.") Dabei gilt es natürlich {Textbox_2} und {Textbox_3} durch die entsprechenden Variablen aus deiner smap zu ersetzen. Auf dieses Feld legst du deine Aktivierungsregel mit den vordefinierten Bedingungen, die du ja schon fertig definiert hast. Im Bericht fügst du nun lediglich das Ergebnisfeld an der Stelle ein, wo dieser Text stehen soll. Fall 1 - Das Feld ist deaktiviert: Dieser Text wird nicht angedruckt und generiert auch keine Leerzeile Fall 2 - Das Feld ist aktiviert: Der Text wird entsprechend der hinterlegten Formatierung im Bericht angedruckt: Damit spart man sich dieses Formeln nachbauen im Bericht und kann, wenn man ein Feld hinzufügt, dass ebenfalls im Bericht auftauchen soll, dieses in den Ergebnisbaustein verfrachten. Analog dazu die Textausgabe des zweiten Texts mit einer eigenen Aktivierungsregel befüllen und direkt darunter in den Bericht einfügen. Ist einmalig etwas Aufwand sich mit der CONCAT-Formel zu beschäftigen, macht aber später das Leben wirklich leichter.
  7. @Moritz Ich glaube, dass wir hier tatsächlich in so eine klassische "Sehr große Kanonen auf Spatzen"-Situation kommen. Ich habe die Wochentagsberechnung noch nie sinnvoll in einer smap untergebracht, da sie echt ein wenig "sperrig" (Achtung Euphemismus) ist 😄 Um vielleicht mal an dieser Stelle eine Sneak-Peak zu geben: Das hier ist die Abbildung der von @Michael Klausoben genannten Formel: Und wenn man die ganzen Umwandlungen der einzelnen Datums-Bestandteile in Zahlen erledigt hat hat, dann entspricht das hier: dem hier: Aber wir kommen nicht drumherum, dass wir einige "unterstützende" Bausteine vorher haben. Da finde ich den Ansatz von @Alexander Husser deutlich pragmatischer. 👌
  8. @Silke Jung: Sehr gerne! 🙂 Bei Aufzählungszeichen muss ich dann leider, schweren Herzens, auch abwinken. Wenn da bei euch jetzt wirklich ein großer manueller Aufwand dranhängt, dann könnte man da sicherlich was mit TEXTPOS und Textergebnisfeldern basteln, aber ich glaube da sind wir dann recht schnell bei so einer klassischen "Kanonen auf Spatzen"-Situation. Dann doch lieber in den aktiven Dialog mit dem Produktmanagement eintreten, oder was meinst du @Bastian Kohlmeyer? 😉
  9. @Sandra Wecke: Ich hatte mal eine ähnliche Anfrage bei einem meiner Kunden - dort muss auf ein Förderband auf einer Strecke von ein paar Kilometern abschnittsweise kontrolliert werden (Jeder Abschnitt war x Meter lang und hatte einen eindeutigen Identifizierer in Form eines QR-Codes). Für die Dokumentation/Haftung war damals wichtig, dass nachgewiesen wurde wann welcher Abschnitt kontrolliert wurde. Ein solches Förderband hatte gerne mal 50+ Abschnitte, die kontrolliert wurden. @Holger Sprenz: Uns ist damals keine andere Lösung eingefallen als über den Zeitstempel zu gehen, also genau so wie ihr es auch gerade macht. Ich hatte kurz nachgeschaut, ob es über einen Online-QR-Code mit Tracking sinnvoll funktioniert, aber das hat alles nur schlechter gemacht 😄
  10. @Moritz: Du warst schon auf dem richtigen Dampfer und hast mir damit das Ticket zu ebendiesem Dampfer gelöst. Die weichen Zeilenumbrüche sind halt nur im Textfeld, dadurch muss man dem gesamten Dokument sagen, wie es damit umzugehen hat, da wir das innerhalb eines Textfeldes nicht getrennt einsteuern können. 🙂
  11. @Silke Jung: In Word auf Datei > Optionen Menüpunkt Erweitert - ganz runter bis zu den Layout-Optionen > Haken setzen bei "Zeichenabstände in Zeilen, die mit UMSCHALT + EINGABE enden, nicht erweitern". Unten die Ergebnisse meines Tests 🙂
  12. @Henrik RheinschmidtDen Dateinamen der PDF kann man nicht als Variable für die dynamische Beschriftung verwenden. Die einzige Variante die mir einfallen würde, wäre dort ein zusätzliches Feld (vielleicht eine Einfachauswahl zur Klassifizierung des Dokumententyps) unterzubringen und dann über diese Einfachauswahl eine dynamische Beschriftung abzubilden. Das ist zwar eine zusätzliche Eingabe, aber das lässt sich meiner Meinung nach an dieser Stelle nicht vermeiden, da es keine Möglichkeit gibt nur anhand des Uploads eines Dokuments eine Eindeutigkeit herzustellen.
  13. Schöner Beitrag und spannende Frage! Das ist ja fast schon eine philosophische Frage und irgendwie ein Henne-Ei Problem 🙂 In meiner Wahrnehmung bedingt das eine das andere. Mir kam als erstes das komplett übermäßig benutzte Bild des Hausbaus in den Sinn. Aber bevor ich jetzt auf den gleichen Zug aufspringe und anfange von "soliden Fundamenten" und "stabiler Bausubstanz" herumzufabulieren, versuche ich mal die Essenz zu extrahieren. Ich glaube dass man beide Bereiche parallel entwickeln sollte und zwar immer bis man an einen Punkt kommt, wo man nicht weiterkommt. Vielleicht am besten vergleichbar mit dem Prinzip der gläsernen Decke. Als Unternehmen, dass sich weiterentwickeln möchte, sieht es nach oben so aus, als ob der Weg frei ist. Alle sprechen von Prozessen und Kulturen und man denkt sich die ganze Zeit "Hey, das klingt super! So wollen wir das auch machen!" und klettert drauf los. Alle möglichen Buzzwords prasseln auf einen ein. Fehlerkultur, agiles Vorgehen, Prozessautomatisierung, KI, usw. Und alles klingt irgendwie spannend und soll am besten "bei uns auch so gemacht werden". Und da stößt man dann eben an die oben genannten gläsernen Decken - und zwar sowohl bei Systemen und Prozessen als auch in der Organisationskultur. Und vor allen Dingen nicht immer gleichzeitig in beiden Bereichen. "Wir möchten Fehler- und Feedbackkultur etablieren!" - "Huch, wir haben die gläserne Decke, dass wir jahrelang Mitarbeiter abgestraft haben, die Fehler gemacht haben und nun jeder Fehler unter den Teppich gekehrt wird". "Wir möchten schnell und flexibel handlungsfähig sein und die Durchlaufzeiten unserer Prozesse verkürzen" - "Huch, wir haben die gläserne Decke, dass unsere Software 35 Jahre alt ist und es gerade einen Lieferengpass bei 3,5' Disketten gibt". Und diese gläsernen Decken greifen eben auch ineinander - der Wunsch nach einer Weiterentwicklung der Unternehmenskultur kann eine gläserne Decke bei den Systemen und Prozessen aufzeigen, und umgekehrt. Daher kann man in meiner Wahrnehmung nicht zuerst das eine und dann das andere machen. Was man sich allerdings auch immer als Unternehmen bewusst machen muss, ist, dass das was man "so hört" voll in den Survivorship-Bias reinschlägt. Für jedes erfolgreiche Unternehmen, dass diese Transformationen nach außen kommuniziert, gibt es etliche die es eben nicht kommunizieren, da die Transformation nicht in dem Maße oder Ablauf geglückt ist, wie sie mal geplant war. Und die bei denen es geglückt ist, kommunizieren ja nun auch meistens nicht den steinigen Weg dorthin. Und das ist eben das Problem, warum diese Decken so gläsern sind. Was man, meiner Meinung nach, als Unternehmen lernen muss, ist es entsprechende Nothämmer (Ja, die Dinger, die in Bussen und Zügen hängen) bereitzustellen, um eben diese gläsernen Decken einzuschlagen, um dann zur nächsten hochzuklettern. Meistens sind diese Hämmer die richtigen Menschen an den richtigen Positionen. Irgendwie bin ich jetzt doch wieder bei einem Bild gelandet, dass zumindest sehr nah am Hausbau ist 😄 Bin gespannt auf andere Meinungen dazu.
  14. @Holger Sprenz: Da verstecken sich ja sozusagen zwei Fragen 🙂 1. Die angepasste Formel: Nehmen wir an die Startzeit der Arbeit ist {DateTime_10} und der Endzeitpunkt ist {DateTime_11} Dann ist die Erweiterung der oben stehenden Formel: ROUND(IF(AND(GREATERTHANOREQUAL(TOTALHOURS(SUB_DATE({DateTime_11},{DateTime_10})),6),LESSTHAN(TOTALHOURS({ResultPeriod}),0.5)),0.5,TOTALHOURS({ResultPeriod})),2) Damit findet die Rundung erst statt, wenn die Differenz der Arbeitszeiterfassung in Stunden >= 6 ist UND weniger als 0,5 Stunden Pause erfasst wurden. Wenn eine der beiden Bedingungen nicht erfüllt wurde, entfällt das Aufrunden. Damit sparst du dir die Extra-Felder und hast in der Powerquery immer ein Feld, dass den richtigen Pausenwert ausgibt. Im Prinzip hast du das eigentlich schon mit dem Einblenden der Gruppe gemacht. Habe nur beides verbunden 🙂 2. Die Gruppe wird in der Query vermutlich nicht angezeigt, da sie später hinzugefügt wurde (Schuss ins Blaue). Falls dem so ist, dann ist die Vorgehensweise folgende: Datenbindung in Excel erneut öffnen (per Doppelklick) im Query auf der rechten Seite in die "angewendeten Schritte" zurück auf den Schritt "Erweitere Column1.data" (Doppelklick) -> In diesem Schritt sollte irgendwo ein "mehr laden" stehen. Da drauf klicken, kurz warten, und dann sollte die Repeatgroup in der Liste sein. Anklicken und "OK". Dann wieder bei den "angewendeten Schritten" in den letzten Schritt springen, die Repeatgroup in der Tabelle suchen und auf den kleinen Doppelpfeil neben dem Spaltennamen klicken. Dort dann "auf neue Zeilen erweitern", dadurch wird eine Zeile pro Wiederholungsgruppeneintrag generiert. Dann erneut auf den Doppelpfeil klicken und dann solltest du die Felder der Wiederholungsgruppe auch auswählen können.
  15. Hallo @Philip Alvermann, da das für uns auch neu war, habe ich da eben mal mit @Marco Föttinger erfolgreich Spurensuche betrieben. Das Feature zum Abstellen der Signatur ist nun für euren gesamten Account aktiviert. Ihr könnt diese Einstellung nun vornehmen unter "mein Profil" an der Stelle in der bei mir im Account gähnende Leere prangt. Nachtrag: @Alle die das verspätet lesen und ebenfalls auf der Suche nach der Option sind: Unser Support kann das Thema für euch lösen, indem ihr einfach ein Ticket eröffnet unter support@smapone.com oder euren Customer Success Manager / Customer Onboarding Manager ansprecht.
  16. 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.
  17. @Holger Sprenz: Ich ergänze einfach mal die direkte Umsetzung im Ergebnisfeld als dritte Variante zu den beiden von @Moritz 🙂 IF(LESSTHAN(TOTALHOURS({ResultPeriod}),0.5),0.5,TOTALHOURS({ResultPeriod})) Damit sagst du dem Ergebnisfeld, dass mindestens 0,5 Stunden errechnet werden sollen, wenn die dokumentierte Pausenzeit weniger als 0,5 ist. Wenn es mehr ist, dann nimmt er direkt die dokumentierte Pausenzeit. Gerne wird hier auch noch die 6-Stunden-Regel dazu untergebracht, also mit einer zusätzlichen Bedingung ermittelt, dass diese Pausenzeitregelung nur angewendet werden soll, wenn die dokumentierte Arbeitszeit 6 Stunden überschreitet (da eben dann eine halbe Stunde minimale Pause vorausgesetzt ist). Falls daran Bedarf ist, dann gerne einfach nochmal eine kurze Info geben.
  18. Moin @Robert Hüben, du hast zwar einen anderen Moritz gefragt, aber da wir alle mit diesem Vornamen eh so eine Art Kollektivbewusstsein sind, würde ich stattdessen antworten. Wenn es konkret um die Anforderung aus deinem Post geht, dann würde das mit diesem wundervollen Workaround meines Kollegen Jan funktionieren: Diese versteckte Regel auf die Checkbox anwenden und die Aufgaben können nicht ohne diesen Haken abgesendet werden. Allerdings möchte ich noch eine andere Lösung vorschlagen, die sich in meiner Wahrnehmung für den Anwender nicht groß unterscheidet, allerdings in der Administration deutlich geschmeidiger ist. Dazu einfach eine Gruppe für die Historie verwenden und dort die unscheinbare Option "Als Unterseite" anwenden. Die Darstellung in der smap sieht dann so aus. Anstatt des An- und Abhakens zum Einblenden, klickt der Anwender in die Unterseite hinein, um sich die Fotos anzuschauen: Nach dem Reinklicken in die Gruppe kann sich der Anwender die kitschigsten Weihnachtsbilder aller Zeiten anschauen (oder aber natürlich auch sinnvolle Bilder) und über den Pfeil oben links in der Ecke wieder zurück in die Hauptansicht.
  19. Hallo zusammen, da es immer mal wieder vorkommt, dass man innerhalb einer smap mehrere Teilvorgänge hat, aber der Erfassende in dem Moment der Erfassung vielleicht keinen Überblick darüber hat, welche Teilvorgänge in diesem Erfassungsvorgang eine Rolle spielen, kann man den Datensatzauswahlbaustein an dieser Stelle sehr gut dafür nutzen. Der Satz ist so herrlich abstrakt und unverständlich, dass ich anhand von zwei Beispielen etwas konkreter werden möchte. Szenario 1: Die Logistikabteilung muss regelmäßig nachweisen, dass die Fahrer gewisse Scheine haben, die sie für die Ausführung ihrer Rolle benötigen. Alle Mitarbeiter brauchen einen Führerschein, einige einen Gefahrgutschein und wiederum einige einen Personenbeförderungsschein (beliebig erweiterbar). Idealerweise werden alle Scheine gemeinsam kontrolliert, allerdings so, dass der kontrollierende nicht immer nachschauen oder -fragen muss, welcher Schein kontrolliert werden muss. Daher pflegt er eine Tabelle mit den Mitarbeitenden, in der die relevanten Dokumente mit einem "x" festgehalten sind: Damit wird durch eine Aktivierungsregel auf das "x" in einer speziellen Spalte, innerhalb der smap ein gewisser Teilbereich eingeblendet. Durch das Auswählen des Mitarbeiters ändert sich damit der Aufbau der smap und der Kontrollierende hat mittelbar die Info was er im Zuge der Kontrolle ebenfalls "mitkontrollieren" muss. Einen neuen Mitarbeitenden füge ich, entsprechend der Logik, einfach der Liste hinzu. Diese Information muss nicht unbedingt "wahr" (x) oder "falsch" (leer) sein, sondern kann sich auch innerhalb eines Teilprozesses aufgabeln, doch dazu mehr in... ...Szenario 2: Die Verwaltung eines Maschinenparks setzt eine regelmäßige Wartung und Kontrolle der Maschinen und derer einzelnen Bauteile voraus - die Maschinen setzen sich aus einigen Standardbauteilen und einigen individuellen Bauteilen zusammen. Die Kontrolle soll innerhalb einer smap durchgeführt werden - dabei soll der kontrollierende nicht aus einer Liste von unterschiedlichen Bauteilen wählen, sondern idealerweise die Maschine auswählen (vielleicht sogar per gescannten QR Code), die er warten oder kontrollieren möchte. Folgender DSAB hilft uns dabei: Was wir hier nun tun, ist innerhalb der smap nicht die Frage zu stellen, ob in der Spalte ein "x" steht, sondern einen konkreten Wert abzufragen, um einzelne Bestandteile der smap einzublenden. Damit habe ich eine smap, die für mich entscheidet auf was genau ich bei dieser Maschine achten muss und mich ggf. auf Besonderheiten bei unterschiedlichen Bauteilen hinweist. Der weitere, nicht zu unterschätzende, Vorteil ist, dass, wenn ich eine neue Maschine in meinen Park bekomme, ich nichts anderes tun muss als den DSAB entsprechend meines Syntax zu erweitern. Die smap muss ich nur anpassen, wenn neue Bauteile dazu kommen. Es gibt wahrscheinlich unzählige Beispiele in der diese Logik ebenfalls Anwendung finden kann. Aber ein kleiner Tipp: Man sollte es nicht zu sehr verkomplizieren. Manchmal ist auch der bessere Weg einfach eine zweite smap zu machen - ist ja auch schnell gebaut.
  20. Das ist wirklich ein großartiger Workaround 😄 Es klingt im ersten Moment total abstrakt, aber mir fallen auf Anhieb echt einige Teil-Szenarien ein, in denen das Sinn machen könnte in denen Endzeitpunkt in der smap liegt vor dem Startzeitpunkt in der Eingabe -> negativer Zeitwert -> Das verstecke Pflichtfeld mit der Mammutzahl verweigert das Absenden und ein Hinweis in der smap weist darauf hin. Die erfasste Arbeitszeit überschreitet einen gewissen Schwellwert -> Das verstecke Pflichtfeld mit der Mammutzahl verweigert das Absenden Vielleicht hat ja jemand noch anderen Ideen für Plausibilitätsprüfungen, die man mit Einschränkungen in Zahleneingabefeldern oder Validierungsregeln in Textfeldern nicht abbilden kann?
  21. Moin @Robert Hüben, wenn ich die Anfrage richtig verstehe, dann geht es hierbei um die Text-Ausgabe des neuen Prüftermins? Falls ja, dann ist die einfache Variante mit einem Textergebnisfeld zu arbeiten, dass die letzten beiden Stellen des Jahres entsprechend ersetzt. Dazu identifiziert man diese über SUBTEXT, tauscht diese über eine IF aus und führt diese mit den ursprünglichen Bestandteilen des Datums über CONCAT zusammen: Wenn der Baustein für den Zeitstempel {Timestamp} wäre, dann ist die Formel: CONCAT(LEFT(TEXT({Timestamp}),8), IF(EQUALS(SUBTEXT(TEXT({Timestamp}),9,2),"22"),"26", IF(EQUALS(SUBTEXT(TEXT({Timestamp}),9,2),"23"),"27", IF(EQUALS(SUBTEXT(TEXT({Timestamp}),9,2),"24"),"28", IF(EQUALS(SUBTEXT(TEXT({Timestamp}),9,2),"25"),"29", IF(EQUALS(SUBTEXT(TEXT({Timestamp}),9,2),"26"),"30")))))) Wenn es sich um eine Datumsauswahl handelt, die nur eine Datumseingabe erlaubt (keine Uhrzeit), dann können wir für die Identifizierung des Jahres einfach die letzen beiden rechten Stellen über RIGHT abfragen: CONCAT(LEFT(TEXT({Timestamp}),8), IF(EQUALS(RIGHT(TEXT({Timestamp}),2),"23"),"27", IF(EQUALS(RIGHT(TEXT({Timestamp}),2),"22"),"26", IF(EQUALS(RIGHT(TEXT({Timestamp}),2),"24"),"28", IF(EQUALS(RIGHT(TEXT({Timestamp}),2),"25"),"29", IF(EQUALS(RIGHT(TEXT({Timestamp}),2),"26"),"30")))))) Damit ist man zumindest bis inklusive 2026 auf der sicheren Seite - dieses Textergebnisfeld kann man dann entsprechend an die richtige Stelle des Berichts schreiben.
  22. Hey @Moritz - Danke für die Markierung. Ich kann die Frage dahinter leider nicht beantworten, da der oData Feed tatsächlich nicht mein Steckenpferd ist. 😞
  23. @Oliver Grimm - schöner Beitrag und macht das Leben an vielen Stellen leichter. Für die ganz Verrückten unserer Creatoren gibt es auch die Möglichkeit den Wochentag direkt aus dem Datum mit der "Gaußschen Wochentagsformel" zu berechnen: https://de.wikipedia.org/wiki/Gaußsche_Wochentagsformel Funktioniert 1A mit smapOne - habe ich ausprobiert. Es war eine sehr lange Zugfahrt. 😄 Wenn jemand die smap dazu haben will, gerne einen Kommentar oder eine private Nachricht an mich, dann sende ich eine Kopie. Aber ich warne vor - die ist nicht besonders "schön" und deutlich weniger pragmatisch als der Ansatz von Oli. Funfact: Das Zeichenlimit für Formeln sind 10000 Zeichen
  24. Die Widrigkeiten waren sogar noch größer als erwartet. Jetzt erst steht die tatsächlich richtige Kombination für den Mac auch im Post. Danke @Matthias Martin für den Hinweis per privater Chatnachricht. Ich lasse besser weiterhin die Finger von Macs 😄
  25. Ist korrigiert - danke für den Hinweis. Ich bin nicht nur kein Mac User, sondern kann auch nachweislich nicht besonders gut googeln 😄
×
×
  • Neu erstellen...