Compartilhar via


Criar fluxos de trabalho do SharePoint usando o Visual Studio

Conheça as noções básicas da criação de um fluxo de trabalho do SharePoint na nova plataforma de fluxo de trabalho do SharePoint.

Fornecido por:Andrew Connell, Voitanos

Observação

A partir do Visual Studio 2026, o desenvolvimento do Fluxo de Trabalho do SharePoint no Visual Studio foi preterido e será removido numa versão futura.

Observação

Os fluxos de trabalho do Microsoft Office SharePoint Online 2010 foram desativados desde 1º de agosto de 2020 para novos locatários e removidos de locatários existentes em 1º de novembro de 2020. Se você estiver usando fluxos de trabalho do Microsoft Office SharePoint Online 2010, recomendamos a migração para o Power Automate ou outras soluções suportadas. Para obter mais informações, confira Desativação do fluxo de trabalho do SharePoint 2010.

Este artigo é acompanhado por um exemplo de código de ponta a ponta que você pode usar para seguir o artigo, ou como um starter para seus próprios projetos de fluxo de trabalho do SharePoint.

A Microsoft adotou uma abordagem muito diferente para fluxos de trabalho no SharePoint em comparação com versões anteriores. fluxos de trabalho SharePoint agora têm base na Windows Workflow Foundation 4 e sua execução é orientada por um novo componente denominado Workflow Manager, que é executado externamente para SharePoint.Workflow Manager serve a função como host para o tempo de execução Windows Workflow Foundation e todos os serviços necessários de forma altamente disponível e escalonável. Ele aproveita barramento de serviço de desempenho e escalabilidade e quando implantado, ele é executado exatamente o mesmo em uma implantação local, como quando implantado em um serviço baseado em nuvem, como o Office 365, porque ele está configurado para entregar desativa a execução de fluxo de trabalho todos e tarefas relacionadas ao farm Workflow Manager.A alteração drástica na arquitetura de fluxo de trabalho necessária algumas alterações para as duas ferramentas de criação de fluxo de trabalho principal para a criação de fluxos de trabalho personalizados - Visual Studio e SharePoint Designer. Este artigo irá explorar usando Visual Studio 2012 como seu fluxo de trabalho authoring tool para criar fluxos de trabalho personalizados para usam em implantações de sp15allshort - Office 365 ou local implantações

Tipos de fluxos de trabalho no Visual Studio 2012

Enquanto SharePoint Designer 2013 só pode criar fluxos de trabalho compostos estágios, Visual Studio oferece suporte a outro tipo poderoso do fluxo de trabalho: o fluxo de trabalho de máquina de estado. Com eficácia, em seguida, os ambientes de desenvolvimento de fluxo de trabalho Visual Studio 2012 (e Visual Studio 2013 ) suportam a três tipos de criação de fluxo de trabalho: seqüencial, fluxograma e máquina de estado.

Sequencial

Um fluxo de trabalho sequencial é aquele que segue um caminho específico. Pode haver ramificações de decisão, loops e o fluxo de trabalho pode não ter um ponto de terminação, mas é fácil seguem o caminho previsível do processo de design. Na verdade, é como todos os fluxos de trabalho começam com quando você estiver usando o modelo de fluxo de trabalho do projeto no Visual Studio.

Um fluxo de trabalho sequencial contém uma única atividade de sequência e, em seguida, qualquer número de atividades dentro dele. Alguns desses poderia ser outras atividades de seqüência que você pode usar para agrupar uma série de etapas menores.

Fluxograma

No fluxo de trabalho de fluxograma, o caminho de execução pode fazer a transição para seções diferentes do fluxo de trabalho de acordo com as condições especificadas, conforme mostrado na Figura 1. O fluxograma atividade, juntamente com o FlowDescision associado e FlowSwitch, geralmente são colocados dentro de uma atividade Sequence e agir como um instrução tradicional if, ou instrução switch linguagens de programação em comum.

