Spezifikationen für Befehlsdateien

Befehlsdateien enthalten Anweisungen für den Druckprozess. Diese Anweisungen werden anhand von NiceLabel Befehlen ausgedrückt. Befehle werden hintereinander ausgeführt, vom Anfang bin zum Ende der Datei. Die Dateien unterstützen Unicode-Formatierung, sodass Sie mehrsprachige Inhalte einschließen können. Es gibt drei verschiedene Arten von Befehlsdateien.

CSV-Befehlsdatei

Die in CSV-Befehlsdateien verfügbaren Befehle sind eine Untermenge der NiceLabel Befehle. Die folgenden Befehle sind verfügbar: LABEL, SET, PORT, PRINTER und PRINT.

CSV steht für Comma Separated Values (durch Kommas getrennte Werte). CSV-Dateien sind Textdateien, deren Werte durch Kommas (,) getrennt werden. Solche Textdateien können Unicode-Werte enthalten (wichtig für mehrsprachige Daten). Jede Zeile in der CSV-Befehlsdatei enthält Befehle für eine einzelne Etikettendruckaktion.

Die erste Zeile muss Befehle und Variablennamen enthalten. Die Reihenfolge der Befehle und Namen ist nicht wichtig, aber alle Datensätze im selben Datenstrom müssen dieselbe Struktur aufweisen. Variable Name-Wert-Paare werden automatisch extrahiert und an das referenzierte Etikett gesendet. Falls eine Variable mit einem Namen aus der CSV-Datei auf dem Etikett nicht vorhanden ist, wird keine Fehlermeldung ausgegeben.

Beispiel für eine CSV-Befehlsdatei

Das Beispiel zeigt eine strukturelle Ansicht der Felder, die Sie in einer CSV-Datei verwenden können.

@Label,@Printer,@Quantity,@Skip,@IdenticalCopies,NumberOfSets,@Port,Product_ID, Product_Name
label1.nlbl, CAB A3 203 DPI, 100, , , , , 100A, Product 1
label2.nlbl, Zebra R-402, 20, , , , , 200A, Product 2

Spezifikation der CSV-Befehle

Die Befehle in der ersten Datenzeile müssen mit dem at-Zeichen (@) ausgedrückt werden. Die Felder ohne @ am Anfang sind Namen von Variablen. Diese Felder werden zusammen mit ihren Werten als Name-Wert-Paare extrahiert.

  • @Label: Gibt den zu verwendenden Etikettennamen an. Es empfiehlt sich, den Pfad und Dateinamen des Etiketts anzugeben. Stellen Sie sicher, dass der Dienstbenutzer auf die Datei zugreifen kann. Weitere Informationen finden Sie im Abschnitt Zugriff auf freigegebene Ressourcen im Netzwerk im NiceLabel Automation Benutzerhandbuch. Ein erforderliches Feld.

  • @Printer: Gibt den zu verwendenden Drucker an. Der Befehl übergeht den in der Etikettenvorlage definierten Drucker. Stellen Sie sicher, dass der Dienstbenutzer auf den jeweiligen Drucker zugreifen kann. Weitere Informationen finden Sie im Abschnitt Zugriff auf freigegebene Ressourcen im Netzwerk. Optionales Feld.

  • @Quantity: Gibt die Anzahl von zu druckenden Etiketten an. Mögliche Werte: numerischer Wert, VARIABLE oder UNLIMITED. Weitere Informationen finden Sie im Abschnitt Etikett drucken. Ein erforderliches Feld.

  • @Skip: Gibt die Anzahl von Etiketten an, die auf der ersten gedruckten Seite übersprungen werden sollen. Diese Funktion ist nützlich, wenn Sie eine teilweise bedruckte Seite erneut verwenden möchten. Optionales Feld.

  • @IdenticalCopies: Gibt die Anzahl von Kopien an, die für das jeweilige Etikett gedruckt werden sollen. Diese Funktion ist nützlich, wenn Sie Etiketten mit Daten aus einer Datenbank drucken oder wenn Sie Zähler verwenden und Kopien von Etiketten benötigen. Optionales Feld.

  • @NumberOfSets: Gibt an, wie viele Male der Druckprozess wiederholt werden soll. Jedes Etiketten-Set entspricht einer einzelnen Instanz des Druckprozesses. Optionales Feld.

  • @Port: Gibt den Namen der Schnittstelle für den Drucker an. So können Sie die im Druckertreiber festgelegte Schnittstelle umgehen. Sie können den Befehl auch nutzen, um den Druck an eine Datei umzuleiten. Optionales Feld.

  • Andere Feldnamen: Alle anderen Felder definieren die Namen von Variablen auf dem Etikett. Die Inhalte der Felder werden in der Variablen gespeichert, die denselben Namen hat wie ihr Wert.

