
USE CASE	    Parse Handling Event Data [subfunction]
===========================================================================
System receives and parses handling event data coming in from a handling authority
(port, shipper, customs etc).

Primary actor.. Data Parser
Scope.......... Handling Monitoring System in shipping application
Preconditions.. None
Trigger........ Incident logging application sends handling event registration attempt.


Main Success Scenario
---------------------------------------------------------------------------
1. External incident logging application provides handling event data for a handled cargo.
2. Data Parser verifies that data is complete.
3. Data Parser performs basic type conversion.
4. Data Parser collects parsed handling event data.
5. Data Parser returns parsed handling event data to handling system.


Deviations
---------------------------------------------------------------------------
2a. Completion time, tracking id, event type or unLocode is null or empty:
    1. Failure.

3a. Completion time string is not in ISO 8601 format:
    1. Failure.

3b. Handling event type string is not recognized:
    1. Failure.


Technology & Data variations *)
---------------------------------------------------------------------------
The same business scenario can be implemented with various combinations of
technologies:

1a. Receive handling event data
    1. manually (form input)
    2. automatically (web service, file upload, etc.)

4a. Return handling event DTO
    1. synchronously (return value)
    2. asynchronously (JMS, event sourcing, etc.)


---------------------------------------------------------------------------
Success guarantees:
    Valid handling event DTO is returned.

Minimal guarantees:
    Data consistency: Invalid data is rejected.
    Handling authorities are notified of invalid handling event data.

Stakeholders/Interests:
    Handling System - wants data consistency
    Handling authority - wants notification of rejected handling event data submission.



*) See A. Cockburn: "Writing Effective Use Cases", pp 111