How to share record in CRM 365

烂漫一生 提交于 2019-12-24 20:30:25

问题


I want to share my record when several condition is fulfilled, can I do that with plugin? I have request transfer record I want to share, so when request transfer status is submited I will share the record to user that I get from warehouse in my request transfer field. Can I do that with plugin?

if (context.InputParameters.Contains("Target") && context.InputParameters["Target"] is Entity)
{
  if(context.MessageName.ToUpper() == "UPDATE")
  {
    int requestStatus = transferImage.GetAttributeValue<OptionSetValue>("mjt_request_status").Value;
    if(requestStatus == 2)
    {
      EntityReference warehouse = transferImage.GetAttributeValue<EntityReference>("mjt_request_to ");

      ColumnSet columnSet = new ColumnSet(true);
      var warehouses = service.Retrieve("msdyn_warehouse ", warehouse.Id, columnSet);

      if (warehouses.Attributes.ContainsKey("mjt_administrator"))
      {
        adminstrator = warehouses.GetAttributeValue<EntityReference>("mjt_administrator");
      }

      if(adminstrator != null)
      {
      }

    }
  }
}

My code is just ended where I get the adminstrator from transfer request, and then I have no idea how to share the request to my user.


回答1:


You have to use GrantAccessRequest to do this.

// Grant the user read access to the record.
var grantAccessRequest1 = new GrantAccessRequest
{
    PrincipalAccess = new PrincipalAccess
    {
        AccessMask = AccessRights.ReadAccess,
        Principal = adminstrator
    },
    Target = transferReference
};

serviceProxy.Execute(grantAccessRequest1);

Read more



来源:https://stackoverflow.com/questions/51855755/how-to-share-record-in-crm-365

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!