Open APIs

 View Only
  • 1.  Service State Management for Multi-Order in TMF641

    TM Forum Member
    Posted 16 days ago

    Hello everyone,

    I am working with TMF641 for handling service multi-orders. In one particular request, items 1 and 2 were successfully completed, while item 3 remained in the "Held" state. In this case, what should be the appropriate state for the overall service order? Should it be:

    • Partial?
    • In Progress?
    • Held?

    Here is the JSON example of the current state:

    {
      "id": "12345",
      "state": "In Progress",
      "serviceOrderItem": [
        {
          "id": "1",
          "state": "Completed"
        },
        {
          "id": "2",
          "state": "Completed"
        },
        {
          "id": "3",
          "state": "Held",
          "stateChangeReason": "Waiting for inventory allocation"
        },
        {
          "id": "4",
          "state": "Acknowledged"
        },
        {
          "id": "5",
          "state": "Acknowledged"
        }
      ]
    }



    ------------------------------
    Halim Terzioglu
    VodafoneZiggo
    ------------------------------


  • 2.  RE: Service State Management for Multi-Order in TMF641

    TM Forum Member
    Posted 15 days ago

    Assuming the 3rd item in held state is not waiting on any input from the consumer, also will progress when the needed dependency is met, in which case the service order state should be in-progress.

    If delivering the 3rd item fails for some reason and consumer is expected to handle the situation and there is nothing for provider(SOM) to do and has reached terminal state, then the Order can be marked partial complete.



    ------------------------------
    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: Service State Management for Multi-Order in TMF641

    TM Forum Member
    Posted 15 days ago

    Which document and section can referee this statement? I could not find. 



    ------------------------------
    Halim Terzioglu
    VodafoneZiggo
    ------------------------------



  • 4.  RE: Service State Management for Multi-Order in TMF641

    TM Forum Member
    Posted 14 days ago

    Hi Halim,

    You can find this in the TMF641 Service Ordering Management API User Guide.



    ------------------------------
    Yurii Yushchak
    System Manager
    Ericsson Inc.
    ------------------------------



  • 5.  RE: Service State Management for Multi-Order in TMF641
    Best Answer

    TM Forum Member
    Posted 14 days ago
    Edited by Halim Terzioglu 13 days ago

    Hi Halim,
    TMF is not specific on how to roll-up the states, thus we decided on the following algorithm:

    First, Order/OrderItem states are split on:
    - FINAL states (when there is no transition out of this state): Completed, Cancelled,  Failed, Partial, Rejected
    - NON_FINAL: The rest

    Based on this: 
    1. If ALL child items are in FINAL state, then:

      a) if all are in the same state, the Parent is in that state, i.e.
        i) all children="Completed" => Parent="Completed";
        ii) all children="Cancelled" => Parent="Cancelled"
        iii) etc...
      b) if children are in different states (mix of "Completed", "Cancelled", "Failed"...), then the parent is in a "Partial" state.

     2. If ALL child items are in NON-FINAL state, then

      a) if all are in same state, the parent is in that state, i.e.
        i) all children="Held" => Parent="Held";
        ii) all children="In Progress" => Parent="In Progress"
                      iii) etc...

      b) If all are in "Held" or "Pending" only (these are two states which indicate the item is not moving, i.e. waiting on something), then the Parent is in "Held" (to reflect that it is not progressing). We selected "Held", as this is the more "severe" waiting condition, it points to an issue.
        i) child1="Pending", child2="Held" => Parent="Held"
      c) If there is at least one child is in NON "Held" or "Pending" (i.e. it is in  "Acknowledged", "In Progress", "Assessing Cancellation" or "Pending Cancellation"), then Parent= is in "In Progress"
        i) child1="In Progress", child2="Held" => Parent="In progress"
        ii) child1="Assessing Cancellation", child2="Pending" => Parent="In progress"

    3. If these are SOME child items in FINAL state, and SOME in NON_FINAL state then:
      a) The Parent will be in NON-FINAL state (obviously, as something is still processing).
      b) The Parent's state will follow the logic from point #2 - but the logic will be based ONLY on items that are in NON_FINAL state (i.e.. ignore items in FINAL state from the Parent's state calculation).

    I hope this works for you.



    ------------------------------
    Plamen Stanoev
    Ericsson Inc.
    ------------------------------