Usar a interoperabilidade de fluxos de trabalho no SharePoint

Oferece uma discussão sobre o uso do fluxo de trabalho do SharePoint interoperabilidade no designer de fluxo de trabalho Visual Studio 2012. A interoperabilidade de fluxo de trabalho permite-lhe invocar um fluxo de trabalho do SharePoint 2010 a partir de um fluxo de trabalho do SharePoint. Esta é uma funcionalidade importante que lhe permite reutilizar funcionalidades de fluxo de trabalho existentes e chamar atividades de fluxo de trabalho que não estão integradas no SharePoint.

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 mais informações, confira Retirada do fluxo de trabalho do Microsoft Office SharePoint Online 2010.

Importante

Para saber mais sobre como utilizar a funcionalidade de interoperabilidade de fluxo de trabalho do SharePoint no SharePoint Designer 2013, veja Compreender as ações de Coordenação no SharePoint Designer 2013.

Interoperabilidade de fluxo de trabalho do SharePoint

Aqui está o problema. Tem fluxos de trabalho legados do SharePoint 2010 que pretende reutilizar na sua plataforma do SharePoint. Ou, pior ainda, está a criar novos fluxos de trabalho do SharePoint e precisa de invocar atividades que só estão disponíveis na plataforma do SharePoint 2010. E você não souber o que fazer. Na verdade, a solução é simples: usar o fluxo de trabalho do SharePoint interoperabilidade.

A interoperabilidade do fluxo de trabalho do SharePoint permite que os fluxos de trabalho do SharePoint 2010 (incorporados no Windows Workflow Foundation 3) funcionem sem problemas com o motor de fluxo de trabalho do SharePoint, baseado no Windows Workflow Foundation 4. Embora o novo motor de execução do Windows Workflow Foundation 4 esteja alojado no Gerenciador de Fluxos de Trabalho, que é executado como um serviço externo, o SharePoint ainda contém o anfitrião de fluxo de trabalho do SharePoint legado que utiliza para processar fluxos de trabalho do SharePoint 2010. Interoperabilidade de fluxo de trabalho do SharePoint negocia os ambientes de execução de dois, conforme ilustrado na Figura 1.

Figura 1. Interoperabilidade do fluxo de trabalho do SharePoint em ação

Workflow interop bridge

Vamos examinar o processo descrito na Figura 1. Use as letras para fazer referência a pontos de ênfase na ilustração:

( A ) Uma instância de um fluxo de trabalho do SharePoint começa a ser executada em seguida, o Windows Workflow Foundation 4-based Gerenciador de Fluxos de Trabalho. Observe que o Gerenciador de fluxo de trabalho não está no SharePoint, mas, em vez disso, é executado como um serviço externo.

(B) Chega a um ponto no fluxo de trabalho do SharePoint – passo 3 no Gerenciador de Fluxos de Trabalho – em que pretende invocar um fluxo de trabalho do SharePoint 2010. No designer de fluxo de trabalho Visual Studio 2012, você faz isso Implementando a atividade Start 2010 WF, conforme mostrado na Figura 2.

Figura 2. Mosaico de fase para iniciar um fluxo de trabalho do SharePoint 2010.

Start a 2010 workflow

Do ponto de vista do modelo de objetos do SharePoint, isto é feito com o método StartWorkflow na classe WorkflowInteropService .

( C ) neste ponto, o fluxo de trabalho SharePoint 2010 começa executá-lo no host de fluxo de trabalho de 3,5 Windows Workflow Foundation dentro do SharePoint. Mas uma consideração importante surge. Em alguns cenários, você talvez prefira o fluxo de trabalho do 2013 Aguarde o fluxo de trabalho 2010 para ser concluída (e talvez retornar alguns dados) antes de continuar executar o fluxo de trabalho de 2013. Em outros cenários, isso não pode ser necessário e fluxos de trabalho podem ser executado de forma independente, em paralelo.

Para controlar este comportamento, a classe WorkflowInterop , que controla a execução de fluxos de trabalho no anfitrião do fluxo de trabalho do Windows Workflow Foundation 3.5, fornece uma propriedade Aguardar . Definir esta propriedade Booleana como " Sim" (na caixa de diálogo do estruturador) ou verdadeiro na propriedade Aguardar , faz com que o fluxo de trabalho de 2013 seja colocado em pausa até que a execução de 2010 termine e devolva uma mensagem concluída.

Figura 3. Caixa de diálogo Iniciar uma caixa de diálogo de propriedades do Fluxo de Trabalho.

Setting properties on a Start Workflow activity

( D ) o efeito prático selecionando true ou false no Wait propriedade (ou Sim ou não na caixa de diálogo Propriedades) é descrito aqui. Se Aguardar for verdadeiro, o fluxo de trabalho de 2010 transmite um evento WorkflowCompleted (e, opcionalmente, devolve dados como uma propriedade DynamicValue ). Para obter mais informações sobre valores dinâmicos, consulte Understanding Dynamic Value.

Claro que, se a opção Aguardar estiver definida como falsa, o fluxo de trabalho de 2010 é executado e, em seguida, termina normalmente.

( F ) esta etapa só é relevante se sua invocação do fluxo de trabalho 2010 especificado Wait=true. Nesse caso, o fluxo de trabalho 2013 recebeu o evento WorkflowCompleted e reinicia a execução de 2013 do fluxo de trabalho no ponto de parou.

( F ) o fluxo de trabalho de 2013, em seguida, conclui execução e termina normalmente. Se Wait=false, em seguida, o fluxo de trabalho 2013 executa e finaliza independentemente do fluxo de trabalho de 2010.

Design de interoperabilidade do fluxo de trabalho

Interoperabilidade de fluxo de trabalho do SharePoint é uma estrutura de mensagens que ofereça suporte a um mapeamento de instância de um para um entre as atividades de fluxo de trabalho do WF 3 e 4 WF. O WF 3 e o WF 4 interoperam através de trocas de mensagens encapsuladas por um conjunto de atividades WF 4 no WorkflowInteropService .

Para suportar a interoperabilidade do fluxo de trabalho, a superfície de estrutura do fluxo de trabalho no SharePoint Designer fornece acesso a uma nova atividade de fluxo de trabalho, Start 2010 WF, que é um wrapper no método StartWorkflow. Esta atividade permite iniciar um fluxo de trabalho de lista ou de um fluxo de trabalho do site.

A atividade é, de facto, uma sequência de mensagens que ocorrem entre o Gerenciador de Fluxos de Trabalho e o Anfitrião de Fluxo de Trabalho do SharePoint 2010 que está em execução no SharePoint. Esses dois são mediados por uma camada de mensagens, conforme mostrado na Figura 4. A sequência começa no gestor de fluxos de trabalho do SharePoint com uma invocação do método StartWorkflow . A mensagem "Iniciar" vai para o serviço de fluxo de trabalho no SharePoint, em que por sua vez inicia o fluxo de trabalho dentro do host de fluxo de trabalho SharePoint 2010. Quando a execução do fluxo de trabalho 2010 for concluída, um evento é disparado que envia uma mensagem de "completada" por meio do Editor do evento volta para o Gerenciador de fluxo de trabalho de 2013.

Figura 4. Protocolo de mensagens interoperabilidade de fluxo de trabalho do SharePoint

Workflow interop messaging

Confira também