Skip to content

Design of the reference construct #317

Description

@larsolofsson

See current reference construct in issue #302.
When working with the reference construct, I have found that papiNet need to discuss some improvements.

When an item is referenced, e.g. a DeliveryNote, then the identifier of the item can be an id (UUID) or a number assigned by a party.
Currently the name of the reference type is ending with "Number", e.g. DeliveryNoteNumber.
The proposal is to remove "Number" from the the name of the reference type, e.g. to be just DeliveryNote.

Property Id (UUID) will not be used in use cases in version 5.0.0.
It can be added later, if needed in the future
The proposal is to remove property Id: (UUID) from the reference construct.

Name change of property assignedByIdentifierBySupplier?
Would assigningPartyIdentifierBySupplier or assignedByPartyIdentifierBySupplier be a better name?
The proposal is to change name .assignedByIdentifierBySupplier to assigningPartyIdentifierBySupplier

The proposal is to make the reference constract more compact and more flat by applying above proposals and replacing one object with 2 properties.

Image
 references:
type: array
minItems: 1
items:
type: object
unevaluatedProperties: false
required:
- type
- assignedBy
- assigningPartyIdentifierBySupplier
- number
properties:
type:
description: The type of the referenced item.
type: string
enum:
- DeliveryNote
- DeliveryInstruction
- LoadingInstruction
- Shipment
assignedBy:
description: The business role of the assigning party.
type: string
enum:
- Forwarder
- Supplier
- WarehouseOperator
assigningPartyIdentifierBySupplier:
type: string
minLength: 1
description: The identifier of the assigning party assigned by the _Supplier_.
number:
type: string
minLength: 1
description: The identifier of the referenced item given by the assigning party.
dateTime:
type: string
format: date-time
description: |
The dateTime when the referenced item was created or updated. It MUST be local or UTC date-time expressed in ISO 8601
sequenceNumber:
type: integer
minimum: 0
description: A sequenceNumber in the referenced item.
lineItemNumber:
type: integer
minimum: 0
description: A lineItemNumber in the referenced item.

Current reference construct

 references:
type: array
minItems: 1
items:
type: object
unevaluatedProperties: false
required:
- type
- assignedBy
anyOf:
- required:
- id
- required:
- identifier
properties:
type:
type: string
enum:
- DeliveryNoteNumber
- DeliveryInstructionNumber
- LoadingInstructionNumber
- ShipmentNumber
assignedBy:
description: The business role of the assigning party.
type: string
enum:
- Forwarder
- Supplier
- WarehouseOperator
id:
type: string
format: uuid
identifier:
type: object
unevaluatedProperties: false
required:
- value
- assignedByIdentifierBySupplier
properties:
value:
type: string
minLength: 1
assignedByIdentifierBySupplier:
type: string
minLength: 1
description: The identifier of the assigning party assigned by the _Supplier_.
dateTime:
type: string
format: date-time
description: It MUST be local or UTC date-time expressed in ISO 8601
sequenceNumber:
type: integer
minimum: 0
lineItemNumber:
type: integer
minimum: 0

Metadata

Metadata

Assignees

No one assigned

    Labels

    MUST BE DISCUSSEDMust be discussed during the next CWG meeting

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions