Como compartilhar um recorde no MS Dynamics CRM usando o fluxo de trabalho
-
10-07-2019 - |
Pergunta
Eu gostaria de fazer o seguinte:
Quando um vendedor atribui uma entidade personalizada (vamos chamá -lo de 'experiência primária') a uma oportunidade no MS CRM 4.0, o sistema compartilharia a oportunidade com o usuário definido como o proprietário do registro de 'experiência primária' associada.
Eu gostaria de fazê -lo automaticamente via fluxo de trabalho, mas não consigo encontrar a etapa do fluxo de trabalho que conseguiria isso. Sim, e eu li em alguns fóruns que ainda não é possível, apenas por meio de uma montagem .NET.
Experiência, alguém?
Solução
Correto, só é possível via montagem .NET. No entanto, você poderia (se você usar o CRM 4) fazer com que o fluxo de trabalho altere o proprietário para o proprietário da atividade e use o compartilhamento com a opção de proprietário anterior para permitir que o antigo proprietário tenha acesso à sua entidade personalizada?
Outras dicas
Experimente isso:
É possível apenas invocando a atividade de fluxo de trabalho personalizado. Dentro da atividade de fluxo de trabalho personalizado, você pode invocar GrantAccessRequest e GrantAccessResponse Configurando o PrincipalAccess objeto.
Por favor, consulte isso "Compartilhamento de objeto"Seção para obter detalhes.
Se você decidir ir com o plug -in personalizado, seu código poderá ficar assim:
var rights = AccessRights.ReadAccess | AccessRights.WriteAccess;
var principalAccess = new PrincipalAccess
{
// Gives the principal read write access
AccessMask = rights,
// Set the PrincipalAccess Object's Properties
Principal = sharingTarget.Key
};
// Create the Request Object
var grantAcessRequest = new GrantAccessRequest();
// Set the Request Object's properties
grantAcessRequest.PrincipalAccess = principalAccess;
// Set the Target. In my case it is account record
var entityReference = new EntityReference(localContext.PluginExecutionContext.PrimaryEntityName,
localContext.PluginExecutionContext.PrimaryEntityId);
//throw new InvalidPluginExecutionException("EntityReference");
grantAcessRequest.Target = entityReference;
// Execute the Request
localContext.OrganizationService.Execute(grantAcessRequest);