JOB-Befehlsdatei

JOB-Befehlsdateien sind Textdateien mit NiceLabel Befehlen. Die Befehle werden von oben nach unten ausgeführt. Die Befehlskette beginnt meistens mit LABEL (um ein Etikett zu öffnen), fährt mit SET fort (um den Variablenwert festzulegen) und endet mit PRINT (um das Etikett zu drucken). Weitere Informationen zu den verfügbaren Befehlen finden Sie im Abschnitt Benutzerdefinierte Befehle verwenden.

Beispiel für eine JOB-Befehlsdatei

Diese JOB-Datei öffnet das Etikett label2.nlbl, legt Variablenwerte fest und druckt ein einzelnes Etikett aus. Da kein PRINTER-Befehl verwendet wird, um den Druck umzuleiten, wird das Etikett auf dem im Etikett angegebenen Drucker gedruckt.

LABEL "label2.nlbl"
SET code="12345"
SET article="FUSILLI"
SET ean="383860026501"
SET weight="1,0 kg"
PRINT 1

XML-Befehlsdatei

Die in einer XML-Befehlsdatei verfügbaren Befehle sind eine Untermenge der NiceLabel Befehle. Die folgenden Befehle sind verfügbar: LOGIN, LABEL, SET, PORT, PRINTER, SESSIONEND, SESSIONSTART und SESSIONPRINT. Die Syntax für diese Befehle weicht in gewissem Maße ab, wenn sie in einer XML-Datei verwendet werden.

Das Stammelement in einer XML-Datei ist <Nice_Commands>. Das Element, das darauf folgen muss, ist <Label>. Dieses Element gibt an, welches Etikett verwendet werden soll.

Es gibt zwei Methoden, um den Etikettendruck zu starten: Regulärer Druck von Etiketten anhand des Elements <Print_Job> oder Druck von Etiketten im Rahmen einer Sitzung anhand des Elements <Session_Print_Job>. Sie können außerdem den Drucker ändern, auf dem die Etiketten gedruckt werden, und zusätzlich den Variablenwert festlegen.

Beispiel für eine XML-Befehlsdatei

Das folgende Beispiel dient als strukturelle Übersicht über die Elemente und ihre Attribute, die Sie in einer XML-Befehlsdatei verwenden können.

<nice_commands>
    <label name="label1.nlbl">

        <session_print_job printer="CAB A3 203DPI" skip=0 job_name="job name 1" print_to_file="filename 1">
            <session quantity="10">
                <variable name="variable name 1" >variable value 1</variable>
            </session>
        </session_print_job>

        <print_job printer="Zebra R-402" quantity="10" skip=0 identical_copies=1 number_of_sets="1" job_name="job name 2" print_to_file="filename 2">
            <variable name="variable1" >1</variable>
            <variable name="variable2" >2</variable> 
            <variable name="variable3" >3</variable>
        </print_job>
    </label>
</nice_commands>

Spezifikation für XML-Befehlsdateien

