Zum Inhalt springen

Barcode vergleichen


Fabian
Gehe zur Lösung Gelöst von Manuel RĂŒhl,

Empfohlene BeitrÀge

Hallo zusammen, 

ich bin neu hier und versuche gerade eine smap zu bauen, bei der ganz simpel 2 Barcodes oder 2 QR-Codes mit einander vergleichen kann, jedoch finde ich keine Bausteine dafĂŒr.

Kann mir jemand weiterhelfen, gibt es die Möglichkeit durch Scan zweier Barcode/QR-Code diese miteinander zu vergleichen?

Möchte bei der Einlagerung in der Logistik meinem Mitarbeiter die Möglichkeit geben, anstatt die Typteilenummern auf dem Einlagerungsschein und auf dem Erzeugnis manuell, diese mit Scan zu vergleichen.

Danke schonmal im voraus

Gruß Fabian

  • Like 1
Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 2 Stunden schrieb Manuel RĂŒhl:

Man kann in einem Textergebnisbaustein die Codes vergleichen:

IF(EQUALS({CodeScanner},{CodeScanner_2}),"OK","NICHT OK")

Hallo, 

Super und Danke,  funktioniert einwandfrei

Gruß Fabian

  • Like 1
  • Danke 1
Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 5 Monate spĂ€ter...

Hallo @Daniel Michalek

ich kenne deinen Ablauf und deinen Aufbau zwar nicht, aber den Vergleich kannst du ja auch in die Wiederholungsgruppe einfĂŒgen.

Die Formel, wie oben beschrieben, kann dann direkt nach jedem Scan verglichen werden.

Wie gesagt, hÀngt ein bisschen damit zusammen, wie dein smap aussieht.

image.thumb.png.41ee09f0aa0419af99c0ad3d3228c170.png

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo @BĂŒlent Erbas

Sorry, habe mich nicht eindeutig ausgedrĂŒckt. In der Wiederholungsgruppe existiert nur ein CodeScanner-Baustein. Der Vergleich mĂŒsste zwischen den einzelnen EintrĂ€gen der Wiederholungsgruppe erfolgen.

Wir erfassen damit den Barcode von ProbenahmegefĂ€ĂŸen zur Trinkwasseranalyse. Eine Probennahme ist ein Eintrag in der Wiederholungsgruppe. Es soll ausgeschlossen werden, dass ein GefĂ€ĂŸ mehrfach eingescannt werden kann. 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Johanna Becker
Dieser Beitrag wurde von Johanna Becker ausgezeichnet!

Sebastian hat das Abzeichen "Hilfreich" erhalten

Hallo @Daniel Michalek,

dafĂŒr muss man ein bisschen tiefer in die Trickkiste greifen.

Eine Möglichkeit wÀr es das ganze mit einer Match-Formel und einer dynamischen Regex zu lösen.

Das geht entweder in einem Feld, oder etwas ĂŒbersichtlicher mit 2 Feldern.

image.png.322b252ff33c03c7e46626f4a8cd9437.png

Die DynamicRegex hat dabei im Beispiel folgende Formel:

CONCAT("(#", JOIN("#.*){2,}|(#", {RepeatGroup_3.Auswahl_3}), "#.*){2,}")

"Auswahl_3" kann natĂŒrlich auch ein normales Texteingabefeld sein.

Damit wird fĂŒr jeden Wert ein Teil einer Regex zusammengebaut, der matcht, wenn der Eintrag mindestens 2 Mal vorkommt.

Darauf Basierend können wir dann folgende Formel nutzen um zu prĂŒfen, ob diese Regel zutrifft. Diese PrĂŒfung ist im Beispiel in der Sichtbarkeitslogik von Text_5.
Hier werden wieder alle EintrĂ€ge per Concat und Join in eine Zeile geschrieben und anschließend geprĂŒft, ob die davor gebaute Regex zutrifft.

MATCH(CONCAT("#",JOIN("##", {RepeatGroup_3.Auswahl_3}), "#"), {DynamicRegEx})

 

Keine Sorge, man muss die Details nicht verstehen und kann die Formeln auch einfach kopieren und die eigenen Bausteinnamen einsetzen.

Damit das ganze funktioniert ist es nur wichtig, dass die Werte in dem Baustein, der geprĂŒft werden soll wirklich eindeutig sind.

Bearbeitet von Sebastian
  • Like 3
  • Danke 3
Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo @Sebastian!

Ja geil...funktioniert!!! đŸ„ł Dickes DANKE an Dich! So hab ich auch noch was ĂŒber regulĂ€re AusdrĂŒcke gelernt, super.

Aber wer den kleinen Finger reicht, bekommt hĂ€ufig den Arm abgerissen. Hier kommt also die nĂ€chste Frage. Kann ich auch noch bestimmen welche Wiederholungen doppelt sind? Vielleicht ĂŒber den Index?

Bearbeitet von Daniel Michalek
  • Like 1
Link zu diesem Kommentar
Auf anderen Seiten teilen

