This is a very good question, Gabrielius.
I don't know if it's stated explicitly anywhere, but to me it makes sense that the expand directive only works against EntityRef and any refererence that derives from EntityRef and only adds properties that in the entity's schema. For example ProductSpecificationRef has an extra property version, but that's OK because ProductSpecification itself has version.
But in POP relationship, your example, there is extra information in the relationship class itself (role, relationshipType), and it's not so obvious that it is semantically correct to replace the reference by the full class.
Hope it helps
------------------------------
Jonathan Goldberg
Amdocs Management Limited
Any opinions and statements made by me on this forum are purely personal, and do not necessarily reflect the position of the TM Forum or my employer.
------------------------------
Original Message:
Sent: Jun 12, 2024 11:55
From: Gabrielius Jokūbauskas
Subject: Depth and Expand Directive with TMF620
Hi all,
I'd like to implement depth and expand directives in Product Catalog Management (TMF620). For simple references (like ProductSpecificationRef) it seems straightforward. However I'm not sure how to expand references with additional attributes like BundledProductOffering or ProductOfferingPriceRelationship.
{
...
"popRelationship": [
{
"id": "1741",
"href": "https://mycsp.com:8080/tmf-api/productCatalogManagement/v5/productOfferingPrice/1741",
"relationshipType": "discountedBy",
"role": "A-Charge",
"@referredType": "ProductOfferingPriceAlteration",
"@type": "ProductOfferingPriceRelationship"
}
],
...
}
If we expanded this reference and changed the @type to ProductOfferingPriceAlteration then the attributes relationshipType and role wouldn't be valid inside ProductOfferingPrice. Do we need to introduce a new type that would extend ProductOfferingPriceAlteration with the relationshipType and role fields?
Same question applies for BundledProductOffering which has bundledProductOfferingOption.
Thanks,
------------------------------
Gabrielius Jokūbauskas
Iterato
------------------------------