Dieser Abschnitt enthält eine Beschreibung der Struktur von XML-Befehlsdateien. Es gibt verschiedene Elemente, die Attribute enthalten. Einige Attribute sind erforderlich, andere sind optional. Einige Attribute können nur vordefinierte Werte annehmen, für andere können Sie benutzerdefinierte Werte festlegen.

  • <Nice_Commands>: Dies ist ein Stammelement.

  • <Label>: Gibt an, welche Etikettendatei geöffnet werden soll. Ist das Etikett bereits geöffnet, wird es nicht erneut geöffnet. Der Zugriff auf die Etikettendatei muss vom verwendeten Computer aus möglich sein. Weitere Informationen finden Sie im Abschnitt Zugriff auf freigegebene Ressourcen im Netzwerk. Dieses Element kann innerhalb der Befehlsdatei mehrmals vorhanden sein.

    • Name: Dieses Attribut enthält den Etikettennamen. Sie können auch den Pfad in Kombination mit dem Namen angeben. Erforderlich.

  • <Print_Job>: Dieses Element enthält Daten für einen einzelnen Etikettenauftrag. Dieses Element kann innerhalb der Befehlsdatei mehrmals vorhanden sein.

    • Drucker:: Verwenden Sie dieses Attribut, um den im Etikett definierten Drucker zu umgehen. Der Zugriff auf den Drucker muss vom verwendeten Computer aus möglich sein. Weitere Informationen finden Sie im Abschnitt Zugriff auf freigegebene Ressourcen im Netzwerk. Optional.

    • Menge: Verwenden Sie dieses Attribut, um die Anzahl zu druckender Etiketten festzulegen. Mögliche Werte: numerischer Wert, VARIABLE oder UNLIMITED. Weitere Informationen zu Parametern finden Sie im Abschnitt Etikett drucken. Erforderlich.

    • Skip: Verwenden Sie dieses Attribut, um die Anzahl von Etiketten festzulegen, die am Seitenanfang übersprungen werden sollen. Diese Funktion ist nützlich, wenn Sie Etiketten mit einem Laserdrucker auf einen Papierbogen drucken, der bereits teilweise bedruckt ist. Weitere Informationen finden Sie im Abschnitt Etikett drucken. Optional.

    • Job_name: Verwenden Sie dieses Attribut, um den Namen Ihrer Auftragsdatei festzulegen. Der angegebene Name wird im Druck-Spooler angezeigt. Weitere Informationen finden Sie im Abschnitt Druckauftragsnamen festlegen. Optional.

    • Print_to_file: Verwenden Sie dieses Attribut, um den Namen der Datei anzugeben, in der Sie die Druckerbefehle speichern möchten. Weitere Informationen finden Sie im Abschnitt Druck an Datei umleiten. Optional.

    • Identical_copies: Verwenden Sie dieses Attribut, um die Anzahl von Kopien festzulegen, die Sie für jedes Etikett benötigen. Weitere Informationen finden Sie im Abschnitt Etikett drucken.

  • <Session_Print_Job>: Dieses Element enthält Befehle und Daten für eine oder mehrere Sitzungen. Das Element kann ein oder mehrere <Session>-Elemente enthalten. Es befolgt Regeln für den Sitzungsdruck. Sie können dieses Element mehrmals innerhalb der Befehlsdatei verwenden. Für verfügbare Attribute, siehe Attribute für das <Print_Job>-Element. Alle davon sind gültig; Sie können lediglich das Quantity-Attribut nicht verwenden. In der Beschreibung für das Element <Session> erfahren Sie, wie Sie die Etikettenmenge für den Sitzungsdruck angeben können.

  • <Session>: Dieses Element enthält Daten für eine Sitzung. Bei Verwendung des Sitzungsdrucks werden alle Etiketten zu einem einzelnen Druckauftrag codiert und an den Drucker gesendet.

    • Quantity: Verwenden Sie dieses Attribut, um die Anzahl zu druckender Etiketten festzulegen. Mögliche Werte: numerischer Wert, Zeichenfolge „VARIABLE“ oder Zeichenfolge „UNLIMITED“. Weitere Informationen zu Parametern finden Sie im Abschnitt Etikett drucken. Erforderlich.

  • <Variable>: Dieses Element definiert die Variablenwerte auf dem Etikett. Dieses Element kann innerhalb der Befehlsdatei mehrmals vorhanden sein.

    • Name: Dieses Attribut enthält den Namen der Variablen. Erforderlich.

