Selecionar uma ferramenta de criação de fluxo de trabalho (SharePoint Foundation)
Aplica-se a: SharePoint Foundation 2010
Tópico modificado em: 2015-03-09
O que é um fluxo de trabalho? Fundamentalmente, ele consiste em duas coisas: os formulários que um fluxo de trabalho usa para interagir com seus usuários e a lógica que define o comportamento desse fluxo de trabalho. Entender como os fluxos de trabalho são criados exige um certo conhecimento sobre esses dois conceitos.
Por se comunicar com os usuários por meio de um navegador da Web, um fluxo de trabalho depende do ASP.NET para exibir seus formulários. Da mesma forma, esses formulários são definidos como páginas .aspx. Um fluxo de trabalho pode exibir seus próprios formulários em quatro pontos do seu ciclo de vida:
Associação: quando um administrador associa um modelo de fluxo de trabalho a uma determinada lista ou biblioteca de documentos, ele pode definir as opções que aplicará a cada instância do fluxo de trabalho criada a partir dessa associação. Se um autor de fluxo de trabalho decidir permitir isso, ele deverá fornecer um formulário que permita ao administrador especificar essas informações.
Início: o iniciador de um fluxo de trabalho pode ter permissão para especificar opções quando iniciar uma instância de execução. No cenário de aprovação descrito, por exemplo, as opções incluem a especificação da lista de participantes do fluxo de trabalho e a definição do tempo de cada um deles para concluir sua tarefa. Se um fluxo de trabalho permitir isso, seu autor deverá fornecer um formulário para permitir que o iniciador defina essas opções.
Conclusão de tarefas: a instância de fluxo de trabalho em execução deve exibir um formulário aos participantes do fluxo de trabalho para permitir que eles concluam sua tarefa. Esse formulário permite aos aprovadores do cenário anterior comentar o documento e indicar sua aprovação ou rejeição.
Modificação: o criador de um fluxo de trabalho pode permitir que ele seja modificado durante a execução. Por exemplo, um fluxo de trabalho pode permitir a adição de novos participantes depois do início da execução ou a prorrogação de uma data de conclusão de tarefas. Se essa opção for usada, o fluxo de trabalho deverá exibir um formulário nesse ponto para permitir que um participante especifique quais alterações devem ser feitas.
Os fluxos de trabalho criados exclusivamente no Microsoft SharePoint Foundation 2010 definem seus formatos como páginas .aspx. A lógica do fluxo de trabalho é sempre definida como um grupo de atividades, assim como qualquer fluxo de trabalho baseado no Windows Workflow Foundation (WF). Para especificar a lógica e os formulários para um fluxo de trabalho, a Microsoft oferece duas ferramentas diferentes, cada uma delas com uma audiência diferente. Os desenvolvedores de software podem usar o recurso Designer de Fluxo de Trabalho do Windows Workflow Foundation. Essa ferramenta é executada dentro do Visual Studio 2010 Professional Edition e fornece um ambiente gráfico para organizar as atividades em fluxos de trabalho. Os operadores de informações, um grupo menos técnico, podem usar o Microsoft SharePoint Designer 2010 para criar fluxos de trabalho sem código de gravação. As duas seções a seguir examinam o modo como os fluxos de trabalho podem ser criados usando cada uma dessas ferramentas.
Criando fluxos de trabalho com o Visual Studio 2010 e o Designer de Fluxo de Trabalho do WF
De várias formas, os fluxos de trabalho se parece com os fluxogramas. Sendo assim, é interessante fornecer uma ferramenta de gráfico que permita que os desenvolvedores especifiquem as ações dos fluxos de trabalho. Essa ferramenta faz parte do SharePoint Workflow no Visual Studio 2010 Professional, que é um tipo de projeto que utiliza o Designer do Windows Workflow Foundation (WF) e adiciona implantação e suporte de formulários para Fluxos de Trabalho do SharePoint. Os desenvolvedores podem usar o Designer de Fluxo de Trabalho do WF para definir graficamente as atividades do fluxo de trabalho e a ordem na qual essas atividades serão executadas. A tela abaixo mostra um exemplo simples desta disposição no Microsoft Visual Studio.
Fluxo de trabalho Coletar Comentários
As atividades disponíveis para uso aparecem na Caixa de Ferramentas no lado esquerdo da tela. Um desenvolvedor pode arrastar essas atividades para a superfície de design, para definir as etapas de um fluxo de trabalho. As propriedades de cada atividade, em seguida, podem ser definidas na janela Propriedades que aparece no canto inferior direito.
A Biblioteca de Atividades Base do Windows Workflow Foundation fornece um grupo de atividades fundamentais, conforme descrito anteriormente. O Microsoft SharePoint Foundation também fornece um conjunto de atividades projetado expressamente para criar fluxos de trabalho. Entre eles, os mais importantes são:
OnWorkflowActivated: fornece um ponto de partida padrão para um fluxo de trabalho. Entre outras coisas, essa atividade pode aceitar informações fornecidas por um administrador do SharePoint com o uso do formulário Associação quando o fluxo de trabalho está associado a uma biblioteca de documentos, uma lista, um tipo de conteúdo ou um site. Ela também pode aceitar informações fornecidas pelo formulário Iniciação quando o fluxo de trabalho é iniciado. Cada fluxo de trabalho deve começar com essa atividade.
CreateTask: cria uma tarefa atribuída a um usuário específico em uma lista de tarefas. Por exemplo, o fluxo de trabalho de aprovação no cenário descrito anteriormente usou essa atividade para adicionar uma tarefa à lista de tarefas usada por cada participante. Essa atividade também tem uma propriedade SendEmailNotification que, quando definida como verdadeira, envia automaticamente um email à pessoa para quem a tarefa foi criada.
OnTaskChanged: aceita informações do formulário Conclusão de Tarefa. O fluxo de trabalho de aprovação no cenário anterior usou essa atividade para aceitar a entrada de cada participante quando o documento foi aprovado.
CompleteTask: marca uma tarefa como concluída.
DeleteTask: remove uma tarefa da lista de tarefas.
OnWorkflowModified: aceita informações do formulário Modificação, que podem então ser usadas para alterar o comportamento dessa instância do fluxo de trabalho. Se o criador do fluxo de trabalho optar por não incluir instâncias dessa atividade no fluxo de trabalho, esse fluxo não poderá ser modificado durante a execução.
SendEmail: envia email a uma pessoa ou a um grupo de pessoas especificado.
LogToHistoryList: grava informações sobre a execução do fluxo de trabalho em uma lista de histórico. As informações nessa lista são usadas para permitir que os usuários vejam em que ponto um fluxo de trabalho se encontra na sua execução, examinem o histórico do fluxo de trabalho após a sua conclusão e muito mais. Para permitir esse tipo de monitoramento, o autor do fluxo de trabalho deve gravar informações em uma lista de Histórico em pontos apropriados da execução do fluxo de trabalho. Como ele fornece o seu próprio mecanismo de acompanhamento de fluxos de trabalho, o Microsoft SharePoint Foundation não oferece suporte ao serviço de acompanhamento padrão do WF.
Um padrão típico para um fluxo de trabalho simples começa com uma atividade OnWorkflowActivated e, em seguida, usa uma atividade CreateTask para atribuir uma tarefa a um participante desse fluxo de trabalho. A atividade While padrão da BAL pode ser usada em seguida para aguardar até que o usuário conclua a tarefa. Para saber quando isso ocorreu (talvez um usuário faça várias alterações na tarefa e marque uma caixa de seleção no formulário Conclusão de Tarefa quando terminar), uma atividade OnTaskChanged é executada dentro da atividade While, extraindo todas as informações que o usuário inseriu nesse formulário. Quando o usuário tiver concluído a tarefa, uma atividade CompleteTask poderá ser executada, seguida por DeleteTask. Depois disso, o fluxo de trabalho pode passar ao próximo participante, usando CreateTask para lhe atribuir uma tarefa, e assim por diante. Naturalmente, outras coisas podem ocorrer, como o envio de um email, o registro de informações na lista de histórico ou até mesmo a inclusão da atividade Código da BAL, que permite a execução de um código arbitrário.
Todas as atividades oferecidas pelo SharePoint Foundation destinam-se a permitir que os fluxos de trabalho operem no ambiente do SharePoint. A lógica de negócios implementada por um fluxo de trabalho é critério exclusivo do criador desse fluxo de trabalho. Na verdade, um desenvolvedor que gera um fluxo de trabalho tem a liberdade de criar e usar suas próprias atividades personalizadas, pois não é obrigatório o uso exclusivo das atividades fornecidas pelo SharePoint Foundation e pelo WF.
Conforme descrito anteriormente, o Windows Workflow Foundation oferece suporte a fluxos de trabalho sequenciais, paralelos e de máquina de estado. Um fluxo de trabalho criado com o Designer de Fluxo de Trabalho do WF também pode usar qualquer uma dessas opções. Para permitir isso, o SharePoint Foundation adiciona tipos de projeto ao Visual Studio, um para cada um desses estilos de fluxo de trabalho.
Qualquer que seja o estilo escolhido, o desenvolvedor deve definir mais do que apenas a lógica do fluxo de trabalho; ele também deve especificar os formulários .aspx a serem usados. Para isso, o desenvolvedor depende de um arquivo chamado element.xml. Esse arquivo fornece um modelo que o desenvolvedor preenche para especificar qual formulário, se houver, deve ser exibido em cada um dos quatro pontos nos quais um fluxo de trabalho tem permissão para fazê-lo.
Um desenvolvedor deve realizar certas operações para transmitir informações entre um fluxo de trabalho e o formulário .aspx que ele utiliza. O namespace Microsoft.Windows.SharePoint.Workflow expõe um modelo de objeto para desenvolvedores. Usando os tipos desse namespace, o criador de um fluxo de trabalho pode transmitir informações de um formulário .aspx para o fluxo de trabalho, e vice-versa.
Após a criação de um fluxo de trabalho e seus formulários, o desenvolvedor deve compactá-los naquilo que chamamos de Recurso. Um administrador do SharePoint deve então instalar esse Recurso, o que inclui a instalação dos assemblies do fluxo de trabalho no cache global de assemblies do sistema de destino. Agora, o novo fluxo de trabalho estará visível ao administrador como um modelo de fluxo de trabalho que pode ser associado a uma biblioteca de documentos, uma lista, um tipo de conteúdo ou um site.
Para um desenvolvedor de software, criar um fluxo de trabalho usando o Visual Studio e o Designer de Fluxo de Trabalho não é especialmente difícil. Ele deve entender as especificidades do trabalho nesse ambiente, mas grande parte do que ele está fazendo será do seu conhecimento. Mesmo assim, os desenvolvedores de software não são as únicas pessoas que gostariam de criar fluxos de trabalho. Como descrito a seguir, as pessoas que não são desenvolvedores profissionais também podem criar fluxos de trabalho usando o Microsoft SharePoint Designer 2010.
Criando fluxos de trabalho com o Microsoft Office SharePoint Designer 2010
O Microsoft SharePoint Designer 2010 é um aplicativo independente disponível por meio de download gratuito. O Microsoft SharePoint Designer permite que os operadores de informações e outros usuários adicionem lógica de aplicativo (implementada como fluxo de trabalho) a sites do SharePoint. Isso certamente é um objetivo útil, mas o Microsoft SharePoint Designer também resolve um outro problema relevante. Se um desenvolvedor cria um fluxo de trabalho com o Visual Studio, esse fluxo de trabalho deve ser implantado em um servidor que executa o SharePoint Foundation como qualquer outro recurso. Mesmo assim, muitos administradores do SharePoint não permitem a implantação de código arbitrário em seus servidores, acreditando que o risco de desestabilizar o sistema é muito grande. Entretanto, a capacidade de criar uma lógica corporativa direta, vinculada a documentos e itens de lista, é muito útil e é algo de que muitos usuários do SharePoint precisam. Além de permitir que pessoas com menos conhecimentos técnicos criem fluxos de trabalho, o Microsoft SharePoint Designer também resolve esse problema, oferecendo um meio mais seguro para definir e implantar a lógica corporativa em servidores que executam o SharePoint Foundation.
Os cenários de fluxo de trabalho alvo do Microsoft SharePoint Designer são de algum modo diferentes daqueles abordados pelo Visual Studio e pelo Designer de Fluxo de Trabalho do WF. Embora certamente seja possível criar aplicativos complexos, o objetivo do Microsoft SharePoint Designer é permitir que os usuários adicionem a lógica de negócios a sites do SharePoint. Por exemplo, suponha que um site contenha uma lista que permita que seus usuários enviem solicitações de alteração. O Microsoft SharePoint Designer pode ser usado para criar um fluxo de trabalho que informe automaticamente o solicitante quando sua solicitação de alteração for aceita ou rejeitada. Da mesma forma, um fluxo de trabalho personalizado pode informar um grupo específico de usuários sempre que um novo documento for adicionado a uma biblioteca de documentos específica. Executar esse tipo de notificação personalizada não é complicado, já que a criação de fluxos de trabalho é fácil, mas é um desafio nas versões anteriores do SharePoint Foundation devido à relutância dos administradores em instalar códigos escritos pelo usuário.
Há uma pergunta óbvia aqui: por que a lógica criada com o Microsoft SharePoint Designer deve ser tratada de modo diferente? O que faz com que os administradores do SharePoint se disponham a permitir que fluxos de trabalho compilados com essa ferramenta sejam implantados nos sistemas pelos quais são responsáveis? A resposta é que os fluxos de trabalho compilados com o Microsoft SharePoint Designer só podem usar as atividades de uma lista controlada por administrador. Além das atividades fornecidas pelo SharePoint Foundation, um administrador de site pode escolher se deseja incluir nessa lista atividades personalizadas criadas por um desenvolvedor. Ao definir exatamente quais fluxos de trabalho têm permissão para isso, um administrador do SharePoint pode ter mais segurança de que a implantação da lógica criada com o uso do Microsoft SharePoint Designer não desestabilizará o sistema.
Por ser destinado a operadores de informações e não a desenvolvedores e também por enfatizar cenários mais simples, o Microsoft SharePoint Designer usa para a criação de fluxos de trabalho um modelo diferente do Designer de Fluxo de Trabalho do WF hospedado no Visual Studio. Em vez de uma abordagem gráfica, o Microsoft SharePoint Designer usa uma abordagem baseada em regras. Há alguma semelhança com o Assistente de Regras do Microsoft Outlook, uma ferramenta familiar para muitas pessoas. A tela a seguir ilustra como um usuário do Microsoft SharePoint Designer define uma etapa em um fluxo de trabalho. Observe que esse fluxo de trabalho executa algumas ações em paralelo, enquanto outras ações são executadas em série. As versões anteriores do SharePoint Foundation ofereciam suporte apenas para a execução de ações em série. As ações só eram executadas sucessivamente.
Fluxo de Trabalho Processar Pedido
Cada etapa pode ter uma condição e uma ação. A condição determina se a ação dessa etapa deve ser executada, como no caso da instrução If mostrada acima. As opções de ações incluem coisas como a atribuição de um apresentador para um evento, obtenção de aprovações e muito mais. Cada uma dessas ações, na verdade, é executada por alguma atividade do SharePoint Foundation, e as atividades usadas aqui são as mesmas usadas com o Visual Studio e o Designer de Fluxo de Trabalho. A lista de ações também pode incluir outras atividades permitidas pelo administrador do SharePoint para este site, incluindo atividades personalizadas criadas por desenvolvedores.
Mesmo que a interface do usuário pareça bastante diferente da abordagem gráfica usada com o Visual Studio e o Designer de Fluxo de Trabalho, o Microsoft SharePoint Designer cria um Fluxo de Trabalho padrão. O que realmente é produzido é um fluxo de trabalho sequencial, paralelo ou uma combinação dos dois, com condições expressas usando o mecanismo de regras do Fluxo de trabalho. Entretanto, os fluxos de trabalho criados com essa ferramenta possuem algumas limitações. Por exemplo, eles não podem ser modificados durante sua execução, diferentemente daqueles compilados usando o Visual Studio e o Designer de Fluxo de trabalho, e somente fluxos de trabalho sequenciais e paralelos podem ser criados—não há suporte para máquinas de estado. Além disso, os fluxos de trabalho compilados com esta ferramenta podem ser criados com base em uma biblioteca de documentos, lista ou site específico quando são projetados. Os criadores de fluxos de trabalho também podem criar um modelo de fluxo de trabalho geral que possa ser posteriormente associado a qualquer biblioteca, lista ou tipo de conteúdo. Embora isso limite o modo de criação de um fluxo de trabalho, também facilita muito a implantação do fluxo de trabalho. Na verdade, quando um usuário conclui a criação de um fluxo de trabalho com o Microsoft SharePoint Designer, a ferramenta oferece uma implantação em um clique desse fluxo no site de destino, que inclui a ativação do fluxo de trabalho. Isso é muito menos complicado do que o processo de implantação com várias etapas exigido para os fluxos de trabalho criados com o uso do Visual Studio e do Designer de Fluxo de trabalho.
Os fluxos de trabalho criados com o uso do Microsoft SharePoint Designer também podem exibir formulários personalizados. Em vez de exigir que os autores de fluxos de trabalho criem páginas .aspx diretamente, a ferramenta gera essas páginas. O autor especifica os detalhes sobre a aparência das páginas geradas, quais campos devem conter e o Microsoft SharePoint Designer cuida do resto. Entretanto, dos quatro pontos do ciclo de vida de um fluxo de trabalho nos quais os formulários podem ser usados, apenas dois são usados com fluxos de trabalho criados com o uso do Microsoft SharePoint Designer: Início e Conclusão de Tarefas. Como cada fluxo de trabalho criado com essa ferramenta deve ser associado a uma determinada biblioteca de documentos, lista, tipo de conteúdo ou site, não há necessidade de uma etapa de associação e, portanto, não há formulário de Associação. Como esses fluxos de trabalho não podem ser modificados durante a execução, não há necessidade de um formulário de Modificação.
O Microsoft SharePoint Designer também permite importar fluxos de trabalho que foram criados com o uso do Microsoft Visio 2010. Isso possibilita que um gerente corporativo ou um autor de fluxo de trabalho crie a lógica de fluxo de trabalho usando um ambiente gráfico bastante conhecido. Em seguida, o autor pode importar essa lógica para o Microsoft SharePoint Designer, modificá-la se necessário e então publicá-la em um site do SharePoint.
O SharePoint Foundation oferece várias funcionalidades para a criação de fluxos de trabalho orientados para documentos. Mesmo assim, no final das contas, trata-se de uma plataforma de desenvolvimento e execução. Ele não oferece funcionalidades de fluxo de trabalho diretamente utilizáveis pelos usuários finais. Os fluxos de trabalho em execução no SharePoint Foundation também apresentam outras restrições, como a incapacidade de interagir com os participantes usando aplicativos clientes do Office.
Comparação de ferramentas de criação
A tabela a seguir mostra as importantes diferenças entre as ferramentas com suporte da Microsoft para a criação de fluxos de trabalho no SharePoint Foundation usando SharePoint Designer e Designer de Fluxo de Trabalho do WF no Visual Studio 2010 Professional Edition.
Capacidade/Requisito | SharePoint Designer | Designer de Fluxo de Trabalho do WF no Visual Studio |
---|---|---|
Os fluxos de trabalho podem ser criados apenas com o uso de ações aprovadas pelos administradores de sites? |
Sim |
Não |
Os fluxos de trabalho podem ser acessados em aplicativos clientes (além do navegador)? |
Sim |
Sim |
É possível usar o Microsoft Visio Professional para criar a lógica de fluxo de trabalho? |
Sim |
Não |
É necessário escrever código? |
Não |
Sim |
São fornecidas atividades adicionais (além daquelas fornecidas pelo SharePoint Foundation)? |
Não |
Sim |
É possível criar atividades personalizadas? |
Não |
Sim |
Os fluxos de trabalho podem ser modificados enquanto são executados? |
Não |
Sim |
Publicação de fluxos de trabalho com um único clique? |
Sim |
Sim |
Os fluxos de trabalho podem ser implantados remotamente? |
Sim |
Não |
É possível torná-los disponíveis no farm? |
Não |
Sim |
É possível definir o escopo para um conjunto de sites? |
Sim |
Sim |