Open APIs

 View Only
  • 1.  TMF620-Product Catalog-Product Specificaiton Resource-productSpecificationRelationship

    TM Forum Member
    Posted May 22, 2019 12:33
    Hi, 
    How can I define:
    - migration,
    - substitution,
    - dependency,
    - exclusivity relationship between/among product specifications.

    ------------------------------
    memet harun ozer
    PiA Bilisim Hizmetleri Ltd.
    ------------------------------


  • 2.  RE: TMF620-Product Catalog-Product Specificaiton Resource-productSpecificationRelationship

    TM Forum Member
    Posted May 24, 2019 09:07
    This is the purpose of the relationshipType attribute in ProductSpecificationRelationship . To give a concrete example, consider the following JSON fragment from a ProductSpecification:
    {
      "id": "7655",
      "href": "https://mycsp.com:8080/tmf-api/productCatalogManagement/v4/productSpecification/7655",
      "name": "Cisco Firepower NGFW",
      "productSpecificationRelationship": [
        {
           "id": "23",
           "href": "https://mycsp.com:8080/tmf-api/productCatalogManagement/v4/productSpecification/23",
           "relationshipType": "Dependency"
        }
      ]
    }
    In this example, we are saying that a Firewall product spec (ID 7655) is dependent on another product spec (ID 23) , might be business broadband for instance.

    Note that ideally ProductSpecificationRelationship is a technical, not commercial relationship. Commercial relationships should be expressed at ProductOffering level. Currently there is no ProductOfferingRelationship in the API model but we hope to add this in release 19.5, and we can expect that it will be very similar to ProductSpecificationRelationship.

    Hope it helps.


    ------------------------------
    Jonathan Goldberg
    Amdocs Management Limited
    ------------------------------



  • 3.  RE: TMF620-Product Catalog-Product Specificaiton Resource-productSpecificationRelationship

    TM Forum Member
    Posted May 28, 2019 06:08
      |   view attached
    Hi Jonathan,
    Thank you for your support. I need some information to develop relationships.
    I've two ProductSpecification like below:
    "specification product 13" which has Characteristic1, Characteristic2 & "specification product 15" which has Characteristic3, Characteristic4.

    "productSpecification":
    {
    "id": "13",
    "@type": "ProductSpecification",
    "href": "http://serverlocation:port/catalogManagement/productSpecification/13",
    "name": "specification product 13"
    },
    "productSpecCharacteristic":
    [
    {
    "name": "Characteristic1",
    "valueType": "string",
    "productSpecCharacteristicValue":
    [
    {
    "valueType": "string",
    "isDefault": true,
    "value": "value11"
    },
    {
    "valueType": "string",
    "isDefault": false,
    "value": "value12"
    }
    ]
    },
    {
    "name": "Characteristic2",
    "valueType": "string",
    "productSpecCharacteristicValue":
    [
    {
    "valueType": "string",
    "isDefault": true,
    "value": "value21"
    },
    {
    "valueType": "string",
    "isDefault": false,
    "value": "value22"
    }
    ]
    }
    ]

    "productSpecification":
    {
    "id": "15",
    "href": "http://serverlocation:port/catalogManagement/productSpecification/15",
    "name": "specification product 15"
    },
    "productSpecCharacteristic":
    [
    {
    "name": "Characteristic3",
    "valueType": "string",
    "productSpecCharacteristicValue":
    [
    {
    "valueType": "string",
    "isDefault": true,
    "value": "value31"
    },
    {
    "valueType": "string",
    "isDefault": false,
    "value": "value32"
    }
    ]
    },
    {
    "name": "Characteristic4",
    "valueType": "string",
    "productSpecCharacteristicValue":
    [
    {
    "valueType": "string",
    "isDefault": true,
    "value": "value41"
    },
    {
    "valueType": "string",
    "isDefault": false,
    "value": "value42"
    }
    ]
    }
    ]

    We are trying to determine validations according to the relationships.
    1- Does "specification product 13" and "specification product 15" have to be in the same bundle, if I want to define a ProductSpecificationRelationship.
    2- Or if I added a dependency relationship in to the ProductSpecificationRelationship, should I add that specification into the bundle?
    3- Is the relationship between specifications necessary to define characteristic relationships?
    5- Although there is no relationship between specifications, can the relationship between the characteristics of the specifications in the same bundle be established?
    6- How relationships (Dependency, Migration, Substitution, Exclusivity) between specifications affect characteristics?
    7- What does productSpecificationRelationship mean? Does it effect characteristic resultset? If it is, how productSpecificationRelationship type works? Is there any attribute like that?
    Also if there is a document that tells about relationship, could you give us a link? We would like to research deeply.

    If it possible, Can you give examples for each type of relationships (Dependency, Migration, Substitution, Exclusivity).

    "productSpecificationRelationship":
    [
    {
    "id": "15",
    "href": "http://serverlocation:port/catalogManagement/productSpecification/15",
    "type": "Dependency",
    "validFor":{"startDateTime": "2017-04-19T16:42:23.0Z"}
    }
    ]
    OR
    "productSpecificationRelationship":
    [
    {
    "id": "15",
    "href": "http://serverlocation:port/catalogManagement/productSpecification/15",
    "type": "Migration",
    "validFor":{"startDateTime": "2017-04-19T16:42:23.0Z"}
    }
    ]
    OR
    "productSpecificationRelationship":
    [
    {
    "id": "15",
    "href": "http://serverlocation:port/catalogManagement/productSpecification/15",
    "type": "Substitution",
    "validFor":{"startDateTime": "2017-04-19T16:42:23.0Z"}
    }
    ]
    OR
    "productSpecificationRelationship":
    [
    {
    "id": "15",
    "href": "http://serverlocation:port/catalogManagement/productSpecification/15",
    "type": "Exclusivity",
    "validFor":{"startDateTime": "2017-04-19T16:42:23.0Z"}
    }
    ]

    ------------------------------
    memet harun ozer
    PiA Bilisim Hizmetleri Ltd.
    ------------------------------

    Attachment(s)

    txt
    new 1.txt   4 KB 1 version


  • 4.  RE: TMF620-Product Catalog-Product Specificaiton Resource-productSpecificationRelationship

    TM Forum Member
    Posted May 29, 2019 08:09
    Trying to answer your questions:

    First a clarification, you understand that a bundled product specification is not for commercial bundles, which should be done via ProductOffering. Rather the bundled spec is for creating a complex product structure within a simple (non-bundled) ProductOffering.

    Secondly a request, if this will not violate your IP policies please try to give real business examples that illustrate your questions/dilemmas, it will make it easier for forum members to answer.

    1: no need for the relationship to be restricted to specifications within the same structure. Indeed in the example I gave in my previous post the Firewall and the Broadband are not bundled together within the same product specification parent. They could of course be bundled commercially by a Business Data product offering that bundles a Firewall offering and a Broadband offering.
    2: as per my answer to 1. no need to add the spec to the bundle (indeed it would be incorrect to do that).
    3: this would be your decision as a modeler, depending on the business processes you want to run at order capture and fulfillment. For example you might have a Broadband spec that embeds an email spec, and for technological reasons you decide that your email box will or will not support attachments (this would be a boolean characteristic) depending on the bandwidth of the broadband connectivity (this would be a choice from list of values characteristic). You wouldn't need a spec relation in this case, since the two specs are in the same technical bundle and they would both be present. On the other hand if the specs were not in the same bundle it might be prudent to have a relationship between them.
    4?
    5: yes as per the example I gave in my answer to 3.
    6: it's up to you what the meaning of the relationship is on characteristics - of course depending on the actual technical nature of the products
    7: As in 6. there is no necessary causal impact on characteristics due to the existence of a product spec relationship.

    Dependency: Firewall is dependent on Broadband - if you don't have broadband you cannot have a firewall
    Migration: ADSL can be migrated to Fiber to the Home (I think)
    Substitution: I don't have a convincing example for this, sorry
    Exclusivity:  FttH and ADSL to the same physical address - you can have only one of these, it doesn't make sense to have both

    ------------------------------
    Jonathan Goldberg
    Amdocs Management Limited
    ------------------------------



  • 5.  RE: TMF620-Product Catalog-Product Specificaiton Resource-productSpecificationRelationship

    TM Forum Member
    Posted Jun 06, 2019 16:14
    Hi,


    I would like to complete Jonathan's view on types of relationship:

    • Dependency: a dependency indicates you can not have the dependent product without the product it depends on, some people would refer to the dependent products as options.
    • Migration: a migration means that one product can be transformed into another. The Internet-S product can be migrated to an Internet-M or an Internet-L. Note that migrations is one directional. Using the one-directional aspect you can forbid downselling but allow upselling if you want. Migration typically requires that the ProductSpecifications refer to a common CustomerFacingServiceSpecification. In a productOrder migration can be handled with the "modify" action. The action usually triggers only tasks such as (re-)configure service.
    • Substitution: a substitution refers to a products realised as resources. The simple router can be substituted by a wifi router. The wifi router in that case provides all the functionality of a simple router and usually some more. In a productOrder substitution requires an "add" and a "delete" action. Potentially this triggers more complex resource provisioning processes
    • Exclusion: when a ProductSpecification excludes another ProductSpecification than Products refering to both ProductSpecifications can not coexist on a BillingAccount.

    • Substitution has a side effects on dependencies as well. Products that depend on a simple router like "Internet-S" will also work with all its substitutions, but not vive versa. If Internet-L depends on wifi-router, this means that a migration from Internet-S to Internet-L implies also that the existing simple router must be substituted with a wifi router.