Definition des XML-Schemas (XSD) für XML-Befehlsdateien

<?xml version="1.0" encoding="utf-8"?>
<xs:schema targetNamespace="http://tempuri.org/XMLSchema.xsd" elementFormDefault="qualified" xmlns="http://tempuri.org/XMLSchema.xsd" xmlns:mstns="http://tempuri.org/XMLSchema.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:element name="nice_commands">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="label" maxOccurs="unbounded" minOccurs="1">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="print_job" maxOccurs="unbounded" minOccurs="0">
                                <xs:complexType>
                                    <xs:sequence>
                                        <xs:element name="database" maxOccurs="unbounded" minOccurs="0">
                                            <xs:complexType>
                                                <xs:simpleContent>
                                                    <xs:extension base="xs:string">
                                                        <xs:attribute name="name" type="xs:string" use="required" />
                                                    </xs:extension>
                                                </xs:simpleContent>
                                            </xs:complexType>
                                        </xs:element>
                                        <xs:element name="table" maxOccurs="unbounded" minOccurs="0">
                                            <xs:complexType>
                                                <xs:simpleContent>
                                                    <xs:extension base="xs:string">
                                                        <xs:attribute name="name" type="xs:string" use="required" />
                                                    </xs:extension>
                                                </xs:simpleContent>
                                            </xs:complexType>
                                        </xs:element>
                                        <xs:element name="variable" maxOccurs="unbounded" minOccurs="0">
                                            <xs:complexType>
                                                <xs:simpleContent>
                                                    <xs:extension base="xs:string">   
                                                        <xs:attribute name="name" type="xs:string" use="required" />
                                                    </xs:extension>
                                                </xs:simpleContent>
                                            </xs:complexType>
                                        </xs:element>
                                    </xs:sequence>
                                    <xs:attribute name="quantity" type="xs:string" use="required" />
                                    <xs:attribute name="printer" type="xs:string" use="optional" />
                                    <xs:attribute name="skip" type="xs:integer" use="optional" />
                                    <xs:attribute name="identical_copies" type="xs:integer" use="optional" />
                                    <xs:attribute name="number_of_sets" type="xs:integer" use="optional" />
                                    <xs:attribute name="job_name" type="xs:string" use="optional" />
                                    <xs:attribute name="print_to_file" type="xs:string" use="optional" />
                                    <xs:attribute name="print_to_file_append" type="xs:boolean" use="optional" />
                                    <xs:attribute name="clear_variable_values" type="xs:boolean" use="optional" />
                                </xs:complexType>
                            </xs:element>
                            <xs:element name="session_print_job" maxOccurs="unbounded" minOccurs="0">
                                <xs:complexType>
                                    <xs:sequence>
                                        <xs:element name="database" maxOccurs="unbounded" minOccurs="0">
                                            <xs:complexType>
                                                <xs:simpleContent>
                                                    <xs:extension base="xs:string">       
                                                        <xs:attribute name="name" type="xs:string" use="required" />
                                                    </xs:extension>
                                                </xs:simpleContent>
                                            </xs:complexType>
                                        </xs:element>
                                        <xs:element name="table" maxOccurs="unbounded" minOccurs="0">
                                            <xs:complexType>
                                                <xs:simpleContent>
                                                    <xs:extension base="xs:string">
                                                        <xs:attribute name="name" type="xs:string" use="required" />
                                                    </xs:extension>
                                                </xs:simpleContent>
                                            </xs:complexType>
                                        </xs:element>
                                        <xs:element name="session" minOccurs="1" maxOccurs="unbounded">
                                            <xs:complexType>
                                                <xs:sequence>
                                                    <xs:element name="variable" minOccurs="0" maxOccurs="unbounded">
                                                        <xs:complexType>    
                                                            <xs:simpleContent>
                                                                <xs:extension base="xs:string">
                                                                    <xs:attribute name="name" type="xs:string" use="required" />                                                                
                                                                </xs:extension>       
                                                            </xs:simpleContent>
                                                        </xs:complexType>
                                                    </xs:element>
                                                </xs:sequence>
                                                <xs:attribute name="quantity" type="xs:string" use="required" />
                                            </xs:complexType>
                                        </xs:element>
                                    </xs:sequence>
                                    <xs:attribute name="printer" type="xs:string" use="optional" />
                                    <xs:attribute name="skip" type="xs:integer" use="optional" />
                                    <xs:attribute name="job_name" type="xs:string" use="optional" />
                                    <xs:attribute name="print_to_file" type="xs:string" use="optional" />
                                    <xs:attribute name="print_to_file_append" type="xs:boolean" use="optional" />
                                    <xs:attribute name="clear_variable_values" type="xs:boolean" use="optional" />
                                </xs:complexType>
                            </xs:element>
                        </xs:sequence>
                        <xs:attribute name="name" type="xs:string" use="required" />
                        <xs:attribute name="close" type="xs:boolean" use="optional" />
                        <xs:attribute name="clear_variable_values" type="xs:boolean" use="optional" />
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
            <xs:attribute name="quit" type="xs:boolean" use="required" />
        </xs:complexType>
    </xs:element>
