Как поделиться записью в MS Dynamics CRM, используя рабочий процесс

StackOverflow https://stackoverflow.com/questions/314165

Вопрос

Я хотел бы сделать следующее:

когда специалист по продажам назначает пользовательский объект (назовем его «Первичная экспертиза») Возможности в MS CRM 4.0, система делится этой возможностью с пользователем, который определен как Владелец связанной «Первичной экспертизы» запись.

Я хотел бы сделать это автоматически через рабочий процесс, но не могу найти шаг рабочего процесса, который бы это сделал. Да, и я читал на некоторых форумах, что на самом деле это пока невозможно, только через сборку .NET.

Опыт, кто-нибудь?

Это было полезно?

Решение

Правильно, это возможно только через сборку .NET. Однако вы можете (если вы используете CRM 4) изменить рабочий процесс на владельца операции и использовать опцию «Поделиться с предыдущим владельцем», чтобы разрешить старому владельцу доступ к вашей пользовательской сущности?

Другие советы

Попробуйте это:

http://crm40sharestep.codeplex.com

Это возможно только при активизации пользовательской активности рабочего процесса Внутри настраиваемого рабочего процесса вы можете вызвать GrantAccessRequest и GrantAccessResponse , настроив объект PrincipalAccess .

Пожалуйста, ознакомьтесь с этим " общим объектом " раздел для деталей.

Если вы решите использовать собственный плагин, ваш код может выглядеть следующим образом:

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);
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top