Baseia-se a construção de estágio dentro de um fluxo de trabalho do SharePoint Designer 2013 com base nos princípios de um fluxograma. Esses tipos de fluxos de trabalho, ao contrário de um fluxo de trabalho sequencial, não tem um caminho indicado na qual eles seguem. Em vez disso, as ações que ocorrem durante o fluxo de trabalho determinam o caminho que segue o fluxo de trabalho.

Figura 1. Fluxograma de fluxograma no Visual Studio 2012

Figure 1. Flowchart workflow

Observação

Pode encontrar o fluxo de trabalho representado na Figura 1 como um exemplo de fluxo de trabalho no MSDN aqui: SharePoint: Fluxo de trabalho de aprovação que utiliza um formulário de iniciação personalizado.

Máquina de estado

Fluxos de trabalho de máquina de estado, como fluxos de trabalho de fluxograma, geralmente não seguem um caminho específico de execução. Em vez disso, eles consistem em dois ou mais estados, conforme mostrado na Figura 2.

Figura 2. Fluxo de trabalho do computador de estado no Visual Studio 2012

Figure 2. State machine workflow

Observação

Pode encontrar o fluxo de trabalho representado na Figura 1 como um exemplo de fluxo de trabalho no MSDN aqui: SharePoint: Encaminhar fluxos de trabalho para estados consoante as ações e eventos.

Pense em cada estado como um fluxo de trabalho menor que contém várias atividades de fluxo de trabalho. Você pode definir as atividades específicas para ser iniciado quando o fluxo de trabalho entra ou sai de um determinado estado. O que realmente torna máquinas de estado interessantes é as transições que você pode definir. Cada estado pode ter uma ou mais transições que informam ao mecanismo de fluxo de trabalho como mover de um estado para outro estado.

O fluxo de trabalho será sempre estar em um dos estados em um fluxo de trabalho de máquina de estado. Uma transição determinarão o gatilho para o fluxo de trabalho mover de um estado para outro. Muitas pessoas favorecem fluxos de trabalho de máquina de estado sobre os outros tipos de fluxos de trabalho, porque eles podem ser feitos a mais de perto espelho processos de negócios de mundo real. No entanto esses tipos de fluxos de trabalho podem obter complicados rapidamente.

Interface de desenvolvimento de fluxo de trabalho do Visual Studio 2012

Ao adicionar um novo fluxo de trabalho a um projeto de SharePoint, o modelo adiciona uma única atividade de sequência que serve como o contêiner principal. Se você quiser criar um fluxo de máquina de estado ou fluxograma simplesmente exclua esta atividade padrão e arraste um fluxograma ou StateMachine atividade para a superfície de design.

Antes de criar um fluxo de trabalho personalizado, os desenvolvedores devem ter um bom entendimento sobre as janelas de ferramenta e a superfície de design que fornece do Visual Studio 2012. Muitos dos elementos são bastante comuns, conforme mostrado na Figura 3:

Figura 3. Interface de criação de fluxos de trabalho do Visual Studio 2012

Figure 3. Workflow authoring interface

A interface de desenvolvimento de fluxo de trabalho - ou seja, o designer de fluxo de trabalho - tem os seguintes elementos principais:

  1. Solution Explorer exibe seu projeto como uma árvore de arquivo.

  2. Ferramentas de fluxo de trabalho contém todas as atividades que você pode usar para montar um fluxo de trabalho. Você arrastar e soltar da caixa de ferramentas para a superfície de designer.

  3. Superfície do designer de fluxo de trabalho é onde você montar e vincular os elementos de fluxo de trabalho.

  4. Grade de propriedades exibe propriedades de um item ou atividade selecionada no Solution Explorer. Use esta opção para definir ou alterar os valores de propriedade.

  5. Painel de saída exibe informações sobre os elementos de atividade de fluxo de trabalho - variáveis, argumentos e importação.

  6. Guias de navegação estrutural permite ampliar e reduzir em várias partes de um fluxo de trabalho em desenvolvimento.

