Pregunta

Me gustaría hacer lo siguiente:

cuando un vendedor asigna una entidad personalizada (llamémosla 'Experiencia principal') a una Oportunidad en MS CRM 4.0, el sistema compartiría la Oportunidad con el usuario que se define como el Propietario de la 'Experiencia principal' asociada grabar.

Me gustaría hacerlo automáticamente a través del flujo de trabajo, pero no puedo encontrar el paso del flujo de trabajo que lo lograría. Sí, y leí en algunos foros que todavía no es posible, solo a través de un ensamblado .NET.

¿Experiencia, alguien?

¿Fue útil?

Solución

Correcto, solo es posible a través del ensamblado .NET. Sin embargo, ¿podría (si usa CRM 4) hacer que el flujo de trabajo cambie el propietario al propietario de la actividad y use la opción compartir con el propietario anterior para permitir que el propietario anterior acceda a su entidad personalizada?

Otros consejos

Solo es posible invocando actividad de flujo de trabajo personalizada. Dentro de la actividad de flujo de trabajo personalizado, puede invocar GrantAccessRequest y GrantAccessResponse configurando el objeto PrincipalAccess .

Consulte este " Compartir objeto " sección para más detalles.

Si decide utilizar un complemento personalizado, su código podría verse así:

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);
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top