Come condividere un record in MS Dynamics CRM usando il flusso di lavoro
-
10-07-2019 - |
Domanda
Vorrei fare quanto segue:
quando un addetto alle vendite assegna un'entità personalizzata (chiamiamola "Competenza primaria") a un'opportunità in MS CRM 4.0, il sistema condividerebbe l'opportunità con l'utente definito come proprietario della "competenza primaria" associata record.
Vorrei farlo automaticamente tramite flusso di lavoro ma non riesco a trovare il passaggio del flusso di lavoro che lo farebbe. Sì, e ho letto su alcuni forum che in realtà non è ancora possibile, solo tramite un assembly .NET.
Esperienza, chiunque?
Soluzione
Corretto, è possibile solo tramite assembly .NET. Tuttavia, è possibile (se si utilizza CRM 4) far sì che il flusso di lavoro cambi il proprietario in proprietario dell'attività e utilizzare l'opzione condividi con proprietario precedente per abilitare l'accesso del proprietario precedente all'entità personalizzata?
Altri suggerimenti
Prova questo:
È possibile solo invocando l'attività del flusso di lavoro personalizzata. All'interno dell'attività del flusso di lavoro personalizzata, è possibile richiamare GrantAccessRequest e GrantAccessResponse configurando l'oggetto PrincipalAccess .
Fai riferimento a questo " Oggetto di condivisione " sezione per i dettagli.
Se deciderai di utilizzare un plug-in personalizzato, il tuo codice potrebbe apparire così:
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);