Disaggregation
Purpose: Breaks down aggregated units into smaller components.
Example: Unpacking a pallet into individual boxes upon arrival.
Key elements:
- Same structure as Aggregation.
- Involves
parentID
and a list ofchildEPCs
orchildQuantityList
. - Reverses the effect of an Aggregation event.
XML payload fields
The following table describes EPCIS XML document payload fields applicable to disaggregation events.
Name | Type | Description | Required | Example |
---|---|---|---|---|
eventTime | string | Specifies the UTC time in ISO 8601 format when the aggregation event occurred. | Yes | <eventTime>2013-06-08T14:58:56.591Z</eventTime> |
eventTimeZoneOffset | string | Specifies the time zone offset where the event occurred, expressed as an offset from UTC. | Yes | <eventTimeZoneOffset>+02:00</eventTimeZoneOffset> |
baseExtension.eventID | string | Specifies a Universally Unique Identifier (UUID) eventID for the disaggregation event. If not specified, the system generates an event ID. The UUID can be any 128-bit number that is 32 hexadecimal digits in length. Walmart recommends that you provide a unique eventID for each disaggregation event. | no | <eventID>urn:uuid:6926712e-599f-4c4e-b6e9-8dd888c906bd</eventID> |
parentID | string | Specifies a single parent object into which child objects have been aggregated (may be SSCC or internal license plate numbers). Do not reuse pallet IDs (internal or SSCC) for at least one year. Pallets moving across company boundaries should have SSCCs. For example, pallets shipped from a supplier to the retailer should have an SSCC. Internally assigned pallet IDs should be reported with a company prefix for disambiguation: CompanyPrefix.InternalID . EPC SSCC syntax:urn:epc:ID:sscc:CompanyPrefix.ExtensionAndSerialRef An EPC SSCC has 17 digits. Use the CompanyPrefix specified in the GS1 SSCC standard.Form the ExtensionAndSerialRef by concatenating the first digit (Extension) from GS1 SSCC with SerialRef digits from GS1 SSCC. Drop the GS1 SSCC check digit. | Yes | <parentID>urn:epc:id:sscc:5012345.0678901234</parentID> |
childEPCs | list | A list of EPCs that specifies what objects were bundled together in an EPCIS aggregation event. This tag must be specified unless the childQuantityList tag is present. | Conditional | <childEPCs> <epc>urn:epc:id:sgtin:0614141.107346.1 <epc>urn:epc:id:sgtin:0614141.107346.2 <epc>urn:epc:id:sgtin:0614141.107346.3 <epc>urn:epc:id:sgtin:0614141.107346.4 <epc>urn:epc:id:sgtin:0614141.107346.5 </childEPCs> |
action | string | Specifies the action of the EPCIS event. For disaggregation events, the action is DELETE . | Yes | <action>ADD</action> |
bizStep | string | Specifies the business step that this event was a part of. Valid bizStep values are:
For more information, see the Core Business Vocabulary Standard Section 7.1.3 (PDF) . | No | <bizStep>urn:epcglobal:cbv:bizstep:packing</bizStep> |
disposition | string | Specifies the condition of the objects after this event. Valid disposition values are:
For more information, see the Core Business Vocabulary Standard Section 7.2.3 (PDF) . | No | <disposition>urn:epcglobal:cbv:disp:in_progress</disposition> |
readPoint | string | Specifies the Serial Global Location Number (SGLN) where the read event occurred. Used to indicate an event location other than the mandatory bizLocation .SGLN sytax: urn:epc:id:sgln:CompanyPrefix.LocationReference.Extension CompanyPrefix.LocationReference are the first 12 digits of the Global Location Number (GLN).The 13th check digit is not included. The extension can be a single 0 digit (denoting no extension), or can be any number of digits without leading zeros. | No | <readPoint><id>urn:epc:id:sgln:0614141.00777.0</id></readPoint> |
bizLocation | string | Specifies the Serial Global Location Number (SGLN) for the business where the aggregation event occurred. | Yes | <bizLocation><id>urn:epc:id:sgln:0614141.00888.0</id></bizLocation> |
bizTransactionList | list | Specifies a list of business transactions associated with this event. The bizTransactionList element is required when this event is used to indicate a receiving shipment from a supplier to a retailer. The bizTransactionList should include a purchase order (PO) number. | No | <bizTransactionList> <bizTransaction type="urn:epcglobal:cbv:btt:po">urn:epcglobal:cbv:bt:5412345000037:3352</bizTransaction> <bizTransaction type="urn:epcglobal:cbv:btt:desadv">urn:epcglobal:cbv:bt:5412345000037:3352-349875</bizTransaction> </bizTransactionList> |
bizTransactionList.bizTransaction | string | Specifies a business transaction associated with the aggregation event. Valid bizTransaction attribute types are:
Syntax: urn:epcglobal:cbv:bt:GLN:TransactionID TransactionID can be specified in two ways, depending on the attribute type that is defined. For purchase orders when the attribute type is defined as urn:epcglobal:cbv:btt:po , only the purchase order number is needed in the TransactionID . For dispatch advice when the attribute type is defined as urn:epcglobal:cbv:btt:desadv , then the TransactionID should be defined as PO-BOL , where PO is the purchase order number and BOL is the bill of lading number. | No | The following example uses the urn:epcglobal:cbv:btt:po attribute type to indicate the identifier for a purchase order that is sent from a retailer to the supplier:<bizTransaction type="urn:epcglobal:cbv:btt:po">urn:epcglobal:cbv:bt:5412345000037:3352</bizTransaction> The following example uses the urn:epcglobal:cbv:btt:desadv attribute type to indicate the identifier for a dispatch advice that is sent from a supplier to the retailer:<bizTransaction type="urn:epcglobal:cbv:btt:desadv">urn:epcglobal:cbv:bt:5412345000037:3352-349875</bizTransaction> |
extension.childQuantityList | list | Specifies one or more quantityElement tags that define additional epcCLass LGTINs.This element is required if the childEPCs element is not populated. | No | <childQuantityList> <quantityElement> <epcClass>urn:epc:class:lgtin:0030223.104480.214</epcClass> <quantity>214</quantity> <uom>CS</uom> </quantityElement> <quantityElement> <epcClass>urn:epc:class:lgtin:0030223.106952.215</epcClass> <quantity>215</quantity> <uom>CS</uom> </quantityElement> </childQuantityList> |
extension.childQuantityList.quantityElement | list | Specifies one or more epcClass tags defining additional LGTINs that contain the quantity and uom definitions for each item.This element is required if the childQuantityList is specified. | No | <quantityElement> <epcClass>urn:epc:class:lgtin:0030223.104480.214</epcClass> <quantity>214</quantity> <uom>CS</uom> </quantityElement> |
extension.childQuantityList.quantityElement.epcClass | string | Specifies class-level EPCs, such as LGTINs. This element is required if the quantityElement is specified. | No | This example defines that 10 cases of LGTIN 0614141.107346 belong to lot 101 .<epcClass>urn:epc:class:lgtin:0614141.107346.101</epcClass> |
extension.childQuantityList.quantityElement.quantity | decimal | Specifies the quantity of items. This element is required if the quantityElement is specified. | No | <quantity>10</quantity> |
extension.childQuantityList.quantityElement.uom | string | Specifies the item quantity unit of measurement, such as cases (CS), each (EA), pounds (LBR), or kilograms (KGM). For more information about units of measure for international trade, see Units of Measure: Code Elements Listed by Name (PDF) and Units of Measure: Code Elements Listed by Common Code (PDF) . This element is required if the quantityElement is specified. | No | <uom>CS</uom> |
extension.sourceList | list | A list of source elements that specifies the serialized global location number (SGLN) of the facility or facilities that goods are being sent from.The prefix of the type attribute starts with urn:epcglobal:cbv:sdt: and is followed by owning_party , possessing_party , or location . The attribute type must be specified in all lowercase letters. One or more source elements can be specified.This element is required if the aggregation event involves a transfer of goods, such as a shipment from supplier to retailer. | No | <destinationList> <destination type="urn:epcglobal:cbv:sdt:owning_party">urn:epc:id:sgln:5012345.00001.0</destination> </destinationList> |
extension.destinationList | list | A list of destination elements that specifies the SGLN of the receiving facility or facilities where goods are shipped to.The prefix of the type attribute starts with urn:epcglobal:cbv:sdt: and is followed by owning_party , possessing_party , or location . The attribute type must be specified in all lowercase letters. One or more destination elements can be specified.This element is required if the aggregation event involves a transfer of goods, such as a shipment from supplier to retailer. | No | <destinationList> <destination type="urn:epcglobal:cbv:sdt:owning_party">urn:epc:id:sgln:5012345.00001.0</destination> </destinationList> |
XML payload examples
The following sections provide two EPCIS aggregation event XML documents.
Annotated payload
This example provides an annotated XML payload. Remove the comments in this XML file before sending data to the blockchain.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<epcis:EPCISDocument xmlns:epcis="urn:epcglobal:epcis:xsd:1" xmlns:example="http://ns.example.com/epcis" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" creationDate="2005-07-11T11:30:47.0Z" schemaVersion="1.2"> <EPCISBody> <EventList> <AggregationEvent> <eventTime>2013-06-08T14:58:56.591Z</eventTime> <--! WHEN--> <--! MANDATORY. UTC time (ISO 8601) when event occurred.--> <eventTimeZoneOffset>+02:00</eventTimeZoneOffset> <--! MANDATORY. Time-zone of location, as an offset from UTC.--> <baseExtension> <eventID>urn:uuid:6926712e-599f-4c4e-b6e9-8dd888c906bd</eventID> <--! OPTIONAL. A unique ID (UUID) for the event. If not specified, the system generates an event ID.--> <--! RECOMMENDED. Supply a unique eventID (UUID) for disambiguation.--> </baseExtension> <parentID>urn:epc:id:sscc:5012345.0678901234</parentID> <--! WHAT--> <--! MANDATORY: single parent object from which child objects are being disaggregated (may be SSCC or internal license plate numbers)--> <--! Guidance for clients--> <--! 1. Do not reuse pallet ids (internal or SSCC) at least over periods of months. GS1 guideline: SSCC not reused for at least 1 year.--> <--! 2. Pallets moving across company boundaries should have SSCCs. E.g. pallets shipped from supplier to retailer should have SSCC.--> <--! 3. Internally assigned pallet ids should be reported with a company prefix, for disambiguation. So, CompanyPrefix.InternalID.--> <--! General EPC SSCC syntax: urn:epc:id:sscc:CompanyPrefix.SerialRefAndExtension--> <--! EPC SSCC is 17 digits--> <--! CompanyPrefix is equal to the CompanyPrefix in GS1 SSCC--> <--! SerialReferenceAndExtension is formed by concatenating the first digit (Extension) from GS1 SSCC with SerialRef digits from GS1 SSCC.--> <--! GS1 SSCC check digit is dropped.--> <childEPCs> <epc>urn:epc:id:sgtin:0614141.107346.2017</epc> <epc>urn:epc:id:sgtin:0614141.107346.2018</epc> <--! Additional entries go here--> </childEPCs> <--! WHAT--> <--! MANDATORY, but can be empty, if childQuantityList (see below) is present--> <--! List of child instance-level objects (SSCC, SGTIN) that are being disaggregated from parent object.--> <--! LGTINs and other class-level objects go in childQuantityList (see below)--> <--! General SGTIN syntax: urn:epc:id:sgtin:CompanyPrefix.IndicatorDigitAndItemRef.SerialNumber--> <--! CompanyPrefix.ItemRefAndIndicator should have 13 digits (without counting dots).--> <--! CompanyPrefix is equal to the CompanyPrefix derived from GTIN-14.--> <--! ItemRefAndIndicator is formed by concatenating the first digit (Indicator) from GTIN-14 with ItemRef digits from GTIN-14.--> <--! GTIN-14 check digit is dropped.--> <--! GTIN-12 or GTIN-13 should first be converted to GTIN-14 by adding leading 0s before above conversion.--> <action>DELETE</action> <--! MANDATORY. EPCIS action. Don't change this. --> <bizStep>urn:epcglobal:cbv:bizstep:unpacking</bizStep> <--! OPTIONAL. From Section 7.1.3 of https://www.gs1.org/sites/default/files/docs/epc/CBV-Standard-1-2-r-2016-09-29.pdf--> <--! The business step that this event was a part of.--> <--! Custom bizSteps are supported, in the format http://<client-controlled-domain-name/path/biz_step_name>--> <--! Custom bizStep example: http(s)://epcis.company.com/bizStep/roasting_duck_batch--> <disposition>urn:epcglobal:cbv:disp:in_progress</disposition> <--! OPTIONAL. From Section 7.2.3 of https://www.gs1.org/sites/default/files/docs/epc/CBV-Standard-1-2-r-2016-09-29.pdf--> <--! The condition of the objects after this event.--> <readPoint><id>urn:epc:id:sgln:0614141.00777.0</id></readPoint> <--! OPTIONAL: SGLN where the read occurred. Used to indicate an event location other than the mandatory bizLocation.--> <--! General syntax of SGLN: urn:epc:id:sgln:CompanyPrefix.LocationReference.Extension--> <--! CompanyPrefix.LocationReference are the first 12 digits of GLN (13th check digit is not included).--> <--! Extension can be a single 0 digit (denoting no extension), or can be any number of digits without leading zeros--> <bizLocation><id>urn:epc:id:sgln:0614141.00888.0</id></bizLocation> <--! WHERE--> <--! MANDATORY: SGLN (extensible global location number) for the business location where the event occurred.--> <bizTransactionList> <bizTransaction type="urn:epcglobal:cbv:btt:po">urn:epcglobal:cbv:bt:5412345000037:3352</bizTransaction> <bizTransaction type="urn:epcglobal:cbv:btt:desadv">urn:epcglobal:cbv:bt:5412345000037:3352-349875</bizTransaction> <--! Two types of business transaction examples: --> <--! 1. Use "urn:epcglobal:cbv:btt:po" above to indicate the identifier for a PURCHASE ORDER (send from retailer to supplier) --> <--! 2. Use "urn:epcglobal:cbv:btt:desadv" above to indicate the identifier for a DESPATCH ADVICE (send from supplier to retailer) --> </bizTransactionList> <--! WHY--> <--! List of business transactions associated with this event.--> <--! The example above shows a purchase order (PO), a despatch advice (ASN), and a production order--> <--! OPTIONAL, in general. From Page 28 of https://www.gs1.org/sites/default/files/docs/epc/CBV-Standard-1-2-1-r-2017-05-05.pdf--> <--! MANDATORY: When this event is used to represent receiving a shipment from supplier to retailer,--> <--! the bizTransactionList should include a PO. It should also include a DA (ASN) when one is available.--> <--! General syntax: urn:epcglobal:cbv:bt:GLN:TransactionID--> <--! See transaction XMLs for TransactionID format.--> <extension> <childQuantityList> <quantityElement> <epcClass>urn:epc:class:lgtin:0614141.107346.101</epcClass> <--! MANDATORY for quantityElement. Class-level EPCs like LGTINs. See note below for description.--> <quantity>10</quantity> <--! MANDATORY for quantityElement.--> <--! Meaning: 10 cases of LGTIN '0614141.107346' belonging to lot '101'--> <uom>CS</uom> <--! MANDATORY for quantityElement. Item quantity unit of measurement. "CS" = Case.--> <--! Two or three-character codes from UN/CEFACT Recommendation 20.--> <--! Other examples: EA (each), LBR (pound), KGM (kilogram).--> <--! See https://www.unece.org/fileadmin/DAM/cefact/recommendations/rec20/rec20_rev3_Annex2e.pdf and--> <--! https://www.unece.org/fileadmin/DAM/cefact/recommendations/rec20/rec20_rev3_Annex3e.pdf.--> </quantityElement> <--! Additional quantityElement entries go here.--> </childQuantityList> <--! WHAT--> <--! MANDATORY that childQuantityList be present if childEPCs is empty.--> <--! List of child class-level objects like LGTINS (GTIN+lot) along with their quantity and unit of measure.--> <--! LGTINs should be constructed to be as unique as possible; by concatenating time/date of creation with object id, e.g.--> <--! General LGTIN syntax: urn:epc:class:lgtin:CompanyPrefix.IndicatorDigitAndItemRef.Lot--> <--! CompanyPrefix.ItemRefAndIndicator should have 13 digits (without counting dots).--> <--! CompanyPrefix is equal to the CompanyPrefix derived from GTIN.--> <--! ItemRefAndIndicator is formed by concatenating the first digit (Indicator) from GTIN with ItemRef digits from GTIN.--> <--! GTIN check digit is dropped.--> <--! If a GTIN (without lot) is to be represented, the following syntax is used:--> <--! From Page 35 of https://www.gs1.org/sites/default/files/docs/epc/CBV-Standard-1-2-1-r-2017-05-05.pdf --> <--! urn:epc:idpat:sgtin:CompanyPrefix.ItemRefAndIndicator.* where --> <--! CompanyPrefix.ItemRefAndIndicator is 13 digits as above.--> <sourceList> <source type="urn:epcglobal:cbv:sdt:owning_party">urn:epc:id:sgln:0614141.00001.0</source> <--! Additional source entries go here.--> <--! OPTIONAL: SGLN of the facility or facilities that goods are being sent from.--> <--! MANDATORY if this event involves a transfer of goods, such as a shipment from supplier to retailer.--> </sourceList> <destinationList> <destination type="urn:epcglobal:cbv:sdt:owning_party">urn:epc:id:sgln:5012345.00001.0</destination> <--! Additional destination entries go here.--> <--! OPTIONAL: SGLN of the receiving facility or facilities.--> <--! MANDATORY if this event involves a transfer of goods, such as a shipment from supplier to retailer. --> </destinationList> </extension> </AggregationEvent> </EventList> </EPCISBody>
</epcis:EPCISDocument>
Ready to use
The following XML file is ready to use. Define your own values for each tag, then send the data to the blockchain.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<epcis:EPCISDocument xmlns:epcis="urn:epcglobal:epcis:xsd:1" xmlns:example="http://ns.example.com/epcis" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" creationDate="2005-07-11T11:30:47.0Z" schemaVersion="1.2"> <EPCISBody> <EventList> <AggregationEvent> <eventTime>2013-06-08T14:58:56.591Z</eventTime> <eventTimeZoneOffset>+02:00</eventTimeZoneOffset> <baseExtension> <eventID>urn:uuid:6926712e-599f-4c4e-b6e9-8dd888c906bd</eventID> </baseExtension> <parentID>urn:epc:id:sscc:5012345.0678901234</parentID> <childEPCs> <epc>urn:epc:id:sgtin:0614141.107346.2017</epc> <epc>urn:epc:id:sgtin:0614141.107346.2018</epc> </childEPCs> <action>DELETE</action> <bizStep>urn:epcglobal:cbv:bizstep:unpacking</bizStep> <disposition>urn:epcglobal:cbv:disp:in_progress</disposition> <readPoint><id>urn:epc:id:sgln:0614141.00777.0</id></readPoint> <bizLocation><id>urn:epc:id:sgln:0614141.00888.0</id></bizLocation> <bizTransactionList> <bizTransaction type="urn:epcglobal:cbv:btt:po">urn:epcglobal:cbv:bt:5412345000037:3352</bizTransaction> <bizTransaction type="urn:epcglobal:cbv:btt:desadv">urn:epcglobal:cbv:bt:5412345000037:3352-349875</bizTransaction> </bizTransactionList> <extension> <childQuantityList> <quantityElement> <epcClass>urn:epc:class:lgtin:0614141.107346.101</epcClass> <quantity>10</quantity> <uom>CS</uom> </quantityElement> </childQuantityList> <sourceList> <source type="urn:epcglobal:cbv:sdt:owning_party">urn:epc:id:sgln:0614141.00001.0</source> </sourceList> <destinationList> <destination type="urn:epcglobal:cbv:sdt:owning_party">urn:epc:id:sgln:5012345.00001.0</destination> </destinationList> </extension> </AggregationEvent> </EventList> </EPCISBody>
</epcis:EPCISDocument>
Updated 1 day ago