Erstellen der Konfigurationsdatei für Einkauf und Verkauf

In diesem Kapitel sind die Argumente der Konfigurationsdatei für den Barcode-Leser-Einsatz im Einkauf und Verkauf dokumentiert.
Allgemeine Informationen sind in der Einleitung zu finden.

Kontext / Sektion

Die Argumente (ausser jene für die Kommunikation und das Einlesen des Barcode) können je nach Anforderung in den jeweiligen BCs und WS unterschiedlich definiert werden.
Dabei bildet die Nummer des BC bzw. WS einen Kontext. Dieser Kontext wiederum, wird in der Konfigurationsdatei durch eine bestimmte Sektion abgebildet.
Alle Argumente die in der Konfigurationsdatei bei der jeweiligen Sektion definiert sind, gelten dann für den entsprechenden Kontext.
Falls ein Argument über einen Default-Wert verfügt, wird dieser durch den in einer Sektion hinterlegten Wert überschrieben.
Es stehen folgende Kontexte bzw. Sektionen zur Verfügung:
Kontext / Sektion
Beschreibung
1
/VER-POS
Workspace 51000 (alle Dokumentstufen) und BC 51680
  • Dokumentpositionen erfassen
  • Verkaufsdokumente gezielt über die Interne Dokument Nr. (BoId) öffnen
2
/EIN-POS
Workspace 61000 (Dokumentstufen AN / BE)
  • Dokumentpositionen erfassen
  • Einkaufsdokumente gezielt über die Interne Dokument Nr. (BoId) öffnen
3
/EIN-POS2
Workspace 61000 (Dokumentstufen WES / RE / GS)
  • Dokumentpositionen erfassen
4
/VER-KADR
BC 51001
  • Suchen von Kundenadressen
  • Verkaufsdokumente erstellen
5
/ADR
Workspace 11000
  • Adressen suchen
6
/ART
Workspace 21000
  • Artikel suchen

Argumente der Konfigurationsdatei

Gruppe
Argument
Kontext
Beschreibung
Kommunikation
Diese Argumente sind zwingend!
PORT=
-
Unterstützte COM Ports: 1 bis 9
Default = 1
 
BAUD=
-
Baud-Rate: 1200 bis 115200
Default = 19200
 
PARITY=
-
N = NONE, E = EVEN, O = ODD
Default = N
 
DATABIT=
-
Databit: 7 oder 8
Default = 8
 
STOPBIT=
-
Stopbit: 0 bis 2
Default = 1
 
-
Einlesen des Barcode
Diese Argumente sind zwingend!
TRANS_FORMAT=
-
Online-Leser = 3
 
HEADER_LEN=
-
Länge des Headers (Nur Offline-Leser!)
Gemäss den Herstellerangaben des Barcode-Leser Programms.
 
RECORD_LEN=
-
Länge des eigentlichen Barcode-Records. (Nur Offline-Leser!)
 
RECORD_EOL=
-
EndOfLine Zeichen (Nur Online-Leser!)
LF = 10
CR = 13
Dieses Zeichen muss auf dem Online-Leser konfiguriert sein.
 
Interpretation des Barcode-Records
ADDRESS_START=
/VER-KADR
/ADR
Startpunkt innerhalb des Barcode-Records für die Suche nach Adresse [Addr].
Die Suche erfolgt über den Barcode [Addr.Barcode]
Voraussetzung: Adress-Barcode aktiv im Opacc Studio BC 91100.
Die Adresse kann auch direkt über die Adress-Nummer [Addr.Number] gesucht werden. (Siehe Parameter DIRECT_SEARCH.)
ADDRESS_LEN=
/VER-KADR
/ADR
Anzahl Stellen innerhalb des Barcode-Records, welche (ab ADRESS_START) für die Suche nach der Adresse verwendet werden.
BARCODE_START=
/VER-POS
/EIN-POS
/EIN-POS2
/ART
Startpunkt innerhalb des Barcode-Records für die Suche nach Artikel [Art].
Die Suche erfolgt gemäss den im Opacc Studio BC 92100 vorgenommenen Einstellungen betreffend Barcode.
Der Artikel kann auch direkt über die Artikel-Nummer [Art.Number] gesucht werden. (Siehe Parameter DIRECT_SEARCH. )
BARCODE_LEN=
/VER-POS
/EIN-POS
/EIN-POS2
/ART
Anzahl Stellen innerhalb des Barcode-Records, welche (ab BARCODE_START) für die Suche nach dem Artikel verwendet werden.
BOID_START=
/VER-POS
/EIN-POS
/EIN-POS2
/ADR
/ART
Startpunkt innerhalb des Barcode-Records für die Suche nach einem BO.
  • Adresse
  • Artikel
  • Verkaufsdokument
  • Einkaufsdokument