No Painel de saída (n º 5 na Figura 3) é importante, porque ele permite que você veja todas as variáveis no seu fluxo de trabalho no escopo atual. Escopo da funciona da mesma maneira como acontece no design de programação orientado a objeto padrão: uma variável com escopo na raiz é acessível a todos os escopos inferiores (por exemplo, os métodos dentro de uma classe), mas uma variável dentro de um escopo inferior (por exemplo, um método em uma classe) só está acessível dentro desse escopo e seus filhos, mas não os escopos paralela ou pai.

Clique na guia argumentos para ver uma lista dos argumentos que são usadas para passar valores para o fluxo de trabalho, como aquelas passadas de um formulário de inicialização.

Como criar um fluxo de trabalho personalizado

Para criar um fluxo de trabalho personalizado usando Visual Studio 2012 ou versões posteriores, certifique-se de que você tenha acesso a um site de desenvolvedor do SharePoint. Para este passo a passo, é recomendável que você use uma instalação local do SharePoint. Isso ocorre porque os fluxos de trabalho testados localmente podem gravar as informações de depuração o utilitário de console do Host do serviço de teste usando a atividade WriteLine. Esse utilitário está incluído com o Office Developer Tools para Visual Studio 2013, que fazem parte da instalação padrão do Visual Studio 2012 e posteriormente o Professional, Premium e edições Ultimate.

Criar um novo projeto de aplicativo

  1. No Visual Studio, crie um novo projeto Suplementos do SharePoint e configurá-lo para ser um SharePoint-hospedado app.

  2. Neste projeto, adicione uma nova instância de lista de comunicados. Usamos esta lista como um contêiner para itens que vamos usar para testar o fluxo de trabalho.

  3. Adicione um item de fluxo de trabalho ao projeto clicando no ícone de projeto no Solution Explorer e selecionando Add e depois em seguida Novo Item.

  4. Na caixa de diálogo Adicionar Novo Item, selecione o item de projeto de fluxo de trabalho na categoria Office/SharePoint e nomeie-o "Meu primeiro fluxo de trabalho". Clique em Avançar.

  5. Quando solicitado pelo Assistente de personalização do SharePoint para um nome, mantenha o padrão e configurá-la como um Fluxo de trabalho de lista. Clique em Avançar.

  6. Na página seguinte do assistente, marcar caixa para criar uma associação e, em seguida, selecione a lista Anúncios que acabámos de criar; selecione <Criar Novo> para o histórico de fluxos de trabalho e listas de tarefas necessários e, em seguida, clique em Seguinte.

  7. Na página final do assistente, marque a caixa para iniciar o fluxo de trabalho manualmente, deixando as duas opções de inicialização automática desmarcado; Clique em Concluir. Visual Studio adiciona os elementos necessários ao projeto automaticamente e carrega o arquivo Workflow.xaml no designer, conforme mostrado na Figura 4.

    Figura 4. Superfície de estruturador predefinida após adicionar o item de fluxo de trabalho

Figure 4. Default designer surface

Organizar as etapas do fluxo de trabalho

Para automatizar um determinado processo empresarial, fluxos de trabalho podem conter qualquer número de atividades desse grupo você juntos em uma etapa ou sequência. No entanto, se você agrupar muitas dessas atividades em uma única sequência, o fluxo de trabalho se torna confuso e difícil siga e depurar. Isso é semelhante a como uma linguagem de programação comuns é recomendável criar extremamente longos e complexos métodos. Em vez disso, você deve agrupar atividades que trabalham juntos para realizar uma tarefa específica em uma sequência comuns.

Este exemplo de fluxo de trabalho irá ilustrar essa prática de segmentar fluxos de trabalho. Em seu novo projeto, na superfície do projeto, para a atividade de sequência padrão existente, adicione duas novas atividades de sequência e renomeá-la "Seqüência filho 1" e filha sequência 2", conforme mostrado na Figura 5. Também (embora não mostrados na Figura 5), altere o nome da atividade de sequência original para "Root".

Figura 5. Adicionar sequências subordinadas à sequência predefinida ou raiz

Figure 5. Adding child sequences

