Open APIs

 View Only
  • 1.  Bulk provisioning of services via single api call

    TM Forum Member
    Posted Feb 21, 2021 19:22
    Edited by Amita Giriya Feb 21, 2021 23:16

    Hi All,

     

    We are seeking some guidance on a requirement we have to support bulk provisioning of service instances via single api call.

     

    Below are the 2 options we have assessed-
    • TMF641 (using orderItem.quantity)

    We are looking at the option of using TMF641 and making use of quantity field at the order item level to specify the number of service instances to be created.

    All the service instances to be created have the same characteristics.

     

    Currently the order item to service cardinality is 1:1, seeking guidance on how this can be used to support the scenario when orderItem.quantity >1. The server cannot link multiple service instance with one order line item.

    Another challenge is how the server will map it back to the consumer for partial success scenarios.

    Does it make sense to have quantity at order level also, to keep a total amount of all the order items requested against the order to support bulk provisioning?

     

    • HTTP PATCH method with application/json-patch+json.

    As per TMF-630 v4.0.0 guideline- Part 1, Section 6.2 - Creating Multiple Resources, PATCH at root level can be used to create multiple resources.

    This option will not suit our need as we have huge number for bulk provisioning with the same service characteristic. Also PATCH operation is atomic which will not support partial success and hence not suitable for the requirement.

     

    Is there any other api which can be used to support bulk provisioning?

    Thanks,
    Amita

    cc: @Anu Aulakh



    ------------------------------
    Amita Giriya
    Telstra Corporation
    ------------------------------


  • 2.  RE: Bulk provisioning of services via single api call

    TM Forum Member
    Posted Feb 22, 2021 01:22
    Hi Amita

    The Open APIs don't (currently) do bulk anything, not in service order domain, not elsewhere.
    My recommendation is to roll it yourself. You could create a Task resource, with:
    • Input - array of ServiceOrder
    • Output - array of ServiceOrder and array of Error
    In this way you can match the output to the input (taking care that each array item position is preserved in the output), and using the Error to indicate a failure.
    Note that in an upcoming minor release of TMF641 some error structures will be added to ServiceOrder itself, in which case you might be able to avoid a separate Error array. 

    Regarding your suggestion to use quantity, I doubt that this is a good idea in the service domain. It makes sense (perhaps) in the Product domain, when you want to provide a bunch of identical products that are not serialized and not maintained in product inventory (e.g. accessories), but I can't see how this would ever apply in Service domain.

    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.
    ------------------------------



  • 3.  RE: Bulk provisioning of services via single api call

    TM Forum Member
    Posted Feb 22, 2021 09:00
    Hi Amita,

    We can use a custom solution to handle bulk orders in which case the single bulk order is submitted in the CRM and middleware decomposes the bulk request into multiple individual orders having 1:1 line item-service cardinality. Pre-qualification is performed to prevent any order failures and collective bulk order status can be viewed from the CRM dashboard highlighting how many services are successfully created and how many have failed. If we try to perform a big bang order with multiple service order line items then the whole transaction can fail even if 1 service creation fails.

    ------------------------------
    Ankit Gupta
    Principal Consultant
    Oracle Corporation
    ------------------------------