</xs:schema>

Oracle XML-Spezifikationen

Das Oracle XML-Format ist so ausgelegt, dass die XML-Inhalte interpretiert, geparst und auf Etiketten gedruckt werden können. Die XML-Dokumenttypdefinition (DTD) definiert die XML-Tags, die in einer XML-Datei verwendet werden sollen. Oracle generiert XML-Dateien gemäß dieser DTD, und Software anderer Anbieter übersetzt die XML-Datei ebenfalls gemäß der DTD.

Um eine Oracle XML-Befehlsdatei auszuführen, verwenden Sie die Aktion Oracle XML-Befehlsdatei ausführen

XML-DTD

Nachfolgend finden Sie die XML-DTD, die verwendet wird, um eine XML sowohl für synchrone als auch für asynchrone XML-Formate zu bilden. Die DTD definiert Elemente, die in der XML-Datei verwendet werden, eine Liste ihrer Eigenschaften sowie Elemente der nächsten Ebene.

<!ELEMENT labels (label)*>
<!ATTLIST labels _FORMAT CDATA #IMPLIED>
<!ATTLIST labels _JOBNAME CDATA #IMPLIED>
<!ATTLIST labels _QUANTITY CDATA #IMPLIED>
<!ATTLIST labels _PRINTERNAME CDATA #IMPLIED>
<!ELEMENT label (variable)*>
<!ATTLIST label _FORMAT CDATA #IMPLIED>
<!ATTLIST label _JOBNAME CDATA #IMPLIED>
<!ATTLIST label _QUANTITY CDATA #IMPLIED>

Beispiel für eine Oracle XML-Datei

Diese Oracle XML-Datei stellt Daten für ein Etikett bereit (es gibt nur ein <label>-Element).

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE labels SYSTEM "label.dtd">
<labels _FORMAT ="Serial.nlbl" _QUANTITY="1" _PRINTERNAME="" _JOBNAME="Serial">
    <label>
        <variable name= "item">O Ring</variable>
        <variable name= "revision">V1</variable>
        <variable name= "lot">123</variable>
        <variable name= "serial_number">12345</variable>
        <variable name= "lot_status">123</variable>
        <variable name= "serial_number_status">Active</variable>
        <variable name= "organization">A1</variable>
    </label>
</labels>

Bei Ausführung dieser Oracle XML-Beispieldatei wird das Etikett serial.nlbl mit den folgenden Variablenwerten gedruckt.

Variablenname

Variablenwert

item

O Ring

revision

V1

lot

123

serial_number

12345

