Open APIs

 View Only
Expand all | Collapse all

TMF 622: Change Order making changes to existing Product

  • 1.  TMF 622: Change Order making changes to existing Product

    TM Forum Member
    Posted Feb 20, 2024 09:46
    Edited by Varun Pandhi Feb 20, 2024 13:04

    Hi all,

    While going through API documentation for TMF 622 Product Order we were thinking of how could scenarios like change of Product characteristic value be supported from TMF 622 resource model perspective.

    Lets take an example for a New Provide order with below instance model -

    For change order scenario, we could have below instance model -

    If we look at TMF 622 Product Ordering API User guide, we could observe a composition relationship from ProductOrderItem to Product/ProductRef.

    Per our understanding, composition relationship means the Product cannot be associated to multiple Product Order Items which would be needed if we need to support Change Order on same Product instance.

    Thoughts?



    ------------------------------
    Varun Pandhi
    Infosys
    ------------------------------



  • 2.  RE: TMF 622: Change Order making changes to existing Product

    TM Forum Member
    Posted Feb 26, 2024 00:58

    Hi all,

    Can anyone please help with above?



    ------------------------------
    Varun Pandhi
    Infosys
    ------------------------------



  • 3.  RE: TMF 622: Change Order making changes to existing Product

    TM Forum Member
    Posted Feb 26, 2024 13:26

    TMF APIs are not products of TM Forum. So you don't get support besides the goodwill of this community. It might be better to contact your BSS vendor that supplied this API.
    I don't know nor use this API but your scenario is rather straightforward and all Order API I have seen behave the same way: in a nutshell what you ask should not be supported.


    I would recommend you read the API guide, especially use case 2, which provides, from what I understand, the exact same scenario than yours: change a characteristic value of a active product specification stored in the product inventory.
    a payload example for use case 2 is also provided somewhere in the document, so you can see what the order actually looks like.

    but from experience, I've never seen a situation where the Product is referenced on more than one Order Line. if you do, you would have the risk of having 2 different "action" values on the same product

    My 2 cents,



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

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



  • 4.  RE: TMF 622: Change Order making changes to existing Product

    TM Forum Member
    Posted Feb 26, 2024 15:30

    Hi Matthieu,

    Thanks for your response. I had a look at Use case 2 in API guide, but it provides more of a logical representation of how would Change order in such a case would look like.

    There are examples provided in notification sections. But, my question concerns reusability of Product instance under different ProductOrderItems (which seems to be not allowed per TMF 622 Resource Model because of composition relationship provided above).

    A Product is a product offering procured by a customer or other interested party playing a party role.

    Which means that once bought by a customer, its identifier should not change and any subsequent changes to it (in scope of change orders) should act on the same Product (i.e. Product instance with same identifier). This is typically the case in any Telco implementation.

    My question pertains to how is this basic use case realized right from New Provide order till change order for a simple product. Couldn't find a single point of reference where such illustration on use of the API is provided in TMF 622 Product Order document.



    ------------------------------
    Varun Pandhi
    Infosys
    ------------------------------



  • 5.  RE: TMF 622: Change Order making changes to existing Product

    TM Forum Member
    Posted Feb 26, 2024 19:08

    This is how we will do it, I checked with the architects. (I use the data from the API doc)

    phase 1: "new provide"

    step 1: use a configurator to customise the product to your wishes (choose National)
    step 2: submit the order with TMF622 for the "new provide" (called Acquisition in the doc, with use case 1):

    extract from API DOC:
    {

      "id": "130",
      "quantity": 1,
      "action": "add",
      "product": {
        "isBundle": false,
        "@type": "Product",
        "productCharacteristic": [
          {
            "name": "CoverageOptions",
            "valueType": "string",
            "value": "National"
          }
        ]
      }
    }

    -->  Notice that there is no product Id when action = add.

    step 3: when order is provisioned and completed, create the product in inventory with TMF637

    This when you get a product id: 6003

    phase 2: "change" (use case 2 in the api doc)

    step 1: use TMF637 to get the product instance (with Id 6003)
    step 2: use TMF620 to get the product offerings, prices, prodspec, char, char values... to know what coverage is available for selection (and price)
    step 3: use a configurator to change the coverage (choose International)
    step 4: submit the order (this also contains the Product Id 6003)

    extract from API DOC:

    {
        "productOrderItem": [
            {
                "id": "110",
                "quantity": 1,
                "action": "change",
                "product": {
                    "id": "6003",
                    "href": "https://host:port/productInventoryManagement/v4/product/6003",
                    "@type": "Product",
                    "productCharacteristic": [
                        {
                            "name": "CoverageOptions",
                            "valueType": "string",
                            "value": "International"
                        }
                    ]
                }
            }
        ]
    }

    After provisioning is done, TMF637 updates the (existing) product id 6003 in the product inventory .

    Repeat as many times as you want. the product id 6003 will never change.

    I think that would work for you.



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

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



  • 6.  RE: TMF 622: Change Order making changes to existing Product

    TM Forum Member
    Posted Feb 27, 2024 01:11

    Hi Matthieu,

    Thanks for your response. This helps.

    My question lies there only when you say "Repeat as many times as you want. the product id 6003 will never change."

    When we place a a subsequent change post Phase 2 (e.g. Change CoverageOptions to National), we will have to use same product id.

    That would mean same Product instance (i.e. Product id = 6003), would come under another ProductOrderItem (e.g. ProductOrderItem = 210)

    Sample payload for Phase 3 (Change CoverageOptions to National)

    {
        "productOrderItem": [
            {
                "id": "210",
                "quantity": 1,
                "action": "change",
                "product": {
                    "id": "6003",
                    "href": "https://host:port/productInventoryManagement/v4/product/6003",
                    "@type": "Product",
                    "productCharacteristic": [
                        {
                            "name": "CoverageOptions",
                            "valueType": "string",
                            "value": "National"
                        }
                    ]
                }
            }
        ]
    }

    If we look at TMF 622 Product Ordering API User guide, we observe a composition relationship from ProductOrderItem to Product/ProductRef.

    Per our understanding, composition relationship means the Product cannot be associated to multiple Product Order Items. As we understand from above mentioned Phase 3, same Product would be needed to be associated to multiple Product Order Items (Product Order Item ids: 110 and 210)  to support Change Order on same Product instance.



    ------------------------------
    Varun Pandhi
    Infosys
    ------------------------------



  • 7.  RE: TMF 622: Change Order making changes to existing Product

    TM Forum Member
    Posted Feb 27, 2024 03:02

    I'm not sure why you are concerned by this "composition relationship". the scenario I described has been used by many implementations. We do it and it works.
    "composition relationship"  
    depicts dependency between a composite (parent, i.e. the context like order) and its parts (children, i.e. the ContextItems like order items), which means that if the composite is discarded, so will its parts get deleted.

    I don't agree with:

    "composition relationship" means the Product cannot be associated to multiple Product Order Items

    the relationship is with ProductReforValue, not the product.



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

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



  • 8.  RE: TMF 622: Change Order making changes to existing Product

    TM Forum Member
    Posted Feb 27, 2024 05:47
    Edited by Varun Pandhi Feb 27, 2024 07:11

    Hi Matthieu,

    I understand its in use in multiple Telco implementations and this way of ordering (where same Product comes under multiple Product Order Items in context of different product orders) is very common.

    But, how does it comply to what is depicted in the Resource model described above.

    Moreover, totally agree that relationship is with ProductRefOrValue but please observe the discriminator which is essentially Product or ProductRef.

    Regarding composition relationship in general, the lifecycle of the parent (in this case ProductOrderItem) governs the lifeycycle of its children (in this case Product or ProductRef using the discriminator) and prohibits reuse of child resources under different parents.

    Composition relationship between ProductOrderItem and Product purely from composition meaning implies tha if ProductOrderItem is deleted, Product would also be deleted, which is not the case in Change Orders, Product (Instance of product offering bought by the customer) will continue to be in existence. Hence, the composition relationship seems to be misleading.

    Thoughts?



    ------------------------------
    Varun Pandhi
    Infosys
    ------------------------------



  • 9.  RE: TMF 622: Change Order making changes to existing Product

    Posted Feb 28, 2024 02:28

    Hi Varun,

    I share the same understanding as Matthieu. The composition which you have pointed for me is valid but only in context of the single order i.e. you are not allowed to have multiple product order items operating on the same product. However there is no limitation to use the same product in different orders. The product id created as part of the new provide order must be used for product modification, termination etc.



    ------------------------------
    Sebastian Wawrzyniak
    Sonalake
    ------------------------------



  • 10.  RE: TMF 622: Change Order making changes to existing Product

    TM Forum Member
    Posted Feb 29, 2024 08:23

    Hi @Varun Pandhi

    We also use same pattern as described by Matthieu for general context, but think I share your concern on the concept. Working on a specialization of Product Order API we got rid of this Product (by value) composition. We use a ProductActionModify and ProductActionAdd schema that holds what are the characteristics to be valued/updated. We also got rid of characteristics and replace by strongly typed attributes. I let you have a look at it : Open API's (tmforum.org) (TMF931 Onboarding and Ordering Operate API).



    ------------------------------
    olivier arnaud
    Orange
    ------------------------------



  • 11.  RE: TMF 622: Change Order making changes to existing Product

    TM Forum Member
    Posted Feb 29, 2024 09:00

    Hi @olivier arnaud: Thanks for response and understanding the concern around composition behaviour in general.

    Had a high level look at the link you shared. Do you think it is a good use case to upgrade TMF 622 as well on similar lines because the way it is implemented in Telcos currently doesn't adhere strictly to the TMF resource model (specifically this composition relationship).

    Moreover, I believe reusing Product inside ProductOrderItems won't result in non-compliance with TMF Open APIs as we can see almost all implementations work this way.

    Thoughts/inputs?



    ------------------------------
    Varun Pandhi
    Infosys
    ------------------------------



  • 12.  RE: TMF 622: Change Order making changes to existing Product

    TM Forum Member
    Posted Mar 19, 2024 08:24

    Hi @Varun Pandhi

    I keep this in a todo list to think about it :)

    Don't have yet a plan to propose changes on the TMF622.



    ------------------------------
    olivier arnaud
    Orange
    ------------------------------