Empacotando fluxos de trabalho de lista, site e reutilizável e como implantar o pacote

Artigo original publicado quinta-feira, dia 30 de agosto de 2012

Olá, sou JongHwa Lim, gerente de programas da equipe do SharePoint Designer (também conhecido como SPD).foto de jonghwal

Hoje, gostaria de mostrar um recurso que foi bastante aprimorado desde o SharePoint Designer 2010 e SharePoint Server 2010. É o recurso de empacotar fluxos de trabalho. Um cenário muito comum para aqueles que usaram esse recurso no SharePoint Designer 2010 era desenvolver um fluxo de trabalho em um ambiente de desenvolvimento e implantá-lo em um ambiente de produção. Infelizmente, havia uma má notícia: esse recurso era compatível apenas com fluxos de trabalho reutilizáveis no SharePoint Designer 2010.

No SharePoint Designer 2013, SharePoint Server 2013 e no serviço de fluxos de trabalho do Azure, há suporte para os três tipos de fluxo de trabalho: lista, site e reutilizável. Isso é incrível, pois você não precisa se restringir apenas ao fluxo de trabalho reutilizável. Além disso, acabou aquela velha história de migrar seus fluxos de trabalho de lista para reutilizáveis com essa finalidade.

Um exemplo ajudará a ilustrar mais adequadamente essa história. Desenvolverei um fluxo de trabalho de exemplo e mostrarei como ele pode ser reutilizado em um site de destino.

Exemplo: um fluxo de trabalho de lista Solicitação de Férias

Digamos que você pretenda criar uma fluxo de trabalho de lista em um ambiente de desenvolvimento. Esse fluxo de trabalho possui duas listas: Férias e Solicitação de Férias. A primeira mantém o número de férias restantes para todos os funcionários; já a segunda é onde o solicitante criará um item de solicitação a fim de pedir aprovação para as férias.

Criar as listas necessárias (ambiente de desenvolvimento)

Conforme mencionado, precisamos de duas listas. Por isso, as criei conforme pode ser visto a seguir. Observe que usaremos as configurações padrão para "Lista de Tarefas" e "Lista do Histórico".

clip_image001

clip_image002

Criar o fluxo de trabalho de lista na lista Solicitação de Férias

Agora que você tem as listas necessárias, use o SPD para conectar-se ao servidor, clique em "Fluxo de Trabalho de Lista" e selecione a lista "Solicitação de Férias". Será exibida uma caixa de diálogo (veja a seguir). Certifique-se de selecionar o tipo "Fluxo de Trabalho do SharePoint 2013" após digitar o nome do fluxo de trabalho.

clip_image003

Inserir a lógica e publicar o fluxo de trabalho

Na tela do SPD, você pode selecionar o designer com base em texto ou, se o Visio Professional estiver instalado, será possível optar pelo designer visual para criar o fluxo de trabalho. Neste blog, usarei o designer com base em texto, mas se você estiver interessado no designer visual, consulte outro post do blog (disponível em breve) sobre ele.

Adicione a lógica a seguir. Em geral, ele é bem simples, com exceção de alguns pontos. Ela consiste de cinco estágios. O título de cada estágio explica do que se trata, mas, para uma explicação mais detalhada, eu os descrevi a seguir:

  • "Verificar se há férias restantes" – extrair os dias de férias restantes do solicitante e comparar com os dias de férias solicitados
  • "Processo de aprovação" – solicitar aprovação para os dias de férias solicitados
  • "Aprovado" – mediante aprovação, atualizar a lista Férias com o novo valor calculado
  • "Rejeitado" – enviar email de rejeição
  • "férias insuficientes" – enviar email sobre insuficiência de dias de férias restantes

imagem

clip_image005

As partes complexas são as interfaces do usuário de pesquisa para extrair os dias de férias restantes da lista Férias ou atualizá-la.

clip_image006

clip_image007

Você pode optar por ativar a opção de "início automático na criação do item", caso faça mais sentido.

clip_image008

