Open APIs

Expand all | Collapse all

Usage of TMF633 & TMF641

  • 1.  Usage of TMF633 & TMF641

    TM Forum Member
    Posted Jul 27, 2020 07:33
    Hi All,

    I am new to TMF, and some concept of using TMF633 & TMF641 want to clarify:

    1) TMF633 ServiceSpecification is used to define particular Service details, service parameters can be defined in serviceSpecCharacteristic. serviceSpecCharacteristicValue can be further define the possible value for particular service parameters.
    In TMF641 ServiceOrder, it can define various action with different service parameters by serviceCharacteristic that can ref to TMF633 ServiceSpecification, SOM will then decompose/transform TMF641 to RFS.

    In most case, the value pass from CustomerFacingService to ResourceFacingService is different, how can we define the mapping of service value between CFS & RFS? E.g. CFS passing "Premium", while RFS expecting "5" as value. Can we define such mapping in the ServiceSpecification? Any recommended approach?

    2) According to TMF641 ServiceOrder, it will have serviceCharacteristic section that define the service parameters, is that means TMF633 is optional that we can only define TMF641 for BSS/OSS & SOM to operate?

    3) Is BSS/OSS need to reference both TMF633 & TMF641 (Specification level) so as to generate TMF641 (Service Order Instance) to SOM? Not sure TMF641 is in specification point of view or it is the output of service order creation?

    Thanks.

    TMF633 - ServiceSpecification:
    {
      "id": "1",
      "name": "VMS",
      "description": "Voice Mail Service Specification",
      "lastUpdate": "2020-07-22T02:47:10.141Z",
      "lifecycleStatus": "Active",
      "version": "0.1",
      "serviceSpecCharacteristic": [
        {
          "configurable": true,
          "name": "MSISDN",
          "description": "Mobile Number",
          "extensible": true,
          "isUnique": true,
          "maxCardinality": 1,
          "minCardinality": 1,
          "valueType": "string"
        },
        {
          "configurable": true,
          "name": "IMSI",
          "description": "Mobile SIM Number",
          "extensible": true,
          "isUnique": true,
          "maxCardinality": 1,
          "minCardinality": 1,
          "valueType": "string"
        },
        {
          "configurable": true,
          "name": "BRANDCODE",
          "description": "Brand",
          "extensible": true,
          "isUnique": true,
          "maxCardinality": 1,
          "minCardinality": 1,
          "valueType": "string",
          "serviceSpecCharacteristicValue": [
            {
              "isDefault": true,
    		  "valueType": "String",
              "value": "0"
            },
            {
              "isDefault": false,
    		  "valueType": "String",
              "value": "1"
            }
          ]
        },
        {
          "configurable": true,
          "name": "VMSSERVICECLASS",
          "description": "Mail Box Type",
          "extensible": true,
          "isUnique": true,
          "maxCardinality": 1,
          "minCardinality": 1,
          "regex": "",
          "valueType": "string",
          "serviceSpecCharacteristicValue": [
            {
              "isDefault": true,
    		  "valueType": "String",
              "value": "3"
            },
            {
              "isDefault": false,
    		  "valueType": "String",
              "value": "5"
            }
          ]
        },
        {
          "configurable": true,
          "name": "VMSLANG",
          "description": "Mail Box Language",
          "extensible": true,
          "isUnique": true,
          "maxCardinality": 1,
          "minCardinality": 1,
          "regex": "",
          "valueType": "string",
          "serviceSpecCharacteristicValue": [
            {
              "isDefault": false,
    		  "valueType": "String",
              "value": "1"
            },
            {
              "isDefault": true,
    		  "valueType": "String",
              "value": "2"
            },
            {
              "isDefault": false,
    		  "valueType": "String",
              "value": "3"
            }
          ]
        }
      ]
    }​


    TMF641 - Service Order:

    {
      "category": "VMS",
      "description": "Add Voice Mail Service Order Specification",
      "externalId": "VMS_ADD",
      "priority": "1",
      "requestedCompletionDate": "2020-07-22T02:28:49.187Z",
      "requestedStartDate": "2020-07-22T02:28:49.187Z",
      "orderItem": [
        {
          "id": "1",
          "action": "add",
          "service": {
            "id": "1",
            "category": "VMS",
            "name": "VMS",
            "serviceType": "CustomerFacingServiceSpecification",
            "serviceCharacteristic": [
              {
                "name": "MSISDN",
                "value": "99999999",
                "valueType": "string",
              },
              {
                "name": "IMSI",
                "value": "454009999999999",
                "valueType": "string",
              },
              {
                "name": "BRANDCODE",
                "value": "1",
                "valueType": "string",
              },
              {
                "name": "VMSSERVICECLASS",
                "value": "3",
                "valueType": "string",
              },
              {
                "name": "VMSLANG",
                "value": "2",
                "valueType": "string",
              }
            ],
            "serviceSpecification": {
              "id": "1",
              "name": "VMS",
              "version": "0.1"
            },
            "state": "active",
          },
          "state": "acknowledged",
        }
      ]
    }


    ------------------------------
    ----------------------------------
    Wing Sin
    PCCW Solutions Limited
    ----------------------------------
    ------------------------------


  • 2.  RE: Usage of TMF633 & TMF641

    TM Forum Member
    Posted Jul 28, 2020 02:49
    Hi Wing
    Thanks for your questions

    1) Currently the Open API catalog models do not make characteristic mapping explicit in the model, meaning that it would be challenging to express such translation (Premium => 5) using the Open API. This type of mapping is represented in the Information Framework (SID) and perhaps needs to be enhanced into the API. We did make a recent Open API enhancement that allows characteristics to be related, but this did not go to the level of value mapping.

    2) It is correct that the order model (e.g. service order in TMF641) contains embedded service with instantiated characteristic values and relations. From a technical (API) perspective, I think that is expected that the reference from Service to ServiceSpecification is considered mandatory, but I suppose that in your specific implementation of the API you could relax that rule. The question is - whether you can guarantee correct operation of your SOM without service catalog information that was not passed explicitly within the TMF641 payload. For example, dependency information on other services, implementing resources in the resource layer, etc.

    3) The fact that the service catalog API contains no notion of product, while the product API does contain service (and resource) pointers, implies that TM Forum believes that the responsibility of decomposition from product to service (CFS) is the responsibility of the BSS layer, Commerce in ODA nomenclature. My understanding is that the BSS layer uses the information in product catalog (references to service spec) to create a service order and submit it to SOM via TMF641. TMF641 is definitely an instance-level API, not a catalog API.

    Would be great to get additional feedback from @Dave Milham and @Vance Shipley - I understand that a TMF working group is about to look more deeply into modeling practices across BSS and OSS, and your questions could be important input into this work.

    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: Usage of TMF633 & TMF641

    TM Forum Member
    Posted Jul 29, 2020 00:15
    Hi Jonathan,

    Understand that TMF641 is an instance-level API that my next question is how can BSS layer know the service parameter list required to pass for each action?
    E.g. Use service parameter A, B, C for Add; Use service parameter A, C for Update; Use service parameter A for Delete.

    As you mention that "BSS layer uses the information in product catalog (references to service spec) to create a service order and submit it to SOM via TMF641", but seems TMF620 Product Catalog does not have such kind of information defined? Would you please advise which specification can be used to define it?

    Thanks for your comments.


    ------------------------------
    Wing Sin
    PCCW Solutions Limited
    ------------------------------



  • 4.  RE: Usage of TMF633 & TMF641

    TM Forum Member
    Posted Jul 29, 2020 03:05
    You should definitely be including Service Catalog (TMF633) in your design, the solution should be "catalog driven". For example the possibly values a characteristic may take may be enumerated in a specification. Think of a drop down selection box in a service order form. Rather than hard code things you derive the choices from what is explicitly specified at Service design time.

    It would be good design to explicitly indicate the potential RFSs which may be used by a CFS in ServiceSpecification (TMF633) with the serviceSpecRelationship attribute.

    For mapping characteristic values of a CFS to an RFS we have the serviceSpecCharRelationship attribute within ServiceSpecCharacteristic. This is used to identify a set of ServiceSpecCharacteristic with a relationship to the current characteristic. A ServiceSpecCharRelationship includes the relationshipType attribute to describe the  type of relationship it is. You may use these mechanisms to encode the CFS to RFS characteristic value mapping at Service design time.

    ------------------------------
    Vance Shipley
    SigScale
    ------------------------------



  • 5.  RE: Usage of TMF633 & TMF641

    TM Forum Member
    Posted Jul 29, 2020 04:44
    Hi Vance,

    Thanks for your suggestion, I am trying to use serviceSpecCharRelationship as below to relate the serviceSpecCharRelationship.id to serviceSpecCharacteristicValue.value .
    BSS will based on serviceSpecCharacteristicValue.value to lookup the serviceSpecCharRelationship.name as display value for each enumerated value.
    Would you please help to verify if my understanding is correct or not? Thanks.
      "serviceSpecCharacteristic": [
        {
          "configurable": true,
          "name": "VMSSERVICECLASS",
          "description": "Mail Box Type",
          "extensible": true,
          "isUnique": true,
          "maxCardinality": 1,
          "minCardinality": 1,
          "regex": "",
          "valueType": "string",
          "serviceSpecCharRelationship": [
            {
              "id": "3",
              "name": "Normal",
              "relationshipType": "substitution"
            },
            {
              "id": "5",
              "name": "Premium",
              "relationshipType": "substitution"
            }
          ],
          "serviceSpecCharacteristicValue": [
            {
              "isDefault": true,
    		  "valueType": "String",
              "value": "3"
            },
            {
              "isDefault": false,
    		  "valueType": "String",
              "value": "5"
            }
          ]
        }
      ]
    


    ------------------------------
    Wing Sin
    PCCW Solutions Limited
    ------------------------------



  • 6.  RE: Usage of TMF633 & TMF641

    TM Forum Member
    Posted Jul 29, 2020 06:41
    Jonathan pointed out that I have over reached a bit here. Where I said "mapping characteristic values of a CFS to an RFS" I should have said "mapping characteristics of a CFS to an RFS". So while you can and should map the service specification characteristics there isn't a method to relate a characteristic value selected in a CFS instance with a characteristic value in an RFS as you asked.

    ------------------------------
    Vance Shipley
    SigScale
    ------------------------------



  • 7.  RE: Usage of TMF633 & TMF641

    TM Forum Member
    Posted Mar 30, 2021 03:07

    Hi,

    We have a use case where value of one service characteristic is based on the specific value of other characteristic.


    Example :

    A service has 2 characteristics- A and B

    Characteristic A- Enum  ( 'explicit', 'inferred')

    Characteristic B – Integer, value to be provided when characteristic A value is 'explicit'. Not applicable where characteristic A value is 'inferred'.

     

    Is there is a way to represent value specific dependency or relationship between 2 characteristics in TMF633? Looking for some guidance around this.

     

    We have explored the characteristicValueSpecification.regex which is recommended to use mainly for pattern matching for the characteristic value.

    charSpecRelationship is at characteristicSpecification level, difficult to represent characteristic value level dependencies using this.

    Should we look at constraint at specification level where provider can specify the rules? We could not find enough information on usage of constraint.

     

    Seeking some feedback on this can be achieved.

    Thanks,
    Amita

    cc: @Uma Lakshman




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



  • 8.  RE: Usage of TMF633 & TMF641

    TM Forum Member
    Posted Apr 05, 2021 03:37
    Hi Amita
    This level of detail is not currently represented in the Open API in any of our catalogs.
    Also the SID doesn't appear to have relationships between characteristic value.
    Sorry

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



  • 9.  RE: Usage of TMF633 & TMF641

    TM Forum Member
    Posted Apr 05, 2021 04:45
    On Mon, Apr 5, 2021 at 3:38 PM Jonathan Goldberg via TM Forum




  • 10.  RE: Usage of TMF633 & TMF641

    TM Forum Member
    Posted Apr 07, 2021 02:33
    Hi @Vance Shipley

    For some reason your response is not visible above.
    Could you please provide your feedback on the question ​?

    Thanks,
    Amita

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



  • 11.  RE: Usage of TMF633 & TMF641

    Posted Apr 09, 2021 11:39
    Hi....can someone share any use case to clarify the logic behind boolean Service attribute "isStateful"

    Does it work in the same way for indicating CFS-CFS relationship as for CFS-RFS?

    Is that correct that Service Inventory is responcible for managing "isStateful" logic in case service relationship explicitly provided within some serviceOrderItem?



    ------------------------------
    Delly Rosen
    TO BE VERIFIED
    ------------------------------