Sometimes, we need to query a record. Who was it shared with? What do you do?
The first approach: the way of SQL
SELECT * from principalobjectaccess where objectid = ' 522626b1-d10c-e411-80ff-00155d002f02 '
Select U.fullname,sup. Systemuserid,poa. Objectid,accessrightsmask
From Principalobjectaccess POA Inner
Join Systemuserprincipals sup on POA. Principalid = sup. Principalid
INNER JOIN SystemUserBase U
on SUP. Systemuserid=u.systemuserid
where
(POA. Accessrightsmask | Poa. Inheritedaccessrightsmask) & 1) =1
and POA. Objectid= ' 522626b1-d10c-e411-80ff-00155d002f02 '
Another way is to run the request:
EntityReference target = new EntityReference ();
Target. Id = new Guid ("522626b1-d10c-e411-80ff-00155d002f02");
Target. LogicalName = "New_pr_detail_gather";
Retrievesharedprincipalsandaccessrequest sharerequest = new Retrievesharedprincipalsandaccessrequest ();
Sharerequest.target = Target;
Retrievesharedprincipalsandaccessresponse Shareresponse =
(retrievesharedprincipalsandaccessresponse) service. Execute (sharerequest);
if (shareresponse.principalaccesses! = null)
{
foreach (principalaccess pa in shareresponse.principalaccesses)
{
System.Console.WriteLine ("AccessMask:" + pa. AccessMask);
System.Console.WriteLine ("Id:" + pa.) Principal.id + ", LogicalName:" + pa. Principal.logicalname);
}
}
Watermark/2/text/ahr0cdovl2jsb2cuy3nkbi5uzxqvev9mmtiz/font/5a6l5l2t/fontsize/400/fill/i0jbqkfcma==/dissolve/70 /gravity/southeast ">
CRM query record sharing to WHO