lot_status

123

serial_number_status

Active

organization

A1

Es wird 1 gedruckte Kopie des Etiketts mit dem Spooler-Auftragsnamen Serial geben. Der Druckername ist in der XML-Datei nicht angegeben; daher wird das Etikett auf dem Drucker gedruckt, der in der Etikettenvorlage definiert ist.

SAP AII XML-Spezifikationen

NiceLabel Automation kann als ein RFID-Gerätecontroller agieren, um RFID-Tags zu codieren und Etiketten zu drucken. Weitere Informationen zu SAP AII XML-Spezifikationen finden Sie im Dokument SAP Auto-ID Infrastructure Device Controller Interface auf der SAP-Website.

Um eine solche Befehlsdatei auszuführen, verwenden Sie die Aktion SAP AII XML-Befehlsdatei ausführen

Beispiel für SAP AII XML

Diese SAP AII XML-Datei stellt Daten für ein Etikett bereit (beachten Sie, dass es nur ein <label>-Element gibt).

<?xml version="1.0" encoding="UTF-8"?>
<Command xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="Command.xsd">
    <WriteTagData readerID="DEVICE ID">
        <Item>
            <FieldList format="c:\SAP Demo\SAP label.nlbl" jobName="Writer_Device20040929165746" quantity="1">
            <Field name="EPC">00037000657330</Field>
            <Field name="EPC_TYPE">SGTIN-96</Field>
            <Field name="EPC_URN">urn:autoid:tag:sgtin:3.5.0037000.065774.8</Field>
            <Field name="PRODUCT">Product</Field>
            <Field name="PRODUCT_DESCRIPTION">Product description</Field>
            </FieldList>
        </Item>
    </WriteTagData>
</Command>

Bei Ausführung dieser SAP AI XML-Beispieldatei wird das Etikett c:\SAP Demo\SAP label.nlbl mit den folgenden Variablenwerten gedruckt.

Variablenname

Variablenwert

EPC

00037000657330

EPC_TYPE

SGTIN-96

EPC

urn:autoid:tag:sgtin:3.5.0037000.065774.8

PRODUCT

Produkt

PRODUCT_DESCRIPTION

Produktbeschreibung

Es wird 1 gedruckte Kopie des Etiketts mit dem Spooler-Auftragsnamen Writer_Device2004092916574 geben. Der Druckername ist in der XML-Datei nicht angegeben; daher wird das Etikett auf dem Drucker gedruckt, der in der Etikettenvorlage definiert ist.

PAS-Befehlsdatei

Die PAS-Befehlsdatei ist eine Textdatei, die Loftware LPS-Druckbefehle enthält. Die Befehle werden in der Reihenfolge von oben nach unten ausgeführt. Jede PAS-Datei muss mit dem Befehl *FORMAT (open label) beginnen und mit dem Befehl *PRINTLABEL enden.

Die PAS-Befehlsdatei kann mit der Aktion Befehlsdatei ausführen ausgeführt werden.

Anmerkung

Wenn Sie von Loftware zu NiceLabel gewechselt haben, können Sie Ihre bestehenden Befehlsdateien mit NiceLabel Etikettenvorlagen (.nlbl) verwenden. Der *FORMAT-Befehl prüft, ob eine .nlbl Datei mit dem gleichen Namen wie .lwl existiert.

Beispiel für PAS-Befehlsdatei

*FORMAT,\\127.0.0.1\labelcomputer$\labels\ML2193.lwl
*JOBNAME,PastaPallet002
*QUANTITY,1
*PRINTERNUMBER,1
Text0000,New Data
Text0001,New Data
*PRINTLABEL

Anmerkung

Wenn Sie den Befehl *PRINTERNUMBER verwenden möchten, müssen Sie die Datei printr32.ini von LPS nach c:\Program Files\NiceLabel\NiceLabel 10\\bin.net\Configuration.

Weitere Einzelheiten zu PAS-Befehlen finden Sie im Loftware LPS-Benutzerhandbuch.