Currently working my way through Addison Wesley's Development with the Force.com Platform; having a problem on page 90.

I've created all the requisite sObjects and profiles, as described in the book.

"Resource" is a custom sObject. On "Resource" there is a picklist field for "Region" with possible values "East", "West", and "Central".

"Project" is another custom object; it is related to "Resource" by a third custom object, a junction object ("Assignment"), for which these two sObjects are stored in Master-Detail fields.

For Jane Grey's Resource record, the value of "Region" is "West". The owner of this record is "Carrie Oakey", who is the "Vice President" (custom Profile, cloned from "Salesforce Platform") of the "West" (Role, sits under "Executive", parallel to "Central" and "East"). By default, there are two sharing rules: (1) The owner has full access; and (2) Other Users with the "West" Role have "Read/Write" access [because of a custom object sharing rule]. I have manually created the 3rd sharing rule on Jane's Resource record that Users with the "Central" Role should also have "Read Only" access.

Now, I log in with "Barry Cade", the Staffing Coordinator (custom Profile, also cloned from Salesforce Platform; has "Read, Create, Edit, Delete" object permissions for "Assignments", "Projects", and "Resources") of "Central" (role).

I attempt to assign "Jane Grey" as a Resource to Project "XYZ", but I get this error:

Insufficient Privileges You do not have the level of access necessary to perform the operation you requested. Please contact the owner of the record or your administrator if access is necessary.

Barry can successfully read Jane's record. Barry can successfully create Assignment records when [some] other values fill the "Resource" field. The System Administrator can successfully store "Jane" in the "Resource" field.

Any ideas what I have done wrong or forgotten to do?

  • Not everyone will be familiar with that text. Can you explain which objects you're using, provide the sharing rule, and double-check the Staffing Coordinator profile. It might be missing access to the child object.
    – Mike Chale
    May 2, 2013 at 13:32
  • @MikeChale, I've added a bit more detail: I hope this explains the problem better. I have checked the Staffing Coordinator profile and it seemingly has access to the seemingly relevant sObjects: if the issue is with these permissions, I'm not aware even that it needs to be modified. May 2, 2013 at 14:51
  • Please post the ISBN for the book, since it might be of use. Appears it's ISBN-13: 978-0321949165, thought that's just a guess. This appears to be the publisher page for the book, but there's no errata section.
    – blunders
    Apr 27, 2014 at 22:47

2 Answers 2


Check the Sharing Setting attribute on the definition of the two Master-Detail fields on your Assignment object, but especially the relationship to Resource. Because detail objects in Master-Detail relationships inherit ownership from the Parent, you can specify whether Read or Read/Write on the parent object(s) is required to create a detail object. I suspect you have the Sharing Setting at Read/Write on at least the Resource M-D field, and if you change it to Read, you should be able to create the junction object record with that profile.

More details about junction objects and M-D properties in Salesforce Help.


I think the problem is your third sharing rule on the Resource object, granting just Read access. Try setting it to Read/write.

  • I think the point of the exercise is that the staffing coordinator should be able to give the shared Resource assignments without being able to actually modify Resources belonging to other regions. Is that asking too much? May 2, 2013 at 15:18

You must log in to answer this question.

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