1

Issue

I have a detail object "License" that functions as a junction object between "Software product" and "Account". "Software product" and "Account" are in a many-to-many relationship. Therefore as indicated on this salesforce page I used "License" with two master-detail relationships to couple the two. This makes sense as a license should be deleted when the software product is deleted or when the account is deleted (as licenses are account specific).

I have an external customer community plus user that should be able to see all licenses connected to his account. How can I make the customer community plus user see all licenses?

Settings

  • The organization wide default external sharing settings are set to Private for account & software product. For License they are set to "controlled by parent" as this is obligatory for detail objects.
  • The customer community plus user has a profile that can read accounts and read/write to license objects

Research

I tried using a sharing set but this is not possible for detail objects. The license object does not appear in the list of objects. Sharing rules are also not available for detail objects. I don't know any other way of sharing this object then a sharing set/sharing rules.

I still tried to use a sharing set to share the account of the user with the user again (thinking that as the sharing settings for licenses are set to controlled by parent this might help), to no avail. The licenses remain invisible to the user.

2
  • You're saying "the licenses remain invisible to the user" (i.e. licenses that belong to an Account and a Software Product the user has access to). But the user can see the Licenses List View? If you as the admin bookmark the link to a License the user should have access to, log on as this user and then access the bookmarked License page - what do you see? Commented Dec 30, 2021 at 22:23
  • In fact the OWD external sharing settings are private for account & software product. Since the contact is related to the account, it does have access to the account, but not to the software product. I guess that's the issue that Cheng mentioned. The user may have read access to the software product, but only if there's a license for the software product in the account (& how to do that?). At the same time the user needs write access on a certain field on the license object, but never write on the software product object. With Chengs answer I think what I want to do is impossible.
    – ThaNoob
    Commented Dec 31, 2021 at 7:36

1 Answer 1

1

Sharing is controlled by both parent objects of a junction object. See documentation

Sharing access to a junction object record is determined by a user's sharing access to both associated master records and the Sharing Setting option on the relationship field.

Either you have to set Public Read-Only on Software Product for external users, or you'll have to build automation to create/delete manual sharing rules on software product records as needed for each account's community user role.

1
  • I think this is indeed the problem. When I changed the software product to public read only then the license object was available. I'll accept this as a solution.
    – ThaNoob
    Commented Dec 31, 2021 at 8:12

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .