Custom Operations opsætningselementet gør det muligt at oprette udtryk uden at skulle oprette en Shipping rules-fil. Du kan inkludere de udtryk, der understøttes i Shipping Rules <expressions>-noden. Se beskrivelsen af Shipping Rules-noder her.
Tilføjelse af setup-elementet
- Gå til Setup og naviger til den Location/Actor i din installation, hvor du ønsker, at udtryk skal fungere.
- Højreklik i panelet til højre og vælg New > Custom Operations.
- Vælg typen af operation og klik på New. Der findes 5 forskellige typer operationer:
- Expressions when reading request - udtrykket køres efter, at shipment JSON er blevet parsed.
- Expressions at submit - udtrykket køres ved submit, dvs. når en forsendelse oprettes.
- Expressions at transmit - udtrykket køres ved transmit, dvs. når EDI sendes til transportøren.
- Expression at validation - udtrykket køres sammen med andre valideringer.
- Patch Options for API - angiv standardværdier for Option-parameteren for Shipment Server. (Ikke relevant for On-premises-kunder).
-
Patch Data for API - erstat værdier, angiv en delimiter osv. (Ikke relevant for On-premises-kunder).
- Tilføj udtrykket/koden i feltet. Hvis du opretter en ny XML-fil, skal du tilføje dit udtryk i den foruddefinerede <Expressions>-node.
- Klik på OK for at gemme.
Eksempler
Expressions
Dette udtryk sætter en standardværdi på 15:00 i Pickup start-feltet, hvis det aktuelle tidspunkt (når udtrykket køres, afhængigt af operationstypen) er mindre end 14:00. Hvis du ønsker, at udtrykket kun skal køre for en specifik transportør, er det vigtigt at angive dette. (Bemærk: denne funktion virker ikke med custom carriers.)
Du kan bruge udtryk, der understøttes i Shipping Rules <expressions>-noden. Se beskrivelsen af Shipping Rules-noder her.
<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 dette eksempel er postnummer-validering slået fra for PreAdviseOrder, og labels er sat til ZPLGK.
[PreAdviseOrder]
ValidatePostCode=0
[SubmitOrder]
Labels=ZPLGKPatch options-filen følger dette format:
[<MethodName>]
<Param Name]=[Param Value]
Hvis parameteren findes i kaldet, ændres den ikke. Den tilføjes kun, hvis den ikke er inkluderet.
SSData.ini
I dette eksempel er delimiter sat til standard |, og fire strenge erstattes for 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ølger dette format:
[<MethodName>]
<n>=<OldValue><NewValue>
n er et tal, der starter med 1. Hvis der er huller i nummereringen, ignoreres værdier efter hullet.
OldValue er strengen, der skal erstattes, og NewValue er strengen, der erstatter den gamle værdi.
Bemærk
Hvis en konfiguration er lavet på en måde, hvor både Custom Operations og Shipping Rules målretter det samme felt, vil værdien fra Shipping Rules blive anvendt sidst og kan overskrive den værdi, der tidligere er sat af Custom Operations.