Alterações Permissões de Documentos Sob Workflows

Quando um workflow está sendo executado sobre um documento, qualquer usuário com permissão pode fazer altearções nele. Mas em alguns cenários é importante que o documento seja mantido intacto enquanto a aprovação estiver sendo feita. Imagine que você tem um workflow que possui algumas aprovações, como aprovação pelo gerente e pelo diretor. Enquanto a tarefa estiver pendente para eles, somente eles podem alterar o documento. Evitando que eles aprovem algum documento que foi alterado.

A engine do workflow permite que este comportamento seja feito, então conforme o estágio que o workflow estiver, ele irá alterar as permissões do documento automaticamente, garantindo a integridade das informações.

Neste post veremos como utilizar atividades do workflows para implementar este comportamento.

No exemplo deste post vou utilizar o SharePoint 2013 e criar um workflow com engine do SharePoint 2010, o que significa que irá funcionar no SharePoint 2010 também.

A atividade de alteração de permissões do documento não existe no engine 2013, mas para isso você pode fazer um fluxo auxiliar utilizando o engine 2010, como mostrei recentemente no post SharePoint 2013 Workflows: Engine 2010 versus Engine 2013.

O nosso case é bem simples, vamos fazer um workflow com dois estágios onde o primeiro será uma tarefa para o gerente aprovar e o outro para o diretor. A diferença é que apenas o gerente e o diretor poderão alterar o documento, em seus respectivos momentos (enquanto a tarefa estiver pendente).

Para iniciar criei um workflow de lista com o engine 2010 apontando para uma biblioteca de documentos qualquer, como mostra a imagem 01.

PermissionWF01

Imagem 01: Criando o workflow com engine do SharePoint 2010

 

Posicione o cursos acima do passo padrão “Step 1”, depois clique em “Impersonation Step” para adicioná-lo. Se o cursor não estiver posicionado no local correto, a opção “Impersonation Step” não estará habilitado. A imagem 02 mostra a tela, repare nas flechas. Um “Impersonation Step” é um passo que é executado com as permissões do usuário que fez a publicação do Workflow, o que geralmente é um usuário com nível elevado de acesso no site. Isso é fundamental porque um usuário colaborador não vai ter privilégios para alterar as permissões do documento. Então, rodando com um usuário com acesso, o workflow consegue realizar esta operação.

PermissionWF02

Imagem 03: Adicionando um impersonation step

 

Ao colocar o cursor dentro do “Impersonation Step” repare que novas atividades será exibidas na opção “Actions”. Selecione a atividade “Substituir Permissões dos Item de Lista”, conforme a imagem 04. Além dessa existem várias outras, mas para o nosso case esta é suficiente.

PermissionWF03

Imagem 04: Adicionando a atividade para substrituir as permissões do item

 

Para configurar a atividade de substituir permissões, clique em “estas permissões” e a janela para configuração será exibida, conforme imagem 05. Clique em “Add…” para adicionar permissões aos usuários. É possível adicionar vários usuários, como por exemplo o dono da tarefa e um grupo de adminsitradores.

PermissionWF04

Imagem 05: Configurando as permissões do item

 

A imagem 06 mostra a tela para adicionar as permissões, selecione o usuário e o nível de permissão. Aqui estão sendo exibidos todos os níveis do acesso do site, repare que existe inclusive um tipo chamado “Colaboração sem exclusão”, que é um tipo de permissão customizado. Considere utilizar níveis assim para evitar que o usuário atual do workflow exclua o documento.

PermissionWF05

Imagem 06: Adicionando permissão para um usuário

 

E por fim, configurar qual o item que receberá as permissões. No nosso caso o item corrente, conforme a imagem 07.

PermissionWF06

Imagem 07: Configurando o objeto que irá receber as permissões

 

Neste ponto a atividade de substituição das permissões está pronta. Depois disso coloquei um passo chamado “Aprovação Gerente” e uma tarefa para o gerente aprovar, conforme mostra a imagem 08. Após isso fiz o mesmo processo só que para o diretor conforme o case definido. Também fiz as demais configurações no workflow, como fazer com que ele inicie automaticamente e publiquei-o.

PermissionWF07

Imagem 08: Finalizando o workflow

 

Com o workflow publicado, acessei a biblioteca “Documentos” e adicionei um documento qualquer. Na coluna do workflow podemos ver que ele está em andamento, conforme a imagem 09. Sendo assim, se acessarmos as permissões do documento neste momento, ele estará apenas com as permissões para o gerente poder alterá-lo.

PermissionWF08

Imagem 09: Worklow em andamento

 

Selecione o item e clique no menu contextual, na opção “Gerenciar Permissões”, conforme a imagem 10.

PermissionWF09

Imagem 10: Verificando as permissões do documento

 

Verifique na imagem 11 que apenas o usuáro Eleriane, que é o Gerente, possui acesso de colaboração. Sendo assim, concluímos que está passou ocorreu com sucesso. Os demais usuários estão apenas com acesso limitado, o que não vai possibilitar nem o acesso ao documento. Poderia ter sido configurado para os usuários terem acesso de leitura, mas para simplificar foquei só no gerente.

PermissionWF10

Imagem 11: Verificando as permissões do gerente

 

