The Scoop on the “Loop” in PIES™
The Product Information Exchange Standard (PIES™) is the aftermarket’s industry data standard for the management and communication of product information (non-application fitment) between trading partners.
Using PIES™:
- removes duplicated communication and distribution efforts;
- saves time and money;
- lowers supply chain costs;
- increases product introduction and speed to market; and
- contributes to the increase in sales, operational efficiencies, and reduced returns.
What is “looping” in the PIES™ data standard?
PIES™ standardizes not only the field definitions and requirements, but also standardizes the delivery mechanism used to transfer the information provided in PIES™ XML files. It is designed in a flexible format, which allows you to “loop” (repeat) elements within a segment element group, as many times needed to meet data delivery requirements. Looping occurs in many areas of the PIES™ data standard, including:
-
- Price Sheet (PRCS)
- Market Copy (MKTC) and sub-segment
- Digital Assets (MKDA)
- Item (ITEM) and sub-segments
- Description (DESC)
- Price (PRCE)
- Extended Product Information (EXPI)
- Attribute (ATRB)
- Package (PACK) and sub-segment
- Hazardous Material Package (HAZM)
- Kits (KITS)
- Interchange (INTE)
- Digital Assets (ASST)
For more specifics and how looping is applied in each segment of the PIES™ data standard, refer to the PIES™ XSD and Technical Documentation.
What is the benefit of “looping” in the PIES™ data standard?
The benefits of looping in PIES™ is twofold:
- Flexibility: Provides a flexible format to meet data delivery requirements; and
- Organization: Streamlines the sending of product content by providing a structure which allows content to be organized in a “building block” manner.
This promotes machine readability and allows data receivers to unpackage the content in an efficient manner, reducing or eliminating the need for human interaction before displaying the content on an interface. This saves time and money for all parties involved in the data supply chain.
Examples
In order to create a PIES™ file, there is a minimum amount of information and segments that must be used. Users must use at minimum the Header Segment (HEAD), Item Segment (ITEM), and Trailer Segment (STOP), and communicate at least one part number in the Item Segment, as well as additional attributes within the Header and Item Segment.
The most basic example of looping in PIES™ is in the ITEM segment, which is the core looping segment in the PIES™ data standard. The example below show a PIES™ XML file with two part numbers. The element <Item> loops (repeats) for each part number.
<Header>
…
</Header>
<Items>
<Item MaintenanceType="A">
<PartNumber>123456</PartNumber>
<BrandAAIAID>BMNN</BrandAAIAID>
<PartTerminologyID>23100</PartTerminologyID>
</Item>
<Item MaintenanceType="A">
<PartNumber>789101</PartNumber>
<BrandAAIAID>BMNN</BrandAAIAID>
<PartTerminologyID>23101</PartTerminologyID>
</Item>
</Items>
<Trailer>
…
</Trailer>
Another well-known example of looping in PIES™ is in the Interchange Segment, where users can provide multiple interchanges for a single product (part number). There are times when your product may interchange to multiple Original Equipment Manufacturer (OEM) and/or competitor products based on your product design. When you communicate this in PIES™, you are looping the PIES™ element <PartInterchange> multiple times for each interchange you provide for the product. See the example below:
Your Product (Part Number) |
Interchanges to |
Interchange Brand |
Interchange Part Number |
123456 |
➜ |
Ford (CNWR) |
8765432 |
123456 |
➜ |
Mercury (CNWQ) |
0909876 |
123456 |
➜ |
VGX (FLMK) |
TG38495 |
123456 |
➜ |
Performance Plus (FLMH) |
TG65873 |
This translates to PIES™ XML like this:
<Items>
<Item MaintenanceType="A">
…
<PartNumber>123456</PartNumber>
…
<PartInterchangeInfo>
<PartInterchange MaintenanceType="A" BrandAAIAID="CNWR" LanguageCode="EN">
<PartNumber InterchangeQuantity="1" UOM="EA">8765432</PartNumber>
</PartInterchange>
<PartInterchange MaintenanceType="A" BrandAAIAID="CNWQ" LanguageCode="EN">
<PartNumber InterchangeQuantity="1" UOM="EA">0909876</PartNumber>
</PartInterchange>
<PartInterchange MaintenanceType="A" BrandAAIAID="FLMK" LanguageCode="EN">
<PartNumber InterchangeQuantity="1" UOM="EA">TG38495</PartNumber>
</PartInterchange>
<PartInterchange MaintenanceType="A" BrandAAIAID="FLMH" LanguageCode="EN">
<PartNumber InterchangeQuantity="1" UOM="EA">TG65873</PartNumber>
</PartInterchange>
</PartInterchangeInfo>
…
</Item>
</Items>
But, did you know?
You can also “loop” (repeat) elements in the Product Attribute Segment (ATRB) of PIES™ to provide multiple values for a single product attribute that is associated to a product in your PIES™ XML file? Here are a couple of use cases where this would and should be done.
Example 1:
Expressing a range value for a product attribute for a single product.
Product (PartTerminologyID) = Multi-Purpose Grease (23100)
Part Number = 123456
PAdb (Product) Attribute (ID) = Working Temperature Range (6600)
<Items>
<Item MaintenanceType="A">
…
<PartNumber>123456</PartNumber>
…
<PartTerminologyID>23100</PartTerminologyID>
…
<ProductAttributes>
<ProductAttribute MaintenanceType="A" PADBAttribute="Y" AttributeID="6600"
AttributeUOM="FA" RecordNumber="1" MultiValueQuantity="2"
MultiValueSequence="1">0</ProductAttribute>
<ProductAttribute MaintenanceType="A" PADBAttribute="Y" AttributeID="6600"
AttributeUOM="FA" RecordNumber="1" MultiValueQuantity="2"
MultiValueSequence="2">300</ProductAttribute>
</ProductAttributes>
…
</Item>
</Items>
As you can see, the XML element <ProductAttribute> loops (repeats) using the same XML attribute “AttributeID”, but the attribute values provided for each record are different. This is accomplished by looping the element <ProductAttribute> and using the XML attributes of MultiValueQuantity and MultiValueSequence within the element.
MultiValueQuantity expresses how many times the XML element <ProductAttribute> / the attribute “AttributeID” repeats itself within the segment. The MultiValueSequence expresses what order (first to last) the attribute value for the XML element/the attribute “AttributeID” combination should be unpackaged and displayed.
The PIES™ XML above could be unpackaged and displayed by a data receiver in a catalog/website for the product like what is shown below, using a delimiter of their choosing.
Working Temperature Range: 0˚- 300˚F
Example 2:
Expressing a list of multiple values for product attribute for a single product
Product (PartTerminologyID) = Drill Bit Set (23101)
Part Number = 123456
PAdb (Product) Attribute (ID) = Shank Diameter (9700)\
This product will need multiple attribute values sent for this attribute, as the product is a “set” of drill bits, which have varying shank sizes.
Below is how it would look in PIES™ XML:
<Items>
<Item MaintenanceType="A">
…
<PartNumber>123456</PartNumber>
…
<PartTerminologyID>23101</PartTerminologyID>
…
<ProductAttributes>
<ProductAttribute MaintenanceType="A" PADBAttribute="Y" AttributeID="9700"
RecordNumber="1" MultiValueQuantity="3"
MultiValueSequence ="1">1/4&quot;</ProductAttribute>
<ProductAttribute MaintenanceType="A" PADBAttribute="Y" AttributeID="9700"
RecordNumber="1" MultiValueQuantity="3"
MultiValueSequence ="2">3/16&quot;</ProductAttribute>
<ProductAttribute MaintenanceType="A" PADBAttribute="Y" AttributeID="9700"
RecordNumber="1" MultiValueQuantity="3"
MultiValueSequence="3">1/2&quot;</ProductAttribute>
</ProductAttributes>
…
</Item>
</Items>
The PIES™ XML above could be unpackaged and displayed by a data receiver in a catalog/website for the product, like what is shown below using a delimiter of their choosing.
Shank Size: 1/4”, 3/16”, 1/2”
PIES™ Technical Documentation
If the above XML code makes sense, that’s great! However, if you are scratching your head asking, “what does all that mean?” it is recommended to review the PIES™ Technical Documentation as it outlines the details of each PIES™ segment, including examples.
Connect with Your Service Provider
You may not be an XML expert. However, it is important to know two things. First, if your software provider is implementing all the functionalities of the PIES™ data standard into their software. Second, whether or not your trading partners (data receivers) are implementing all the functionalities of the PIES™ data standard into their data receiving processes. To benefit from the functionalities of PIES™, both software providers and trading partners need to implement the functionalities. Connect with them today to find out!
If you have questions about looping in PIES™, email us at technology@autocare.org.
Want to learn more about PIES? Master your ACES and PIES skills with our self-paced, online data standards course!
Jonathan Larsen, Vice President, Standards & Digital Products
I help reduce cost out of the overall supply chain by improving the quality of standards data we provide to the industry and develop new processes that help get data to our members faster. More About Me
The Auto Care Association’s Technology team is pleased to launch a new monthly Auto Care Tech blog series titled, “What the Tech? This series will cover topics related to Data Standards.
More posts