Comment partager un enregistrement dans MS Dynamics CRM à l'aide d'un flux de travail
-
10-07-2019 - |
Question
Je voudrais faire ce qui suit:
quand un commercial attribue une entité personnalisée (appelons-la "expertise principale") à une opportunité dans MS CRM 4.0, le système partage cette opportunité avec l'utilisateur défini comme le propriétaire de "l'expertise principale" associée. enregistrement.
J'aimerais le faire automatiquement via le flux de travail, mais je ne trouve pas l'étape de flux de travail qui permettrait d'accomplir cela. Oui, et j'ai lu sur certains forums que ce n'était pas encore possible, uniquement via un assemblage .NET.
Expérience, ça vous tente?
La solution
Correct, cela n’est possible que via l’assemblage .NET. Cependant, vous pourriez (Si vous utilisez CRM 4) demander au workflow de changer le propriétaire en propriétaire de l’activité et d’utiliser l’option Partager avec le propriétaire précédent pour permettre à l’ancien propriétaire d’accéder à votre entité personnalisée?
Autres conseils
Essayez ceci:
Cela est possible uniquement en appelant une activité de flux de travail personnalisée. Dans l'activité de flux de travail personnalisé, vous pouvez appeler GrantAccessRequest et GrantAccessResponse en configurant l'objet PrincipalAccess .
Veuillez vous reporter à cet objet de partage " section pour plus de détails.
Si vous décidez d'utiliser un plugin personnalisé, votre code pourrait ressembler à ceci:
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);