BOID_LEN=
/VER-POS
/EIN-POS
/EIN-POS2
/ADR
/ART
Anzahl Stellen innerhalb des Barcode-Records welche die BoId des gesuchten BOs bilden.
  • Adresse
  • Artikel
  • Verkaufsdokument
  • Einkaufsdokument
DIRECT_SEARCH=
alle
Dieser Parameter entscheidet darüber, ob Adressen oder Artikel über den Barcode bzw. über die Barcode-ID oder direkt über die Nummer gesucht werden.
0 = Suche über Barcode (Adresse) bzw. Barcode-ID (Artikel)
1 = Suche direkt über Adress-Nummer bzw. Artikel-Nummer
Siehe Parameter:
ADRESS_START, ADRESS_LEN
BARCODE_START, BARCODE_LEN
NEW_DOCUMENT=
/VER-KADR
Steuert im BC 51001 Kundendokumente (Kontext = /VER-KADR) welches Dokument geöffnet wird.
0 = Kein Dokument öffnen.
1 = Neues Dokument öffnen.
2 = Wie 1, aber es wird zuerst geprüft, ob bereits ein provisorisches Dokument vorhanden ist. In diesem Fall wird das provisorische Dokument geöffnet.
Die Einstellungen 1 und 2 funktionieren gemäss Vorgabe der Dokumentarten für Kunden und Mitarbeiter.
Notiz
Notiz
  • Ist kein Default-Dokument definiert, wird aufgrund der eingestellten Dokumentstufe (Vorgabe gem. OpaccOXAS Studio BC 95900) geprüft, ob ein prov. Dokument vorhanden ist
  • Wenn nein, wird ein neues Dokument erstellt
  • Wenn ja, wird das bestehende prov. Dokument geöffnet
  • Wenn mehrere prov. Dokumente bestehen, wird das letzte prov. Dokument geöffnet
  • Bei der Suche nach dem letzten prov. Dokument wird folgender Index verwendet: Kundennummer, Dokumentstufe, Dokumentstatus, Shortcut, Dokumentnummer
