Open APIs

 View Only
  • 1.  TMF637 - ProductInventory - Product relationships

    TM Forum Member
    Posted Mar 06, 2024 09:44

    Hi all,

    Regarding the TMF637, a Product object contains two similar nested entites:

    • product - A list of Product
    • productRelashipship - A list of ProductRelationship

    ProductRelationship is an entity that links to a Product, describing the relation between them. This entity seems more complete that "product".

    What is the reason of maintaining these two entities? Is this related to retro-compabililty? I guess that using productRelationship is recommended.

    Thanks in advance,



    ------------------------------
    Vítor Fernández
    Optare Solutions
    ------------------------------


  • 2.  RE: TMF637 - ProductInventory - Product relationships

    TM Forum Member
    Posted Mar 06, 2024 10:26

    Hi,

    my understanding of the UML notation used between Product and ProductRelationship is a relation between objects where a ProductRelationship is basically an instance of Product. Technically one Product can relate to another Product. We use this to form somewhat top level tree or base product offerings like a mobile tariff that is related to options as a sublevel to reduce the standard price for mobile service based on a monthly recurring charge for the option. This model then also allows using lower level options to many top level products, our tariffs if for instance I want to have a simple option that applies to all base level product offerings.

    I hope this explains the way we used it and it is of some help for you Vitor.

    Best, Markus



    ------------------------------
    Markus Schaeffer
    Telefonica Germany GmbH & Co. OHG
    ------------------------------



  • 3.  RE: TMF637 - ProductInventory - Product relationships

    TM Forum Member
    Posted Mar 07, 2024 03:35

    Hi,

    Thanks Markus for your answer, I understand your use case but I think I did not explain myself properly. Regarding the documentation of TMF637, a Product can be related to another Product in two different ways: using Product-Product association or using Product-ProductRelationship association.

    The issue is that I don't see the difference.

    The specification is not very specific:

    product - A ProductRefOrValue. The polymorphic attributes @type, @schemaLocation & @referredType are related to the Product entity and not the ProductRefOrValue class  itself

    productRelationship - A ProductRelationship. Used to describe relationship between product.



    ------------------------------
    Vítor Fernández
    Optare Solutions
    ------------------------------



  • 4.  RE: TMF637 - ProductInventory - Product relationships

    TM Forum Member
    Posted Mar 07, 2024 09:51

    Hi Vitor,

    I am actually not sure if and how we have not used _ProdRefOrValue_ to be honest. My rationale would be this is a helping class to know the actual type of the target instance (related) when needed for disambiguation. ProductRelationship is mainly linking Products in tree structure as explained to my view. I think in that sense you can link References and/or true Instances where the _ProdRefOrValue_ would help you to know what you get. What do you think?

    Best, Markus



    ------------------------------
    Markus Schaeffer
    Telefonica Germany GmbH & Co. OHG
    ------------------------------



  • 5.  RE: TMF637 - ProductInventory - Product relationships

    TM Forum Member
    Posted Mar 07, 2024 10:35
    Edited by Matthieu Hattab Mar 11, 2024 11:22

    The definition of this entity seems ambiguous:

    A list of product relationships (ProductRelationship [*]). Linked products to the one instantiate, such as [bundled] if the product is a bundle and you want to describe the bundled products inside this bundle; [reliesOn] if the product needs another already owned product to rely on (e.g. an option on an already owned mobile access product) [targets] or [isTargeted] (depending on the way of expressing the link) for any other kind of links that may be useful.

    I don't believe: "ProductRelationship is basically an instance of Product".

    so this entity has 2 purposes:

    1. show "ProductRelationship", exactly like in TMF620
    2. show bundle structure (composite)

    I believe that both purposes are semantically incorrect.

    the 1st purpose is unnecessary as it is already available in the product catalogue (TMF620).

    (I hope someone has an good example where it is important to have it in the product inventory)

    the 2nd purpose is absolutely necessary in the Product Inventory but it is an inadequate use of ProductRelationship.

    the API should have adopted the information model/SID recommendation (API usually do follow the SID):


    Source: "GB9222 Product", Product ABE, Figure Pr.07
    Notice that productrelationship is not present in the Product ABE.



    ------------------------------
    Kind regards,

    Matthieu Hattab
    Lyse Platform
    ------------------------------



  • 6.  RE: TMF637 - ProductInventory - Product relationships

    TM Forum Member
    Posted Mar 07, 2024 11:37

    Thanks a lot for your feedback,

    It is clear to me now the purpose of ProductRelationship. We also have in this forum other threads dealing with this, for example  https://engage.tmforum.org/communities/community-home/digestviewer/viewthread?GroupId=31&MessageKey=96dbaa48-d0f2-404e-a5fa-f9128c0e108f&CommunityKey=d543b8ba-9d3a-4121-85ce-5b68e6c31ce5&tab=digestviewer

    About the product (type ProductRefOrValue List) field inside a product, I'm thinking that is redundant.



    ------------------------------
    Vítor Fernández
    Optare Solutions
    ------------------------------