Comentar em seu fluxo de trabalho usando anotações

Ao usar uma linguagem de programação comuns, como c#, VB.NET ou C++, você pode comentar seu código usando especificadores de comentário apropriada. Código de comentário é importante para testes e mantendo um código de base. Bem, Visual Studio permite que você também comentário seu desenvolvimento de fluxo de trabalho, fornecendo um recurso chamado annotations.

Você pode comentar uma atividade de fluxo de trabalho determinado selecionando a atividade, selecionar anotações, em seguida, Adicionar anotação. Um pequeno ícone de divisas invertidos no lado direito da barra de título da atividade sinais que ele tem uma anotação. Passe o mouse sobre ou clique no ícone para ver a mensagem (mostrada na Figura 6). Você tem a opção para fixar a anotação à atividade, isso significa que sempre visível, conforme mostrado na Figura 6.

Figura 6. Annotation on an activity

Figure 6. Annotation on an activity

Obter valores de itens de lista

Uma tarefa comum você encontrará quando criando fluxos de trabalho é obter propriedades de um item de lista. Para realizar essa tarefa, use a atividade LookupSPListItem. Essa atividade chama um serviço Web usando a API REST do SharePoint para pesquisar informações no item de lista. O procedimento a seguir mostra como fazer isso:

Primeiro, arraste uma atividade LookupSPListItem da caixa de ferramentas e solte-o na atividade filho sequência 1.

Após adicionar a atividade para o designer, você precisará definir algumas propriedades: ListId e ItemId. Essas propriedades podem ser definidas como informações de pesquisa em qualquer lista, mas com os atalhos para a lista atual e o item atual instruir o Workflow Manager descobrir esses valores automaticamente.

Como estamos fazendo um serviço web de chamadas, o valor de retorno desta atividade, refletido na propriedade Result, é do tipo DynamicValue. Portanto, precisamos de uma variável desse tipo de dados na qual armazenar a saída de saída da chamada do serviço web. Isso é muito fácil fazer, porque clicando em Obter propriedades vincular na atividade LookupSPListItem grande parte desse automaticamente:

  • Primeiro, ele cria uma nova variável do tipo DynamicValue.

  • Em seguida, ele define essa nova variável como a fonte para a propriedade Result na atividade LookupSPListItem.

  • Em seguida, ele adiciona uma atividade GetDynamicValueProperties ao fluxo de trabalho para que recuperamos o valor da variável.

  • Finalmente, ele vincula a variável para a propriedade Source na atividade GetDynamicValueProperties.

Obviamente, você poderia ter feito tudo isso manualmente, mas as ferramentas simplificam o processo. Se necessário, você pode alterar os nomes das variáveis.

O ponto, obviamente, é obter alguns valores do item da lista que acionou o fluxo de trabalho: agora, a coluna atribuído a é onde os valores dessas propriedades são vinculados a variáveis criados anteriormente, ou use o link de preencher variáveis que criará automaticamente as variáveis.

  1. Na propriedade Propriedades na atividade GetDynamicValueProperties , clique no botão de reticências [ ???] para abrir a caixa de diálogo Propriedades , apresentada na Figura 7.

    Figura 7. Extrair valores com a caixa de diálogo Propriedades

Figure 7. Extracting values from list items

  1. Em seguida, altere o Tipo de entidade para corresponder ao tipo do item; Nesse caso é o item de lista de Item de lista de comunicados.

  2. Selecione as duas propriedades para recuperar: os campos Title e Created By.

  3. A coluna Atribuir a é onde você acoplar essas propriedades para as variáveis que criamos. Como alternativa, você pode usar o link Popular variáveis, que atribuirá as variáveis automaticamente.

Observe na Figura 7, como a ferramenta criado as variáveis e até mesmo comparadas com os tipos de dados corretamente. Observe também como o campo Criado por é um inteiro. Não é realmente útil mostrar que o usuário é um número para o autor? Isto será abordado posteriormente no fluxo de trabalho.

Obter propriedades do usuário