Optional: Stufe und ShortCut
Folgt nach den Werten 0/1/2 ein Komma und dann die Dokumentstufe gefolgt vom ShortCut, wird gezielt ein Dokument dieser Stufe und dieses ShortCuts erstellt.
Beispiel: NEW_DOCUMENT=2,3R erstellt einen LS-R
QUANTITY_START=
/VER-POS
/EIN-POS
/EIN-POS2
Startpunkt innerhalb des Barcode-Records für die Menge.
QUANTITY_LEN=
/VER-POS
/EIN-POS
/EIN-POS2
Anzahl Stellen für die Menge.
QUANTITY_DIV=
/VER-POS
/EIN-POS
/EIN-POS2
Divisor für die Menge.
Default = 1
QUANTITY_DIM=
/VER-POS
/EIN-POS
/EIN-POS2
Wert für die Dimension.
1 = Erste Dimension
2 = Zweite Dimension
3 = Dritte Dimension
10 = Letzte Dimension
Default = 0 (Menge)
Notiz
Notiz
Anhand dieses Arguments kann nur ein Wert einer Dimension gesetzt werden.
Das heisst, wenn eine Dimensionsvariante mit z.B. 2 Dimensionen verwendet wird, kann lediglich die Menge für Dimension 1 oder für Dimension 2 gesetzt werden, aber nicht für beide.
DIMVAR_START=
/VER-POS
/EIN-POS
/EIN-POS2
Startpunkt innerhalb des Barcode-Records für die Dimensionsvariante.
DIMVAR_LEN=
/VER-POS
/EIN-POS
/EIN-POS2
Anzahl Stellen für die Dimensionsvariante.
PRICE_START=
/VER-POS
/EIN-POS
Startpunkt innerhalb des Barcode-Records für den Preis.
PRICE_LEN=
/VER-POS
/EIN-POS
Anzahl Stellen für den Preis.
PRICE_DIV=
/VER-POS
/EIN-POS
Divisor für den Preis.
Default = 1
FREE_START=
/VER-POS
/EIN-POS
/EIN-POS2
Startpunkt innerhalb des Barcode-Records für ein freies Attribut.
Notiz
Notiz
Nicht mehr verwenden. Wurde durch FREEnn_START ersetzt.
FREE_LEN=
/VER-POS
/EIN-POS
/EIN-POS2
Anzahl Stellen für das freie Attribut.
Notiz
Notiz
Nicht mehr verwenden. Wurde durch FREEnn_LEN ersetzt.
FREE_ID=
/VER-POS
/EIN-POS
/EIN-POS2
Nummer des freien Attributs. (Gemäss den Vorgaben auf der Dokumentart im OpaccOXAS Studio.)
Notiz
Notiz
Nicht mehr verwenden. Wird aufgrund von FREEnn_START und FREEnn_LEN nicht mehr benötigt.
ERROR_BEEP=
/VER-POS
/EIN-POS
/EIN-POS2
/VER-KADR
Bei einem Fehler einen Warnton ertönen lassen?
0 = Nein
1 = Ja
Default = 0
SUCCESS_BEEP=
/VER-POS
/EIN-POS
/EIN-POS2
/VER-KADR
nach erfolgreicher Verarbeitung einen Warnton ertönen lassen?
0 = Nein
1 = Ja
Default = 0
AUTOEXEC=
/VER-POS
/EIN-POS
/EIN-POS2
Die Position sofort speichern?
0 = Die Position wird nicht gespeichert. (Der Cursor steht auf der Dimension 1.)
1 = Die Position wird sofort gespeichert. (Menge gemäss der Vorgabe auf dem Artikel.)
Default = 1
FREEnn_START=
/VER-POS
/EIN-POS
/EIN-POS2
Startpunkt innerhalb des Barcode-Records für das freie Attribut 1 - 10
Beispiel für das freie Attribut 4: FREE4_START=26
FREEnn_LEN=
/VER-POS
/EIN-POS
/EIN-POS2
Anzahl Stellen für das freie Attribut 1 - 10
Beispiel für das freie Attribut 10: FREE10_LEN=22
Ausführen von F-Scripts und starten von BCs
CALL_ARGUMENT_START=
/VER-POS
/EIN-POS
/EIN-POS2
/VER-KADR
Startpunkt innerhalb des Barcode-Records zur Ermittlung des Wertes (arg) für den Parameter CALL. Die Länge des Wertes wird dabei nicht angegeben. Die Übereinstimmung des Wertes wird ab diesem Startpunkt ermittelt.
CALL(arg)=
/VER-POS
/EIN-POS
/EIN-POS2
/VER-KADR
CALL(arg)=<F-Script-Name>,<BC-Nummer>,<Timeout>
Die F-Script Input-Argumente können im Script via Clipboard «CB(n)» abgefragt werden und sind je nach Kontext verschieden.
Das Argument Timeout ist optional.
Beispiele:
/VER-POS, /EIN-POS, /EIN-POS2
CB(4) = arg plus weitere Zeichen des Records.
CB(5) = BoId des Dokuments.
CB(6) = BoId der Position.

/VER-KADR
CB(4) = arg plus weitere Zeichen des Records.
CB(5) = BoId des Dokuments.
CB(6) = BoId der Position.
CB(7) = BoId der Adresse.
Beispiel mit Timeout:
/VER-POS
CODE_ID_MARK_START=1

--Code mit Prefix K
:CODE_ID_MARK=K

