You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Presently, the ONE Record standard enables third parties to suggest modifications to specific properties within logistics objects (See Update a Logistics Object). However, there's a gap in the specification when it comes to identifying anomalies or errors within these objects without proposing entirely new values.
To address this issue, we suggest the introduction of a new subclass named VerificationRequest under the ActionRequest. This enhancement would allow any party noticing anomalies or issues within a Logistics Object to request verification without the necessity of proposing alternative values.
The VerificationRequest will inherit all attributes of the ActionRequest and introduce a new attribute named hasVerification.
In addition to the VerificationRequest, we introduce a new entity referred to as Verification, which contains details regarding anomalies detected within a particular Logistics Object.
The Verification Object will have three properties:
- hasError
- hasLogisticsObject
- hasRevision
- notifyRequestStatusChange
The hasLogisticsObject and the hasRevision allows the party to target a specific version of a logistics object while the hasError is an array of Error objects. As in all other Action Requests, notifyRequestStatusChange allows to receive notification on status change.
Each issue or anomaly on a specific logistics object will be incapsulated into a Error object which contains two attributes: HasTitle and HasErrorDetail. Should users need to convey a specific message, indicate a particular property, or transmit an error code, they can utilize the ErrorDetail object for this purpose.
Class Diagram
This class diagram includes the newly defined VerificationRequest with Verification and FieldVerification objects.
stateDiagram-v2
direction LR
[*] --> REQUEST_PENDING
REQUEST_PENDING --> REQUEST_ACKNOWLEDGED: acknowledged by holder
REQUEST_PENDING --> REQUEST_REJECTED: rejected by holder
REQUEST_PENDING --> REQUEST_REVOKED: revocation requested
REQUEST_PENDING --> REQUEST_FAILED: revocation requested
REQUEST_REVOKED --> [*]
REQUEST_FAILED --> [*]
REQUEST_REJECTED --> [*]
REQUEST_ACKNOWLEDGED --> [*]
Loading
REQUEST_ACKNOWLEDGED : The holder acknowledges receipt of a Verification from a third party.
REQUEST_FAILED: A Verification has been assigned to a prior version of the logistics object, or the properties requiring verification are absent.
REQUEST_REVOKED: The third party who initiated the Verification chooses to withdraw the request.
REQUEST_REJECTED: The holder of the logistics object discard the Verification.
Sequence Diagram
The following diagram illustrates a basic data exchange process between a forwarder and a carrier, including error handling using VerificationRequest. The forwarder creates a shipment logistics object and notifies the carrier. Upon receiving the shipment, the carrier identifies any discrepancies in the goods description and reports these issues back to the forwarder using VerificationRequest. The forwarder then acknowledges the VerificationRequest, rectifies the data, and notifies the carrier of the updates.
sequenceDiagram
participant Forwarder
participant Carrier
Forwarder->>Forwarder: Create shipment LogisticsObject on its ONE Record server
Forwarder->>Carrier: Notify the shipment creation using notification endpoint
Carrier->>Carrier: Review the shipment object and identify issues in goods description
Carrier->>Forwarder: Report incorrect data via VerificationRequest
Forwarder->>Forwarder: Acknowledge VerificationRequest and rectify the shipment object
Forwarder->>Carrier: Notify the update of the shipment
Loading
API Implementation
EndPoint
POST {{baseURL}}/logistics-objects/{{logisticsObjectId}}
Request
The following HTTP header parameters MUST be present in the POST request:
Request Header
Description
Examples
Accept
The content type that you want the HTTP response to be formatted in.
application/ld+json
Content-Type
The content type that is contained with the HTTP body.
application/ld+json
The HTTP request body must contain a valid Verification object in the format as specified by the Content-Type in the header.
Response
A successful request MUST return a ``HTTP/1.1 201 Created` status code and the following HTTP headers parameters MUST be present in the response:
Otherwise, an Error object with ErrorDetail as response body MUST be returned with the following HTTP headers:
Header
Description
Example
Content-Type
The content type that is contained with the HTTP body.
application/ld+json
Content-Language
Describes the language(s) for which the requested resource is intended.
en-US
The following HTTP status codes MUST be supported:
Code
Description
Response body
201
The change request was correctly created
No body required
400
The verification request body is invalid
Error
401
Not authenticated
Error
403
Not authorized to update the Logistics Object
Error
404
Logistics Object not found
Error
415
Unsupported Content Type, response when the client sends a POST document format that the server does not support for the resource identified by the Request-URI.
Error
422
Unprocessable request, when the server understands the POST document and the syntax of the POST document appears to be valid, but the server is incapable of processing the request.
In order to link a VerificationRequest with a ChangeRequest we would like to add a new optional parameter in the Change objected :
hasVerificationRequest : link to the VerificationRequest that induced the change.
NOTE: This is an optional change that needs to be discussed.
Audit Trail update
All VerificationRequest objects should be saved into the audit trail together with the changeRequest objects. For this reason the hasChangeRequest in the audit trail should be renamed into hasActionRequest and it should contains both Verification and Change requests.
The text was updated successfully, but these errors were encountered:
Introduction
Presently, the ONE Record standard enables third parties to suggest modifications to specific properties within logistics objects (See Update a Logistics Object). However, there's a gap in the specification when it comes to identifying anomalies or errors within these objects without proposing entirely new values.
To address this issue, we suggest the introduction of a new subclass named VerificationRequest under the ActionRequest. This enhancement would allow any party noticing anomalies or issues within a Logistics Object to request verification without the necessity of proposing alternative values.
The VerificationRequest will inherit all attributes of the ActionRequest and introduce a new attribute named hasVerification.
In addition to the VerificationRequest, we introduce a new entity referred to as Verification, which contains details regarding anomalies detected within a particular Logistics Object.
The Verification Object will have three properties:
- hasError
- hasLogisticsObject
- hasRevision
- notifyRequestStatusChange
The hasLogisticsObject and the hasRevision allows the party to target a specific version of a logistics object while the hasError is an array of Error objects. As in all other Action Requests, notifyRequestStatusChange allows to receive notification on status change.
Each issue or anomaly on a specific logistics object will be incapsulated into a Error object which contains two attributes: HasTitle and HasErrorDetail. Should users need to convey a specific message, indicate a particular property, or transmit an error code, they can utilize the ErrorDetail object for this purpose.
Class Diagram
This class diagram includes the newly defined VerificationRequest with Verification and FieldVerification objects.
State Diagram for VerificationRequest:
Sequence Diagram
The following diagram illustrates a basic data exchange process between a forwarder and a carrier, including error handling using VerificationRequest. The forwarder creates a shipment logistics object and notifies the carrier. Upon receiving the shipment, the carrier identifies any discrepancies in the goods description and reports these issues back to the forwarder using VerificationRequest. The forwarder then acknowledges the VerificationRequest, rectifies the data, and notifies the carrier of the updates.
API Implementation
EndPoint
Request
The following HTTP header parameters MUST be present in the POST request:
The HTTP request body must contain a valid Verification object in the format as specified by the Content-Type in the header.
Response
A successful request MUST return a ``HTTP/1.1 201 Created` status code and the following HTTP headers parameters MUST be present in the response:
Otherwise, an
Error
object withErrorDetail
as response body MUST be returned with the following HTTP headers:The following HTTP status codes MUST be supported:
JSON Examples:
VerificationRequest Object
Verification Object
ChangeRequest update
In order to link a VerificationRequest with a ChangeRequest we would like to add a new optional parameter in the Change objected :
NOTE: This is an optional change that needs to be discussed.
Audit Trail update
All VerificationRequest objects should be saved into the audit trail together with the changeRequest objects. For this reason the hasChangeRequest in the audit trail should be renamed into hasActionRequest and it should contains both Verification and Change requests.
The text was updated successfully, but these errors were encountered: