Custom Operations setup-elementet gör det möjligt att skapa uttryck utan att behöva skapa en Shipping rules-fil. Du kan använda de uttryck som stöds i Shipping Rules <expressions>-noden. Se beskrivningen av Shipping Rules-noder här.
Lägga till setup-elementet
- Gå till Setup och navigera till den Location/Actor i din installation där du vill att uttrycken ska fungera.
- Högerklicka i panelen till höger och välj New > Custom Operations.
- Välj typ av operation och klicka på New. Det finns 5 olika typer av operationer:
- Expressions when reading request - uttrycket körs efter att shipment JSON har bearbetats.
- Expressions at submit - uttrycket körs vid submit, dvs. när en sändning skapas.
- Expressions at transmit - uttrycket körs vid transmit, dvs. när EDI skickas till transportör.
- Expression at validation - uttrycket körs tillsammans med andra valideringar.
- Patch Options for API - ange standardvärden för Option-parametern för Shipment Server. (Inte relevant för On-premises-kunder).
-
Patch Data for API - ersätt värden, ange en avgränsare osv. (Inte relevant för On-premises-kunder).
- Lägg till uttrycket/koden i fältet. Om du skapar en ny XML-fil måste du lägga till ditt uttryck i den fördefinierade <Expressions>-noden.
- Klicka på OK för att spara.
Exempel
Expressions
Detta uttryck sätter ett standardvärde på 15:00 i fältet Pickup start om aktuell tid (när uttrycket körs, beroende på operationstyp) är före 14:00. Om du vill att uttrycket endast ska köras för en specifik transportör är det viktigt att ange detta. (Obs: denna funktion fungerar inte med custom carriers.)
Du kan använda uttryck som stöds i Shipping Rules <expressions>-noden. Se beskrivningen av Shipping Rules-noder här.
<Expression targetfield="fld_RefPickupStart">
<!-- if(currenttime less than 14:00) today 15:00 -->
<Condition name="intlimits" field="fld_SubcarrierConceptID" min="448" max="448" />
<Condition name="timelimits" field="fld_Now" min="00:00" max="14:00"/>
<Item special="datenow" format="YYYY-MM-DD"/>
<Item expression=" "/>
<Item expression="15:00:00"/>
</Expression>
<Expression targetfield="fld_RefPickupStart">
<!-- if(currenttime more than 14:00) today(+1) 15:00 -->
<Item special="datenow" adddays="1" format="YYYY-MM-DD"/>
<Item expression=" "/>
<Item expression="15:00:00"/>
</Expression>
SSOptions.ini
I detta exempel är postnummerverifiering avstängd för PreAdviseOrder och etiketter är satta till ZPLGK.
[PreAdviseOrder]
ValidatePostCode=0
[SubmitOrder]
Labels=ZPLGKPatch options-filen följer detta format:
[<MethodName>]
<Param Name]=[Param Value]
Om parametern redan finns i anropet ändras den inte. Den läggs endast till om den inte redan är inkluderad.
SSData.ini
I detta exempel är avgränsaren satt till standard | och fyra strängar ersätts för PreAdviseOrder.
[PreAdviseOrder]
Delimeter=|
1="Name2"|"Street2"|
2="Kind": 176,|"Kind": 177,
3="Kind": 176,|"Kind": 177,
4="Kind": 176,|"Kind": 177,Patch data-filen följer detta format:
[<MethodName>]
<n>=<OldValue><NewValue>
n är ett tal som börjar på 1. Om det finns luckor i numreringen ignoreras värden efter luckan.
OldValue är strängen som ska ersättas och NewValue är strängen som ersätter det gamla värdet.