ich hab ein kleines Problem beim Erzeugen eines zusammengesetzten GS1-128 (EAN128) Barcodes. Der Barcode besteht aus dem Bruttogewicht (Application Identifier 3302) und der Menge (Application Identifier 37).
Mein Problem ist nun:
- Übergebe ich einen String an die Smartform in dem die Menge zweistellig ist, also bspw. 30 ST, wird der Barcode richtig
zusammengesetzt.
- Übergebe ich eine einstellige Menge, bspw. 3 ST wird dem Barcode eine Zahl (in meinem Fall 5) hinzugefügt.
Beim Testen mit dem bcTester Version 4.8 erhalte ich dann anstatt meiner 3 ST auf einmal 35 ST.
Mein Barcodestring ist folgender: >;>83302005334>8373
Ergebnis des bcTesters: [C13302005334#3735
Erzeuge ich mit gleichem String einen Barcode mit einem Online Barcode Generator und teste diesen mit dem bcTester, wird die Richtige Menge 3 ausgegeben. Hier ist das Ergebnis korrekterweise: [C13302005334#3703
Vergleiche ich die beiden Barcodes, also einmal auf meiner Druckvorschau und dem Barcode Generator, stelle ich auch am Ende unterschiede fest.
Übergebe ich eine zweistellige Menge an die Smartform, selbst wenn ich anstatt 3 - 03 übergebe, wird der Barcode richtig erzeugt. Habe auch schon Versucht, am Ende der Menge noch einmal ein <fnc1> einzufügen, da brachte aber leider keinen Unterschied.
Hat jemand dazu vielleicht eine Idee, oder hatte ein ähnliches Problem? Konnte auch in den OSS Notes der SAP dazu leider nichts finden.
Vielen Dank schonmal für jede Hilfe.
erstmal Danke für die Antwort.
Ja das hab ich schon probiert. Gebe ich dem String für den Barcode 03 ST mit, bekomme ich beim Scannen des generierten Barcodes auch als Menge 03 ST angezeigt. Es wird also keine zusätzliche Zahl angehängt. Es scheint so, dass sobald der Wert mindestens zweistellig ist, der Barcode richtig generiert wird.
Was mir eben noch beim Testen des Problems aufgefallen ist, die zusätzlich angehängte Zahl ändert sich.
Bei 3 ST wird eine 5 angehängt, somit beim Scannen 35 ST.
Bei 4 ST wird eine 2 angehängt, somit beim Scannen 42 ST.
Interessant. erinnert mich an ne priorpitäre Progrmmiersprachen deren Variablenlängen fix definiert sind.
Kannst du " 3 ST" also "space3spaceST" mitgeben?
und wenn du eine Zahl mit drei Ziffern eingibst passiert was?
^^ das schlimme ist, die Länge ist genau das nicht. Im GS1-128 sind die Felder ja über die Application Identifier standardisiert. Für die Menge in Stück ist das der AI (37) und das Feld kann bis zu 8-stellig sein. Habe ich nun ein Feld von variabler Länge muss ich eine Ende-Markierung setzen, wenn ich die acht Stellen nicht voll ausnutze (im GS1-128 ist das Steuerzeichen <fnc1> dafür vorgesehen). Damit der Barcode weiß, dass er Zwar für die Menge 8 Stellen reservieren muss, mein Wert aber z.B. nach zwei Stellen zu Ende ist. Jetzt ist bei mir die Menge in Stück aber das letzte Feld im Barcode, was ja eigentlich heißt, dass ich ein <fnc1> Steuerzeichen am Ende nicht mehr benötige, da nach der Menge kein weiteres Feld mehr kommt. Unabhängig davon, also mit oder ohne Steuerzeichen am Ende, habe ich aber das gleiche Problem.
Wenn ich "space3space" mitgebe, werden in der Smartform die Leerzeichen ignoriert und der String zusammengeschoben. Ergebnis ist, das ich wieder eine zusätzliche Zahl bekomme. Mit einem Barcode Generator werden die Leerzeichen berücksichtigt und ich bekomme nach dem Scannen auch "space3space" wieder als Ergebnis.
Bei einer Zahl mit drei Ziffern, wird in der Smartform wieder eine zusätzliche Zahl angehängt. Im Barcode Generator passt alles. In meinem Fall ist es also gerade so, dass der Barcode nur bei zweistelligen Mengenfeldern, richtig generiert wird.
Ich habe gerade ein Werkzeug gefunden gs1-128 barcode java generator, aber ich weiß nicht, wie es zu tun. Wenn Sie eine bessere Lösung zu finden hoffen, dass Sie es mit uns zu teilen.