Quando você publicar o fluxo de trabalho, a associação desse fluxo será criada e a coluna de status ficará em segundo plano.

Empacotar as listas em pacotes STP

Há várias maneiras de garantir que um servidor de destino tenha as listas e os esquemas necessários, mas aproveitar o pacote STP é uma prática recomendada. Portanto, vamos empacotar as listas Férias de Solicitação de Férias em pacotes STP.

Você pode fazer isso pela interface do usuário do servidor ou do SPD, conforme mostrado a seguir.

clip_image009

clip_image010

Em seguida, você verá a seguinte tela, onde é possível digitar o nome e optar por empacotar o conteúdo.

clip_image011

Observe que o fluxo de trabalho de lista do SharePoint 2013 não é empacotado junto, independente de você selecionar "Incluir Conteúdo" ou não.

Em caso de êxito, você será direcionado a um local onde é possível baixar o pacote.

clip_image012

Clique no link e baixe o pacote para uso posterior.

Em caso de êxito, você terá dois pacotes STP: um para a lista Solicitação de Férias e outro para a lista Férias (a lista que contém os dias de férias restantes).

Empacotar o fluxo de trabalho no pacote WSP

Para empacotar o fluxo de trabalho de lista, acesse a página de resumo do fluxo de trabalho e clique no botão "Salvar como Modelo" na faixa de opções.

clip_image013

Será exibida a caixa de diálogo a seguir.

clip_image014

Você pode localizar a biblioteca "Ativos do Site" no painel de navegação. O pacote do fluxo de trabalho de lista estará nela (talvez você precise atualizar a página para ver o pacote).

Use o botão "Exportar Arquivo" da faixa de opções para salvá-lo no computador.

clip_image015

Implantar os pacotes STP

Abra o site (ou ambiente de produção) de destino em seu navegador e acesse "Configurações do Site". Você encontrará o menu "Modelos de lista" no grupo "Galerias de Web Designer".

clip_image016

Usando "Carregar Documento" no menu "Arquivos", carregue os dois pacotes STP.

clip_image017

Criar listas usando os modelos de lista implantados

Você pode criar duas listas com os modelos de lista implantados. Acesse "Conteúdo do Site" no menu de navegação (no servidor) e clique em "adicionar um novo aplicativo". Você verá os ícones de "Férias" e "Solicitação de Férias".

clip_image018

Crie listas "Férias" e "Solicitação de Férias" usando esses menus.

Implantar e ativar o pacote WSP

A implantação do pacote WSP é um pouco diferente da implantação dos modelos de lista STP. Você deve carregá-lo na biblioteca "Soluções", no grupo "Galerias de Web Designer" em Configurações do Site.

clip_image019

Em seguida, será exibida uma caixa de diálogo onde você precisará ativar o pacote (solução).

clip_image020

Ativar o recurso

Após a ativação da solução, você verá que há um novo recurso de site em "Gerenciar recursos do site", em "Ações do Site" das Configurações do Site.

clip_image021

É isso. Você pode encontrar esse fluxo de trabalho pelo nome usado no momento do empacotamento. Clique no botão "Ativar" e aguarde até que ele mude para "Desativar" ou até que o ícone "Ativo" seja mostrado, o que significa que o recurso está ativado.

clip_image022

(Opcional) Abrir o fluxo de trabalho no SPD

Há casos em que convém atualizar o fluxo de trabalho no site de destino. Sem problemas. É a mesma coisa que o ambiente de desenvolvimento. Você poderá encontrar o fluxo de trabalho implantado corretamente listado no SPD.

clip_image023

E ele será aberto sem problemas. Como você pode ver, os valores na página de resumo continuam os mesmo. E, é claro, a lógica também é preservada.

imagem

(Opcional) Executar o fluxo de trabalho

Após a execução do fluxo de trabalho no servidor, você verá que há duas colunas com o mesmo nome (coluna de status do fluxo de trabalho). Esse é um problema conhecido. Uma coluna vem do servidor de origem (empacotada no STP) e a outra é criada no site de destino. Atualize o modo de exibição de lista para ocultar a coluna antiga.

