Open APIs

 View Only
Expand all | Collapse all

Mapping from TMF760 to TMF622 and vice versa

  • 1.  Mapping from TMF760 to TMF622 and vice versa

    TM Forum Member
    Posted 11 days ago

    Hi all,

    there should be clear two-way mapping between TMF622 ProductOrderItem and TMF637 Product as product inventory must be updated based on the order items and order items are initiated based on the product inventory (for "asset based ordering").

    The similar mapping should be between TMF760 and TMF622 as product configuration shall be transformed to order items. 

    It seems that resources ProductConfiguration and ProductOrderItem are not fully aligned (e.g. attribute ProductConfiguration.isSelected seems quite strange for product modification use cases and ProductConfiguration.configurationAction should be sufficient).

    Is there any description of this mapping between ProductConfiguration and ProductOrderItem?



    ------------------------------
    Peter Rajsky
    CGI Information Systems and Management Consultants Inc.
    ------------------------------


  • 2.  RE: Mapping from TMF760 to TMF622 and vice versa
    Best Answer

    TM Forum Member
    Posted 11 days ago

    Hi,

    ProductConfiguration plays a role mostly in context of bundles(CPQ process) involving more than one product and customer as part of change request might be asking for new products, change in existing product configuration and also terminating few existing products. During the negotiation phase sales rep or customer might work on this across multiple sessions and will save their work to work on it later. isSelected is a flag to indicate if an optional product in a bundle has been selected by customer/salesrep and doesn't directly map to TMF622, ProductConfiguration.configurationAction maps to action in 622.

    This my understanding based on my work for past couple of monthly in this area and not an expert, so above is more an opinion based on my current knowledge, happy to be corrected.



    ------------------------------
    Regards

    Srinivasa Vellanki
    Jio Platforms Limited
    Any opinions and statements made by me on this forum are purely personal, and do not necessarily reflect the position of my employer or TM Forum.
    ------------------------------



  • 3.  RE: Mapping from TMF760 to TMF622 and vice versa

    TM Forum Member
    Posted 3 days ago

    Thanks a lot.

    You are probably right in most of you say. It seems there are some "hidden" assumptions behind design of this API:

    • TMF760 ProductConfiguration model is used in two totally different contexts - (A) for communication with configurator UIs and (B) for mapping to/from order.
    • UI is typically specifying required to-be state (i.e. what customer will have after change). This is purpose of flag "isSelected". It is just for (A).
    • But sometimes you need also specify configurationAction (as "move") during product configuration.
    • TMF622 order needs to get "deltas" - which order item is added, removed, changed.

    The key question is which component should calculate order "deltas" (difference between required to-be state and as-is state):

    1) If Product configurator then attribute "action" is used for (A) and (B) for the different purposes (quite misleading). But your mapping is correct. 

    2) If OCV then mapping between ProductConfiguration.configurationAction and action in 622 is not so straightforward.



    ------------------------------
    Peter Rajsky
    CGI Information Systems and Management Consultants Inc.
    ------------------------------



  • 4.  RE: Mapping from TMF760 to TMF622 and vice versa

    TM Forum Member
    Posted 3 days ago

    Nice conversation, thank you.

    Does TMF622 really needs to get the Delta or can it work based on to-be state.

    Current state is in Product Inventory(TMF637), can POCV receiving to-be state in TMF622 derive the delta using current. This simplify the channels and bring in lot of the complex logic to a single place serving all the channels.

    Does it make sense?



    ------------------------------
    Regards

    Srinivasa Vellanki
    Jio Platforms Limited
    Any opinions and statements made by me on this forum are purely personal, and do not necessarily reflect the position of my employer or TM Forum.
    ------------------------------



  • 5.  RE: Mapping from TMF760 to TMF622 and vice versa

    TM Forum Member
    Posted 2 days ago

    Thanks again, it was really helpful for me.

    I am happy with TMF760 API now :)

    Just to summary my understanding based on your inputs:

    • ProductConfiguration describes customer's intent as TO-BE state (i.e. not what is needed to be changed). ConfigurationAction helps to specify this intent (as Move)..
    • OCV is responsible for mapping this intent to the required change. Order item action defines this required change. 
    • Mapping between ProductConfiguration and ProductOrderItem is internal OCV functionality and depends on the multiple factors (asset based ordering vs delta ordering, configurationAction semantics, etc.)


    ------------------------------
    Peter Rajsky
    CGI Information Systems and Management Consultants Inc.
    ------------------------------



  • 6.  RE: Mapping from TMF760 to TMF622 and vice versa

    TM Forum Member
    Posted yesterday

    Thank you for the collaboration.

    3rd Bullet may not be right, please refer to TMF760 user guide(version 5.0.0) page 7. Engagement Management BFF has the responsibility to map ProductConfiguration to ProductOrder(intent).



    ------------------------------
    Regards

    Srinivasa Vellanki
    Jio Platforms Limited
    Any opinions and statements made by me on this forum are purely personal, and do not necessarily reflect the position of my employer or TM Forum.
    ------------------------------



  • 7.  RE: Mapping from TMF760 to TMF622 and vice versa

    TM Forum Member
    Posted yesterday

    Hmm, it is quite strange.

    IG1228, TMFS003: Use Case: Order Capture - Fiber Contract v9.0.0 describes it in the different way.

    ProductConfiguration is sent to POCV as part of process API. I prefer to perform such mapping in channel independent way (i.e. not in BFF) as specified in IG1228.



    ------------------------------
    Peter Rajsky
    CGI Information Systems and Management Consultants Inc.
    ------------------------------



  • 8.  RE: Mapping from TMF760 to TMF622 and vice versa

    TM Forum Member
    Posted an hour ago

    IG1228 doesn't appear to have been updated based on the work done on ODA Component definitions and Open API Specifications.

    IG1228 shows POCV invoking Product Configurator(i.e., TMF760).

    Per Product Configurator ODA Component definition, Product Configurator can optionally consume TMF622, Product Configurator can potentially have the logic to map ProductConfiguration to ProductOrderItem.

    Another option is to have the ProductConfiguration to ProductOrderItem in a separate Service(API) which can be used by various BFF if needed. This will allow Product Configurator and POCV to be decouple and Orchestrated by an Orchestration layer.



    ------------------------------
    Regards

    Srinivasa Vellanki
    Jio Platforms Limited
    Any opinions and statements made by me on this forum are purely personal, and do not necessarily reflect the position of my employer or TM Forum.
    ------------------------------



  • 9.  RE: Mapping from TMF760 to TMF622 and vice versa

    TM Forum Member
    Posted 2 minutes ago

    ProductConfiguration is sent to POCV as part of process API. I prefer to perform such mapping in channel independent way (i.e. not in BFF) as specified in IG1228.

    • TMFS003 doesn't  use the BFF pattern at all (they use the new TMF Process API, TMF701 to replace the BFF patterns, there is an explanation in IG1228 or in TMFS001
    • I think TMFS003 is incomplete, especially step 14 and also note the comment "to be studied in a next version"
    • There is another and different sequence diagram in TMF760 user guide, page 10 that does use the BFF

    In our implementation, we chose to use the product configurator ODA component to do POST/PATCH operation against the shopping cart API.

    TMFS0xx use cases are only EXAMPLES to inspire your implementation. They are not rules to follow. ODA is a composable architecture and you have quite a lot of flexibility that I think is required to support various CX.



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

    Matthieu Hattab
    Digital Sales Domain Architect
    Lyse Tele AS
    ------------------------------



  • 10.  RE: Mapping from TMF760 to TMF622 and vice versa

    TM Forum Member
    Posted an hour ago

    ProductConfiguration plays a role mostly in context of bundles(CPQ process

    The statement is statistically correct but it actually depends on your product model.

     You use ProductConfiguration for both types of product offerings to control:

    • bundle, where Party can:
      • select optional ProductOffering defined as bundledProductOfferingOption
      • select quantities
    • atomic where party can:
      • configure product characteristics (very popular with handset where party select size and colour)

    Each CSP have different product strategies, some use a small number of bundles (we see it a lot in B2C to simplify offers) and some have few to no bundle but a  large collection of atomic products that have product relationships to govern their various relationship types (dependencies, exclusion...). I've seen that mostly in B2B/enterprise.



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

    Matthieu Hattab
    Digital Sales Domain Architect
    Lyse Tele AS
    ------------------------------



  • 11.  RE: Mapping from TMF760 to TMF622 and vice versa

    TM Forum Member
    Posted 2 hours ago
    Edited by Matthieu Hattab 45 minutes ago

    Is there any description of this mapping between ProductConfiguration and ProductOrderItem?

    Not that I'm aware of.

    when we sync our ComputedProductConfiguration and Shopping Cart, it's fairly easy for the developer to map it. The TMF information framework is heavily used so the semantic is very consistent.

    for TMF760, we did face a "challenge",  for the colloquial "ABO" (asset-based ordering) process when customer want to "change" or "modify" their existing product instance in the product inventory. Our BSS expects an "action code" for each Line Item and an action code for for each line item characteristic to provide the previous and new value.

    The key question is which component should calculate order "deltas" (difference between required to-be state and as-is state):

    The "Product Configurator" ODA Component, ref: TMFC027 (not to be confused by "product configuration" which is different) is responsible for:

    • synchronising the computedProductConfiguration with the Cart/Order line item
    • compute the Line item attribute "Action" (= The action to take for an InteractionItem, such as add, change, remove...)
      • "action" largely depends on whether the computedProductConfiguration is based on an instance of the product in the product inventory, if not, then action is probably just "add")

    But there are gaps, for sure. You mentioned the example of "isSelected". That's a serendipitous observation, because when I implemented TMF760 it's the first gap I identified :-)

    When we implement TMF APIs we allow ourselves to "augment" the APIs to fix the gaps or align APIs for consistency.



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

    Matthieu Hattab
    Digital Sales Domain Architect
    Lyse Tele AS
    ------------------------------