uncefact / project-traceability

API definitions and testable mocks for a garment traceability project with UNECE and ITC based on GS1 EPCIS
GNU General Public License v3.0
6 stars 2 forks source link

what values to use for party role code #19

Open onthebreeze opened 2 years ago

onthebreeze commented 2 years ago

There is a party type ID in the EPICS and Traceability model. In EPICS it is defined as one of

In UN BSP it is a list of supply chain actors like carrier, stevedore, etc...

I'm not sure we need it at all because the context of the party is clear from the referring class. for example in a transactionEvent there is a sourceParty and destinationParty. What else is needed. Even if we add the EPCIS type, how will a buyer in a transaction know whether the seller owns, possesses, or stores the product? They are just buying it from a supplier...

VladimirAlexiev commented 2 years ago

Can't answer about the non-EPCIS roles you mention (maybe @mgh128 can). But the owner/possessor distinction comes from legal practice. So you may well have two transactions for the same good, eg:

mgh128 commented 2 years ago

What @VladimirAlexiev just wrote is correct - traceability regulations concerned with pedigree or provenance often do make a distinction between parties that take ownership of a product / shipment (owning_party) vs parties that only take custody (possessing_party) without taking legal ownership of it.

The three code values

The code list sourceOrDestinationType ( https://ref.gs1.org/cbv/SDT ) is not intended to express static master data about parties - whether they are a carrier, stevedore, distributor etc. Such static master data about the static role of an organisation or location is assumed to be available via other mechanisms (such as data synchronisation via GDSN, expression using the GS1 Web vocabulary ( see for example https://www.gs1.org/voc/OrganizationRoleType ) or via some other mutual / bilateral exchange of master data between trading partners). Instead, this code list only indicates a role within that specific shipping/receiving transaction or exchange. It is conceivable that for some transactions, the same organisation (e.g. a distributor) might only take custody (possessing_party) whereas for others they might take ownership (owning_party) and this code list is intended to help make that distinction, even though their static master data role might be 'distributor' (e.g. https://www.gs1.org/voc/OrganizationRoleType-DISTRIBUTOR ) in both cases.

I should probably also add a note that GS1 Application Identifier (417) = Party Global Location Number was introduced into the GS1 General Specifications much more recently than GS1 Appliation Identifier (414) = Physical Location GLN, so there are users who have not yet migrated to using (417) / Party GLN to identify an organisation - they're still using (414) / Physical Location GLN to identify an organisation because that was their practice before (417) Party GLN was introduced. That's not an ideal situation but again, this code list can help to indicate whether a (414) GLN value is being used to identify a physical location or an organisation that takes either possession/custody or ownership, even when this might not be apparent from inspection of the GLN URI value (because a (414) GLN might still be being used to identify an organisation/party, for the reason above).