O workflow foi acessado pelo gerente a a tarefa dele foi concluída. O fluxo seguiu para a aprovação do diretor e agora apenas a permissão de colaboração dele deve existir. A imagem 12 mostra que apenas o Fabian , que é o Diretor, tem acesso de colaboração, o restante apenas de acesso limitado. Sendo assim conseguimos validar as 2 etapas do workflow.

PermissionWF11

Imagem 12: Verificando as permissões do diretor

 

Neste post vimos como podemos simplificar o gerenciamento de documentos que estão sob workflow qualquer, fazendo com que somente os usuários que estão realizando tarefas no processo  tenham acesso ao documento . Desta forma evita-se que o documento seja alterado após a aprovação do gerente, por exemplo. O melhor de tudo é que essa lógica está dentro do próprio workflow, o que facilita bastante o trabalho de quem estiver automatizando este processo.

A ideia deste post saiu de uma discussão com os amigos Ednei Monteiro e Juan Alberich, muito obrigado pela inspiração e pelas ideias trocadas.

Anúncios

8 Respostas to “Alterações Permissões de Documentos Sob Workflows”

  1. Gabriel Homem Correa Says:

    Fabian,

    Boa Tarde,

    Sei site é ótimo para quem quer aprender um pouco de Sharepoint, estou com um problema e gostaria da sua ajuda, preciso fazer um workflow que altere as permissões de listas, o icone Etapa de Representação já está ativo, seleciono a opção e quando clico no botão ações não relaciona para min a opção de substituir permissões do documento ou lista.

    Sabe o que pode estar acontecendo?

    Obrigado e grande abvraço

    • Fabian André Gehrke Says:

      Gabriel,
      Você está fazendo esse workflow com que usuário? Q níveis de permissão ele tem? Tente fazer o workflow com um usuário mais “poderoso” e veja se resolve.

      • Gabriel Homem Correa (STEAG Energy Services do Brasil) Says:

        André

        Obrigado pelo retorno,

        O erro está acontecendo quando o usuário tenta enviar o documento para uma outra biblioteca através de wworkflow, porém esse usuário não pode ter acesso a essa biblioteca que o documento está sendo enviado.

        Pode ser o problema?

        Atenciosamente
        Best Regards

        Gabriel Homem Corrêa
        Coordenador de TI
        Phone +55 (21) 3546 8601
        Mobile +55 (21) 99123 1677 (21) 979151364
        gabriel.homem@steag.com.br

        STEAG Energy Services do Brasil Ltda.
        Av. Rio Branco, 109 20º andar
        Centro – Rio de Janeiro – RJ
        CEP: 20040-004
        http://www.steag.com.br
        This e-mail may contain confidential and/or privileged information. If you are not the intended recipient (or have received this e-mail in error) please notify the sender immediately and destroy this e-mail. Any unauthorised copying, disclosure or distribution of the material in this e-mail is strictly forbidden.

  2. Gabriel Homem Corrêa Says:

    Prezado Fábian

    Estou com um problema, só consigo fazer o workflow funcionar se logado com o usuário proprietário do site, se logo com outro usuário mesmo com permissão de colaboração o workflow não funciona…

    Tem como me dar uma luz?

    • Fabian André Gehrke Says:

      Gabriel,

      O que exatamente o seu workflow faz? Em qual parte dá erro?

      • Gabriel Homem Correa (STEAG Energy Services do Brasil) Says:

        Meu cenário!

        Tenho duas bibliotecas,

        Documentos recebidos
        Documentos liberados

        Usuário joão faz upload de documentos na bibliotéca “Documentos Recebidos”, esse documento passa por análise e aprovações, logo ele tem de ser enviado para biblioteca de Documentos Liberados, porém o usuário que faz o upload não pode ter acesso a essa nova biblioteca, ele não pode enxergar mesma.

        Penso que para o workflow dar continuidade e enviar o documento para a biblioteca de Documentos Liberador o usuário que envia deve ter permissões nessa biblioteca certo?

        Obrigado mais uma vez!

        Atenciosamente
        Best Regards

        Gabriel Homem Corrêa
        Coordenador de TI
        Phone +55 (21) 3546 8601
        Mobile +55 (21) 99123 1677 (21) 979151364
        gabriel.homem@steag.com.br

        STEAG Energy Services do Brasil Ltda.
        Av. Rio Branco, 109 20º andar
        Centro – Rio de Janeiro – RJ
        CEP: 20040-004
        http://www.steag.com.br
        This e-mail may contain confidential and/or privileged information. If you are not the intended recipient (or have received this e-mail in error) please notify the sender immediately and destroy this e-mail. Any unauthorised copying, disclosure or distribution of the material in this e-mail is strictly forbidden.

      • Fabian André Gehrke Says:

        Olá Gabriel,

        Fiz um workflow assim uma vez e o que usei foi o content organizer (https://support.office.com/en-us/article/Configure-the-Content-Organizer-to-route-documents-b0875658-69bc-4f48-addb-e3c5f01f2d9a?ui=en-US&rs=en-US&ad=US), inclusive para colocar dentro da pasta correta no destino. Dessa forma o workflow solicitaria do content organizer o local para onde o arquivo seria movido e entao moveria o arquivo.


Deixe um comentário

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

Logotipo do WordPress.com

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

Imagem do Twitter

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

Foto do Facebook

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

Foto do Google+

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

Conectando a %s

%d blogueiros gostam disto: