Jump to content

Alex Krause

smapLand members
  • Posts

    9
  • Joined

  • Last visited

  • Days Won

    2

Alex Krause last won the day on April 16 2023

Alex Krause had the most liked content!

6 Followers

About Alex Krause

  • Birthday 11/01/1997

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

Alex Krause's Achievements

Apprentice

Apprentice (3/14)

  • Pioneer - 1. Year of smapLand
  • One Year In
  • Reacting Well
  • Nice Posts
  • Great Posts

Recent Badges

32

Reputation

3

Community Answers

  1. Hi, ich habe mal an einer Formel gearbeitet, die würde auch bis 2099 funktionieren.. jedoch aufgegeben, da das Wochenende alleine nicht die Endlösung ist. Sämtliche Feiertage sollte man auch abziehen können und das ist zurzeit unmöglich in SmapOne abzubilden. Gruß Alex
  2. Wir nutzen ausschließlich die Samsung Tablets A7 und A8. Ich habe bereits mehrfach versucht das Problem nachzustellen mit der Samsung-Kamera-App und bei mir hat es auch immer reibungslos funktioniert. Die User jedoch kommen immer mal wieder mit diesem Problem zu mir und wie oben geschrieben, wenn ich die Samsung-Kamera-App schließe, dann funktioniert SmapOne wieder einwandfrei. Also ich bin mir da auch sicher, dass die sich gegenseitig blockieren. Eine andere Kamera zu installieren wird leider keine Alternativlösung für uns sein.
  3. Hallo, uns ist das Problem auch bereits paar mal aufgefallen. Ich schließe (auf Android), folgende Apps: Kamera, SmapOne. Wenn ich dann das Formular wieder öffne, dann gehts.. vielleicht ist das nur Zufall.. vielleicht blockiert die Kamera die Funktion in der Smap. Man muss auch dazu sagen, dass die User einen Kiosk-Modus haben und gar nicht die Möglichkeit haben die Kamera zu öffnen, doch jedes Mal ist die App trotzdem im Hintergrund an, wenn ich mir das anschaue.
  4. Hi, das sollte klappen: Bausteine: DataRecordSelect: ResultText: IF(EQUALS(LENGTH({DataRecordSelect[Zeit]}), 4), CONCAT("0", {DataRecordSelect[Zeit]}), {DataRecordSelect[Zeit]}) ResultNumber: SUM(MUL(TEXTPOS("012345", SUBTEXT(TEXT({Timestamp}), 15, 1)), 10), MUL(TEXTPOS("012345", SUBTEXT({ResultText}, 4, 1)), 10), -22, TEXTPOS("0123456789", SUBTEXT(TEXT({Timestamp}), 16, 1)), TEXTPOS("0123456789", SUBTEXT({ResultText}, 5, 1))) Minutenumbruch: IF(GREATERTHANOREQUAL({ResultNumber}, 60), SUB({ResultNumber}, 60), {ResultNumber}) ResultNumber_10: SUM(MUL(TEXTPOS("012345", SUBTEXT(TEXT({Timestamp}), 12, 1)), 10), MUL(TEXTPOS("012345", SUBTEXT({ResultText}, 1, 1)), 10), -22, TEXTPOS("0123456789", SUBTEXT(TEXT({Timestamp}), 13, 1)), TEXTPOS("0123456789", SUBTEXT({ResultText}, 2, 1)), IF(GREATERTHANOREQUAL({ResultNumber}, 60), 1, 0)) ResultText_2: CONCAT(IF(GREATERTHANOREQUAL({ResultNumber_10}, 24), TEXT(SUB({ResultNumber_10}, 24)), TEXT({ResultNumber_10})), ":", IF(LESSTHAN({ResultNumber_2}, 10), "0"), TEXT({ResultNumber_2})) Alles bis auf ResultText_2 nicht in der App anzeigen. Regel für ResultText_2: AND(NOTEMPTY({DataRecordSelect}), NOTEMPTY({Timestamp})) ---> Aktiviert Schönes Wochenende
  5. Ich habe deine Formel mal verkleinert: CONCAT(SUBTEXT(TEXT({Timestamp}), 1, 8), TEXT(SUM(MUL(TEXTPOS("123456789", SUBTEXT(TEXT({Timestamp}), 9, 1)), 10), SUB(TEXTPOS("0123456789", SUBTEXT(TEXT({Timestamp}), 10, 1)), 1), 1)))
  6. Hallo zusammen, gibt es die Möglichkeit, dass man jede Aufgabe, die man in der API (durch state=incomplete) zieht, nur einmal zu ziehen sind? So wie es bei state=new auch gehen würde, wenn man den Parameter markAsExported=true mit hat. Hintergrund: Der Mitarbeiter bekommt durch unser Schnittstellensystem eine Benachrichtigung per E-Mail, dass noch eine Aufgabe offen ist. Diese E-Mail bekommt er aber jedes Mal, wenn der Job in unserem Schnittstellensystem durchgelaufen ist und "spamt" diesen zu. Eine Erinnerungsmail reicht vollkommen aus. Gruß Alex krause
  7. Hallo, wir hatten das Problem auch und haben das so gelöst: Wir nutzen gar nicht erst den DSAB-Baustein, sondern einen Textergebnisbaustein. Diesen Textergebnisbaustein({String}) aktualisieren wir mit unseren Daten als einzelnen String --> CONCAT("{Barcode1}{Data1_1}{Data1_2}{Data1_3}{Data1_4}{Barcode2}{Data2_1}{Data2_2}[Data2_3}{Data2_4}") In unserem Beispiel sieht das so aus: CONCAT("6200000000001000036985RAB30032015672000037881-0001YAD0806201865") In dem Beispiel wäre: Barcode1 = 6200000000001000036985 Data1_1 = R Data1_2 = AB Data1_3 = 30.03.2015 Data1_4 = 67 Barcode2 = 672000037881-0001 Data2_1 = Y Data2_2 = AD Data2_3 = 08.06.2018 Data2_4 = 65 Wichtig ist, dass die "Daten" im String immer eine feste Länge haben, der Barcode kann beliebig lang sein. Mit Textergebnisbausteinen erhalte ich die einzelnen Werte wieder, zuvor aber ein Zahlenergebnisbaustein, welcher die Stringposition des Barcodes wieder gibt: Zahlenergebnisbaustein({ResultNumber}): TEXTPOSITION({String}, {CodeScanner} Textergebnisbaustein1(bei uns Ampelfarbe): SUBTEXT({String}, SUM({ResultNumber}, LENGTH({CodeScanner})), 1) Textergebnisbaustein2(Formfaktor): SUBTEXT({String}, SUM({ResultNumber}, LENGTH({CodeScanner}), 1), 2) Textergebnisbaustein3(Letzte Bewegung): CONCAT(SUBTEXT({String}, SUM({ResultNumber}, LENGTH({CodeScanner}), 3), 2), ".", SUBTEXT({String}, SUM({ResultNumber}, LENGTH({CodeScanner}), 5), 2), ".", SUBTEXT({String}, SUM({ResultNumber}, LENGTH({CodeScanner}), 7), 4)) Textergebnisbaustein4(SysID): SUBTEXT({String}, SUM({ResultNumber}, LENGTH({CodeScanner}), 11), 2) Dann haben wir noch ein Bild, welches gezeigt wird, wenn der Barcode in dem String nicht vorhanden ist. Bild - Bedingung: AND(NOTEQUALS({ResultText}, "R"), NOTEQUALS({ResultText}, "G"), NOTEQUALS({ResultText}, "Y"), NOTEMPTY({CodeScanner})) Wenn man einen integrierten Scanner im Gerät hat, dann kann man natürlich auch mit einem Textbaustein als "CodeScanner" arbeiten. Das war jetzt eine Lösung, die noch relativ einfach ist, weil die Daten, die ausgegeben werden sollen immer die gleiche Länge haben. Wenn die Daten nicht die gleiche Länge haben, dann muss ein "Trenner" zwischen den Daten gesetzt werden, beim Aktualisieren des String-Bausteins. Mit geschickten Substring/Left/Right und Textpos kann man die Daten zwischen den "Trenner" raus bekommen. Beispiel eines Trenner kann sein "|", zwischen den einzelnen Daten und ein "*" zwischen den Barcodes mit Daten. Kleines Beispiel (Database = String): 1: RIGHT({Database}, SUB(SUB(LENGTH({Database}), TEXTPOS({Database}, {CodeScanner})), LENGTH({CodeScanner}))) 2: LEFT({zwischenErgebnis_string}, TEXTPOS({zwischenErgebnis_string}, "*")) 3: LEFT({zwischenErgebnis_string2}, SUB(TEXTPOS({zwischenErgebnis_string2}, "|"), 1)) Sollte etwas unklar sein, kann ich nochmal ergänzen. Achtung, der String-Baustein hat ein Limit mit Zeichen, der liegt glaube ich bei ca. 1mio Zeichen. Wir haben 710.000 Zeichen im Baustein und funktioniert noch. (natürlich auch schnell, sonst wäre das keine Alternative) Gruß Alex
  8. Hi, einfacher und weniger Formeln hätte dieser Weg hier: - 3 Bausteine (2 versteckt, 1 Ausgabe) 1. Baustein {Vorname}: CONCAT(SUBTEXT("ABCDEFGHIJKLMNOPQRSTUVWXYZ", TEXTPOS("abcdefghijklmnopqrstuvwxyz", LEFT({user:email}, 1)), 1), SUBTEXT({user:email}, 2, SUB(TEXTPOS({user:email}, "."), 2))) 2. Baustein {Nachname}: CONCAT(SUBTEXT("ABCDEFGHIJKLMNOPQRSTUVWXYZ", TEXTPOS("abcdefghijklmnopqrstuvwxyz", SUBTEXT({user:email}, ADD(TEXTPOS({user:email}, "."), 1), 1), 1), 1), SUBTEXT({user:email}, ADD(TEXTPOS({user:email}, "."), 2), SUB(TEXTPOS({user:email}, "@"), ADD(TEXTPOS({user:email}, "."), 2)))) 3. Baustein {AusgabeName} REPLACE(REPLACE(REPLACE(CONCAT({Vorname}, " ", {Nachname}), "ae", "ä"), "oe", "ö"), "ue", "ü") Der Replace im 3. Baustein von ae in ä etc. ist optional 🙂 Gruß Alex 🙂
×
×
  • Create New...