Open APIs

 View Only
Expand all | Collapse all

"role" in relatedParty

  • 1.  "role" in relatedParty

    TM Forum Member
    Posted Sep 11, 2019 06:41
    Hi All,
    The role field in relatedParty is usually a String. What should be done if a person is serving more than one role?. There are three approaches I can think of. Which one of these is better?

    1. Replicate the data
    {
    	id: P1
    	name: John
    	relatedParty: [
    		{
    			role: "Primary Contact"
    			id: P2
    			name: "George"
    			@referredType: Individual
    		},
    		{
    			role: "Father"
    			id: P2
    			name: "George"
    			@referredType: Individual
    		}
    	]
    }
    


    2. Change data type of role from String to an Array
    {
    	id: P1
    	name: John
    	relatedParty: [
    		{
    			role: ["Primary Contact", "Father"]
    			id: P2
    			name: "George"
    			@referredType: Individual
    		}
    	]
    }


    3. Encode the information in the role String
    {
    	id: P1
    	name: John
    	relatedParty: [
    		{
    			role: "Primary Contact,Father"
    			id: P2
    			name: "George"
    			@referredType: Individual
    		}
    	]
    }


    ------------------------------
    Shibin CK
    Tecnotree
    ------------------------------


  • 2.  RE: "role" in relatedParty

    TM Forum Member
    Posted Sep 11, 2019 07:03

    Related Party is intended to provide a reference to either a Party (RelatedParty.role will be blank) or a PartyRole (RelatedParty.role will have the name of the role). Related Party is not in itself a managed entity.

    If a Party plays multiple roles, there will be a PartyRole (or concrete subclass) for each such role. Suppose John Doe works for H.A.L computers as the communications expert, and H.A.L. uses NXT Communications for its business wireline services. John Doe also has personal cellphone service from NXT for himself and his daughter.
    So:

    • There will be an Individual (subclass of Party) with first name John, last name Doe
    • There will be an Organization (subclass of Party) with name H.A.L.
    • There will be a Customer (subclass of PartyRole) with name John Doe, and the engagedParty for this Customer will be the Individual John Doe
    • There will be a Customer (subclass of PartyRole) with name H.A.L., and the engagedParty for this Customer will be the Organization H.A.L.
    • There will be a PartyRole with name John Doe and role Contact, and the engagedParty for this PartyRole will be the Individual John Doe
    • The Customer H.A.L. will have a RelatedParty that points to the John Doe PartyRole

    Hope this helps

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



  • 3.  RE: "role" in relatedParty

    Posted Jan 02, 2020 21:55
    Hi Jonathan

    In TMF629 Customer Management API there appears to be a mistake in the example where the RelatedParty of John Doe is using @referredType of Organisation instead of Individual and likewise for the href as follows...

    ​"relatedParty": [
        { "@referredType": "Organization",
            "href": "https://host:port/tmf-api/partyManagement/v4/organization/2777",
            "id": "2777",
            "name": "John Doe",
            "role": "bill receiver"
           }
        ]

    Also the contactMedium indicates TelephoneMedium with a preferred medium of TelephoneNumber but the telephone number has not been provided (only the address).

    There seems to be some inconsistencies within some of the other API examples relating to the @referredType.  What is the best way of raising these typos, or are these already being addressed?



    ------------------------------
    Dan d'Albuquerque
    TO BE VERIFIED
    ------------------------------



  • 4.  RE: "role" in relatedParty

    TM Forum Member
    Posted Apr 02, 2020 02:46
    Hi Dan

    I have opened a defect report on Customer Management, don't know when it will get fixed.
    Please report other specific examples - if you have access to the Open API project you can report them directly in the project JIRA at https://projects.tmforum.org/jira/ - otherwise I guess here would be the best place.
    There is a peer review process for the documents but these are mistakes that can get missed.
    Thanks for your attentiveness.

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



  • 5.  RE: "role" in relatedParty

    TM Forum Member
    Posted Mar 27, 2020 08:33

    Hi Jonathan,
    Regarding TMF669 and an example you gave.

    "There will be a PartyRole with name John Doe and role Contact, and the engagedParty for this PartyRole will be the Individual John Doe"


    In the previous version of TMF669, R18, I guess this example would be represented like this:

    {
    "@type": "PartyRole",
    "id": "123",
    "name": "John Doe",
    "engagedParty": {
    "@referredType": "Individual",
    "id": "42",
    "name": "John Doe"
    },
    "type": {
    "name": "Contact"
    }
    }



    When looking at the current R19 production specification of TMF669, there seem to be a few changes introduced compared to R18.
    - In R19, there is no longer a type attribute (RoleTypeRef)
    - In R19, the engagedParty is now a RelatedParty instead of a PartyRef.

    Where should the role value (Contact) be now be stored in the PartyRole resource? There is no type/role attribute anymore. Since the engagedParty type has been changed from PartyRef to RelatedParty, it could be populated there, but it does not seem quite right:

    {
    "@type": "PartyRole",
    "id": "123",
    "name": "John Doe",
    "engagedParty": {
    "@referredType": "Individual",
    "id": "42",
    "name": "John Doe",
    "role": "Contact"
    }
    }


    The TMF669 R19 specification states that name and roleType are mandatory attributes when creating a PartyRole. The roleType attribute is not mentioned anywhere else in the document, including the resource model, and it's not defined in the swagger file either nor mentioned in the conformance profile document. 

    Please advise. Thank you.

     



    ------------------------------
    Paul Austdal
    Telia Company
    ------------------------------



  • 6.  RE: "role" in relatedParty

    TM Forum Member
    Posted Mar 29, 2020 19:50

    Hi Jonathan,
    Regarding TMF669 and this example you gave.

    "There will be a PartyRole with name John Doe and role Contact, and the engagedParty for this PartyRole will be the Individual John Doe"

    In the previous version of TMF669, R18, I guess the example would be represented like this:

    {
    "@type": "PartyRole",
    "id": "123",
    "name": "John Doe",
    "engagedParty": {
    "@referredType": "Individual",
    "id": "42",
    "name": "John Doe"
    },
    "type": {
    "name": "Contact"
    }
    }

    When looking at the current R19 production specification of TMF669, there seem to be a few changes introduced compared to R18.
    - In R19, there is no longer a type attribute (RoleTypeRef)
    - In R19, the engagedParty is now a RelatedParty instead of a PartyRef.

    Where should the role value (Contact) be now be placed in the PartyRole resource? There is no type/role attribute anymore. Since the engagedParty type has been changed from PartyRef to RelatedParty, it could be populated there, but is does not seem quite right:

    {
    "@type": "PartyRole",
    "id": "123",
    "name": "John Doe",
    "engagedParty": {
    "@referredType": "Individual",
    "id": "42",
    "name": "John Doe",
    "role": "Contact"
    }
    }

    The TMF669 R19 specification states that name and roleType are mandatory attributes when creating a PartyRole. The roleType attribute is not mentioned anywhere else in the document, including the resource model, and it's not defined in the swagger file nor mentioned in the TMF669 R19 Conformance Profile document.

    Please advise.



    ------------------------------
    Paul Austdal
    Telia Company
    ------------------------------



  • 7.  RE: "role" in relatedParty

    TM Forum Member
    Posted Apr 02, 2020 01:45

    Hi Paul

    First please note that all type attributes in the Open API model were renamed, since they clash with the @type attribute used for polymorphism. Here in PartyRole, it became roleType.

    But I am concerned that maybe a mistake has been made in this new published version. engagedParty is the Party playing the PartyRole, as in my examples, and hence it should be a PartyRef and not a RelatedParty.
    Additionally, it does seem that some description strings are missing in the schema, for example description for roleType.

    I plan to raise a defect report on this to the Open API team, and we'll see what happens from there.




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



  • 8.  RE: "role" in relatedParty

    TM Forum Member
    Posted May 13, 2020 03:26
    Hi All, 

    i have the similar question for in TMF640, as part of the Service in TMF640, there is an array of relatedParty.  
    But seem that is still under R18 whereby it don't have the roleType. 
    It is correct if i extend the RelatedParty like below? 

                    {
    			"id": "S0000201X",
    			"name": "customer fullname",
    			"role": "ServiceOwner",
    			"@baseType": null,
    			"@schemaLocation": null,
    			"@type": "Customer",
    			"@referredType": null,
    			"identificationType": "Passport",
    			"idenficationValue": "G0000201X"
    		}
    
    		{
    			"id": "19000000X",
    			"href": null,
    			"name": "Company registation name",
    			"role": "ServiceOwner",
    			"@baseType": null,
    			"@schemaLocation": null,
    			"@type": "Organization",
    			"@referredType": null,
    			"brn": "1000000X",
    			"organizationType": "NGO"
    		}​


    ------------------------------
    Chio Chuan Ooi
    SingTel Optus
    ------------------------------



  • 9.  RE: "role" in relatedParty

    TM Forum Member
    Posted May 13, 2020 08:50
    The issue was discussed in a recent Open API team and was approved for fixing. I quote:

    Governance Call:
    Agreed! Should be returned to:

    "engagedParty": { "$ref": "PartyRef.schema.json#PartyRef" }
    I cannot give a timescale for when the fix will be applied to the Party Role Management API, 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.
    ------------------------------



  • 10.  RE: "role" in relatedParty

    TM Forum Member
    Posted Jan 04, 2021 10:37
    Hi @Jonathan Goldberg,
    You mentioned above: "Related Party is intended to provide a reference to either a Party (RelatedParty.role will be blank) or a PartyRole (RelatedParty.role will have the name of the role). Related Party is not in itself a managed entity."​
    Since RelatedParty itself is not an entity and nither party nor PartyRole has attribute "role" but, as you see in reference (RelatedPartyRef), it is additionally required.
    Should I create sub-classes of PartyRole for each role like Customer sub-class. Or add new field named "role" or "roleType" to the PartyRole entity.


    By the way, I see name and roleType fields in TMF669_Party_Role_Management API at "Mandatory and Non Mandatory Attributes" section. But, it is not included any where else; neither in swagger file nor in entity diagram.

    You said: "Additionally, it does seem that some description strings are missing in the schema, for example description for roleType."
    Missing part is not only description, believe me:)

    Need your help, thanks in advance :)


    ------------------------------
    Mustafa Yusufoglu
    i2i Systems
    ------------------------------



  • 11.  RE: "role" in relatedParty

    TM Forum Member
    Posted Oct 06, 2022 11:49

    Hi,

    Sorry for reviving an old thread, but I thought that a thing or two are still missing to get the whole picture. In this thread it is said that TMF669 (PartyRole) should have a "roleType" attribute, but swagger definition downloaded from: https://projects.tmforum.org/wiki/display/API/Open+API+Table doesn't include the attribute. The following Jira suggests that this is a publishing mistake:

    https://projects.tmforum.org/jira/browse/AP-3862

    But there is another Jira (somewhat older):

    https://projects.tmforum.org/jira/browse/AP-3775

    ​...which suggests that the attribute should be called "role"

    Which one is the one?

    Thanks, Peter



    ------------------------------
    Peter Levart
    Marand Software
    ------------------------------



  • 12.  RE: "role" in relatedParty

    TM Forum Member
    Posted Apr 12, 2023 08:14

    Hi Jonathan,

    regarding your suggestion:
    engagedParty is the Party playing the PartyRole, as in my examples, and hence it should be a PartyRef and not a RelatedParty.

    Do you mean that the role should be an attribute of PartyRef?

    that's different from API V4 guidelines.



    ------------------------------
    Kind regards,

    Matthieu Hattab
    Lyse Platform
    ------------------------------



  • 13.  RE: "role" in relatedParty

    TM Forum Member
    Posted Jun 18, 2021 10:29
    Hi, Jonathan

    Since relatedParty is NOT a managed entity, how do I add, update or remove a specific relatedParty record?

    For example, here is my 622 ProductOrder, I will want remove the "John Doe" as the "Technical Contact" of the given order. Does TMF provides an API to directly against the relatedParty sub resource?
    I tried to search in the TMF APIs but could not find it. It seems to me to use "patch" on 622 API with full snapshot of relatedParty records and compare records in database to determine which one to remove.
    {
    "id": "od12334",
        "relatedParty": [
            {
          "id": "123",
          "name": "John Doe",
          "role": "Technical Contact",
          "@type": "RelatedParty",
          "@referredType": "Individual"
            },
            {
    "id": "124",
    "name": "Will Simith",
    "role": "Site Contact",
    "@type": "RelatedParty",
    "@referredType": "Individual"
    }

        ]
    }


    ------------------------------
    Justin Yue
    Salesforce
    ------------------------------



  • 14.  RE: "role" in relatedParty

    TM Forum Member
    Posted Jun 20, 2021 04:28
    Hi Justin
    As a general design principle, TMF Open APIs only address managed entities. It would be possible in principle to construct endpoints that address sub-entities (or collections), such as:
    https://server:port/apiroot/productOrder/v4/productOrder/225556611/relatedParty​

    and do GET/PATCH on these, but we have not done so at this time.
    Of course you can extend your API implementation to do this if you so wish.

    See also the related thread that you opened on this, and my reply there.

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



  • 15.  RE: "role" in relatedParty

    TM Forum Member
    Posted Jun 20, 2021 13:12
    Thank you Johathan!​

    ------------------------------
    Justin Yue
    Salesforce
    ------------------------------



  • 16.  RE: "role" in relatedParty

    TM Forum Member
    Posted Jun 21, 2021 08:02
    Hi Justin,

    The answer to your question lies in TMF630 Part Five which handles the "JSON Patch extension to manage arrays".
    The below example is a payload to add the above.

    [
    {
        "op": "add",
        "path": "/relatedParty",
        "value": {
            "id": "123",
            "name": "John Doe",
            "role": "Technical Contact",
            "@type": "RelatedParty",
            "@referedType": "Individual"
        }
    }
    ]

    ------------------------------
    Koen Peeters
    Ciminko Luxembourg
    ------------------------------



  • 17.  RE: "role" in relatedParty

    TM Forum Member
    Posted Jun 21, 2021 11:58
    Thank you!

    ------------------------------
    Justin Yue
    Salesforce
    ------------------------------



  • 18.  RE: "role" in relatedParty

    TM Forum Member
    Posted Dec 15, 2022 04:37
    Hi Jonathan.

    You mentioned two use cases for Related Party:

    "Related Party is intended to provide a reference to either a Party (RelatedParty.role will be blank) or a PartyRole (RelatedParty.role will have the name of the role)."

    I can see another one and I'm wondering if you think it's valid. If the Related Party references a Party ("@referredType" attribute has value "Party") and the role is not empty (e.g. "user", "contactPerson"), can we consider it a valid use case that describes the Party having a specific role in some system. A concrete example would be a Product in TMF 637 that can be associated with the many Parties via Related Party. In this scenario, each Party from TMF 632 can also be a "user" or "contactPerson" of a Product.

    Such an approach removes the need to update roles in that only have value in TMF 637. This comes into play especially when the Product is only referenced by the Quote (TMF 679) and is not necessarily going to be realized. In such cases we would need to add the role to the Party in TMF 669 and remove it in the case of the Quote rejection.

    Please advise. Thank you.


    ------------------------------
    Danijel zecevic.danijel@marand.si
    Marand, software ltd
    ------------------------------



  • 19.  RE: "role" in relatedParty

    TM Forum Member
    Posted Dec 15, 2022 07:26
    Hi Daniel

    I must admit that my initial statement was in error (it was 3 years ago, and I knew less then than I do now ...).

    It is more logical that the role property has meaning when the target is a Party, since in most cases we need to understand why the Party is related to our entity, and the role gives that information. This exactly fits your use case. If the target is a PartyRole, then the PartyRole itself may give this understanding, although not always.

    If the RelatedParty property name in our entity is specific (e.g. billingContact) and the property is scalar (not an array) then we probably don't need a value in the role property.

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



  • 20.  RE: "role" in relatedParty

    TM Forum Member
    Posted Dec 15, 2022 18:08
    Hello members,

    When I read the latest posts, I thought:
    Since a party may have many roles, thus, there is a PartyRole resource to provide manyToMany relationship between party and its possible roles. An additional role attribute on Party entity is meaningless to me.

    I have a few words I want to say about this. I tried to explain with examples.

    As you know, neither Party nor PartyRole resource has a role field. I needed to add the role attribute to the PartyRole entity for our billing system.
    Because it is required to define many party roles such as user, contact, billReceiver, billPayer etc. in the system, and all these roles are less popular than Customer and ServiceProvider roles and they are managed through  TMF669_Party_Role_Management_API.
    We have customized popular roles such as Customer, ServiceProvider by extending PartyRole (as subclasses). They have their own API endpoints. This specified popular resources also has the role attribute like others but it is less important.

    We create/read/update/delete the customer resource from both TMF629_Customer_Management and TMF669_Party_Role_Management_API. If I access the customer resource through TMF669, it is possible to distinguish customer data record from @type and @referredType fields and additionally role attibute is defined as 'customer'.
    // This is an example that shows the Customer Reference in another Resource as reletedParty attribute
    {...
    "relatedParty": [
                {
                    "@baseType": "RelatedParty",
                    "@referredType": "Customer",
                    "@type": "CustomerRef",
                    "href": null,
                    "id": 5454560513,
                    "name": "Demo Customer",
                    "role": "customer",
                    "status": "active"
                }
            ],
    ...
    }​​


    A request from PartyRoleManagment API:
    Note: This JSON annotation displays 3 different role of Party.id=21654 (see engagedParty node below).
    ServiceProvider is always assigned to all roles as related party, because of multi-tenancy.

    // JSON string trimmed to simplify
    [
    	{
    		"@type": "Customer",
    		"@baseType": "PartyRole",
    		"engagedParty": {
    			"@baseType": "PartyRef",
    			"@referredType": "Individual",
    			"@type": "IndividualRef",
    			"href": null,
    			"id": 21654,
    			"name": "Person Person",
    			"status": "initialized",
    			"type": "individual"
    		},
    		"href": "http://localhost:8004/partyRoleManagement/v4/partyRole/5454587051",
    		"id": 5454587051,
    		"name": "Person Person",
    		"relatedParty": [
    			{
    				"@baseType": "RelatedParty",
    				"@referredType": "ServiceProvider",
    				"@type": "ServiceProviderRef",
    				"href": null,
    				"id": 5454560513,
    				"name": "Demo CSP",
    				"role": "serviceProvider",
    				"status": "active"
    			}
    		],
    		"role": "customer",
    		"status": "active"
    	},
    	{
    		"@type": "PartyRole",
    		"engagedParty": {
    			"@baseType": "PartyRef",
    			"@referredType": "Individual",
    			"@type": "IndividualRef",
    			"href": null,
    			"id": 21654,
    			"name": "Person Person",
    			"status": "initialized",
    			"type": "individual"
    		},
    		"href": "http://localhost:8004/partyRoleManagement/v4/partyRole/5454587052",
    		"id": 5454587052,
    		"name": "Person Person",
    		"relatedParty": [
    			{
    				"@baseType": "RelatedParty",
    				"@referredType": "ServiceProvider",
    				"@type": "ServiceProviderRef",
    				"href": null,
    				"id": 5454560513,
    				"name": "Demo CSP",
    				"role": "serviceProvider",
    				"status": "active"
    			}
    		],
    		"role": "user",
    		"status": "active"
    	},
    	{
    		"@type": "PartyRole",
    		"engagedParty": {
    			"@baseType": "PartyRef",
    			"@referredType": "Individual",
    			"@type": "IndividualRef",
    			"href": null,
    			"id": 21654,
    			"name": "Person Person",
    			"status": "initialized",
    			"type": "individual"
    		},
    		"href": "http://localhost:8004/partyRoleManagement/v4/partyRole/5454587053",
    		"id": 5454587053,
    		"name": "Person Person",
    		"relatedParty": [
    			{
    				"@baseType": "RelatedParty",
    				"@referredType": "ServiceProvider",
    				"@type": "ServiceProviderRef",
    				"href": null,
    				"id": 5454560513,
    				"name": "Demo CSP",
    				"role": "serviceProvider",
    				"status": "active"
    			}
    		],
    		"role": "billPayer",
    		"status": "closed"
    	}
    ]


    Conclusion:
    #1- No need to define seperate API for user, billReceiver, billPayer and etc. The @type attribute is 'PartyRole' for all of them. At that point role atribute helps a lot.
    I don't understand why there is no role attribute in the Open API PartyRole swagger definition. It is a very important field for our solution.


    #2- I always use relatedParty as a reference to PartyRole resource, no needed to refere it to Party resource. Why not? Because, Party, its presence in the system must mean something to us. It gains its meaning by the role it is playing.
    -Party always need a playing role in the system. For example, if you are going to sell products, you need a customer party role. 

    #3- I do not recommend to use RelatedParty to provide a reference direcly to a Party. I think this is an unreasonable design and cause confusion.

    #4-  But, in very few places, we need to refere to the Party. In this case, we use PartyRef (IndividualRef and OrganizationRef). It is now more clear to us.
    Example:
    PartyRole has engagedParty attribute to indicate which Party does it belongs to. The confusion, I guess, always starts here because RelatedParty is used instead of PartyRef for engageParty assignment. But here we have simplified the logic by using PartyRef (OrganizationRef or IndividualRef) instead of RelatedParty. See the JSON example below and focus on engagedParty node.

    {
    	"@type": "Customer",
    	"@baseType": "PartyRole",
    	"engagedParty": {
    		"@baseType": "PartyRef",
    		"@referredType": "Individual",
    		"@type": "IndividualRef",
    		"href": null,
    		"id": 21654,
    		"name": "Person Person",
    		"status": "initialized",
    		"type": "individual"
    	},
    	"href": "http://localhost:8004/partyRoleManagement/v4/partyRole/5454587051",
    	"id": 5454587051,
    	"name": "Person Person",
    	"role": "customer",
    	"status": "active"
    }



    Thank you!


    ​​​​​

    ------------------------------
    Mustafa Yusufoglu
    i2i Systems
    ------------------------------



  • 21.  RE: "role" in relatedParty

    Posted Mar 01, 2023 23:35

    Apologies for dragging this issue back up...

    Can I presume that the role for a PartyRole resource is within the engagedParty sub-resource (role attribute) as per the examples in the TMF669 Party Role Management or by using the PartyRole sub-class name (through relatedParty @referredType)?

    Just want to clarify whether this has been formalised within Party Role Management for v5.0.0.

    Thanks!



    ------------------------------
    Dan d'Albuquerque
    TO BE VERIFIED
    ------------------------------



  • 22.  RE: "role" in relatedParty

    TM Forum Member
    Posted Apr 11, 2023 10:04

    Hi
    I'm working on the v5.0 version of TMF669 Party Role API. Today, the v5.0 draft swagger is like this.
    So :
    - partyRole has a mandatory role attribute
    - engagedParty is a oneOf : Party, PartyRef, PartyRole, PartyRoleRef
    - relatedParty has a role + partyOrPartyRole

    Hope it fits most needs, please tell me if it doesn't fit your needs, or any comment on it. I'm quite new on the topic so may not have catched all subtelties.



    ------------------------------
    olivier arnaud
    Orange
    ------------------------------



  • 23.  RE: "role" in relatedParty

    Posted Apr 11, 2023 14:42
    Edited by Ilyas Premji Apr 12, 2023 08:51

    Hi, Olivier!
    Thanks for the diagram!
    Please help me understand how the PartyRoleGroup grouping is supposed to be implemented, which is mentioned in SID GB922 (2.1.17. Figure P.06a – PartyRoleGroup)?



    ------------------------------
    Denis Okolin
    TO BE VERIFIED
    ------------------------------



  • 24.  RE: "role" in relatedParty

    TM Forum Member
    Posted Jun 09, 2023 09:55

    Hi @Denis Okolin

    do you have a business need for this PartyRoleGroup ? I mean : is it worth implementing this on the API ? or a specific extension for your needs could be enough ?

    thanks



    ------------------------------
    Olivier Arnaud
    Orange
    ------------------------------



  • 25.  RE: "role" in relatedParty

    TM Forum Member
    Posted Apr 11, 2023 15:57

    Hi,

    I believe the engagedParty should be oneOf: PartyRef, Individual, Organization
    It doesn't make sense that the engagedParty is another PartyRole.
    When the engagedParty is embedded it should no longer be a endefined Party but one of the defined subclasses Individual or Organization.

    Regards



    ------------------------------
    Koen Peeters
    OryxGateway
    ------------------------------



  • 26.  RE: "role" in relatedParty

    TM Forum Member
    Posted Apr 12, 2023 11:09

    Agree with Koen. I don't see reason why PartyRole should reference another PartyRole.
    Is it possible to have example of such relationship?
    Thanks.



    ------------------------------
    Igor Dubrovin
    Bell Canada
    ------------------------------



  • 27.  RE: "role" in relatedParty

    Posted Apr 11, 2023 22:35
    Edited by Dan d'Albuquerque Apr 11, 2023 22:36

    Hi Olivier
    I agree with your change to add role into the PartyRole entity.  This makes more sense than at the engagedParty level.
    For the engagedParty itself, I do not think that this should be PartyRole[Ref].  Presumably you added this as a result of the original v3/4 API that used RelatedParty type to represent this.
    Regarding Koen's reply indicating the embedded Party should be an Individual or Organisation, I noticed that other v5.0.0 specs used the RefOrValue pattern to support embedded resources.  When ByValue, they have used the @type, @baseType, @schemaLocation for the polymorphism (Individual/Organisation).  When ByRef, they have used @referredType.
    Thoughts?



    ------------------------------
    Dan d'Albuquerque
    TO BE VERIFIED
    ------------------------------



  • 28.  RE: "role" in relatedParty

    TM Forum Member
    Posted Apr 13, 2023 15:01

    I'm afraid that I don't agree with these changes:
    * There is NO need for a role in PartyRole - PartyRole is itself, as an entity, the role played by a Party. Especially in v5, when PartyRole points to a PartyRoleSpecification, that defines the role (Dealer, Partner, Employee, etc.)
    * The Party playing a PartyRole is the PartyRole.engagedParty. The type of this attribute must be PartyRef - as others have already pointed out above it does not make sense for an engagedParty to be itself a PartyRole. This was a mistake in v4 schemas and was approved for correction (as you will see in earlier items in this thread). 



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



  • 29.  RE: "role" in relatedParty

    Posted Apr 13, 2023 20:11

    Hi Jonathan
    Presumably the name field in the spec will define the Party Role in v5.  Was this (also) the original intention of the name field in the Party Role entity in pre v5?  



    ------------------------------
    Dan d'Albuquerque
    TO BE VERIFIED
    ------------------------------



  • 30.  RE: "role" in relatedParty

    TM Forum Member
    Posted Apr 14, 2023 06:01

    Hi thanks all for your feedbacks, I'll raise this to the team and come back with some answers hopefuly.



    ------------------------------
    olivier arnaud
    Orange
    ------------------------------



  • 31.  RE: "role" in relatedParty

    TM Forum Member
    Posted Apr 24, 2023 11:04

    Hi all
    current changes in v5 :
    - engagedParty is a PartyRef
    - role attribute is still there (optional), it can be used when there is no partyRoleSpecification (it's optional); but if there is a partyRoleSpecification valued then there should not be a role attribute valued
    - I think we have no time now to implement partyRoleGroup in v5.0 but if you think there is a need we can create a JIRA for this.



    ------------------------------
    Olivier Arnaud
    Orange
    ------------------------------



  • 32.  RE: "role" in relatedParty

    TM Forum Member
    Posted Apr 16, 2023 05:36

    To your questions, Dan, yes and yes



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



  • 33.  RE: "role" in relatedParty

    Posted Apr 25, 2023 01:28

    Also, One quick question/query on above, Can we have relatedParty within relatedParty. I mean its object array where we can define multiple related parties however can we have relatedParty under relatedParty as below: Is this valid structure to use in any  TMF Open API where ever applicable?

        "relatedParty": [
            {
                "id": "1001",
                "name": "DRT/Interxion",
                "role": "site-owner",
                "@type": "Organisation"
            },
            {
                "id": "2001",
                "name": "DRT/Interxion",
                "role": "site-supplier",
                "@type": "Organisation"
            },
            {
                "id": "89763",
                "name": "Verizon",
                "role": "p2a-aepl-gateway-supplier",
                "@type": "Organisation",
                "relatedParty": [
                    {
                        "id": "43763",
                        "name": "AlicesLocalTelco",
                        "role": "last-mile-gateway-supplier",
                        "@type": "Organisation"
                    },
                    {
                        "id": "59263",
                        "name": "BobsLocalTelco",
                        "role": "last-mile-gateway-supplier",
                        "@type": "Organisation"
                    }
                ]
            },
            {
                "id": "90801",
                "name": "ATT",
                "role": "p2a-evpl-gateway-supplier",
                "@type": "Organisation",
                "relatedParty": [
                    {
                        "id": "43763",
                        "name": "AlicesLocalTelco",
                        "role": "last-mile-gateway-supplier",
                        "@type": "Organisation"
                    }
                ]
            },
            {
                "id": "90901",
                "name": null,
                "role": "p2p-epl-gateway-supplier",
                "@type": "Organisation",
                "relatedParty": []
            }
        ],



    ------------------------------
    Mahesh Choudhari
    UNSPECIFIED
    ------------------------------



  • 34.  RE: "role" in relatedParty

    Posted Apr 25, 2023 01:57

    As far as I understand, relatedParty is an EntityRef (PartyRef or PartyRoleRef) and hence you need to use the @referredType (and not @type).

    As such, the RelatedParty itself cannot contain nested RelatedParty entities, however, an individual, organisation, customer, etc can have an array of RelatedParty too.



    ------------------------------
    Dan d'Albuquerque
    TO BE VERIFIED
    ------------------------------



  • 35.  RE: "role" in relatedParty

    Posted Apr 26, 2023 01:25

    Thanks Dan for clarification and for your inputs. 



    ------------------------------
    Mahesh Choudhari
    UNSPECIFIED
    ------------------------------



  • 36.  RE: "role" in relatedParty

    Posted Jun 01, 2023 22:36
    Edited by Dan d'Albuquerque Jun 02, 2023 02:54

    Hi Olivier

    Do you happen to have a resource representation for the PartyRoleSpecification resource?  I was wondering how you propose to support the permissionSpecificationSet association as below...

    Thanks!

    Or has the association been implemented like the above?

    ----



  • 37.  RE: "role" in relatedParty

    TM Forum Member
    Posted Jun 09, 2023 09:18

    Hi Dan, currently the latest draft is this one. But regarding your question I don't see differences between 2 models. They are both PartyRoleSpecification -> "0..*" PermissionSpecSet



    ------------------------------
    Olivier Arnaud
    Orange
    ------------------------------



  • 38.  RE: "role" in relatedParty

    Posted Jun 23, 2023 10:13

    Hi Olivier,

    We were checking the similar scenarios and wondering if that is something that can be implemented via Party Role. The scenario is to create the Party Role "B2B_customers" just as an entity without any engaged party in party role definition, then for every created B2B customer organization make relatedParty connection to the "B2B_customers" partyRole. We would create then related party with this PartyRole "B2B_customers" on a service catalog (TMF633) which contains for example B2B related service categories. These relations can be later used for example during ordering process for validation if party is eligible to order specific service category. I'm not sure if this looks like abuse of PartyRole or this is good way to make relations like this

    Thanks

    Dusko



    ------------------------------
    Dusko Duric
    VodafoneZiggo
    ------------------------------



  • 39.  RE: "role" in relatedParty

    TM Forum Member
    Posted Aug 22, 2023 12:35

    Hi @Dusko Duric 

    sorry for late answer. In my understanding, you must have a Party (engagedParty) when creating a PartyRole, you should not create PartyRole without engagedParty because it has no sense (for me) to give a role to nobody. For your need you can create a B2B PartyRoleSpecification, and you create ParyRole for each Party when useful, with B2B PartyRoleSpecification. Maybe easier to manage.

    Olivier



    ------------------------------
    Olivier Arnaud
    Orange
    ------------------------------



  • 40.  RE: "role" in relatedParty

    Posted Oct 11, 2023 22:35

    Hi All

    For v5, the role in relatedParty is mandatory, irrespective of whether the relatedParty is a PartyRef or PartyRoleRef.  Does this imply that the name in the PartyRole entity is now the engaged party name and that the relatedParty role attribute represents either the PartyRoleSpec name field or the optional role field (based on usage of the Party Role Spec or not)?

    Dan



    ------------------------------
    Dan d'Albuquerque
    Individual
    ------------------------------



  • 41.  RE: "role" in relatedParty

    TM Forum Member
    Posted Oct 17, 2023 08:05

    Hi @Dan d'Albuquerque

    not sure that I understood.

    For me the name of a PartyRole ("Olivier as an employee") may be different from its engagedParty name ("Olivier").

    For me relatedParty.role attribute is the role played by the PartyRole regarding the base Entity (Entity.relatedParty). So it may or not have the same meaning as the PartyRole.role, this depends on use cases ?

    Happy to have your feedback.

    Olivier



    ------------------------------
    Olivier Arnaud
    Orange
    ------------------------------



  • 42.  RE: "role" in relatedParty

    Posted Oct 18, 2023 03:06

    Thanks for clarifying that Olivier.  Makes perfect sense to me.

    Presumably the PartyRole.role attribute is still optional and depends on whether PartyRoleSpec exists or not?



    ------------------------------
    Dan d'Albuquerque
    Individual
    ------------------------------



  • 43.  RE: "role" in relatedParty

    TM Forum Member
    Posted Oct 18, 2023 05:58

    Hi,

    I would like to give my 2 cents on PartyRoles and roles in RelatedParty.

    I PartyRole defines the role that a Party plays in relation to the CSP: SalesLead (in contact with Marketing), SalesOpportunity (in contact with the Sales), Customer (has existing agreement), Partner, Employee.

    The role in RelatedParty is there define roles related to another object.

    e.g. an Individual (John Doe) is a Customer (customer.name= C12345, customer.engagedParty=John Doe)

    The customer partyRole exists because of the need to document addtional information for a customer: BillingAccount, FinancialAccount, Agreements, Products, ...

    another Individual (Mary Doe) is an Employee(partyRole.name= E017, partyRole.engagedParty=Mary Doe)

    This PartyRole exists because of the need to document additional information for HR but maybe also Skills, Security Clearance, ...

    If Mary Doe is the AccountManager of John Doe, this can be modelled as a relatedParty on customer with role "AccountManager". AccountManager is a role this relation between two PartyRole Customer and an Employee, it describes why both entities are related. Any additional attributes will belong to either the Customer or the Employee PartyRole.

    I hope this helps to understand the different role concepts



    ------------------------------
    Koen Peeters
    OryxGateway FZ LLC
    ------------------------------



  • 44.  RE: "role" in relatedParty

    Posted Oct 19, 2023 00:28

    Thanks Koen.  Very helpful illustration.



    ------------------------------
    Dan d'Albuquerque
    Individual
    ------------------------------