Open APIs

 View Only
  • 1.  Delete Service ORder - TMF 641

    Posted Oct 07, 2022 08:11
    How is Delete service order supposed to be implemented?
    Does it work only on Completed Service Order or In Progress orders also?
    When on In Progress orders, would it be possible to delete the service order?
    When on Completed orders, do we need to remove Service from Service Inventory/Network or just deleting service order instance ?
    I assume that the state transitions will be similar to service order/service order item transitions.

    ------------------------------
    Reshmi G C
    Cisco Systems
    ------------------------------


  • 2.  RE: Delete Service ORder - TMF 641

    Posted Oct 09, 2022 19:38
    @Ludovic Robert , can you please respond here as i have seen your responses for other queries


    ------------------------------
    Reshmi G C
    Cisco Systems
    ------------------------------



  • 3.  RE: Delete Service ORder - TMF 641

    Posted Oct 10, 2022 01:58
    Hi @Reshmi G C,

    For me the DELETE/serviceOrder​/{id} endpoint should be called for the completed service orders only. The "In progress" one are more the one which has to be cancelled therefore for these I would use POST​/cancelServiceOrder
    In terms of service inventory I suggest you to keep the services in the proper state e.g. terminated so you have service order and service instances history.

    If you want to remove these data permanently you can do that as well as part of the above calls or through implementation of some background clean-up task.


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



  • 4.  RE: Delete Service ORder - TMF 641

    TM Forum Member
    Posted Oct 10, 2022 04:23
    Logically if service is provisioned in network and order is open, delete service call should do following:
    1. delete the network inventory and
    2. either cancel the order or close the order (depending on how billing works)

    ------------------------------
    Ashish Agrawal
    IBM Corporation
    ------------------------------



  • 5.  RE: Delete Service ORder - TMF 641

    Posted Oct 11, 2022 15:59
    Edited by Reshmi G C Oct 11, 2022 16:00
    @sebastian @Ashish Thanks for your responses .
    I had followup queries for DeleteServiceOrder API :
    i see that we need to send a synchronous response with 204 http & not a acknowledged response which means all the deletions should happen immediately & if this is the case there is no need to send event notifications to the subscribers on the delete event

    But if the service needs to be deleted in the network then it might take time & better to send acknowledged request immediately & send event update once the service is deleted in the network
    However if i look at the swagger specs ,i see there is a serviceOrderDeleteEvent as well to send the event notifications & payload for that is complete service order
    In my view ,this means that we need to send event notification after all service order items within service order is deleted successfully and serviceOrderDeleteEvent notification that needs to be sent out should have overall service order state as 'complete' & each service state will be 'terminated'Is this the right understanding?

    I am a bit confused on immediate 204 response to be sent ,should it be that way or do we need to send  synchronous response with state 'acknowledged' & later notify of the deletion status using serviceOrderDeleteEvent?








    ------------------------------
    Reshmi G C
    Cisco Systems
    ------------------------------



  • 6.  RE: Delete Service ORder - TMF 641

    Posted Oct 12, 2022 02:13
    Edited by Sebastian Wawrzyniak Oct 12, 2022 02:19
    Hi @Reshmi G C

    I think I have ​misunderstood what you want to do. It sounds for me that you are looking for answer how terminate the services rather service order removal, right?

    If this is the case the flow in my opinion is slightly different.

    You have to place an order with 
    {
        "id": "30001",
        "serviceOrderItem": [
            {
                "id": "100",
                "action": "modify",
                "product": {
                    "id": "4444"
                    "status": "terminated"
                }
            }
        ]
    }

    That order will generate regular order notifications plus the one related to service i.e. ServiceStateChangeEvent. If you would like to remove the service permanently (from your inventory) you can do that and then you will have to generate ServiceDeleteEvent. In such scenario I probably will use the below payload
    {
        "id": "30001",
        "serviceOrderItem": [
            {
                "id": "100",
                "action": "delete",
                "product": {
                    "id": "4444"
              }
            }
        ]
    }

    In my opinion the DELETE/serviceOrder​/{id} is for resource (service order) removal and therefore should not be used for service termination process.

    Regards
    Sebastian


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



  • 7.  RE: Delete Service ORder - TMF 641

    Posted Oct 13, 2022 14:01
    @Sebastian Wawrzyniak
    Thank you. I am looking for answer for order removal.Had couple of follow up questions

    I was a bit confused as your original message stated as below - keep services in proper state eg 'terminated'.So i thought we need to also change the state of the service to 'terminated' for all services belonging to the order.
               In terms of service inventory I suggest you to keep the services in the proper state e.g. terminated so you have service order and service instances history.If              you want to remove these data permanently you can do that as well as part of the above calls or through implementation of some background clean-up task.

    So is this correct understanding with respect to DELETE/serviceOrder​/{id}  :
    1. As a part of delete service order ,we go ahead & delete the order details & service details from our system but service termination has to be requested separately.
    Once we delete order & service details from our inventory, we cannot accept any further requests for terminating the service.So typically service termination should be triggered before order deletion.That makes sense from business perspective
    Also do we need to put some logic to ensure we allow DELETE/serviceOrder​/{id}  , only if service is terminated or we allow irrespective of state of the service ?




    ------------------------------
    Reshmi G C
    Cisco Systems
    ------------------------------



  • 8.  RE: Delete Service ORder - TMF 641

    Posted Oct 14, 2022 03:06
    @Reshmi G C
    You are correct writing that service termination must be requested and completed before order is deleted. In my opinion your DELETE call should have validation in place.

    On the other hand I can imagine also the implementation where inventory and orders are treated separately ​i.e. you are allowed to remove orders without touching the inventory side. However in that scenario the order which is going to be removed cannot be in progress i.e. it has to be in final state. In other words you can remove an order as soon as it is finished.

    You have to ask yourself if you care about information about orders as long as service is active or you just using them as "tool" for service management. If this is just the "tool" you can delete the order since if you need to terminate the service you will create a new order in which the termination of service will be requested. In that approach DELETE of order does not imply service termination.

    Hope that make sense for you.

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



  • 9.  RE: Delete Service ORder - TMF 641

    TM Forum Member
    Posted Oct 20, 2022 02:58
    All - a very interesting discussion.

    I suggest that we distinguish between the following requirements and corresponding API operations:
    • De-activate (cease) Service in network and in inventory - this will presumably be triggered by a customer-facing Product Order asking for ceasing of the Product. It will be done by Creating and Submitting a service order (TMF641 POST) including an order item with action cease/deactivate/disconnect and a reference to the relevant Service. The service order will orchestrate what is needed on the network, possibly including sending configuration request to network (TMF640 PATCH) and will update the status of the Service in the inventory (TMF 638 PATCH)
    • Delete Service from inventory - this will presumably be done in the background after some grace period, according to retention policy of the telco (and perhaps influenced by regulations). One can imagine a batch process that searches the inventory for all permanently inactive services from or before a given date (TMF638 GET), and then invokes delete (TMF 638 DELETE). An implementation validation would probably block deletion of services that are not permanently inactive.
    • Delete Service Order from persistent storage - here also this will presumably be done in the background, similar logic to previous bullet but using TMF641.

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