Artigo original publicado na quinta-feira, 22 de novembro de 2012

foto de jonghwalOlá, meu nome é JongHwa Lim e sou gerente de programas da equipe do SharePoint Designer.
Hoje, mostrarei um exemplo de fluxo de trabalho demonstrado na SharePoint Conference 2012 (vulgo SPC 2012). Além disso, eu o modificarei e ampliarei para que fique mais realista neste post. Este artigo apresenta algumas dicas que você pode usar na criação de um fluxo de trabalho com o SPD (SharePoint Designer) 2013. Darei explicações detalhadas, então parto do pressuposto de que você esteja familiarizado com fluxos de trabalho do SharePoint Designer 2013 e SharePoint 2013. Caso não esteja, leia os artigos anteriores para obter mais informações sobre fluxos de trabalho do SharePoint 2013. 

Fluxo de trabalho para uma empresa de eventos recreativos

Suponha que haja uma empresa chamada Contoso Leisure, que realiza atividades recreativas como cavalgadas, pescaria, tiro ao alvo, saltos de parapente e saltos em queda livre.

imagem

Suponha também que nós precisemos de um fluxo de trabalho de aprovação que realize as seguintes operações:

  • Solicitar aprovação do grupo de coordenadores de eventos do SharePoint
  • Em caso de rejeição, enviar um email de rejeição ao cliente
  • Em caso de aprovação, aguardar até cinco dias antes da data do evento/atividade e enviar um lembrete do evento
    • O lembrete contém informações sobre o evento, como condições climáticas e um mapa com instruções de como chegar ao local 

Neste exemplo de fluxo de trabalho, usaremos dois serviços Web, mas apenas um deles será manipulado pela ação de chamada de serviço Web HTTP disponível no SPD. O outro serviço Web será referenciado dentro de uma variável String e inserido no corpo do email com uma marca <IMG>. Para obter mais informações, você pode consultar a página da API de mapa do Bing (http://www.microsoft.com/maps/developers/web.aspx).

Se você criar o fluxo de trabalho por conta própria, será criado o seguinte fluxo de trabalho.

imagem

imagem

imagem

Observe que o estágio ‘Get Weather Info’ possui uma ação ‘Call HTTP Web Service’. Se você clicar no primeiro parâmetro, verá que a URL mostrada a seguir é utilizada. Nela, a chave do serviço Web é armazenada em uma lista separada, chamada ‘Web Service Keys’. A explicação e o uso da ação Web Service, da ação Get Item from Dictionary e do contêiner Loop podem ser vistos em um post anterior, de HyongGuk Kim (http://blogs.technet.com/b/office_br/archive/2012/10/11/como-trabalhar-com-um-servi-231-o-web-usando-a-a-231-227-o-quot-chamar-o-servi-231-o-web-http-quot.aspx). 

imagem

Se você clicar na ação ‘Set Workflow Variable’ do estágio ‘Send Reminder Email’, verá que ela também usa a lista ‘Web Service Keys’ para armazenar a chave ou o token do serviço Web.

imagem 

Hora de deixar as coisas mais realistas

Em uma situação real, é possível que as chaves do serviço Web necessitem de gerenciamento seguro. Para isso, precisamos protegê-las, armazenando-as em uma lista que só possa ser acessada com pessoas que possuam o privilégio Controle Total. Mas neste caso, a lógica normal do fluxo de trabalho não conseguiria acessar as chaves do serviço Web, pois ela é executada com permissão do iniciador do fluxo de trabalho e (AND lógico) do aplicativo de fluxo de trabalho. Por isso, caso o iniciador do fluxo de trabalho não tenha permissão para acessar a lista que contém as chaves do serviço Web, o fluxo de trabalho falhará. Para fazer com que a lógica do fluxo de trabalho seja executada somente com permissão do aplicativo de fluxo de trabalho (que é de leitura/gravação em todas as listas do site), é necessário usar uma etapa do aplicativo.

Etapa 1. Tornar a lista segura com permissão independente

Conforme explicado, precisamos fazer com que a lista que contém as chaves do serviço Web possa ser acessada somente por usuários com Controle Total. Para isso, é necessário interromper a herança e remover os usuários desnecessários da lista.

Digamos que a lista seja ‘Web Service Keys’. Se você acessar Configurações de Lista e a página Permissões desta lista, encontrará o menu para interromper a herança.

imagem

Após interromper a herança, você poderá selecionar usuários que não tenham controle total (conforme mostrado a seguir) e clicar no botão Remover Permissões do Usuário.

imagem

Assim, a lista terá apenas usuários com controle total.

imagem

Etapa 2. Ativar o recurso de etapa do aplicativo

Para usar etapas do aplicativo, você deve ativar o recurso de site Fluxos de trabalho podem usar permissões de aplicativo em Configurações de Site->Gerenciar recursos do site, conforme mostrado a seguir.

imagem

Assim, o botão Etapa de Aplicativo no SPD será habilitado.

imagem

Etapa 3. Adicionar etapa do aplicativo e mover a lógica para ela

Você precisa localizar as partes da lógica que fazem referência à lista ‘Web Service Keys’ e inseri-las em um contêiner de etapa do aplicativo. Há duas partes da lógica que precisamos inserir em uma etapa do aplicativo: a ação Call HTTP web service e a ação Set RouteMap variable, ilustradas nas figuras a seguir:  

imagem

imagem

Etapa 4. Publicar o fluxo de trabalho

Quando você publica o fluxo de trabalho, a caixa de diálogo a seguir é exibida para explicar o comportamento.

imagem

Espero que você tenha aproveitado este artigo e aprendido como usar etapas do aplicativo corretamente. Até o próximo artigo.

Esta é uma postagem de blog traduzida. Consulte o artigo original em How to Create a SharePoint Designer 2013 Workflow with App Step (extension from the example workflow used for SPC 2012)