DIRECT_SEARCH=1
BARCODE_START=2
BARCODE_LEN=15
CALL_ARGUMENT_START=1
CALL(K)=RV-BARCODETEST.FX,51300,20
AUTOEXEC=1
Nach der Ausführung des F-Scripts wird das unter <BC-Nummer> aufgeführte BC gestartet. <F-Script-Name> und <BC-Nummer> können auch einzeln verwendet werden.
Notiz
Notiz
Liefert das F-Script eine Rückgabespalte mit einer BO Relation, wird diese Relation für das Öffnen des BC verwendet.
Auszug aus F-Script:
/GetInfoScriptCol
«
{
  XFAS.AddHead('Column')
  XFAS.AddHead('DataTypeCd')
  XFAS.AddHead('Format')
  XFAS.AddHead('RelationshipCd')
  XFAS.AddHead('RelatedObject')
  XFAS.AddHead('RelatedIndex')
  XFAS.AddHead('RelatedConstraint')
  XFAS.AddHead('AdditionalInfo')
  XFAS.AddHead('OnDemand')
  XFAS.AddHead('MlsKey')
  // -------------------------------
  // Relation für Rückgabe
  XFAS.NewRow()
  XFAS.SetCol('Column','SalDocItem')

  // A: AlphaAll
  // X: AlphaUC
  // R: NumAll
  // N: NumNotNeg
  // D: Date
  // H: Time
  // B: Boolean
  // T: Text
  XFAS.SetCol('DataTypeCd','A')
  XFAS.SetCol('Format',    '100')

  // 0: No
  // 1: Bo
  // 1S: BoSet
  // 2: BoOption
  // 3: Code
  // 4: CodeOption
  // 5: Range
  // 6: RangeOption
  // 7: ApsKeyword
  // 8: ApsKeywordOption
  // I: InstallationFile
  // J: FileStorage
  XFAS.SetCol('RelationshipCd','1')

  // e.g. No, Bo, Code, ApsKeyword, InstallationFile, FileStorage
  XFAS.SetCol('RelatedObject',    'SalDocItem.BoId')
  XFAS.SetCol('RelatedIndex',     '')
  XFAS.SetCol('RelatedConstraint','')
  XFAS.SetCol('AdditionalInfo',   '')
  XFAS.SetCol('OnDemand',         '0')
  XFAS.SetCol('MlsKey',           'SalDocItem')
}
»
/
Identifizieren von unterschiedlichen Barcodes
CODE_ID_MARK_START=
alle
Startpunkt innerhalb des Barcode-Records zur Ermittlung des Wertes (id) für den Parameter CODE_ID_MARK. Die Länge des Wertes wird dabei nicht angegeben. Die Übereinstimmung des Wertes wird ab diesem Startpunkt ermittelt.
Notiz
Notiz
Beachten Sie, dass der Barcode-Leser entsprechend konfiguriert sein muss damit die Barcode-ID (oft auch Präfix genannt) ausgelesen werden kann.
:CODE_ID_MARK=
alle
:CODE_ID_MARK=(ID)
Durch Angabe einer ID kann spezifisch auf verschiedene Typen von Barcodes eingegangen werden.
Beispiel eines Typ-A Barcode (id/Präfix A): 7 310780 025517
Beispiel eines Typ-B Barcode (id/Präfix B): 7610 7207
Innerhalb einer Sektion wird nach der :CODE_ID_MARK gesucht, welche der durch den Barcode-Record gelieferten ID entspricht.
Beispiel:
...
...
/EIN-POS
CODE_ID_MARK_START=1
--EAN 13
:CODE_ID_MARK=A
--Suche nach Barcode
DIRECT_SEARCH=0
BARCODE_START=2
BARCODE_LEN=13
AUTOEXEC=1
--Code mit Prefix B
:CODE_ID_MARK=B
--Suche nach Barcode
DIRECT_SEARCH=0
BARCODE_START=2
BARCODE_LEN=15
AUTOEXEC=1
--Dokument suchen
:CODE_ID_MARK=M
--Suche nach BoId des Dokumentes
BOID_START=2
BOID_LEN=10

Beispiele von Konfigurationsdateien

Falls Sie einen Update von einer älteren OpaccOne-Version auf die aktuelle Version von OpaccERP durchführen oder durchgeführt haben, kann es vorkommen, dass die Konfigurationsdateien angepasst werden müssen. So war beispielsweise der Parameter PARITY in älteren Versionen in " eingeschlossen. (Bsp. PARITY = "N") Diese " sind nicht mehr notwendig.

Beispiel einer minimalen Konfigurationsdatei für einen Online-Leser

--Kommunikation
PORT = 1
BAUD = 9600
PARITY = N
DATABIT = 8
STOPBIT = 1
--Einlesen des Barcodes
TRANS_FORMAT = 3
RECORD_EOL = 10
--Interpretation des Barcodes
BARCODE_START = 1
BARCODE_LEN = 13

