Compartilhar via


Criando fluxos de trabalho do Windows SharePoint Services

Atualizado em: 2009-02-26

O que é um fluxo de trabalho do Windows SharePoint Services? 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 do fluxo de trabalho. O entendimento do modo como os fluxos de trabalho do Windows SharePoint Services são criados exige algum conhecimento sobre os dois.

Como ele se comunica com os usuários por meio de um navegador da Web, um fluxo de trabalho do Windows SharePoint Services baseia-se no Microsoft ASP.NET para exibir seus formulários. Da mesma forma, esses formulários são definidos como páginas ASPX. Um fluxo de trabalho do Windows SharePoint Services pode exibir seus próprios formulários em quatro pontos do seu ciclo de vida:

  • Associação: Quando um administrador do Windows SharePoint Services associa um modelo fluxo de trabalho a uma determinada biblioteca de documentos ou lista, 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, 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 incluíram 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 deve fornecer um formulário para permitir que o iniciador defina essas opções, como mostrado na etapa 3 do diagrama anterior.

  • Conclusão de Tarefas: A instância de fluxo de trabalho em execução deve exibir um formulário para os participantes do fluxo de trabalho para permitir que eles concluam sua tarefa. Mostrado na etapa 6 do diagrama anterior, esse formulário permitiu aos aprovadores do cenário anterior comentar o documento e indicar sua aprovação ou rejeição.

  • Modificação: Embora isso não seja mostrado no cenário acima, 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 deve exibir um formulário para permitir que o participante especifique quais alterações devem ser feitas.

Os fluxos de trabalho criados exclusivamente com base no Windows SharePoint Services definem seus formulários como páginas .aspx, embora aqueles que usam Office SharePoint Server também possam usar formulários criados com o InfoPath, conforme descrito posteriormente. Nos dois casos, uma lógica de um fluxo de trabalho é sempre definida como um grupo de atividades, como ocorre com qualquer fluxo de trabalho baseado no 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 Designer de Fluxo de Trabalho hospedado no Visual Studio 2005. Os trabalhadores da informação, um grupo menos técnico, podem usar o Office SharePoint Designer 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 do Windows SharePoint Services podem ser criados usando cada uma dessas ferramentas.

Criando fluxos de trabalho com o Visual Studio 2005 e o Designer de Fluxo de Trabalho

De vários modos, um fluxo de trabalho é como um fluxograma.Sendo assim, é interessante fornecer uma ferramenta de gráfico que permita que os desenvolvedores especifiquem as ações de um fluxo de trabalho. No caso do WF, essa ferramenta é o Designer de Fluxo de Trabalho, parte do produto Extensões do Windows Workflow Foundation para o Visual Studio 2005. Os desenvolvedores podem usar o Designer de Fluxo de Trabalho WF para definir graficamente as atividades de um fluxo de trabalho e a ordem em que essas atividades devem ser executadas. A tela abaixo mostra um exemplo simples desta disposição.

Exemplo de fluxo de trabalho do Windows SharePoint Services

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 WF fornece um grupo de atividades fundamentais, como descrito anteriormente. O Windows SharePoint Services também fornece um conjunto de atividades projetado expressamente para criar fluxos de trabalho do Windows SharePoint Services. Entre eles, os mais importantes são:

  • OnWorkflowActivated: Fornece um ponto inicial padrão para um fluxo de trabalho do Windows SharePoint Services. Entre outras coisas, essa atividade pode aceitar informações fornecidas por um administrador do Windows SharePoint Services via formulário Associação quando o fluxo de trabalho estiver associado a uma biblioteca de documentos ou a uma lista. Pode aceitar também informações fornecidas via formulário Iniciação quando o fluxo de trabalho é iniciado. Cada fluxo de trabalho do Windows SharePoint Services 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 dessa lista são usadas para permitir que os usuários vejam onde um fluxo de trabalho se encontra na sua execução, vejam o histórico do fluxo de trabalho depois de sua conclusão e muito mais. Para permitir esse tipo de monitoração, o autor do fluxo de trabalho deve gravar informações em uma lista de Histórico em pontos execução apropriados da execução do fluxo de trabalho. Como ele fornece seu próprio mecanismo de rastreamento de fluxos de trabalho, o Windows SharePoint Services não oferece suporte ao serviço de rastreamento padrão do Fluxo de Trabalho.

Um padrão típico para um fluxo de trabalho do Windows SharePoint Services simples começa com uma atividade OnWorkflowActivated; em seguida, usa uma atividade CreateTask para atribuir uma tarefa a um participante do fluxo de trabalho. A atividade While padrão da BAL, em seguida, pode ser usada 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 ela for concluída), uma atividade OnTaskChanged é executada dentro da atividade While, extraindo todas as informações do usuário inseridas nesse formulário. Quando o usuário tiver concluído a tarefa, uma atividade CompleteTask poderá ser executada, seguida por DeleteTask. O fluxo de trabalho, em seguida, pode passar ao próximo participante, usando CreateTask para atribuir-lhe uma tarefa, e assim por diante. Naturalmente, outras coisas podem ocorrer, como o envio de email, registro de informações na lista de histórico ou, ainda, a inclusão da atividade Código da BAL, que permite a execução de código arbitrário.

Todas as atividades oferecidas pelo Windows SharePoint Services destinam-se a permitir que os fluxos de trabalho funcionem no ambiente Windows SharePoint Services. A lógica corporativa implementada por um fluxo de trabalho é critério exclusivo do criador desse fluxo de trabalho. Na verdade, um desenvolvedor que crie um fluxo de trabalho do Windows SharePoint Services pode criar e usar suas próprias atividades personalizadas—não é obrigatório o uso exclusivo das atividades fornecidas pelo Windows SharePoint Services e pelo WF.

Conforme descrito anteriormente, o Windows Workflow Foundation oferece suporte a fluxos de trabalho sequenciais e de máquina de estado. Um fluxo de trabalho do Windows SharePoint Services criado com o Designer de Fluxo de Trabalho também pode usar qualquer dessas opções. Para permitir isso, o Windows SharePoint Services adiciona dois tipos de projetos para Visual Studio 2005, 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 workflow.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 Windows SharePoint Services tem permissão para fazê-lo.

Um desenvolvedor deve adotar algumas medidas para transmitir informações entre um fluxo de trabalho do Windows SharePoint Services e os formulários ASPX usados. O Windows SharePoint Services fornece um namespace, Microsoft.Windows.SharePoint.Workflow, que expõe um modelo de objeto para desenvolvedores. Usando os tipos desse namespace, o criador de um fluxo de trabalho do Windows SharePoint Services pode transmitir informações de um formulário ASPX ao fluxo de trabalho e vice-versa.

Após a criação de um fluxo de trabalho do Windows SharePoint Services e de seus formulários, o desenvolvedor deve reuni-los em um pacote ao qual o Windows SharePoint Services 3.0 se refere a como recurso. Um administrador do Windows SharePoint Services deve, em seguida, instalar esse recurso, que inclui a instalação de assemblies do fluxo de trabalho no Cache global de assembly do sistema de destino. O novo fluxo de trabalho agora estará visível para o administrador como modelo de fluxo de trabalho que pode ser associado a uma biblioteca de documentos ou lista.

Para um desenvolvedor de software, criar um fluxo de trabalho do Windows SharePoint Services 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 do SharePoint Windows. Como descrito a seguir, as pessoas que não são desenvolvedores profissionais também podem criar fluxos de trabalho usando o Office SharePoint Designer.

Criando fluxos de trabalho com o Office SharePoint Designer 2007

O Office SharePoint Designer 2007, um componente do sistema de Office 2007 licenciado separadamente, permite que os trabalhadores da informação e outras pessoas adicionem lógica de aplicativo (implementada como fluxo de trabalho) a sites do Windows SharePoint Services. Isso certamente é útil, mas o Office SharePoint Designer também trata de outro problema importante. Se um desenvolvedor criar um fluxo de trabalho do Windows SharePoint Services usando Visual Studio, esse fluxo deverá ser instalado em um servidor do Windows SharePoint Services, como qualquer outro aplicativo. Mesmo assim, muitos administradores do Windows SharePoint Services 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, poder criar lógica corporativa direta, vinculada a documentos e itens de lista é muito útil e é algo de que muitos usuários do Windows SharePoint Services precisam. Além de permitir que pessoas com menos conhecimentos técnicos criem fluxos de trabalho, o Office SharePoint Designer também atende a esse problema, oferecendo um meio mais seguro para definir e implantar lógica corporativa em servidores do Windows SharePoint Services.

Os cenários de fluxo de trabalho alvo do Office SharePoint Designer são de algum modo diferentes daqueles atendidos pelo Visual Studio e pelo Designer de Fluxo de Trabalho. Embora certamente seja possível criar aplicativos complexos, o objetivo do Office SharePoint Designer é permitir que os usuários adicionem lógica corporativa a sites do Windows SharePoint Services. Por exemplo, suponha que um site contenha uma lista que permita que seus usuários enviem solicitações de alteração. O Office 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—a criação de fluxos de trabalho é fácil—mas é um desafio nas versões anteriores do Windows SharePoint Services, devido à relutância dos administradores em instalar código escrito pelo usuário.

Há uma pergunta óbvia aqui: Por que a lógica criada com o Office SharePoint Designer deve ser tratada de modo diferente? O que faz com que administradores de serviços Windows SharePoint Services 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 Office SharePoint Designer só podem usar as atividades de uma lista controlada por administrador. Embora o administrador de um site possa decidir incluir atividades personalizadas criadas por um desenvolvedor nessa lista, ele não é obrigado a fazê-lo. Definindo exatamente quais fluxos de trabalho têm permissão para tal, um administrador do Windows SharePoint Services pode estar mais confiante em que a implantação de lógica criada com o uso do Office SharePoint Designer não desestabilizará o sistema.

Porque é destinado a trabalhadores informações e não a desenvolvedores e também porque ele enfatiza cenários mais simples, o Office SharePoint Designer usa para criação de fluxos de trabalho um modelo diferente do Designer de Fluxo de Trabalho hospedado no Visual. Em vez de uma abordagem gráfica, o Office SharePoint Designer usa uma abordagem baseada em regras. Há alguma semelhança com o Assistente de regras do Outlook, uma ferramenta familiar a muitas pessoas. A tela abaixo ilustra como um usuário de Office SharePoint Designer define uma etapa em um fluxo de trabalho.

Criação de fluxo de trabalho do Windows SharePoint Services

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 das instruções If mostradas acima. As opções de ações incluem itens como atribuição de um item de tarefa pendente para um participante fluxo de trabalho, envio de email e muitos mais. Cada uma dessas ações, na verdade, é executada por alguma atividade do Windows SharePoint Services, e as atividades usadas aqui são as mesmas usadas com o Visual Studio e o Designer de Fluxo de Trabalho. Por exemplo, a opção Enviar Email mostrada acima corresponde à atividade SendEmail, e Atribuir um Item de Tarefa Pendente corresponde a uma versão algo especializada da atividade CreateTask. A lista de ações também pode incluir outras atividades permitidas pelo administrador do Windows SharePoint Services 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 Office SharePoint Designer cria um Fluxo de Trabalho padrão. O que realmente é produzido é um fluxo de trabalho sequencial 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 podem ser criados—não há suporte para máquinas de estado. Além disso, os fluxos de trabalho compilados com esta ferramenta devem ser criados com base em uma biblioteca de documentos ou lista específica quando são projetados. Não é possível criar um modelo de fluxo de trabalho geral que possa ser posteriormente associado a qualquer biblioteca ou lista com um 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 Office SharePoint Designer, a ferramenta implanta automaticamente esse fluxo no site de destino. 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 Office 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 como a aparência das páginas geradas, quais campos devem conter e o Office SharePoint Designer cuida do resto. Entretanto, dos quatro pontos do ciclo de vida de um fluxo de trabalho do Windows SharePoint Services nos quais os formulários podem ser usados, apenas dois são usados com fluxos de trabalho criados com o uso do Office 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 ou lista, 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 Office SharePoint Designer pode ser usado para outras atividades além da criação de fluxos de trabalho do Windows SharePoint Services. A ferramenta pode ser usada, por exemplo, para criar um site do Windows SharePoint Services ou para personalizar a aparência de páginas do site com a edição da página mestra do site. Ele também pode ser usado para efetuar conexão com dados externos, algo que se baseia no suporte à ligação de dados no ASP.NET. Entretanto, para trabalhadores da informação que precisam criar lógica que seja executada em um site do Windows SharePoint Services, o aspecto mais importante do Office SharePoint Designer é certamente o suporte aos fluxos de trabalho de criação.

O Windows SharePoint Services oferece uma ampla funcionalidade para a criação de fluxos de trabalho orientados a documentos. Por fim, é uma plataforma de desenvolvimento e execução. Ele não oferece funcionalidades de fluxo de trabalho diretamente utilizáveis pelos usuários finais. Se o que se quer são aplicativos de fluxo de trabalho para funcionamento imediato—e frequentemente é isso—O Windows SharePoint Services não é suficiente. Os fluxos de trabalho criados usando apenas o Windows SharePoint Services também apresentam outras restrições, como a impossibilidade de interagir com os participantes via aplicativos clientes do Office. Conforme a descrição a seguir, o Office SharePoint Server oferece um modo para superar todas essas limitações.

Baixar este manual

Este tópico está incluído no seguinte manual baixável para facilitar a leitura e a impressão:

Consulte a lista completa de manuais disponíveis na página de download de conteúdo do Office SharePoint Server 2007.