@BĂŒlent Erbas

Eigentlich ist es gar nicht so kompliziert. Im ersten Schritt wird ein RegulÀrer Ausdruck zusammengebaut.

Bei 5 EintrÀgen mit den Werten:

- Wert1
- Wert2
- Wert3
- Wert1

Kommt als Ausdruck folgendes raus
(#Wert1#.*){2,}|(#Wert2#.*){2,}|(#Wert3#.*){2,}|(#Wert1#.*){2,}

Die |-Zeichen stehen dabei innerhalb der Regex fĂŒr ein "oder" und die "{2,}" sagt, das die Gruppe in Klammern davor jeweils mindestens 2 mal vorkommen soll.

Als Beispiel fĂŒr den ersten Wert sagt die Regex also, dass "#Wert1#" (plus beliebige weitere Zeichen) mindestens 2 mal vorkommen soll um die Bedingung zu erfĂŒllen.

Der andere Teil setzt die Werte mit den Trennzeichen zusammen, so dass dort gegen folgendes verglichen wird:

#Wert1##Wert2##Wert3##Wert1#

In dem Beispiel findet die Regex also einmal

#Wert1##Wert2##Wert3#

und dann noch das hintere

#Wert1#

und damit ist der erste Teil vom Ausdruck erfĂŒllt, da es zwei mal etwas findet.

Die Idee stammt ĂŒbrigens hauptsĂ€chlich von @Christian Meixner.

Bearbeitet von Sebastian
  • Like 2
  • Danke 2
Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 2 Wochen spĂ€ter...

Danke fĂŒr die Blumen @Sebastian 😉

Vielleicht noch ein Hinweis zu den vielen "#" in dem regulÀren Ausdruck, bei denen sich wahrscheinlich schon der einen oder andere gefragt hat, wozu die gut sein sollen:
Die markieren einfach nur die Grenzen einer Wortgruppe und haben sonst keine Funktion. Auf diese Weise wir aber sichergestellt, dass wirklich nur echte Dubletten der ganzen Wortgruppe gefunden wird. Ansonsten wĂŒrde nĂ€mlich "Wert" als Dublette von "Werte" erkannt werden, weil das erste vollstĂ€ndig in dem zweiten enthalten wird. Daher suchen wir lieber nach "#Werte#", welche in "#Werte#" nicht vorkommt.

Ihr könnt die # daher in eurer eigenen Anwendung auch einfach durch ein beliebiges anderes "seltenes" Zeichen ersetzen, um damit Anfang und Ende der Wortgruppen zu markieren. Es sollte aber möglichst ein Zeichen sein, das selbst keine Bedeutung in regulĂ€ren AusdrĂŒcken hat.

  • Like 1
  • Danke 1
Link zu diesem Kommentar
Auf anderen Seiten teilen

@Christian Meixner

Diese Diskussion hatte ich Anfang des Jahres mit @Moritz MĂŒnzenmaier

Man kann diese Logik auch fĂŒr die Suche in DSAB verwenden. Wir heißen ja ROTH, haben aber auch ROTe Gasflaschen.
Mein Trennzeichen der Wahl ist allerdings die "Pipe" |  (=AltGr+grĂ¶ĂŸer/kleiner Zeichen).
Damit lassen sich Texte zu lesbar abgrenzen und das verwendet außer mir keiner.
Hashtag, Semikolon, Komma ... alles gerne so Zeichen, die auch in einem Artikeltext stehen können...   

  • Like 1
Link zu diesem Kommentar
Auf anderen Seiten teilen

Richtig. Hier muss man aber beachten, dass die Pipe | in regulĂ€ren AusdrĂŒcken eine eigene Bedeutung und Funktion hat. Daher mĂŒsste man diese hier zusĂ€tzliche mit einem \ versehen ("escapen"). Das funktioniert, macht allerdings den regulĂ€ren Ausdruck deutlich unĂŒbersichtlicher.

Beispiel: von oben wÀre dann

(\|Wert1\|.*){2,}|(\|Wert2\|.*){2,}|(\|Wert3\|.*){2,}|(\|Wert1\|.*){2,}

statt

(#Wert1#.*){2,}|(#Wert2#.*){2,}|(#Wert3#.*){2,}|(#Wert1#.*){2,}

Bzw. mĂŒsste die Formel dann lauten:

CONCAT("(\|", JOIN("\|.*){2,}|(\|", {RepeatGroup_3.Auswahl_3}), "\|.*){2,}")

 

Und in der Formel ist es dann schon wieder gar nicht so viel unĂŒbersichtlicher. Den erzeugten RegulĂ€ren Ausdruck bekommt in dem Fall ja gar niemand zu Gesicht.

  • Like 2
  • Danke 1
Link zu diesem Kommentar
Auf anderen Seiten teilen

Bitte melde Dich an, um einen Kommentar zu hinterlassen

Du kannst nach der Anmeldung einen Kommentar hinterlassen



Jetzt anmelden
×
×
  • Neu erstellen...