CSR
Der Wurzelknoten des XML-Dokuments.
Unterstützte Kindknoten
| Knoten | Beschreibung |
|---|---|
| Condition | Wird verwendet, um eine Bedingung zu erstellen, damit ein Knoten gültig ist |
| ErrorOn | Enthält Logik für den Fall, dass kein Produkt ausgewählt werden kann |
| Expressions | Ändern oder Anwenden von Daten auf Felder |
| Prices | Inline-Preisberechnung |
| SelectRules | Logik, wenn nur ein Produkt gültig ist |
| ServiceLevels | Logik, wenn mehr als ein Produkt gültig ist |
| GoodsTypeMappings | Logik zur Zuweisung eines Warentyps zu einem Produkt |
| ServiceMappings | Logik zur Zuweisung von Service(s) zu einem Produkt |
Unterstützt die folgenden Attribute (1 = wahr, 0 = falsch)
- defaultservicelevel - Wenn ein ServiceLevel-Name verwendet wird, wird der Standard ignoriert.
- onsubmit - Aktiviert CSR bei Absenden
- showservicelevelsinpv - Ermöglicht dem Benutzer, ServiceLevels aus PV auszuwählen
- userconfirm - Zeigt eine Bestätigungsnachricht in PV an
- nocache - Wird bei der Entwicklung und dem Testen der XML-Datei verwendet
- useproductnamefromfile - Verwendet das Namensattribut aus dem Produktknoten
- onimporttoinbox - Aktiviert CSR beim Import ohne automatischen Druck. Standardmäßig aktiv.
- presubmit_event_validation - Aktiviert Postleitzahl-/Routing-Code-Lookup
-
carriervalidation - Schaltet die Spediteurvalidierung aus, wenn CSR ausgeführt wird. Wird meist zusammen mit GetShipAdvise verwendet, um die Produktvalidierung zu beschleunigen. Neben 1 und 0 sind auch folgende Einstellungen möglich:
- carriervalidation="light" - überspringt Validierungen von Setup-Elementen, führt aber Spediteurvalidierungen aus.
- carriervalidation="superlight" - führt nur Spediteurvalidierungen durch, keine Standardvalidierungen wie Absender- und Empfängerländer, leerer Empfängername und Postleitzahl etc.
Standardwerte für die Attribute, falls nicht angegeben
<CSR defaultservicelevel="" nocache="0" showservicelevelsinpv="0"
onsubmit="1" userconfirm="0" carriervalidation="1"
useproductnamefromfile="0" onimporttoinbox="1"
presubmit_event_validation="0">
<ErrorOn/>
<Condition/>
<Prices/>
<SelectRules/>
<ServiceLevels/>
</CSR>
ErrorOn
Enthält Logik zur Behandlung von Fällen, in denen kein Produkt ausgewählt werden kann
Hinweis: Gilt nur bei Verwendung des ServiceLevel-Knotens
Unterstützt die folgenden Attribute (1 = wahr, 0 = falsch)
- autoselectservicelevelfailed - Fehler, wenn kein ServiceLevel basierend auf dem Eingabeprodukt gefunden werden kann
- novalidproductsfound - Fehler, wenn kein gültiges Produkt in einem ServiceLevel gefunden werden kann
- etawebservicefailed - Fehler, wenn der Aufruf des ETA-Webservices fehlschlägt (nur zusammen mit der Shipment Server-Methode PreAdviseOrder verwendbar)
- noproductscandeliver - Fehler, wenn keine Produkte innerhalb der angeforderten Lieferzeit liefern können (nur zusammen mit der Shipment Server-Methode PreAdviseOrder verwendbar)
Standardwerte für die Attribute, falls nicht angegeben
<CSR>
<ErrorOn autoselectservicelevelfailed="0"
novalidproductsfound="1"
etawebservicefailed="0"
noproductscandeliver="0"/>
</CSR>
SelectRules
SelectRules können unter dem CSR- und jedem ServiceLevels-Knoten platziert werden.
Sie werden verwendet, wenn bekannt ist, welches Produkt unter einer Bedingung ausgewählt werden soll.
Unterstützte Kindknoten
| Knoten | Beschreibung |
|---|---|
| SelectRule | Benutzerdefinierte Validierung |
Beispiel
<CSR>
<SelectRules/>
<ServiceLevels>
<ServiceLevel>
<SelectRules/>
</ServiceLevel>
</ServiceLevels>
</CSR>
SelectRule
SelectRule wird unter dem SelectRules-Knoten platziert.
Dieser Knoten unterstützt Verschachtelungen, sodass mehrere SelectRule-Knoten in einem anderen SelectRule enthalten sein können.
Unterstützte Kindknoten
| Knoten | Beschreibung |
|---|---|
| SelectRule | Benutzerdefinierte Validierung |
| Expressions | Anwenden benutzerdefinierter Daten auf Feld |
| Product | Das Produkt, das ausgewählt wird, wenn die Validierung gültig ist |
Dieser Knoten kann auf verschiedene Arten konfiguriert werden:
stringcompare (Nur wenn das Feld den Wert aus dem comparestring enthält)
<SelectRule name="stringcompare" comparestring="some_value"
equal="1" casesensitive="0" field="STRING_FIELDS"
custommessage="">
<Product/>
</SelectRule>
regex (Nur wenn das Feld den Wert aus dem comparestring enthält)
<SelectRule name="regex" comparestring="a_regex_expression"
equal="1" casesensitive="0" field="STRING_FIELDS"
custommessage="">
<Product/>
</SelectRule>
country (Nur NO, SE erlaubt)
<SelectRule name="country" allowcountries="NO,SE"
field="COUNTRY_FIELDS" custommessage="">
<Product/>
</SelectRule>
datelimits
<SelectRule name="datelimits" min="dd.MM.YYYY" max="dd.MM.YYYY"
field="DATE_FIELDS" custommessage="">
<Product/>
</SelectRule>
datetimelimits
<SelectRule name="datetimelimits"
min="dd.MM.YYYY hh:mm" max="dd.MM.YYYY hh:mm"
field="DATE_FIELDS" custommessage="">
<Product/>
</SelectRule>timelimits
<SelectRule name="timelimits" min="hh:mm" max="hh:mm"
field="DATE_FIELDS" custommessage="">
<Product/>
</SelectRule>
intlimits
<SelectRule name="intlimits" min="0" max="1"
unit="UNITS" field="INT_FIELDS" custommessage="">
<Product/>
</SelectRule>
floatlimits
<SelectRule name="floatlimits" min="0.0" max="10.5"
unit="UNITS" field="FLOAT_FIELDS" custommessage="">
<Product/>
</SelectRule>
postcodevalidation - Bereichsdatei - Typ Numerisch
<SelectRule name="postcodevalidation">
<PostcodeValidations>
<PostcodeValidation country="" exclude="1" type="numeric"
rangefile="file.txt"/>
</PostcodeValidations>
<Product/>
</SelectRule>// file.txt
6400,6500
7400,8000postcodevalidation - Bereichsdatei - Typ UK
<SelectRule name="postcodevalidation">
<PostcodeValidations>
<PostcodeValidation country="GB" exclude="1" type="UK"
rangefile="file.txt"/>
</PostcodeValidations>
<Product/>
</SelectRule>// file.txt
NW9 0AA,
NW9 0AB,
NW9 0AC,Alle Postleitzahlen, die mit "NW9 0AA", "NW9 0AB", "NW9 0AC" beginnen, werden ausgeschlossen.
postcodevalidation - Inline - Typ Numerisch
<SelectRule name="postcodevalidation">
<PostcodeValidations>
<PostcodeValidation country="" exclude="1" type="numeric">
<Range min="6400" max="6500"/>
</PostcodeValidation>
</PostcodeValidations>
<Product/>
</SelectRule>postcodevalidation - Inline - Typ UK
<SelectRule name="postcodevalidation">
<PostcodeValidations>
<PostcodeValidation country="GB" exclude="1" type="UK">
<Range min="BA" max=""/>
<Range min="BN1" max=""/>
</PostcodeValidation>
</PostcodeValidations>
<Product/>
</SelectRule>
Alle Postleitzahlen, die mit "BA" und "BN1" beginnen, werden ausgeschlossen.
ServiceLevels
Der ServiceLevels-Knoten kann nur unter dem CSR-Knoten platziert werden.
Es können mehr als ein ServiceLevel im ServiceLevels-Knoten vorhanden sein, wodurch es möglich ist, verschiedene Zuweisungsregeln auf eine Produktsammlung anzuwenden und mehrere Versandprozesse zu haben.
Unterstützte Kindknoten
| Knoten | Beschreibung |
|---|---|
| ServiceLevel | Logik, falls mehr als ein Produkt verwendet werden kann |
Beispiel
<CSR>
<ServiceLevels>
<ServiceLevel/>
</ServiceLevels>
</CSR>
ServiceLevel
Kann nur innerhalb eines ServiceLevels-Knotens platziert werden. Der ServiceLevel enthält eine Liste von Produkten.
Unterstützte Kindknoten
| Knoten | Beschreibung |
|---|---|
| Products | Enthält die Produktknoten |
| Expressions | Ändern oder Anwenden von Daten auf Felder |
| SelectRules | Logik, wenn nur ein Produkt gültig ist |
| ServiceLevel | Logik, wenn mehr als ein Produkt gültig ist |
| AllocationRules | Wie Produkte zugewiesen werden |
Unterstützt die folgenden Attribute
-
name - die ID des ServiceLevels
- fallback - Name eines anderen ServiceLevels, auf den zugegriffen wird, wenn kein Produkt die Validierungen besteht
Beispiel
<ServiceLevels>
<ServiceLevel name="" fallback="">
<SelectRules/>
<Products/>
<AllocationRules/>
</ServiceLevel>
</ServiceLevels>
Products
Der Products-Knoten enthält eine Liste von Product-Knoten, kann nur einmal in jedem ServiceLevel-Knoten platziert werden.
Unterstützte Kindknoten
| Knoten | Beschreibung |
|---|---|
| Product | Produktkonfiguration |
Beispiel
<ServiceLevels>
<ServiceLevel>
<Products/>
</ServiceLevel>
</ServiceLevels>
Product
Der Product-Knoten wird sowohl im SelectRule- als auch im Products-Knoten verwendet.
1. Unterstützte Kindknoten wenn unter dem Products Knoten platziert
| Knoten | Beschreibung |
|---|---|
| Expressions | Ändern oder Anwenden von Daten auf Felder |
| GoodsTypeMapping | Logik zur Aktivierung eines Warentyps |
| Services | Logik zur Aktivierung von Service(s) |
| ValidationRules | Benutzerdefinierte Validierung |
| PostCodeValidations | Benutzerdefinierte Postleitzahl-Validierung |
| CustomFields | Enthält benutzerdefinierte Werte, die für SA 2.0 zurückgegeben werden sollen |
Unterstützt die folgenden Attribute
- name - Name des Produkts
- conceptid - ID eines Konzept-Spediteurs
- dbid - ID eines benutzerdefinierten Produkts
- adviseprice - Name des Price-Knotens
- rank - Wird zusammen mit dem highestrank-Zuweisungstyp verwendet
- stackid - Wird verwendet, um eine Sendung in einen bestimmten Stapel zu platzieren
Die folgenden Attribute werden zusammen mit der SS API-Methode GetShipAdvise verwendet
0 - Option deaktivieren (Standard) | 1 - Option aktivieren
-
requireprice - Wenn für das Produkt kein Preis berechnet werden kann, wird das Produkt nicht zurückgegeben
-
requiredroppoints - Produkt wird nicht zurückgegeben, wenn keine Abgabestellen zugänglich sind.
Erfordert die Option "DropPoints":1 in der GetShipAdvise-Anfrage
Beispiel
<Products>
<Product>
<ProductGoodsType/>
<Services/>
<ValidationRules/>
<PostCodeValidations/>
<CustomFields/>
</Product>
</Products>
2. Unterstützte Kindknoten wenn unter einem SelectRule-Knoten platziert
| Knoten | Beschreibung |
|---|---|
| Product | Produktinformationen |
| Expressions | Anwenden benutzerdefinierter Daten auf Feld |
| GoodsTypeMapping | Logik zur Aktivierung eines Warentyps |
| Services | Logik zur Aktivierung von Service(s) |
Unterstützt die folgenden Attribute
- name - Name des Produkts
- conceptid - ID eines Konzept-Spediteurs
- dbid - ID eines benutzerdefinierten Produkts
- adviseprice - Name des Price-Knotens
Beispiel
<SelectRule>
<Product>
<ProductGoodsType/>
<Services/>
</Product>
</SelectRule>
ProductGoodsType
Wird verwendet, um einem ausgewählten Produkt einen Warentyp zuzuweisen
Folgende Attribute können definiert werden
- goodstypename - Nicht verwendet, nur zur besseren Lesbarkeit in der Datei
- goodstypeid - die ID aus der Spediteur-Definitionsdatei.
- iscustom (0) - Bei Verwendung benutzerdefinierter Warentypen auf 1 setzen.
Beispiel
<SelectRule>
<Product>
<ProductGoodsType/>
</Product>
</SelectRule>
Services
Der Services -Knoten enthält eine Liste von Service(s), die für das ausgewählte Produkt aktiviert werden sollen.
Unterstützte Kindknoten
| Knoten | Beschreibung |
|---|---|
| Service | Der Service, der auf einem Produkt aktiviert werden soll |
Service
Der Service-Knoten wird verwendet, um einem Produkt einen Service zuzuweisen.
Folgende Attribute können definiert werden
- name - Name des Services
- serviceid - ID des Services
Beispiel
<CSR>
<SelectRules>
<SelectRule>
<Product>
<Services>
<Service/>
</Services>
</Product>
</SelectRule>
</SelectRules>
<ServiceLevels>
<ServiceLevel>
<SelectRules>
<SelectRule>
<SelectRule>
<Product>
<Services>
<Service/>
</Services>
</Product>
</SelectRule>
</SelectRule>
</SelectRules>
<Products>
<Product>
<Services>
<Service/>
</Services>
</Product>
</Products>
<AllocationRules>
<AllocationRule/>
</AllocationRules>
</ServiceLevel>
</ServiceLevels>
</CSR>
PostCodeValidations
Der PostCodeValidations -Knoten enthält eine Liste von PostCodeValidation-Knoten
Hinweis: Siehe auch die SelectRule Implementierung von PostCodeValidations
Unterstützte Kindknoten
| Knoten | Beschreibung |
|---|---|
| PostCodeValidation | Die Postleitzahl(en), auf die Logik angewendet wird |
PostCodeValidation
Der PostCodeValidations -Knoten enthält eine Liste von Service(s), die für das ausgewählte Produkt aktiviert werden sollen.
Hinweis: Siehe auch die SelectRule Implementierung von PostCodeValidation
Folgende Attribute können definiert werden
- name - Name des Services
- serviceid - ID des Services
postcodevalidation - Bereichsdatei - Typ Numerisch
<Product>
<PostcodeValidations>
<PostcodeValidation country="" exclude="1" type="numeric"
rangefile="file.txt"/>
</PostcodeValidations>
</Product>// file.txt
6400,6500
7400,8000postcodevalidation - Bereichsdatei - Typ UK
<Product>
<PostcodeValidations>
<PostcodeValidation country="GB" exclude="1" type="UK"
rangefile="file.txt"/>
</PostcodeValidations>
</Product>// file.txt
NW9 0AA,
NW9 0AB,
NW9 0AC,postcodevalidation - Inline - Typ Numerisch
<Product>
<PostcodeValidations>
<PostcodeValidation country="" exclude="1" type="numeric">
<Range min="6400" max="6500"/>
</PostcodeValidation>
</PostcodeValidations>
</Product>postcodevalidation - Inline - Typ UK
<Product>
<PostcodeValidations>
<PostcodeValidation country="GB" exclude="1" type="UK">
<Range min="BA" max=""/>
<Range min="BN1" max=""/>
</PostcodeValidation>
</PostcodeValidations>
</Product>
Alle Postleitzahlen, die mit "BA" und "BN1" beginnen, werden ausgeschlossen.
ValidationRules
Kann nur innerhalb eines Product-Knotens platziert werden, wenn der Product-Knoten in einem Products-Knoten ist
<CSR>
<ServiceLevels>
<ServiceLevel>
<Products>
<Product>
<ValidationRules/>
</Product>
</Products>
</ServiceLevel>
</ServiceLevels>
</CSR>
ValidationRule
Wenn die Standard-Validierungen des Spediteurs nicht ausreichen, können Sie mit diesem Knoten weitere Validierungen am Produkt hinzufügen.
Ein oder mehrere können einem ValidationRules-Knoten hinzugefügt werden
<Products>
<Product>
<ValidationRules>
<ValidationRule/>
</ValidationRules>
</Product>
</Products>
STRING_FIELDS
fld_LMarking, fld_LContents, fld_LGoodsType, fld_AdrName1, fld_AdrName2, fld_AdrAddress1, fld_AdrAddress2, fld_AdrPostNo, fld_AdrCity, fld_AdrCountry, fld_AdrState, fld_AdrPhone, fld_AdrMobile, fld_AdrEmail, fld_AdrAttention, fld_AdrReceiverRef, fld_AdrSenderCustNo, fld_AdrSenderName1, fld_AdrSenderName2, fld_AdrSenderAddress1, fld_AdrSenderAddress2, fld_AdrSenderPostNo, fld_AdrSenderCity, fld_AdrSenderCountry, fld_AdrSenderCountryName, fld_AdrSenderState, fld_AdrSenderPhone, fld_AdrSenderMobile, fld_AdrSenderEmail, fld_AdrSenderAttention, fld_RefOrderNumber, fld_RefProject, fld_MsgDriver, fld_MsgCarrier, fld_MsgReceiver, fld_CustomField1, fld_CustomField2, fld_CustomField3, fld_CustomField4, fld_CustomField5, fld_CustomField6, fld_CustomField7, fld_CustomField8, fld_CustomField9, fld_CustomField10
COUNTRY_FIELDS
fld_AdrCountry, fld_AdrSenderCountry, fld_AdrPayerCountry
FLOAT_FIELDS
fld_LWeight, fld_LLineWeight, fld_LHeight, fld_LLength, fld_LWidth, fld_LVolume, fld_LLineVolume, fld_LLoadmeter, fld_ShipmentVolumeMM3, fld_ShipmentWeightG, fld_ShipmentLoadmeter, fld_ShipmentMaxPackageLengthPlusCircumference
INT_FIELDS
fld_LNumber, fld_LRecycleNo, fld_DGNumber, fld_ShipmentCountPackages, fld_ShipmentCountLines
DATE_FIELDS
fld_RefDeliveryDate, fld_PickupDate, fld_RefPickupStart, fld_RefPickupEnd, fld_RefDeliveryStart, fld_RefDeliveryEnd
UNITS
mm3, dm3, m3, g, kg, mm, cm, dm, m
Dieser Knoten kann auf verschiedene Arten konfiguriert werden:
stringcompare (Nur wenn das Feld den Wert aus dem comparestring enthält)
<ValidationRule name="stringcompare" comparestring="some_value"
equal="1" casesensitive="0" field="STRING_FIELDS"
custommessage=""/>
regex (Nur wenn das Feld enthält den Wert aus dem comparestring)
<ValidationRule name="stringcompare" type="regex" comparestring="a_regex_expression"
equal="1" casesensitive="0" field="STRING_FIELDS"
custommessage=""/>
country (Nur NO, SE erlaubt)
<ValidationRule name="country" allowcountries="NO,SE"
field="COUNTRY_FIELDS" custommessage=""/>
datelimits
<ValidationRule name="datelimits" min="dd.MM.YYYY" max="dd.MM.YYYY"
field="DATE_FIELDS" custommessage=""/>
datetimelimits
<ValidationRule name="datetimelimits"
min="dd.MM.YYYY hh:mm" max="dd.MM.YYYY hh:mm"
field="DATE_FIELDS" custommessage=""/>timelimits
<ValidationRule name="timelimits" min="hh:mm" max="hh:mm"
field="DATE_FIELDS" custommessage=""/>
intlimits
<ValidationRule name="intlimits" min="0" max="1"
unit="UNITS" field="INT_FIELDS" custommessage=""/>
floatlimits
<ValidationRule name="floatlimits" min="0.0" max="10.5"
unit="UNITS" field="FLOAT_FIELDS" custommessage=""/>
ODER-Operation - Dies ist eine erweiterte Funktion, die die Verwendung von ODER-Regeln in den Validierungen ermöglicht. Das folgende Beispiel ist gültig für den Wert YES und leer
<ValidationRule name="stringcompare" comparestring="YES" suboperation="or" equal="1" casesensitive="0" field="fld_CustomField1">
<ValidationRule name="stringcompare" equal="1" casesensitive="0" field="fld_CustomField1"/>
</ValidationRule>
Commands
Wird verwendet, um eine Einstellung an einem Produkt anzuwenden oder zu ändern
Folgende Attribute können definiert werden
- function - Logik, die ausgeführt werden soll
- name - Zielschlüssel
- value - Wert, der angewendet wird
Beispiel - SetOption
<Products>
<Product>
<Commands>
<Command function="SetOption" name ="Labels" value="PNG"/>
</Commands>
</Product>
</Products>* Wird bei der Shipment Server - SubmitShipment-Methode verwendet, um das angeforderte Etikettenformat zu überschreiben
Beispiel - PreAdviseOrder
<Products>
<Product>
<Commands>
<Command function="PreAdviseOrder" name="Submit" value="1"/>
</Commands>
</Product>
</Products>* Wird bei der Shipment Server-Methode verwendet, um PreAdviseOrder zu erzwingen, damit die Sendung übermittelt wird, anstatt sie im Posteingang zu speichern
CustomFields
Wird verwendet, um einen oder mehrere statische Werte zu definieren, die zusammen mit dem Produkt zurückgegeben werden.
Hinweis: Dies funktioniert nur für die ShipmentServer-Methode GetShipAdvise
Einzeln
<CustomFields customer_carrier_code="PNParcel"/>
Mehrere
<CustomFields key1="value" key2="value" key3="value" key4="value"/>
AllocationRules
Der AllocationRules -Knoten enthält einen oder mehrere AllocationRule-Knoten.
Die Zuweisung wird verwendet, um zu entscheiden, welches Produkt, falls mehr als eines gültig ist, verwendet werden soll.
Unterstützte Kindknoten
| Knoten | Beschreibung |
|---|---|
| AllocationRule | Art der Zuweisung |
Beispiel
<CSR>
<ServiceLevels>
<ServiceLevel>
<AllocationRules>
<AllocationRule/>
</AllocationRules>
</ServiceLevel>
</ServiceLevels>
</CSR>
AllocationRule
Einer oder mehrere können unter dem AllocationRules-Knoten platziert werden
Konfigurationen
Die Zuweisungsregel kann so konfiguriert werden, dass Produkte auf verschiedene Arten zugewiesen werden:
order - Wenn alle Produkte gültig sind, wird das erste Produkt verwendet, z.B. Produkt A
<CSR>
<ServiceLevels>
<ServiceLevel>
<Products>
<Product name="Product A" conceptid="x"/>
<Product name="Product B" conceptid="y"/>
<Product name="Product C" conceptid="z"/>
</Products>
<AllocationRules>
<AllocationRule type="order"/>
</AllocationRules>
</ServiceLevel>
</ServiceLevels>
</CSR>
preselected -Wenn das ausgewählte Produkt gültig ist, wird es verwendet
<CSR>
<ServiceLevels>
<ServiceLevel>
<Products>
<Product conceptid="x"/>
<Product conceptid="y"/>
</Products>
<AllocationRules>
<AllocationRule type="preselected"/>
</AllocationRules>
</ServiceLevel>
</ServiceLevels>
</CSR>lowestprice - Wählt das Produkt mit dem niedrigsten Preis aus
<CSR>
<ServiceLevels>
<ServiceLevel>
<Products>
<Product conceptid="x"/>
<Product conceptid="y"/>
<Product conceptid="z"/>
</Products>
<AllocationRules>
<AllocationRule type="lowestprice"/>
</AllocationRules>
</ServiceLevel>
</ServiceLevels>
</CSR>
highestrank - Wenn mehrere Produkte gültig sind, wird das Produkt mit dem höchsten Rang ausgewählt
<CSR>
<ServiceLevels>
<ServiceLevel>
<Products>
<Product conceptid="x" rank="2"/>
<Product conceptid="y" rank="3"/>
<Product conceptid="z" rank="1"/>
</Products>
<AllocationRules>
<AllocationRule type="highestrank"/>
</AllocationRules>
</ServiceLevel>
</ServiceLevels>
</CSR>lowestprice und highestrank -
Wenn mehrere Produkte gültig sind oder mehrere Produkte den gleichen Preis haben oder der Preis 0 ist.
Die Zuweisungsregel highestrank wird verwendet, um das Produkt auszuwählen.
<CSR>
<ServiceLevels>
<ServiceLevel>
<Products>
<Product name="Product C" dbid="x" rank="3"/>
<Product name="Product A" dbid="y" rank="2"/>
<Product name="Product B" dbid="z" rank="1"/>
</Products>
<AllocationRules>
<AllocationRule type="lowestprice"/>
<AllocationRule type="highestrank"/>
</AllocationRules>
</ServiceLevel>
</ServiceLevels>
</CSR>
userselect -
Ein Array gültiger Produkte wird zurückgegeben. Wenn nur ein Produkt gültig ist, wird eine Sendung erstellt. Um zu erzwingen, dass immer ein Array zurückgegeben wird, setzen Sie das Attribut onsingle auf 1.
Um auch den Preis zurückzugeben, setzen Sie das Attribut price auf 1
<CSR>
<ServiceLevels>
<ServiceLevel>
<Products>
<Product name="Product C" dbid="x">
<Product name="Product A" dbid="y">
<Product name="Product B" dbid="z">
</Products>
<AllocationRules>
<AllocationRule type="userselect"
price="0" onsingle="0"/>
</AllocationRules>
</ServiceLevel>
</ServiceLevels>
</CSR>
mincountforproduct -
Basierend auf dem Scope wird ein Produkt x-mal ausgewählt
Der Scope kann sein - Installation | location | Actor
Bei gehosteten Lösungen nur Scope actor verwenden.
Im folgenden Beispiel
Wird Produkt C jeden Tag zuerst 6-mal basierend auf dem definierten Scope ausgewählt.
Dann wird Produkt B verwendet, bis 3 Sendungen in der Datenbank vorhanden sind.
Wenn sowohl Produkt C als auch B die mincountforproduct für den Tag erreicht haben, können alle Produkte ausgewählt werden.
<CSR>
<ServiceLevels>
<ServiceLevel>
<Products>
<Product name="Product A" dbid="x"/>
<Product name="Product C" dbid="y"/>
<Product name="Product B" dbid="z"/>
</Products>
<AllocationRules>
<AllocationRule type="mincountforproduct" scope="actor"
name="Product C" dbid="y" mincount="6"/>
<AllocationRule type="mincountforproduct" scope="actor"
name="Product B" dbid="z" mincount="3"/>
</AllocationRules>
</ServiceLevel>
</ServiceLevels>
</CSR>
distribution -
Verwenden Sie eine Mischung der aufgelisteten Produkte für den angegebenen Scope.
Der Scope kann sein - Installation | location | Actor
Bei gehosteten Lösungen nur Scope actor verwenden.
Der Anteil muss nicht 100 ergeben. Die distribution funktioniert so, dass das nicht gültige Produkt entfernt wird, dann der Anteil für jedes verbleibende Produkt berechnet und das Produkt mit dem größten Unterschied zwischen geplantem und tatsächlichem Anteil ausgewählt wird.
Im folgenden Beispiel werden beide Produkte gleichmäßig verwendet, da beide die gleiche Validierung teilen.
<CSR>
<ServiceLevels>
<ServiceLevel>
<Products>
<Product name="Product A" dbid="x"/>
<Product name="Product B" dbid="y"/>
</Products>
<AllocationRules>
<AllocationRule type="distribution" scope="actor">
<Product name="Product B" dbid="x" share="50"/>
<Product name="Product A" dbid="y" share="50"/>
</AllocationRule>
</AllocationRules>
</ServiceLevel>
</ServiceLevels>
</CSR>
HINWEIS: distribution funktioniert derzeit nicht, wenn sie über die Benutzeroberfläche für Versandregeln konfiguriert wird.
Condition
Um eine AllocationRule, Expression, ValidationRule, oder den CSR-Knoten zu steuern, kann ein Condition-Knoten angewendet werden.
Wenn mehr als ein Condition-Knoten hinzugefügt wird, müssen alle gültig sein, damit der übergeordnete Knoten gültig ist.
Beispiel - Weist nur den Wert 1000 zu, wenn der importierte Wert kleiner oder gleich 999 ist
<Expressions>
<Expression targetfield="fld_LWeight">
<Condition name="floatlimits" field="fld_LWeight"
min="0" max="999" unit="gram"/>
<Item expression="1000"/>
</Expression>
</Expressions>Der Condition-Knoten unterstützt verschiedene Validierungen
stringcompare
<Condition name="stringcompare" field="fld_CustomField1"
comparestring="a_value" equal="1" casesensitive="0"/>receivercontries
<Condition name="receivercontries" countries="SE,NO" exclude="1"/>stringnotempty
<Condition name="stringnotempty" field="fld_RefOrderNumber"/>floatlimits
<Condition name="floatlimits" min="0.0" max="10.5"
unit="UNITS" field="FLOAT_FIELDS" custommessage=""/>
Unterstützte Knoten
<CSR>
<ErrorOn/>
<Condition/>
<SelectRules>
<SelectRule>
<Expressions>
<Expression>
<Condition/>
<Item/>
</Expression>
</Expressions>
<Product/>
</SelectRule>
</SelectRules>
<ServiceLevels>
<ServiceLevel>
<Products>
<Product>
<ValidationRules>
<ValidationRule>
<Condition/>
</ValidationRule>
</ValidationRules>
</Product>
</Products>
<AllocationRules>
<AllocationRule>
<Condition/>
</AllocationRule>
</AllocationRules>
</ServiceLevel>
</ServiceLevels>
</CSR>
Expressions
Kann unter CSR, ServiceLevel, SelectRule und Produktknoten platziert werden.
Unterstützte Kindknoten
| Knoten | Beschreibung |
|---|---|
| Expressions | Art der Zuweisung |
Unterstützt die folgenden Attribute (1 = wahr, 0 = falsch)
- prevalidation - vor der Validierung ausführen
- assignresult - Ergebnis der Sendung zuweisen
Standardwerte für die Attribute, falls nicht angegeben
<CSR>
<Expressions prevalidation="0" assignresult="0"/>
<SelectRules>
<Expressions/>
<SelectRule>
<Product>
<Expressions/>
</Product>
</SelectRule>
</SelectRules>
<ServiceLevels>
<ServiceLevel>
<Expressions/>
<Products>
<Product>
<Expressions/>
</Product>
</Products>
</ServiceLevel>
</ServiceLevels>
</CSR>
Expression
Mit diesem Knoten können Sie einem Feld einen Wert zuweisen.
Er kann nur innerhalb des Expressions-Knotens platziert werden.
Unterstützte Kindknoten
| Knoten | Beschreibung |
|---|---|
| Condition | Validierung |
| Item | Zuzuweisender Wert |
Unterstützt die folgenden Attribute (1 = wahr, 0 = falsch)
- targetfield - Das Feld, dem der Wert zugewiesen wird
FELD
fld_LMarking, fld_LContents, fld_LGoodsType, fld_AdrName1, fld_AdrName2, fld_AdrAddress1, fld_AdrAddress2, fld_AdrPostNo, fld_AdrCity, fld_AdrCountry, fld_AdrState, fld_AdrPhone, fld_AdrMobile, fld_AdrEmail, fld_AdrAttention, fld_AdrReceiverRef, fld_AdrSenderCustNo, fld_AdrSenderName1, fld_AdrSenderName2, fld_AdrSenderAddress1, fld_AdrSenderAddress2, fld_AdrSenderPostNo, fld_AdrSenderCity, fld_AdrSenderCountry, fld_AdrSenderCountryName, fld_AdrSenderState, fld_AdrSenderPhone, fld_AdrSenderMobile, fld_AdrSenderEmail, fld_AdrSenderAttention, fld_RefOrderNumber, fld_RefProject, fld_MsgDriver, fld_MsgCarrier, fld_MsgReceiver, fld_CustomField1, fld_CustomField2, fld_CustomField3, fld_CustomField4, fld_CustomField5, fld_CustomField6, fld_CustomField7, fld_CustomField8, fld_CustomField9, fld_CustomField10
Im folgenden Beispiel erhält das targetfield den Wert custom_value
<Expressions>
<Expression targetfield="FIELD">
<Item expression="custom_value"/>
</Expression>
</Expressions>Der Expression-Knoten kann einen oder mehrere Item-Knoten enthalten
<Expressions>
<Expression>
<Item expression="custom"/>
<Item expression="_"/>
<Item expression="value"/>
</Expression>
</Expressions>In diesem Fall erhält das targetfield den Wert custom_value
Die Item-Expression kann auch einen Wert aus einem anderen Feld unter Verwendung von @@ verwenden
<Expressions>
<Expression targetfield="FIELD">
<Item expression="@@FIELD@@"/>
</Expression>
</Expressions>
GoodsTypeMappings
Mit diesem Knoten können Sie einem Produkt einen Warentyp zuweisen. Entweder basierend auf einem importierten Wert oder dem Eingabeprodukt.
Er kann nur unter dem CSR-Knoten platziert werden
Attribute - (1 = wahr, 0 = falsch)
- mappingfield
- mappingoverride - (0) - Verwenden Sie den Warentyp aus GoodsTypeMappings und nicht aus dem Produktknoten
-
key - Wert aus dem Attribut mappingfield in GoodsTypeMappings
- productconceptid - Da Warentyp-IDs nur innerhalb eines Spediteurs eindeutig sind, müssen Sie die Konzept-ID des Produkts angeben. Bei Verwendung für benutzerdefinierte Produkte und Warentypen auf 0 setzen.
- goodstypename - Nicht verwendet, nur zur besseren Lesbarkeit in der Datei
- goodstypeid - Ist die ID aus der Spediteur-Definitionsdatei.
- iscustom (0) - Bei Verwendung benutzerdefinierter Warentypen auf 1 setzen.
Konfigurationen
Es kann auf zwei Arten konfiguriert werden
-
Gruppierung nach Eingabeprodukt
CSR prüft, ob das ausgewählte Produkt einen Warentyp in derselben Gruppe wie das Produkt hat, von dem es geändert wurde. Dann wird dieser Warentyp vor dem Absenden auf der Sendung verwendet. -
Gruppierung nach Wert aus einem Feld
CSR prüft, ob der Wert aus dem konfigurierten Mapping-Feld in einer Gruppe vorhanden ist und verwendet den definierten Warentyp vor dem Absenden auf der Sendung
Gruppierung nach Eingabeprodukt
<CSR>
<GoodsTypeMappings>
<GoodsTypeMapping>
<ProductGoodsType goodstypeid="2" dbid="2139" iscustom="1"
goodstypename="2"/>
<ProductGoodsType goodstypeid="3" productconceptid="112"
goodstypename="PL4"/>
</GoodsTypeMapping>
<GoodsTypeMapping>
<ProductGoodsType goodstypeid="1" dbid="2139" iscustom="1"
goodstypename="1"/>
<ProductGoodsType goodstypeid="13" productconceptid="112"
goodstypename="K25"/>
</GoodsTypeMapping>
</GoodsTypeMappings>
<ServiceLevels>
<ServiceLevel name="default">
<Products>
<Product name="Product A" dbid="2139"/>
<Product name="Product B" conceptid="112"/>
</Products>
</ServiceLevel>
</ServiceLevels>
</CSR>Gruppierung nach Wert aus einem Feld
<CSR>
<GoodsTypeMappings mappingfield="fld_LMarking">
<GoodsTypeMapping key="parcel">
<ProductGoodsType goodstypeid="1" productconceptid="113"
goodstypename="P"/>
<ProductGoodsType goodstypeid="13" productconceptid="112"
goodstypename="K25"/>
</GoodsTypeMapping>
<GoodsTypeMapping key="pallet">
<ProductGoodsType goodstypeid="0" productconceptid="113"
goodstypename="A"/>
<ProductGoodsType goodstypeid="3" productconceptid="112"
goodstypename="PL4"/>
</GoodsTypeMapping>
</GoodsTypeMappings>
<ServiceLevels>
<ServiceLevel name="default">
<Products>
<Product name="PRODUCT A" conceptid="113"/>
<Product name="PRODUCT B" conceptid="112"/>
</Products>
</ServiceLevel>
</ServiceLevels>
</CSR>
ServiceMappings
Mit diesem Knoten können Sie Service(s) auf einem Produkt zuweisen. Entweder basierend auf einem importierten Wert oder dem Eingabeprodukt.
Er kann nur unter dem CSR-Knoten platziert werden.
Attribute
- mappingfield - Dieses Feld muss ein Sendungsfeld sein.
- key - Wert aus dem Attribut mappingfield in ServiceMappings
- name - Name des Services
- serviceid - ID des Services
Konfigurationen
Es kann auf zwei Arten konfiguriert werden
-
Service nach ausgewähltem Produkt
In diesem Modus konfigurieren Sie Gruppen, und wenn ein Service in einer Gruppe im Originalprodukt vorhanden ist, prüft CSR, ob das ausgewählte Produkt einen Service in derselben Gruppe hat und setzt diesen Service vor dem Absenden auf der Sendung.
-
Service nach Wert aus einem Feld
In diesem Modus konfigurieren Sie ebenfalls Gruppen, verwenden jedoch Schlüssel, um die Gruppe zu finden, anstatt die ursprünglich ausgewählten Services.
Service nach ausgewähltem Produkt
<CSR>
<ServiceMappings>
<ServiceMapping>
<Service serviceid="y"/>
<Service serviceid="x"/>
</ServiceMapping>
<ServiceMapping>
<Service serviceid="x"/>
<Service serviceid="y"/>
</ServiceMapping>
</ServiceMappings>
<ServiceLevels>
<ServiceLevel>
<Products>
<Product name="Product A" dbid="x"/>
<Product name="Product A" dbid="y"/>
</Products>
</ServiceLevel>
</ServiceLevels>
</CSR>Service nach Wert aus einem Feld
<CSR>
<ServiceMappings mappingfield="fld_CustomField1">
<ServiceMapping key="notification">
<Service serviceid="y"/>
<Service serviceid="x"/>
</ServiceMapping>
</ServiceMappings>
<ServiceLevels>
<ServiceLevel>
<Products>
<Product name="Product A" dbid="x"/>
<Product name="Product A" dbid="y"/>
</Products>
</ServiceLevel>
</ServiceLevels>
</CSR>
Prices
Kann nur einmal unter dem CSR-Knoten platziert werden.
Dieser Knoten ermöglicht eine einfache Preisberechnung in Ihrem CSR.
Unterstützte Kindknoten
| Knoten | Beschreibung |
|---|---|
| Price | Preisberechnungsknoten |
Price
Enthält eine Preisberechnung.
Unterstützte Kindknoten
| Knoten | Beschreibung |
|---|---|
| Exceptions | Fester Preis basierend auf einer Bedingung |
| Ranges | Preis basierend auf Intervall |
| Fees | Ein Wert, der zu entweder Exception oder Range hinzugefügt wird |
Unterstützt die folgenden Attribute
name - Die ID des Knotens, verwendet vom Attribut adviseprice im Produktknoten
currency - z.B. EUR, SEK, NOK
Beispiel
<CSR>
<Prices>
<Price name="" currency="">
<Exceptions>
<Exception price="">
<ValidationRules/>
</Exception>
</Exceptions>
<Ranges field="fld_AdrPostNo">
<Range from="" to="" price="">
<Ranges field="fld_ShipmentWeightG" unit="gram">
<Range from="" to="" price=""/>
</Ranges>
</Range>
<Range from="" to="" price=""/>
</Ranges>
<Fees>
<Fee price="">
<ValidationRules/>
</Fee>
</Fees>
</Price>
</Prices>
</CSR>
Exceptions
Kann nur einmal unter dem Price-Knoten platziert werden
Enthält einen oder mehrere Exception-Knoten
Unterstützte Kindknoten
| Knoten | Beschreibung |
|---|---|
| Exception | Gibt einen festen Preis zurück |
Exception
Der erste Exception-Knoten, bei dem alle Validierungen gültig sind, gibt den Preis zurück
Unterstützte Kindknoten
| Knoten | Beschreibung |
|---|---|
| ValidationRules | Siehe ValidationRule-Knoten |
Unterstützt die folgenden Attribute
- price - Der Wert, der für das Produkt zurückgegeben wird
Ranges
Dieser Knoten wird nach dem Exceptions-Knoten ausgewertet. Wenn ein passender Exception-Knoten vorhanden ist, wird der Ranges-Knoten nicht ausgeführt.
Unterstützte Kindknoten
| Knoten | Beschreibung |
|---|---|
| Ranges | Unterstützt einen weiteren Ranges-Knoten |
| Range | Enthält den Preis für den Bereich |
Unterstützt die folgenden Attribute
- field - Das Feld, auf das die Bereichslogik angewendet wird fld_ShipmentWeightG | fld_AdrPostNo
- unit - Wird zusammen mit dem Feld fld_ShipmentWeightG
Range
Dieser Knoten wird nach dem Exceptions-Knoten ausgewertet. Wenn ein passender Exception-Knoten vorhanden ist, wird der Ranges-Knoten nicht ausgeführt.
Unterstützte Kindknoten
| Knoten | Beschreibung |
|---|---|
| Range | Enthält den Preis für den Bereich |
Unterstützt die folgenden Attribute
- from - Startwert
- to - Endwert
- price - Der zurückzugebende Preis
Fees
Funktioniert ähnlich wie Exceptions, es ist eine Liste von Gebühren, und jede hat Validierungsregeln, die gültig sein müssen, damit die Gebühr angewendet wird. Die Preise aller gültigen Fee-Knoten werden addiert. Die Summe wird zu der Summe aus Exceptions oder Ranges hinzugefügt.
Unterstützte Kindknoten
| Knoten | Beschreibung |
|---|---|
| Fee | Eine Gebühr, die zum Preis hinzugefügt wird |
Fee
Wenn alle ValidationRules gültig sind, wird die Gebühr zum Preis aus dem Exceptions oder Ranges-Knoten hinzugefügt
Unterstützte Kindknoten
| Knoten | Beschreibung |
|---|---|
| ValidationRules | Siehe ValidationRules-Knoten |
Unterstützt die folgenden Attribute
- price - Der Wert, der zum Preis aus dem Bereichs- oder Ausnahme-Knoten hinzugefügt wird
-
Expressions - Beispiel 1
Fügen Sie ein Standard-Pickup-Start- und Enddatum hinzu
<Expressions prevalidation="1" assignresult="1">
<Expression targetfield="fld_RefPickupStart">
<Item special="datenow" addhours="0" format="YYYY-MM-DD 05:00:00" />
</Expression>
<Expression targetfield="fld_RefPickupEnd">
<Item special="datenow" addhours="0" format="YYYYY-MM-DD 21:00:00" />
</Expression>
</Expressions>-
AllocationRules UserSelect - Beispiel 1
Führen Sie Versandregeln nur aus, wenn Produkt 1782 oder 1783 verwendet wird
<CSR defaultservicelevel="default" nocache="1" showservicelevelsinpv="1">
<Expressions prevalidation="1" assignresult="0">
<Expression targetfield="fld_CustomField1">
<Item expression="C-"/>
<Item expression="@@fld_ProductConceptID@@"/>
</Expression>
</Expressions>
<Condition name="stringcompare" type="regex" comparestring="^(C-1782|C-1783)" equal="1"
casesensitive="0" field="fld_CustomField1" />
<ServiceLevels>
<ServiceLevel name="default">
<Products>
<Product name="Generic Sweden - Generic 1" conceptid="1782">
<ProductGoodsType name="EUR 1 - 08 m × 12 m" goodstypeid="0"/>
<Services>
<Service name="0 - Service1" serviceid="227030" />
<Service name="2 - 013 (CIP)" serviceid="227013" />
</Services>
</Product>
<Product name="Generic Sweden - Generic 2" conceptid="1783" />
</Products>
<AllocationRules>
<AllocationRule type="userselect" price="1" onsingle="1"/>
</AllocationRules>
</ServiceLevel>
</ServiceLevels>
</CSR>