Open APIs

 View Only
Expand all | Collapse all

Understanding TMF 622 Release 19.0.0

  • 1.  Understanding TMF 622 Release 19.0.0

    Posted Aug 26, 2019 05:32
    Edited by Rabinder Devnani Aug 26, 2019 09:18

    Hi,

    I have gone through the TMF 622 R 19.0.0 and have some questions regarding the same:

    1. What is the use of isRef A boolean (indicate if ref pattern is used) ? Is it to be used if href is used to refer the product from product inventory?
    2. What is the need to refer Billing account in order price sub-resource, does the reference in the orderItem doesn't suffice the need ?
    3. What is the use of unitOfMeasure (minutes, GB) inside a order Price ?
    4. What is the need of ResourceRef relationship, what if I have multiple services inside the product? How will we be able to map which resource is for which service?
    5. What is the use if ServiceRef ? 
    6. Is priceAlteration entity only used for discount ? Or can we use it for overridable prices/charges as well like in case of B2B?
    7. How are we going to handle partial cancellation cases e.g. customer ordered 5 productOrderItems and wants to cancel only 1 from them allowed as per product catalog ? How will this be handled using /cancelProductOrder ?

    @Ludovic Robert,
    Please see if you can provide your views on this ?



    ------------------------------
    Rabinder Devnani
    Sterlite Technologies Limited
    ------------------------------


  • 2.  RE: Understanding TMF 622 Release 19.0.0

    TM Forum Member
    Posted Aug 29, 2019 11:42
    Hi Rabinder, I'll try to answer some of your queries
    1. isRef is part of the RefOrValue pattern - if isRef is false it means that the object is being passed by value, while if true it means by reference (and href would point to an existing instance of the object). In this example, if isRef were true I would expect to see an href pointing to product inventory. But practically we have to understand what it means in the context of a product order, typically the order contains a new (or new version) of the product, and so it would not yet exist in the inventory.
    2. Having a Billing Account reference at Price level allows direction of charges to different accounts even within a single Product - for example for mobile voice the RC to be paid by the employer and the UC (overage above the allowance given by the RC) by the employee.
    4. It can be useful to know at product level which resources are being used, particularly for logical resources (such as MSISDN, static IP address) - the API implementation would have to decide for each line of business which resources are relevant for this. To get the full picture you would indeed have to go to the service and then to the resource, as you state in your question.
    5. ServiceRef is a service that implements the product in the network.
    6. Alteration could in principle represent any type of price change - so this would include ad-hoc overrides (which by the way could be relevant also in residential market). With that, I am not sure that the open API has fully covered the concept of manual price overrides.
    7. I think that this would require an enhancement to the CancelProductOrder resource to add the index of the order item(s) to be canceled. Perhaps worth raising a CR for this.

    Hope it helps

    ------------------------------
    Jonathan Goldberg
    Amdocs Management Limited
    ------------------------------



  • 3.  RE: Understanding TMF 622 Release 19.0.0

    Posted Aug 30, 2019 02:07
    Thank you @Jonathan Goldberg for your inputs.

    1. Got your point regarding using isRef pattern and why there is need to pass object when the inventory doesn't exists yet.
    2. Ok, this seems a case of split billing
    4. ​​Ok
    5. Ok
    6. I will request @Ludovic Robert to provide his views as well, because it is important for product ordering system to understand what charges are to be passed to billing system. May be we can introduce a flag for same.
    7. Can you guide me regarding the CR process?​

    Also i wanted to understand use of unitOfMeasure (minutes, GB) inside a order Price which I have mentioned in Question 3.

    ------------------------------
    Rabinder Devnani
    Sterlite Technologies Limited
    ------------------------------



  • 4.  RE: Understanding TMF 622 Release 19.0.0

    TM Forum Member
    Posted Aug 30, 2019 05:05
    Hello @Rabinder Devnani

    6. That's a good point. I took a look on the SID and we have there an AlternateProdOfferPriceCharge class that could be useful for this UC. I'm note sure we comppletly map this concept in the API but short term resolution could be to leverage polymorphism to define for exemple an AlternateProdOfferPriceCharge from price class. I suggest to raise a JIRA for this point (CR: Change Request).
    7. Have you access to the TMF dashboard page: https://projects.tmforum.org/jira/secure/Dashboard.jspa - our process is to get Jira from API project member to request for enhancements or raise bug.

    unitsOfMesure definition (from SID): number and unit representing how many (for instance 1 dozen) of an ProductOffering is available at the offfered price. Its meaning depends on the priceType.

    Hope it helps

    Ludovic

    ------------------------------
    Ludovic Robert
    Orange
    ------------------------------



  • 5.  RE: Understanding TMF 622 Release 19.0.0

    Posted Aug 30, 2019 06:55
      |   view attached
    Ok thanks for your clarity @Ludovic Robert !!​

    I tried, but don't have access to API Project in JIRA (https://projects.tmforum.org/jira/projects/AP). I am unable to create a CR in JIRA.
    Can you provide me the access to create JIRA's ?

    ------------------------------
    Rabinder Devnani
    Sterlite Technologies Limited
    ------------------------------



  • 6.  RE: Understanding TMF 622 Release 19.0.0

    TM Forum Member
    Posted Aug 30, 2019 08:28
    The JIRA is open for writing only to members of the Open API project. I think that perhaps it would be best for the team to have a discussion on the two issues identified here to see if there is value for taking them further:
    • Flagging Prices for communication with a billing system
    • Allowing partial cancelation of a product order (individual order items)


    ------------------------------
    Jonathan Goldberg
    Amdocs Management Limited
    ------------------------------



  • 7.  RE: Understanding TMF 622 Release 19.0.0

    Posted Aug 30, 2019 09:21
    Seems fine to me.

    @Ludovic Robert, over to you :)​

    ------------------------------
    Rabinder Devnani
    Sterlite Technologies Limited
    ------------------------------



  • 8.  RE: Understanding TMF 622 Release 19.0.0

    TM Forum Member
    Posted Aug 30, 2019 09:41
    I'm a bit lost on the first point. 
    My understanding of this point was to manage 'price override' through piceAlteration (or other) - but not manage any orchestration pattern with billing system. Discusing how billing and order capture are interfaced is probably up to ODA team.

    For the second point, we had some discussion on the past (partial order cancelation)  and for me it's a topic to be discussed in next TAW end of september. The first approache will be to define a taskresource like we did i the R19. for cancel....but should be discussed.

    Sorry for the misunderstanding,

    Ludovic


    ------------------------------
    Ludovic Robert
    Orange
    ------------------------------



  • 9.  RE: Understanding TMF 622 Release 19.0.0

    Posted Sep 02, 2019 01:49
    @Ludovic Robert, I think that's the same thing me & @Jonathan Goldberg were discussing. One thing is to manage price overrides through product ordering API. ​​
    Second thing was how the integration will take place between product ordering service and billing service is part of ODA any ways, I understand that.
    So regarding this point, can you guide if ODA reference architecture is enough to gather details about how services in different domains (Engagement Mgmt., Party Mgmt., Core Commerce Mgmt. & Production Mgmt.) are integrated and how it relates to Open API?

    In the previous architectures, we typically used to integrate Customer Order Management system to Billing in order to capture billing related events, now in ODA what are the different approaches taken to understand what all services (Open APIs) will typically be used by Product ordering system. I have come up with below understanding of mine, but need to have views from others as well.

    • Product Catalog Management API TMF620
    • Customer Management API TMF629
    • Product Inventory Management API TMF637
    • Communication API TMF681
    • Party Management API TMF632
    • Quote Management API TMF648
    • Service Ordering Management API TMF641
    • Account Management API TMF666 [Assuming: Account creation is out of scope]
    • Resource Pool Management API TMF685
    • Agreement Management API TMF651
    • Appointment API TMF646
    • Geographic Address Management API TMF673
    • Document Management API TMF667
    • Resource Ordering Management API TMF652
    Where APIs highlighted in blue are read calls.

    ------------------------------
    Rabinder Devnani
    Sterlite Technologies Limited
    ------------------------------



  • 10.  RE: Understanding TMF 622 Release 19.0.0

    TM Forum Member
    Posted Sep 02, 2019 02:53
    Hello

    I can manage the first point (override price) - I will trigger a Jira.
    I take a pass on second point - probably @Dave Milham could help you.

    Thanks

    Ludovic


    ------------------------------
    Ludovic Robert
    Orange
    ------------------------------



  • 11.  RE: Understanding TMF 622 Release 19.0.0

    Posted Sep 02, 2019 06:37
    Thanks @Ludovic Robert for creating JIRA.

    I have contacted @Dave Milham regarding my 2nd query, hope to get his views soon.

    As suggested by @Jonathan Goldberg on different thread (he has also requested community manager) to have a separate community ​of ODA itself to understand the Open APIs, product models, business processes etc. from ODA implementation perspective also, which will give much more clarity on how to best leverage these APIs.

    ------------------------------
    Rabinder Devnani
    Sterlite Technologies Limited
    ------------------------------



  • 12.  RE: Understanding TMF 622 Release 19.0.0

    TM Forum Member
    Posted Sep 02, 2019 12:23
    Rabinder,
    Interesting and timely post.
    ODA so far has focused on a couple of things - A lifecycle model covering Business , Information  Sys Architecture (ISA), implementation and deployment viewpoints
    the ODA Functional architecture which is par t of the ISA viewpoint .

    API are part of the implementation viewpoint and require some design decisions on how to realise implementation components using ODA FA functions.
    Some idea on implementation approaches are coming our of the DTW Nice 2019 catalyst . Specifically related to 'component and used interfaces are the following which are available to members on the Open Digital Architecture Project at  Open Digital Architecture Project and  API projects For Product and billing 
    • Skynet implementation  report  https://projects.tmforum.org/jira/browse/AP-1309 for example  Figure 44 Integration Architecture (UK and Japan)
    • BOS ( Business Operating System)  catalyst   ODA-222 - Outstanding Contribution to TMF assets - Functional architecture of BOS catalyst  

      Figure 2: BOS catalyst global architecture and APIs

    • and for ODA production which is network and resource focused see architecture and API proposals in GB999 ODA Production Implementation Guidelines R19.0.0
    • Will communicate separately by email about a JIRA proposal that we might put together for R19 -5 work 


    ------------------------------
    Dave Milham
    TM Forum Chief Architect
    ------------------------------



  • 13.  RE: Understanding TMF 622 Release 19.0.0

    Posted Sep 03, 2019 03:57
    Edited by Rabinder Devnani Sep 03, 2019 03:58
    Hi @Dave Milham,

    These resources that you have shared seems really useful. I had overview of all these documents just to understand the context; will go in details soon.

    I have also emailed you regarding the same, will connect further on email.

    Thank you so much for sharing the information.

    ------------------------------
    Rabinder Devnani
    Sterlite Technologies Limited
    ------------------------------



  • 14.  RE: Understanding TMF 622 Release 19.0.0

    TM Forum Member
    Posted Sep 05, 2019 04:30
    Hello @Rabinder Devnani,
    Quick feedback after internal TMF API Project discussion about Price Override.

    Our feedback is that TMF622 R19 should cover this feature without additionnal enhancement. This R19 version will allow you to provide a productPricce at the product level within the item (which mean the productPrice in the 'future' product instance). The ProductPrice components (Price & PriceAlteration) are link to the ProductOfferingPriceRef class - which is a catalog reference - that allow toy to specifiy the 'override" caracteristic of the priceAlteration.

    Hope it helps,

    Ludovic
    ​​

    ------------------------------
    Ludovic Robert
    Orange
    ------------------------------



  • 15.  RE: Understanding TMF 622 Release 19.0.0

    Posted Sep 05, 2019 05:52
    Edited by Rabinder Devnani Sep 05, 2019 05:54
    @Ludovic Robert, thanks for your feedback.

    To make sure I understand correctly, you are saying that:
    • Overridden p​rices should be treated as priceAlteration (inside orderPrice) & the actual value of overridden price should be captured in price entity.
    • For regular prices (not overridden) only orderPrice should be used with price entity containing the actual price of productOrderItem with priceAleration having no value in it.

    With above understanding, we conclude that priceAlteration entity will only be used to denote any change in orderPrice (of any type i.e. recurring, discount, non-recurring, penalty) compared to original price item (productOfferingPrice)

    Now lets map it with the example that is been used in R19 for priceAlteration.

    Here priceAlteration is used to represent a recurring discount.
    Now imagine I have a discount associated to the monthly fee like below, which is also be overridden. How are we going to represent that a particular discount is overridden, as there is no flag inside priceAlteration which allows that applicability.

    "itemPrice": [
                    {
                        "description": "Tariff plan monthly fee",
                        "name": "MonthlyFee",
                        "priceType": "recurring",
                        "recurringChargePeriod": "month",
                        "price": {
                            "taxRate": 0,
                            "dutyFreeAmount": {
                                "unit": "EUR",
                                "value": 20
                            },
                            "taxIncludedAmount": {
                                "unit": "EUR",
                                "value": 20
                            }
                        },
                        "priceAlteration": [
                            {
                                "applicationDuration": 3,
                                "description": "20% for first 3 months",
                                "name": "WelcomeDiscount",
                                "priceType": "recurring",
                                "priority": 1,
                                "recurringChargePeriod": "month",
                                "price": {
                                    "percentage": 20,
                                    "taxRate": 0,
                                    "@type": "price"
                                }
                            }
                        ]
                    }
                ]


    ------------------------------
    Rabinder Devnani
    Sterlite Technologies Limited
    ------------------------------



  • 16.  RE: Understanding TMF 622 Release 19.0.0

    TM Forum Member
    Posted Sep 06, 2019 03:33
    Hello Rabinder,

    I'm globally aligned except that I'm not sure to understand last sentence :) :
    "Now imagine I have a discount associated to the monthly fee like below, which is also be overridden. How are we going to represent that a particular discount is overridden, as there is no flag inside priceAlteration which allows that applicability."

    If it is the monthly fee which is overrriden (let suppose 18€ euros instead of 20) and then you apply a 20% discount for the first 3 month you can have an order Price at 20 then a priceAlteration priority 1 than override to 18 and then another priceAlteration, priority 2, for the 3 months 20%off.
    If it is the discount, instead of 20%off for 3 month, it's 15 for 5 month, I'm not sure we need to have at the product level the 20%off for 3month - just have the applied priceAlteration.

    Hope it helps.

    Ludovic

    ------------------------------
    Ludovic Robert
    Orange
    ------------------------------



  • 17.  RE: Understanding TMF 622 Release 19.0.0

    Posted Oct 15, 2019 02:52
    Thanks @Ludovic Robert,

    Got your point !!
    ​​

    ------------------------------
    Rabinder Devnani
    Sterlite Technologies Limited
    ------------------------------