Qual é a alternativa ao uso do pacote STP?

A solução será implantada corretamente enquanto o site de destino tiver as listas necessárias (aquelas usadas na lógica do fluxo de trabalho, juntamente com as listas Tarefa de Fluxo de Trabalho e Histórico do Fluxo de Trabalho). Porém, é melhor criar as listas e as colunas das listas referenciadas no fluxo de trabalho usando o mesmo modelo de lista e o mesmo tipo de campo. Se houver uma incompatibilidade de tipo, o pacote poderá falhar no momento da ativação do recurso, ou o fluxo de trabalho falhará no momento da execução.

O que acontecerá se o pacote de fluxo de trabalho for implantado em um site que não possua as listas "Férias" ou "Solicitação de Férias"?

Haverá falha na ativação do recurso do site.

clip_image025

A mensagem de erro não é muito detalhada. Porém, se você olhar o log ULS, encontrará algumas dicas, como a seguinte:

“Falha na validação XAML de fluxo de trabalho devido aos seguintes erros: Falha ao criar 'ListId' do texto '$ListId:Lists/Vacation;”

Porém, após a falha na ativação do recurso, a reativação do recurso poderá falhar novamente, mesmo depois da criação das listas necessárias. Isso ocorre porque a definição do fluxo de trabalho foi implantada de forma incompleta. Para corrigir o problema, é necessário fazer o seguinte:

  • Abra o SPD e exclua a definição de fluxo de trabalho que falhou durante a ativação do recurso
  • Desative e remova a solução
  • Carregue e ative a solução
  • Ative o recurso do site

Isso deverá resolver o problema.

Problemas conhecidos

A seguir, você encontrará os problemas conhecidos do pacote de fluxo de trabalho.

  • É preciso garantir que os URLs de lista relativos (por exemplo, "Lists/Vacation") sejam iguais. Mesmo que você crie uma lista com um nome específico e o altere, o URL de lista não será alterado, pois ele tem como base o nome de exibição original. Desse modo, mesmo que você tenha empacotado o fluxo de trabalho com base no nome atualizado da lista, ele ainda procurará por um URL de lista com base no nome antigo do site de destino. Portanto, no momento da criação de listas no site de destino, você precisa certificar-se de, inicialmente, dar o nome original (não o atualizado) às listas. Desse modo, o URL de lista será preservado. Após a criação da lista, você poderá alterar o nome da lista, atualizando-o.
  • Os fluxos de trabalho com nomes Unicode ou DBCS serão empacotados em arquivos wsp com o nome embutido padrão ‘WorkflowSolution.wsp’
  • Você deverá atualizar a página manualmente após acessar os Ativos do Site para ver a lista de soluções atualizada.
  • Se o servidor de destino não tiver a lista Tarefa de Fluxo de Trabalho ou Histórico do Fluxo de Trabalho, o erro a seguir poderá ser exibido quando você clicar no fluxo de trabalho na página Configurações do Fluxo de Trabalho. Isso acontece quando você implanta o fluxo de trabalho em um servidor de destino onde nunca houve a criação de fluxos de trabalho. Como alternativa, você pode criar e publicar um fluxo de trabalho fictício do SPD para criar as listas Tarefa de Fluxo de Trabalho e Histórico do Fluxo de Trabalho. Em seguida, você pode abrir o fluxo de trabalho implantado no SPD, ajustar as configurações das listas Tarefa de Fluxo de Trabalho e Histórico do Fluxo de Trabalho e republicar o fluxo de trabalho.clip_image026
  • O fluxo de trabalho do projeto será empacotado como um fluxo de trabalho de site comum. Porém, para garantir seu funcionamento, você também precisará empacotar as entidades do projeto, como EPT, estágios, colunas personalizadas, entre outras.

Obrigado,

JongHwa

Este é um post localizado. O artigo original está em Packaging List, Site, and Reusable Workflow and How to Deploy the Package