eOrdering meeting 01/12/2022

Date: 01/12/2022
Participants: Veit Jahns, Wim Kok, Natalie Muric, Peitro Palermo, Thomas Petterson, Svante Schubert
Model editor: Eugeniu Costetchi
Note editor: Andreea Pasăre

Agenda

  • Feedback for eOrdering model

  • Order-delivery-invoice relationship

Discussion

Feedback for eOrdering model

Order-delivery-invoice relationship

Problem statement

In the order head level you find the “Delivery location” and the “Internal party to whom the goods are delivered (beneficiary)”. And also the expected delivery date.
On the line level you can NOT define a different Delivery location and the Internal party. You may have different delivery dates though.
This way it’s not too complex.
In Peppol (and as it’s implemented in Sweden), if you need to place an order to a different “Delivery location” and “Internal party to whom the goods are delivered”, you just place another order.
It’s very straightforward.

In the ePO-meetings the designed structure seems to me to be much too complex as “Delivery location” and “Internal party to whom the goods are delivered” is also on the order line.

NOTE that the invoice only refers to ONE order and ONE “Delivery location” and ONE “Internal party to whom the goods are delivered” and ONE delivery.
This means that the proposed complexity will also have implications to the way invoices must be implemented.

Discussion
  • Date and Time is not in DeliveryInformation. Maybe DeliveryInformation is not the proper word.

  • DeliveryInformation contains the Delivery Location details, the Beneficiary and the Consignee.

  • This is not only about DeliveryInformation, but also at a different level, like Project ID, Contract.

  • Discuss Cardinalities for Order - Despatch - Invoice relations:

    • In PEPPOL a DespatchAdvice can refer to multiple Orders. (0..n • cac:OrderReference in Peppol Despatch Advice transaction 3.1 (T16))

    • In PEPPOL an Invoice can refer to only one Order.

    • Invoice refers to a DespatchAdvice, and the DespatchAdvice refers to the Order.

wEGYbG1Msr9qQAAAABJRU5ErkJggg==
  • In Italy the Contract and the Lot are at the Line level.

Solution 1 - subclasses

Create subclasses of Order: Simple Order and Advanced Order and subclasses for Order Line: Simple Order Line and Advanced Order Line

Pros
  • Ensures unambiguous model

  • Accommodates two ways of indicating the address

  • Maintains interoperability

Cons
  • Increases the model complexity by adding four new classes: 2 on the Order and 2 on the OrderLine

Class diagram
B6I9taKdhVbbAAAAAElFTkSuQmCC
Instance diagrams
g97cD84XgAAAABJRU5ErkJggg==
93YTyBAAAAAAOUJ4AAAAAwAHKEwAAAAA4QHkCAAAAAAcoTwAAAADgAOUJAAAAABz44f3IkAAAAAAAX0d5AgAAAAAHKE8AAAAA4ADlCQAAAAAcoDwBAAAAgAOUJwAAAABwgPIEAAAAAA5QngAAAADAAcoTAAAAADhAeQIAAAAAByhPAAAAAOAA5QkAAAAAHKA8AQAAAIADlCcAAAAAcIDyBAAAAAAOUJ4AAAAAwAHKEwAAAAA48MP74XcCAAAAAHwd5QkAAAAAHPgf377Rg7nGoC4AAAAASUVORK5CYII=
Solution 2 - granular delivery specification

Leave the delivery address only at the Order Line level.

Pros
  • Allows for granular delivery location (and possibly other info) specification

  • Maintains interoperability ====== Cons

  • Differs from PEPPOL

  • Possibly a bit model burdensome for implementers to handle (but not really).

Instance diagram
Gli0iYiIiIhOAIs2EREREdEJ+N+6dg1ERERERGRfLNpERERERCeARZuIiIiI6ASwaBMRERERnQAWbSIiIiKiE8CiTURERER0Ali0iYiIiIhOwP8DaoHL5mo5SvMAAAAASUVORK5CYII=
Solution 3 - coarse delivery specification

Keep the delivery address only at the Order (header) level.

Pros
  • Clean approach

  • Aligned to PEPPOL

  • Maintains interoperability ====== Cons

  • Cannot satisfy the requirements of some Member States that need granular specification

Instance diagram
upu+nt3KX4AAAAASUVORK5CYII=
Solution 4 - ambiguous model

Keep the model ambiguous and rely instead on application profiles to reduce the ambiguity.

Pros
  • Models both approaches in a simplistic way ====== Cons

  • Bad modelling practice allows for the same information to be expressed in multiple ways/places.

  • Implementers will need an extra level of conflict/contradiction resolution.

  • Breaks interoperability.

Instance diagram
8GNYQ0AACpK4ehC9VMff8CJem5Q3dTHXwcMawAAAAAAfGBYAwAAAADgA8MaAAAAAAAfGNYAAAAAAPjAsAYAAAAAwIdDK78vCAAAAAAA8IZhDQAAAACADwxrAAAAAAB8YFgDAAAAAOADwxoAAAAAAB8Y1gAAAAAA+PAvGW+DAoRfpAYAAAAASUVORK5CYII=
Solution 5 - coarse delivery information, with “specificity to”
AxeaMrzeqCCCAAAAAElFTkSuQmCC

Doing a new instance example for this solution:

  • Copy from order sandbox diagram

Doing a new instance example with Contracts included:

  • Contract can also be at OrderLine.

  • A solution might be to create a hub class, ContractualInfo, that binds a Contract to Order and OrderLine.

QBKRigjnaDIbQAAAABJRU5ErkJggg==
  • Proposal to specify all the Concepts at the OrderLine level.- solution 2. If something is represented at the header level, then it must be because we can not represent it differently.

sgxBCiPZwRJQ5fuQg3Btrak+QRI8QQnSu59xrDgghhGgfriqcHYjfVFgd+saTPEj0CCFEx3rOOEOVEEKI9qJmdGMVXgQ6iUSPEEJ0LokeIYRocxI9GokeIYToXBI9QgjR5iR6NBI9QgjRuSR6hBCizUn0aCR6hBCic0n0CCFEm5PoEUII0emeM76LvBBCiPYTEMUXPwpA49eEEEK0N4keIYToAMaNf0fyljB+TQghRFuT6BFCiA5g3PgLIYQQnUSiRwghOoBx4y+EEEJ0kv8PbUX6USWTK0sAAAAASUVORK5CYII=
  • Also diagram at the concept level:

A90DDGQOM7cDAAAAAElFTkSuQmCC
  • This will be taken as homework and come to a conclusion.

  • The solution with the concept hubs is preferred.

  • This pattern should be applied to all the delivery messages.