Beispiel einer Konfigurationsdatei für einen Online-Leser (mit Eintrag für das Suchen von Einkaufsdokumenten)

--Kommunikation
PORT = 1
BAUD = 9600
PARITY = N
DATABIT = 8
STOPBIT = 1
--Einlesen des Barcodes
TRANS_FORMAT = 3
RECORD_EOL = 10
--Interpretation des Barcodes
/EIN-POS
CODE_ID_MARK_START=1
--EAN 13
:CODE_ID_MARK=A
--Suche nach Barcode
DIRECT_SEARCH=0
BARCODE_START=2
BARCODE_LEN=13
AUTOEXEC=1
--Code mit Prefix B
:CODE_ID_MARK=B
--Suche nach Barcode
DIRECT_SEARCH=0
BARCODE_START=2
BARCODE_LEN=15
AUTOEXEC=1
--Dokument suchen
:CODE_ID_MARK=M
--Suche nach BoId des Dokumentes
BOID_START=2
BOID_LEN=10

Beispiel einer Konfigurationsdatei für einen Online-Leser (Erweitert)

--Kommunikation
PORT = 3
BAUD = 9600
PARITY = N
DATABIT = 8
STOPBIT = 1

--Einlesen des Barcodes
TRANS_FORMAT = 3
RECORD_EOL = 13

--Interpretation des Barcode-Records.
/VER-KADR
--Identifizieren von unterschiedlichen Barcodes.
CODE_ID_MARK_START = 1
--EAN13
  :CODE_ID_MARK = A
--Suche über Barcode (Adresse)
DIRECT_SEARCH = 0
  ADDRESS_START = 2
  ADDRESS_LEN = 13
  NEW_DOCUMENT = 2
--CODE39
  :CODE_ID_MARK = L
-- Suche direkt über Adress-Nummer
  DIRECT_SEARCH = 1
  ADDRESS_START = 2
  ADDRESS_LEN = 6
  NEW_DOCUMENT = 2,4V

/VER-POS
--Interpretation des Barcode-Records.
--Identifizieren von unterschiedlichen Barcodes.
--Die in diesem Beispiel aufgeführten Werte für CODE_ID_MARK entsprechen den Werten eines Symbol LS 4071.
--Parameter "Symbol Code ID Character" und können bei anderen Barcode-Lesern unterschiedlich sein.
CODE_ID_MARK_START = 1

--EAN128
  :CODE_ID_MARK = K
--Interpretation des Barcode-Records (für EAN 128)
BARCODE_START = 21
  BARCODE_LEN = 13
  QUANTITY_START = 36
  QUANTITY_LEN = 4
  QUANTITY_DIV = 1
  PRICE_START = 44
  PRICE_LEN = 6
  PRICE_DIV = 100
  FREE_START = 5
  FREE_LEN = 13
  FREE_ID = 8
  ERROR_BEEP = 1
  QUANTITY_DIM = 1

--Interleaved 2/5
  :CODE_ID_MARK = F
--Interpretation des Barcode-Records (für Interleaved 2/5)
DIRECT_SEARCH = 1
  BARCODE_START = 6
  BARCODE_LEN = 4
  FREE_START = 2
  FREE_LEN = 4
  FREE_ID = 5
  QUANTITY_START = 10
  QUANTITY_LEN = 3
  QUANTITY_DIM = 1
  QUANTITY_DIV = 1
  PRICE_START = 13
  PRICE_LEN = 5
  PRICE_DIV = 100

--EAN13
  :CODE_ID_MARK = A
  BARCODE_START = 2
  BARCODE_LEN = 13

--CODE39
--Dokument suchen
:CODE_ID_MARK = L
  BOID_START = 2
  BOID_LEN = 10

--Aufruf von Zusätzen
:CODE_ID_MARK = LS
  CALL_ARGUMENT_START = 1
--Kopfdaten (DIY BC)
  CALL(LSBC59000) = sb-vebcl.ff,59000

:CODE_ID_MARK = LB
  CALL_ARGUMENT_START = 1
--Verkaufskosten und Sonderrabatt
  CALL(LB) = bb-vebcl.ff
--Auftrag abschliessen
  CALL(LB90) = bb-vebcl.ff,51001

/EIN-POS
--Identifizieren von unterschiedlichen Barcodes.
CODE_ID_MARK_START = 1

  :CODE_ID_MARK = K
  BARCODE_START = 21
  BARCODE_LEN = 13
  QUANTITY_START = 36
  QUANTITY_LEN = 4
  QUANTITY_DIV = 1
  PRICE_START = 44
  PRICE_LEN = 6
  PRICE_DIV = 100
  ERROR_BEEP = 1
  QUANTITY_DIM = 1

  :CODE_ID_MARK = A
  BARCODE_START = 2
  BARCODE_LEN = 13
  CALL_ARGUMENT_START = 1
  CALL(A) = BARCODE_1.FF,61400

  :CODE_ID_MARK = B
  CALL_ARGUMENT_START = 1
  CALL(B) = bb-eibcl.ff

/EIN-POS2
--Identifizieren von unterschiedlichen Barcodes.
CODE_ID_MARK_START = 1

  :CODE_ID_MARK = K
  BARCODE_START = 21
  BARCODE_LEN = 13
  QUANTITY_START = 36
  QUANTITY_LEN = 4
  QUANTITY_DIV = 1
  ERROR_BEEP = 1
  QUANTITY_DIM = 1

  :CODE_ID_MARK = A
  BARCODE_START = 2
  BARCODE_LEN = 13
  CALL_ARGUMENT_START = 1
  CALL(A) = BARCODE_1.FF,61400

  :CODE_ID_MARK = B
  CALL_ARGUMENT_START = 1
  CALL(B) = bb-eibcl.ff

Testen eines neu eingerichteten Barcode-Lesers

Um einen neu eingerichteten Barcode-Leser zu testen, starten Sie OpaccERP. Öffnen Sie nach dem Start im OpaccERP Explorer die UI Konsole über den Menüpunkt Extras > UI Konsole... oder den Tastaturbefehl Ctrl+Shift+L und filtern Sie die Barcode-Log-Einträge aus.
Wird Barcode init: O.K. angezeigt, sind Konfiguration und Einstellungen korrekt und der Barcodeleser ist funktionsbereit. Falls hier nicht O.K. steht, muss die Ursache (z.B. falscher COM-Port, Fehler in der Konfigurationsdatei, etc.) zuerst beseitigt werden.
Beispiel
99059.jpg
Protokolleintrag
Beim Einlesen eines Barcode (z.B. Aktivieren eines Artikels im WS 21000 oder Erfassen von Verkaufspositionen im WS 51000) werden div. Informationen protokolliert.
Beispiel
Art = LAEKEROL
AutoExec = 1
Barcode = 4004764000517
DefItemType = 9
ErrorBeep = 0
ItemType = No
NewDoc = 0
SuccessBeep = 0
_RawValue_ = 'A4004764000517'
Beschreibungen zu den Protokolleinträgen
Protokolleintrag
Beschreibung
BCR-Record/Def
Barcode-Record
Barcode
Barcode des Artikels oder Artikel-Nr.
Qty
Menge
QtyId
Dimension
DimVar
Dimensionsvariante
Price
Preis
Free
Inhalt des freien Attributs. (Verkaufsposition)
FreeId
Nummer des freien Attributs. (Verkaufsposition)
AutoExec
Position automatisch speichern.
ErrBeep
Signal bei Fehler.
SucBeep
Signal bei erfolgreicher Verarbeitung (speichern).
NewDoc
Neues Dokument erstellen.
Art
Der gemäss Barcode gefundene Artikel.
Addr
Adress-Nr. des Kunden.
Call
Argument aufgrund dessen hier im Beispiel das F-Script abgearbeitet und anschliessend der WS geöffnet wird.
_RawValue_
Eingelesener (RawValue) Inhalt des Barcode.

Barcode-Leser in einer Terminalserver-Session

Werden Barcode-Leser in einer Terminal-Server-Session verwendet müssen die folgenden Voraussetzungen erfüllt sein:
  • Terminalserver mit oder ohne Citrix MetaFrame.
  • Die Umleitung der seriellen Schnittstelle von der Terminal-Server-Session auf den seriellen Port des Clients muss auf dem Terminal Server aktiviert werden.