Workflow 如何使用工作流在MS Dynamics CRM中共享记录

Workflow 如何使用工作流在MS Dynamics CRM中共享记录,workflow,dynamics-crm,crm,microsoft-dynamics,Workflow,Dynamics Crm,Crm,Microsoft Dynamics,我想做以下工作: 当销售人员在MS CRM 4.0中将自定义实体(我们称之为“主要专业技能”)分配给Opportunity时,系统将与定义为关联“主要专业技能”记录所有者的用户共享该Opportunity 我想通过工作流自动完成这项工作,但找不到可以完成这项工作的工作流步骤。是的,我在一些论坛上读到这实际上还不可能,只有通过.NET程序集 经验,任何人?正确,只有通过.NET程序集才能实现。但是,您可以(如果使用CRM 4)让工作流将活动的所有者更改为活动的所有者,并使用“与以前的所有者共享”选

我想做以下工作:

当销售人员在MS CRM 4.0中将自定义实体(我们称之为“主要专业技能”)分配给Opportunity时,系统将与定义为关联“主要专业技能”记录所有者的用户共享该Opportunity

我想通过工作流自动完成这项工作,但找不到可以完成这项工作的工作流步骤。是的,我在一些论坛上读到这实际上还不可能,只有通过.NET程序集


经验,任何人?

正确,只有通过.NET程序集才能实现。但是,您可以(如果使用CRM 4)让工作流将活动的所有者更改为活动的所有者,并使用“与以前的所有者共享”选项启用旧所有者对自定义实体的访问权限?

尝试以下操作:


只有通过调用自定义工作流活动才能实现。在自定义工作流活动中,可以通过配置对象来调用


有关详细信息,请参阅“”部分。

如果您决定使用自定义插件,您的代码可能如下所示:

var rights=AccessRights.ReadAccess | AccessRights.WriteAccess;
var principalAccess=新principalAccess
{
//为主体提供读写访问权限
访问掩码=权限,
//设置PrincipalAccess对象的属性
Principal=sharingTarget.Key
};
//创建请求对象
var GrantAccessRequest=新的GrantAccessRequest();
//设置请求对象的属性
grantAcessRequest.PrincipalAccess=PrincipalAccess;
//设定目标。就我而言,这是账户记录
var entityReference=new entityReference(localContext.PluginExecutionContext.PrimaryEntityName,
localContext.PluginExecutionContext.PrimaryEntityId);
//抛出新的InvalidPlugineExecutionException(“EntityReference”);
grantAcessRequest.Target=entityReference;
//执行请求
localContext.OrganizationService.Execute(grantAcessRequest);