Vessel Report System (VRS) Logic
Short Description
The Dataloy Vessel Report System (VRS) Logic page explains the logic behind locating and updating port calls in the VRS.
Chapter Contents:
Long Description
IF Departure Report
Initial Port Call Locator
If vessel is reporting voyage reference number and reason for call: The first port call for reported vessel code, reference number, reason for call and port that is not budget and not estimate. If not port call is found then use exception: No port call found for this combination of vessel, voyage number, reason for call and port where departure fixed is not set.
If vessel is not reporting voyage reference number and reason for call: The first port call for a vessel code that is not budget, not estimate, not redelivery, event is departure, event log date (departure date) > report date from vessel report. If no port call is found then use exception: No departure port call found for the reported date and vessel.A port call in Dataloy VMS can be registered multiple times after each other with different reason for calls. The Dataloy VRS rule for Departure Reports is to update arrival and berthing date for the first port call that is not a redelivery port call and the departure date for the last port call that is not a redelivery port call. The report should be inserted to the last port call. This action also controls if the departure date of the previous port call is fixed. If the departure date for a previous port call is not fixed, then VRS will assume that this is the port call to update (see Step 2).
- Locate Previous Non-Redelivery Port Call but has Port not Equal to Located Port Call in Step 1
- IF previous port calls departure date from Step 2 is fixed:
- Locate last port call where port is equal to the port located in Step 1.
- IF previous port calls departure date from Step 2 is not fixed:
- Choose previous port call as the main port call where the vessel report should be inserted.
- Get the next port call for the port call located in Steps 2a or 2b (is the next arrival port call).
- If no arrival port call is found: throw exception Can not find next arrival port call.
IF Noon, Arrival OR In Port Report
- Initial Port Call Locator
If vessel is reporting voyage reference number and reason for call: The first port call for reported vessel code, reference number, reason for call and port that is not budget and not estimate. If not port call is found then use exception: No port call found for this combination of vessel, voyage number, reason for call and port where departure fixed is not set.
If vessel is not reporting voyage reference number and reason for call: The first port call for a vessel code that is not budget, not estimate, not redelivery, event is departure, event log date (departure date) > report date from vessel report. If no port call is found then use exception: No departure port call found for the reported date and vessel.- Start with port call from Step 1, loop port calls backwards and locate the first port call where departure date is not fixed (new feature in VRS 2.0).
Registering Port Calls in Dataloy VMS
A port call in Dataloy VMS can be registered multiple times after each other with different reason for calls. The Dataloy VRS rule is to update arrival and berthing date for the first port call that is not a redelivery port call and the departure date for the last port call that is not a redelivery port call. The report should be inserted to the first port call for Arrival and Noon and to the port call from Step 1 for In Port Reports.- Get the last port call where the port is equal to the portCall.port from Step 1.
- Get the first port call where the port is equal to portCall.port from Step 1.
- IF Arrival OR Noon Report
- Choose the port call from Step 2b as the main port call where the vessel report should be inserted.
- IF In Port Report
- Choose the port call from Step 1 as the main port call where the vessel report should be inserted.
Check Reported Ports - Applies to All Vessel Report Types
- Check Reported Ports
Check that reported port and the next arrival port call from the vessel report matches the ports for located port calls the IF Departure Report and IF Noon, Arrival OR In Port Report.- If reported port does not match the located port, use exception: The port reported by vessel, [port name] (id: [port id]). Does not match the port in Dataloy: [port name] (id: [port id]).
- If reported port for next arrival port call does not match the located arrival port use exception: The port reported by vessel, [port name] (id: [port id]). Does not match the port in Dataloy: [port name] (id: [port id]).
Update Port Call Data
IF Arrival Report
- Update the following data for port call from the IF Arrival OR Noon Report: DistanceActual, DaysStoppages, FoRobArrival, DoRobArrival, FlRobArrival, DlRobArrival
- IF Departure Report
- Update the following data for port call from Locate Pervious Non-Redelivery Port Call but has Port not Equal to Located Port Call in Step 1, Step 2b: FoRobDeparture, DoRobDeparture, FlRobDeparture, DlRobDeparture, FoBunkered, FlBunkered, DoBunkered, DlBunkered.
Update Arrival, Berthing , Departure - The Fixed Flag Behind Arrival, Berthing and Departure will Automatically be Set to True if Updated Date is in the Past.
- IF Departure Report
- Update the departure date for departure port call and arrival date for arrival port call.
- Ensure that the departure fixed flagg is always set to true, even when the departure date is in the future.
- IF Noon, Arrival or In Port Report
- Update the arrival and berthing date for the port call located in the IF Noon, Arrival OR In Port Report, Step 2b.
- Update the departure date for the port call located in the IF Noon, Arrival OR In Port Report, Step 2a.
- Ensure that the departure fixed flag is never set to true, even when the departure date is in the past.