Transplan heeft een koppeling om OTM orders in Transplan te importeren. Deze pagina beschrijft hoe de OTM koppeling werkt.
De OTM orders worden in een JSON formaat aangeboden aan Transplan en verwerkt. Er zijn verschillende OTM stromen die ondersteund wordt. Dit zijn o.a. Jumbo, Albert Heijn, Detailresult en Planned Trip Service (PTS) van Ahold.
Voor elke stroom is er een mogelijkheid om deze in Transplan te beheren. De stroom kan aan / uit gezet worden of o.b.v. kenmerken in het OTM bericht kan een specifieke klant / planafdeling / ordersoort gekoppeld worden.
OTM5 inkomende orders
Om de verschillende datastromen vanuit OTM te kunnen beheren is in Transplan het scherm OTM5 inkomende orders beschikbaar (via Transplan - Statische data).
Om dit scherm te kunnen openen moet je open en bewerken rechten hebben voor Statische data > OTM5 inkomende orders
Op dit scherm kan per OTM stroom het volgende ingeregeld worden:
Filter om o.b.v. een waarde uit het OTM bericht te matchen.
Klant koppeling
Sjabloon om een ritomschrijving samen te stellen.
Orderregel per ritactiviteit
Planafdeling koppeling
Routenummer overnemen
Ordersoort koppeling
Omschrijving (dit is alleen voor herkenning en om een naam te geven aan een bepaalde stroom).
Sjabloon om een routenummer samen te stellen.
Bij de velden debiteur, planafdeling en ordersoort kan per stroom de betreffende waarde in Transplan gekoppeld worden.
Wanneer het vinkje Routenummer overnemen is aangevinkt en er is een Routeomschrijvingsjabloon ingevuld, dan wordt het routenummer opgebouwd volgende de ingegeven sjabloon. Zie Placeholders routenummer voor beschikbare placeholders. Als het routenummer overnemen vinkje aanstaat, maar er is geen routeomschrijvingsjabloon gevuld, dan wordt geprobeerd om het routenummer te bepalen uit attribuut customer_data_taskNumber of TaskNumber uit het OTM bericht. Als beide leeg zijn, dan blijft het routenummer leeg en wordt in de HUB de standaard werking toegepast en wordt het ordernummer als routenummer gevuld bij zowel de order als de rit.
LET OP! Als routenummer niet uniek genoeg is, dan kan het zijn dan orders samengevoegd worden tot één rit. Het is dus heel belangrijk om het routenummer zo uniek mogelijk samen te stellen.
Als de optie orderregel per ritactiviteit aangevinkt is, dan wordt van elke action binnen een stop een orderregel aangemaakt in Transplan. Van de volgende actions wordt dan een orderregel aangemaakt:
Load action (wordt LA stop in Transplan)
Unload action (wordt LO stop in Transplan)
Break action (wordt Pauze in Transplan)
Wait action (wordt Wachten in Transplan)
In het veld Ritomschrijving sjabloon kan de opbouw van de ritomschrijving ingesteld worden. Hier kan tekst ingevuld worden alsook zogenaamde ‘placeholders' (herkenbaar door de { en } tekens). Deze placeholders worden vervangen door data uit het OTM bericht (indien beschikbaar). Zie Placeholders voor beschikbare placeholders en waar de data uit het OTM bericht wordt gelezen.
Met het veld filtersjabloon en filterwaarde kan bepaald worden o.b.v. data uit het OTM bericht welke mapping wordt toegepast. In het filtersjabloon kunnen dezelfde placeholders toegepast worden als bij de ritomschrijving sjabloon. Bij filterwaarde kan ook een wildcard ( * ) ingevuld worden. Op dit moment ondersteunen we alleen een wildcard aan het einde van de filterwaarde (bijv. RDC*).
Als er geen match gevonden kan worden o.b.v. filtersjabloon en filterwaarde, dan wordt er een standaard regel aangemaakt. Deze regel wordt standaard op niet actief gezet.
Placeholders
In onderstaande tabel een overzicht met de placeholders die beschikbaar zijn om te gebruiken in de velden filtersjabloon en ritomschrijving sjabloon. Als voor een placeholder geen data gevonden kan worden in het OTM bericht, dan wordt de placeholder vervangen door een lege waarde.
Veld in Transplan | Veld in OTM bericht |
---|---|
adresnamen | name van elke stop (alleen in omschrijving functioneel; niet in filter) |
afdeling | eerste beschikbaar uit: department / rateReference / eerste deel van name, tot symbool '|', spatie, '/' |
carriercode | actor met rol carrier, daarvan code uit de externalAattributes |
eerste_dc_stad | city van eerste locatie met 'type' 'warehouse' |
externe_reservering | reservationExternalNumber uit de externalAttributes van de trip. |
kenteken | licenseplate uit entiteit vehicle |
klantnaam | customerName uit de externalAttributes van de trip. |
klant_id | customerId uit de externalAttributes van de trip. |
laatste_dc_stad | Plaats van de laatste locatie van 'type' 'warehouse' |
opdrachtnummer | eerste beschikbaar uit: externalAttributes.Customer_data_taskNumber of externalAttributes.taskNumber |
ordersoort | OrderType uit de externalAttributes van de trip. |
moeilijkheidsgraad | Alleen voor AH PTS. De hoogste moeilijkheidsgraad van alle niet DC stops. De moeilijksheidsgraad komt uit property location.ExternalAttributes.stopComplexity. Hieronder de de moeilijkheidsgraad van laag naar hoog:
|
ritnaam | eerste beschikbaar uit: externalAttributes.displayName en name |
routenummer | RouteNumber uit ExternalAttributes van de trip. |
planafdeling | planafdeling (alleen AH PTS). Uit ExternalAttributes.planDeparment |
product_soort | de verschillende unieke commodity van de eerste DC stop. De commodity bevat bijv. FRESH of AMBIENT. De waarde komt uit load/unlaod.consignment.externalAttributes.commodity |
starttijd_rit | PlannedStart of StartDateTime uit externalAttributes van de rit en anders de starttijd van de eerste stop. Formaat is hh24:mi (bijv. 09:15) |
status | status van de rit (alleen AH PTS). Uit trip.externalAttributes.status |
steden | city van elke stop (alleen in omschrijving functioneel; niet in filter) |
taak_opmerking | taskRemark uit externalAttributes van de trip. |
trekkertype | eerste beschikbaar uit: externalAttributes.requestedTractorType en vehicle.vehicleType |
vlootnummer | externalAttributes.plannedFleetNumberTractor |
voertuig_id | vehicleId uit externalAttributes van de entiteit vehicle |
voertuigtype | externalAttributes.requestedVehicleType |
zending_type | De (unieke) type zendingen (consignment type) van alle stops (gescheiden door een komma). |
Placeholders routenummer
Vanaf Transplan versie 2024.4 is het routenummer in Transplan alfanumeriek gemaakt. Het is vanaf deze versie mogelijk om voor OTM orders een routenummersjabloon op te stellen. Hieronder de beschikbare placeholders die gebruikt kunnen worden voor dit sjabloon. De meeste placeholders zijn hetzelfde als diegene die ook gebruikt kunnen worden voor de ritomschrijvingsjabloon. Er zijn echter een paar extra opties.
Veld in Transplan | Veld in OTM bericht |
---|---|
opdrachtnummer | eerste beschikbaar uit: externalAttributes.Customer_data_taskNumber of externalAttributes.taskNumber |
carriercode | actor met rol carrier, daarvan code uit de externalAattributes |
afdeling | eerste beschikbaar uit: department / rateReference / eerste deel van name, tot symbool '|', spatie, '/' |
ritdatum | De ritdatum (formaat ddMMyyyy). Ritdatum wordt bepaald uit PlannedStart of StartDateTime uit externalAttributes van de rit en anders de starttijd van de eerste stop. |
ritnaam | De naam van de rit. Property Name uit het OTM bericht. |
routenummer | RouteNumber uit ExternalAttributes van de trip. |
weeknummer | Weeknummer van de ritdatum. Als weeknummer kleiner is dan 10, dan wordt een 0 er voor gezet. Bijv. weeknummer 8 wordt als “08” gevuld. |
Los en -laadactie op hetzelfde adres samenvoegen tot een LOLA stop
Voor de OTM PTS stroom van AH worden stops uit het OTM bericht samengevoegd tot een LOLA stop als op hetzelfde adres meerdere acties worden uitgevoerd en de eerste actie een los actie is gevolgd door een laad actie. De starttijd van de LOLA orderregel is de starttijd van de losactie en de eindtijd van de LOLA orderregel is de eindtijd van de laadactie.
Deze logica wordt alleen uitgevoerd als de optie Orderregel per ritactiviteit is aangevinkt en er bij een stop meerdere actions aanwezig zijn.
Verwerking stand-by ritten (alleen AH PTS koppeling)
Voor de AH PTS (planned Trip Service) is een aparte stroom op de normale stroom, namelijk stand-by ritten. Dit zijn capaciteitsritten waarbij door AH tijd gereserveerd wordt bij de vervoerder voor als er last-minute finale ritten ingepland worden.
Wanneer AH een deel van de stand-by rit invult met een finale rit, dan blijven er één of meerdere stand-by gedeelten over. Bij AH is een stand-by rit altijd één rit en kan deze verschillende start- en eindtijden hebben. In Transplan ondersteunen wij geen ritten met verschillende start- en eindtijden. Daarom is er voor de verwerking van dit type rit een aparte flow opgezet.
Wanneer AH een finale rit heeft ingevuld voor de stand-by rit, dan wordt ook een update van de capacateitsrit gestuurd met daarin de overgebleven stand-by gedeelten. Een stand-by gedeelte bestaat altijd uit twee actions.
Per stand-by gedeelte gaan wij deze in Transplan verwerken. Een stand-by gedeelte kan een bestaande order=rit zijn, dan wordt deze order=rit bijgewerkt (update). Als er een nieuwe stand-by gedeelte is ontstaan, dan wordt een nieuwe order=rit aangemaakt.
Hieronder een mogelijke flow van een stand-by rit en hoe deze door AH wordt ingevuld / doorgegeven.
Wanneer is het een stand-by rit?
Als de status van de order (trip.externalAttributes.status) de status PLANNED is en het aantal actions in de rit (type stop) meer dan 2 is, dan wordt dit gezien als een stand-by rit en gaat Transplan deze rit behandelen als een stand-by rit.
Wanneer de capaciteitsrit een stand-by rit is, dan wordt per twee actions een rit in Transplaan aangemaakt of bijgewerkt indien de order=rit al bestaat.
Als een stand-by gedeelte t.o.v. verwerking niet meer aanwezig is (hij is bijv. ingevuld door een finale rit) wordt deze niet meer meegegeven in de capaciteitsrit. In de verwerking gaat Transplan o.b.v. het OtmTripId kijken of er orders zijn voor dit ID die niet in de huidige capaciteitsrit aanwezig is. Van deze orders wordt een Cancel bericht gestuurd in Transplan, zodat deze order=rit geannuleerd wordt.
Add Comment