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. O interoperabilidade de fluxo de trabalho permite invocar um fluxo de trabalho do SharePoint 2010 de dentro de um fluxo de trabalho do SharePoint. Esse é um recurso importante que permite reutilizar recursos de fluxo de trabalho existentes e chamar atividades de fluxo de trabalho que não estão integradas ao 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 usar a funcionalidade de interoperabilidade de fluxo de trabalho do SharePoint no SharePoint Designer 2013, consulte Noções básicas sobre ações de coordenação no SharePoint Designer 2013.

Interoperabilidade de fluxo de trabalho do SharePoint

Aqui está o problema. Você tem fluxos de trabalho herdados do SharePoint 2010 que deseja reutilizar em sua plataforma do SharePoint. Ou, pior, você está criando novos fluxos de trabalho do SharePoint e precisa 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.

O interoperabilidade do fluxo de trabalho do SharePoint permite que os fluxos de trabalho do SharePoint 2010 (criados no Windows Workflow Foundation 3) funcionem sem problemas com o mecanismo de fluxo de trabalho do SharePoint, que se baseia no Windows Workflow Foundation 4. Enquanto o novo mecanismo de execução do Windows Workflow Foundation 4 está hospedado no Gerenciador de Fluxos de Trabalho, que é executado como um serviço externo, o SharePoint ainda contém o host de fluxo de trabalho herdado do SharePoint que ele usa 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 de 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 no Gerenciador de Fluxos de Trabalho baseado em Windows Workflow Foundation 4. Observe que o Gerenciador de fluxo de trabalho não está no SharePoint, mas, em vez disso, é executado como um serviço externo.

( B ) Você chega a um ponto no fluxo de trabalho do SharePoint – etapa número 3 no Gerenciador de Fluxos de Trabalho – em que deseja 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. Bloco de estágio para iniciar um fluxo de trabalho do SharePoint 2010.

Start a 2010 workflow

Na perspectiva do modelo de objeto do SharePoint, isso é realizado usando 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 esse comportamento, a classe WorkflowInterop , que controla a execução de fluxos de trabalho no host de fluxo de trabalho do Windows Workflow Foundation 3.5, fornece uma propriedade Wait . Definir essa propriedade booliana como " Sim" (na caixa de diálogo do designer) ou true na propriedade Wait , faz com que o fluxo de trabalho de 2013 pare até que o 2010 termine a execução e retorne uma mensagem concluída .

Figura 3. Inicie uma caixa de diálogo 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 Wait for true, o fluxo de trabalho de 2010 passará por um evento WorkflowCompleted (e, opcionalmente, retorna dados como uma propriedade DynamicValue ). Para obter mais informações sobre valores dinâmicos, consulte Understanding Dynamic Value.

É claro que, se Wait estiver definido como false, o fluxo de trabalho de 2010 será executado e, em seguida, será encerrado 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 por meio de trocas de mensagens que são encapsuladas por um conjunto de atividades do WF 4 no WorkflowInteropService .

Para dar suporte ao interoperabilidade de fluxo de trabalho, a superfície de design 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 fato uma sequência de mensagens que ocorrem entre o Gerenciador de Fluxos de Trabalho e o Host 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 gerenciador de fluxo 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 de interoperabilidade de fluxo de trabalho do SharePoint

Workflow interop messaging

Confira também