Outra tarefa comuns no desenvolvimento de fluxo de trabalho personalizado está procurando outros usuários. Por exemplo, a nosso fluxo de trabalho atualmente sabe quem criou o item de anúncio, mas só sabe-los por sua ID. Este ID é a ID do usuário que foi adicionado para Lista de informações do usuário, que é uma cópia em cache de suas informações de perfil do site. O que é realmente desejado é o seu nome ou o nome de login.

Para obter informações de usuário, faça o seguinte:

  1. Renomear nossa primeira sequência ( filho sequência 1 ) para "Obter propriedades de Item" e nomeie a segunda sequência a "Obter propriedades de autor".

    Observação

    [!OBSERVAçãO] Certifique-se a variável que contém o usuário que ID do escopo é definido para o fluxo de trabalho inteiro e não apenas a sequência que podemos estava trabalhando. Vamos alterar o escopo da variável agora, conforme mostrado na Figura 8.

    Figura 8. Alterar o âmbito das variáveis

Figure 8. Changing variable scope

  1. Agora, para obter as informações do usuário, arrastar e soltar uma atividade LookupSpUser no fluxo de trabalho e renomeie-o para "Obter o comunicado autor". Esta atividade será chamar a API REST do SharePoint e passe uma ID específica. Verifique se a aparência de serviço REST usando o navegador e navegando para http://../_api/web/SiteUsers. Levar um aviso de que as propriedades retornadas, também, como podemos eles serão necessários em breve.

  2. Observe que cada usuário possui uma URL específica que inclui seu ID para obter as informações do usuário. Observe também que a atividade é provável chamando o operador do serviço de GetUserById e passando a identificação do usuário para procurar. Passe isso em especificando-se a propriedade PrincipalId da atividade LookupSPUser a variável CreatedBy, que é o inteiro do autor do item comunicado.

  3. Assim como a atividade de LookupSPListItem, a atividade de LookupSPUser retorna um valor de tipo DynamicValue, portanto, crie uma variável desse tipo para associar a nossa resposta e associar essa variável às propriedades Result da atividade LookupSPUser, conforme mostrado na Figura 9.

    Figura 9. Atualizar o resultado da atividade LookupSPUser

Figure 9. Updating LookupSPUser output

  1. Como fizemos anteriormente, use uma atividade GetDynamicValueProperties para extrair os resultados do valor de AuthorProperties. No entanto, observe desta vez que o Entity Type não tem uma opção que podemos definir. Isso não é um problema, porque a resposta do serviço da web reais a LookupSPUser pode ser vista no navegador. Para vê-lo, digite o caminho para a propriedade que você estiver procurando por, que, nesse caso é d/results/(0)/LoginName; em seguida, insira outro para obter o nome de exibição do autor, conforme mostrado na Figura 10.

    Figura 10. Obter valores da atividade LookupSPUser

Figure 10. Retrieving values from LookupSPUser

Testar o fluxo de trabalho

Finalmente, vamos testar o fluxo de trabalho. Comece adicionando duas atividades WriteLine. Eles permitem que mostram o conteúdo do nossos duas variáveis. Ao testar o fluxo de trabalho, o utilitário de console do Host do serviço de teste gravará os dois valores, conforme mostrado na Figura 11.

Figura 11. Testar com a Consola do Anfitrião do Serviço de Teste

Figure 11. Testing the workflow

Conclusão

Este artigo explicou primeiro os diferentes tipos de fluxos de trabalho que podem ser criados usando Visual Studio 2012 e posterior para SharePoint quando ele foi conectado a um farm do Gerenciador de fluxo de trabalho. Em seguida ele demonstrado como criar um fluxo de trabalho que coletou não apenas os valores do item da lista que acionou o fluxo de trabalho, mas ele também demonstrado como executar uma tarefa comum como obter o nome de logon do usuário e exibir nome usando a atividade LookupSPUser. Além disso, o artigo tocado em algumas práticas recomendadas para manter organizados e adicionar comentários usando anotações de fluxos de trabalho.

Confira também