Deze release note richt zich op de railoperators.
De ETA Train functionaliteit is opgesplitst in twee delen:
- Inzicht in de locatie van de trein in het achterland.
- Inzicht in de aankomst- en vertrektijden van de trein en het verloop van de operatie op de diepzee terminals in de Rotterdamse haven.
ETA Train in het achterland
Om de locatie van de trein in het achterland op te halen, is het nodig om in de rotatie het incoming en/of outgoing train number te delen én de first departure date en/of outgoing first departure date. Deze gegevens kan je bij het aanmaken van een nieuwe rotatie doorgeven, of later toevoegen aan óf wijzigen op een al bestaande rotatie. Als deze gegevens niet juist worden aangeleverd, kan er geen match worden gemaakt met de treinlocatiegegevens uit het achterland die aangeleverd worden door een externe partij. Let er daarnaast op dat je een tractieleverancier aan de rotatie toewijst. Zo krijgt de tractieleverancier ook inzicht in de rotatie en de daarbij behorende data, en kan deze de verwachte en daadwerkelijke aankomst- en vertrektijden updaten.
Gebruik voor het aanleveren van deze data de Operator API – voyages. Het gaat hierbij om de volgende velden:
- Incoming train number:trainNumber
- Outgoing train number: outgoingTrainNumber
- Incoming first departure date: firstDepartureDate
- Outgoing first departure date: outgoingTrainFirstDepartureDate
- Tractieleverancier: tractionSupplier
Vanaf het moment dat de gegevens juist zijn ingevoerd, kan de ETA Train data worden opgehaald voor de resterende dienstregelpunten die de trein zal passeren onderweg naar de Rotterdamse haven en/of van de Rotterdamse haven weer terug het achterland in. Deze punten en daarmee ook de data voor elk punt worden pas zichtbaar zodra deze zijn gepasseerd met de trein. Dit zijn standaard het vertrekpunt in het achterland, de Nederlandse grensovergang, Barendrecht Vork, en de goederenemplacementen bij de terminals.
De ETA Train data kunnen niet met terugwerkende kracht worden opgehaald. Dit betekent dat in het geval de gegevens pas vanaf Barendrecht Vork juist worden aangeleverd, de ETA Train informatie van het vertrekpunt in het achterland en van de Nederlandse grensovergang niet meer kunnen worden opgehaald.
Gebruik voor het ophalen van de treinlocatiegegevens uit het achterland de Tracking API. Het gaat hierbij specifiek om het trainLocationReports, wat een voyage-level list is. Elk rapport bevat de volgende velden: operationalTrainNumber, startDate, direction, trainAccessPointType, terminalShortName, trainLocationStatus, trainLocation, locationDateTime, bookedLocationDateTime, referencedLocationDateTime, trainDelay.
Let op: de Tracking API kan worden gebruikt om realtime-updates te ontvangen over de voyages, visits en (detached) handlings. Om deze realtime-updates mogelijk te maken, gebruikt de API een mechanisme dat ‘long polling’ wordt genoemd. Wanneer je een verzoek verstuurt om naar updates te luisteren, ontvang je onmiddellijk een update wanneer deze sinds je laatste verzoek heeft plaatsgevonden. Of, wanneer er geen update is, wacht het verzoek totdat er een update is, of treedt er een time-out op wanneer de door jou opgegeven maxTimeout is bereikt. Nadat de API-response is teruggestuurd en je client klaar is met het verwerken van de updates, moet je altijd je positie bijwerken. Op deze manier zoekt de API, wanneer je de volgende keer om updates vraagt, naar updates na die positie in het eventlog. Dit mechanisme maakt ook batching mogelijk, omdat je alle updates net zo snel ontvangt als je ze kunt verwerken.
Met betrekking tot de trainLocationReports is het belangrijk om te beseffen dat je updates ontvangt met een voor- en nasituatie waarin alleen de wijzigingen zijn opgenomen. Dus wanneer slechts één handling is gewijzigd, ontvang je alleen die handling binnen de visit binnen de voyage en niet alle containers en visits! Dezelfde delta per item is van toepassing op de trainLocationReports van een rail voyage: iedere update bevat alleen de reports die zijn toegevoegd of gewijzigd, niet de reports die je al in eerdere updates hebt ontvangen.
Raadpleeg de Hinterland Notification API Changelog voor meer informatie.
ETA Train in de Rotterdamse haven
Dit deel van de functionaliteit geeft per voorgemeld bezoek de aankomst- en vertrektijden én het verloop van de operatie weer en omvat daarmee onderstaande velden. Al deze velden zijn aan te roepen door alle betrokken partijen op het bezoek.
- Estimated time of arrival (ETA)
- Insturen
- Rail operator: geeft de ETA door bij het aanmaken van een visit. Bij het gebruik van timetable slots wordt de starttijd van het slot automatisch als ETA overgenomen. Zowel de ETA als de timetable slot kunnen later worden geüpdatet.
- Terminal & tractieleverancier: kunnen de ETA updaten.
- Ophalen
- De rail operator, tractieleverancier en terminal kan de ETA zoals gecommuniceerd door de andere partijen ophalen via de Tracking API.
- Insturen
- Reden van vertraging
- Insturen
- Tractieleverancier: kan de reden van vertraging van een trein doorgeven.
- Ophalen
- Met behulp van de reden van vertraging kunnen de terminal en de rail operator de verwachte duur en impact van de vertraging beter inschatten. Beide partijen kunnen de reden van vertraging ophalen via de Tracking API.
- Insturen
- Actual time of arrival (ATA)
- Insturen
- Rail operator & terminal & tractieleverancier: kunnen de ATA doorgeven en eerdere (door anderen) gedeelde ATA’s updaten.
- Ophalen
- De rail operator, terminal, en tractieleverancier kan de ATA zoals gecommuniceerd door de andere partijen ophalen via de Tracking API.
- Insturen
- Planned start of operations
- Insturen
- Terminal: kan het verwachte moment van de lading/lossing van de eerste container doorgeven en updaten totdat de eerste CODECO binnen is.
- Ophalen
- De rail operator en de tractieleverancier kunnen de planned start of operations gedeeld door de terminal ophalen via de Tracking API.
- Insturen
- Actual start of operations
- Ophalen
- De actual start of operations wordt automatisch gevuld op het moment dat in MCA Rail de eerste los-/laad-CODECO van de visit binnenkomt en is op te halen via de Tracking API.
- Ophalen
- Planned finish of operations
- Insturen
- Terminal: kan het verwachte moment van de lading/lossing van de laatste container doorgeven en updaten totdat de laatste CODECO binnen is.
- Ophalen
- De rail operator en de tractieleverancier kunnen de planned finish of operations gedeeld door de terminal ophalen via de Tracking API.
- Insturen
- Actual finish of operations
- Ophalen
- De actual finish of operations wordt automatisch gevuld op het moment dat in MCA Rail de laatste los-/laad-CODECO van de visit binnenkomt en is op te halen via de Tracking API.
- Ophalen
- Estimated time of departure (ETD)
- Insturen
- Rail operator: geeft de ETD door bij het aanmaken van een visit. Bij het gebruik van timetable slots wordt de eindtijd van het slot automatisch als ETD overgenomen
- Terminal & tractieleverancier: kunnen de ETD updaten.
- Ophalen
- De rail operator, tractieleverancier en terminal kan de ETD zoals gecommuniceerd door de andere partijen ophalen via de Tracking API.
- Insturen
- Actual time of departure (ATD)
- Insturen
- Rail operator & terminal & tractieleverancier: kunnen de ATD doorgeven en eerdere (door anderen) gedeelde ATD’s updaten.
- Ophalen
- De rail operator, terminal, en tractieleverancier en kan de ATD zoals gecommuniceerd door de andere partijen ophalen via de Tracking API.
- Insturen
Insturen
| Data | Rail operator | Terminal | Tractieleverancier |
| Estimated time of arrival (ETA) | Operator API – visits | Create visit endpoint | visitData.eta of visitData.timetableEntry OF Operator API – visits | Update visit endpoint | visitData.eta of visitData.timetableEntry | Terminal API | Accept visit | plannedVisitData.eta OF Terminal API | Update visit status | plannedVisitData.eta | Traction Supplier API | Update Transport Status | transportVisitStatus.eta |
| Reden van vertraging | Traction Supplier API | Update Transport Status | transportVisitStatus.arrivalDelayReason EN/OF Traction Supplier API | Update Transport Status | transportVisitStatus.departureDelayReason | ||
| Actual time of arrival (ATA) | Operator API – visits | Update visit endpoint | visitData.ata | Terminal API | Update visit status | visitResult.ata | Traction Supplier API | Update Transport Status | transportVisitStatus.ata |
| Planned start of operations | Terminal API | Accept visit | plannedVisitData.estimatedStartOfOperations OF Terminal API | Update visit status | plannedVisitData.estimatedStartOfOperations | ||
| Planned finish of operations | Terminal API | Accept visit | plannedVisitData.estimatedEndOfOperations OF Terminal API | Update visit status | plannedVisitData.estimatedEndOfOperations | ||
| Actual finish of operations | Terminal API | Complete visit | endOfOperations | ||
| Estimated time of departure (ETD) | Operator API – visits | Create visit endpoint | visitData.etd of visitData.timetableEntry OF Operator API – visits | Update visit endpoint | visitData.etd of visitData.timetableEntry | Terminal API | Accept visit | plannedVisitData.etd OF Terminal API | Update visit status | plannedVisitData.etd | Traction Supplier API | Update Transport Status | transportVisitStatus.etd |
| Actual time of departure (ATD) | Operator API – visits | Update visit endpoint | visitData.atd | Terminal API | Update visit status | visitResult.atd | Tracking API | Listen to ALL updates | visits.transportVisitStatus.atd |
Ophalen
Onderstaande tabel moet je lezen als het ophalen van de data aangeleverd door de partijen in de kolommen. Dus bijvoorbeeld: raadpleeg Tracking API | Listen to ALL updates | visits.requestedVisitData.eta om de ETA gedeeld door de rail operator op te halen.
| Data | Rail operator | Terminal | Tractieleverancier |
| Estimated time of arrival (ETA) | Tracking API | Listen to ALL updates | visits.requestedVisitData.eta | Tracking API | Listen to ALL updates | visits.plannedVisitData.eta | Tracking API | Listen to ALL updates | visits.transportVisitStatus.eta |
| Reden van vertraging | Tracking API | Listen to ALL updates | visits.transportVisitStatus.arrivalDelayReason EN/OF Tracking API | Listen to ALL updates | visits.transportVisitStatus.departureDelayReason | ||
| Actual time of arrival (ATA) | Tracking API | Listen to ALL updates | visits.requestedVisitData.ata | Tracking API | Listen to ALL updates | visits.visitResult.ata | Tracking API | Listen to ALL updates | visits.transportVisitStatus.ata |
| Planned start of operations | Tracking API | Listen to ALL updates | visits.plannedVisitData.estimatedStartOfOperations. | ||
| Actual start of operations | Tracking API | Listen to ALL updates | Visits.startOfOperations | ||
| Planned finish of operations | Tracking API | Listen to ALL updates | visits.plannedVisitData.estimatedEndOfOperations | ||
| Actual finish of operations | Tracking API | Listen to ALL updates | Visits.endOfOperations | ||
| Estimated time of departure (ETD) | Tracking API | Listen to ALL updates | visits.requestedVisitData.etd | Tracking API | Listen to ALL updates | visits.plannedVisitData.etd | Tracking API | Listen to ALL updates | visits.transportVisitStatus.etd |
| Actual time of departure (ATD) | Tracking API | Listen to ALL updates | visits.requestedVisitData.atd | Tracking API | Listen to ALL updates | visits.visitResult.atd | Tracking API | Listen to ALL updates | visits.transportVisitStatus.atd |