CRM 4 – Revoke Access


Citando uma outra aplicação da ótima solução encontrada por Alberto Gemin, criarei este post, na verdade irei comentar o RevokeAccess (remover o acesso de registros compartilhados).

Pois em alguns momentos necessitamos compartilhar registros no CRM, porém o momento da remoção sempre é complicado, as vezes desejamos remover a permissão de usuário/equipe A, mas do usuário/equipe B não, ou ainda gerir este nível de permissão programaticamente, ou seja, através de codificação seja em uma importação de dados ou outra utilização.

Para remover acesso a um registro, necessitamos de dois métodos:

// Retorna uma lista contendo todos os objetos relacionados ao registro informado
private PrincipalAccess[] GetPrincipals()
{
    TargetOwnedDynamic target = new TargetOwnedDynamic();
    target.EntityName = NOME_ENTIDADE;
    target.EntityId = ID_DO_REGISTRO_QUE_DESEJA_REMOVER_O_COMPARTILHAMENTO;

    RetrieveSharedPrincipalsAndAccessRequest retrieve = new RetrieveSharedPrincipalsAndAccessRequest();
    retrieve.Target = target;
    RetrieveSharedPrincipalsAndAccessResponse retrieved = (RetrieveSharedPrincipalsAndAccessResponse)SEU_WEB_SERVICE.Execute(retrieve);

    return retrieved.PrincipalAccesses;
}

// Remove todos os objetos relacionados ao registro informado
// ***Aqui poderiamos inserir qualquer regra de negócio desejada***
private void RemovePrincipals(PrincipalAccess[] principals)
{
    TargetOwnedDynamic target = new TargetOwnedDynamic();
    target.EntityName = NOME_ENTIDADE;
    target.EntityId = ID_DO_REGISTRO_QUE_DESEJA_REMOVER_O_COMPARTILHAMENTO;

    RevokeAccessRequest request = new RevokeAccessRequest();
    request.Target = target;
    foreach (PrincipalAccess principal in principals)
    {
        request.Revokee = principal.Principal;
        RevokeAccessResponse response = (RevokeAccessResponse)SEU_WEB_SERVICE.Execute(request);
    }
}

Com isso em mãos podemos realizar diversas funcionalidades, criando plugins e workflows customizados com ótimo controle as permissões.

Vale a dica…

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s

Este site utiliza o Akismet para reduzir spam. Saiba como seus dados em comentários são processados.