简体   繁体   English

如何在CRM 365中共享记录

[英]How to share record in CRM 365

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. 我的代码刚刚结束,我从传输请求中获得了管理员,然后我不知道如何将请求共享给我的用户。

You have to use GrantAccessRequest to do this. 您必须使用GrantAccessRequest来执行此操作。

// 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 阅读更多

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM