Adicionar um fluxo de trabalho a um Suplemento do SharePoint hospedado pelo SharePoint
Este é o sexto de uma série de artigos sobre as noções básicas de desenvolvimento de Suplementos do SharePoint hospedados pelo SharePoint. Primeiro, você deve estar familiarizado com Suplementos do SharePoint e os artigos anteriores dessa série, que você pode encontrar em Introdução à criação de Suplementos do SharePoint hospedados pelo SharePoint | Próximas etapas.
Observação
É recomendável que o Microsoft Power Automate seja usado em aplicativos e automação de processos. A partir do Visual Studio 2022, os modelos de fluxo de trabalho foram removidos dos Projetos de Suplemento do SharePoint. Para obter mais informações, consulte Diretrizes: migrar de fluxos de trabalho clássicos para fluxos do Power Automate no SharePoint
Dica
Se você trabalhou com esta série sobre suplementos hospedados pelo SharePoint, você terá uma solução do Visual Studio que pode ser usada para continuar com este tópico. Você também pode baixar o repositório em SharePoint_SP-hosted_Add-Ins_Tutorials e abrir o arquivo BeforeWorkflow.sln.
Neste artigo, você adiciona um fluxo de trabalho ao Suplemento do SharePoint Orientação do Funcionário, que notifica o departamento de recursos humanos (RH) de que um novo funcionário está pronto para preencher a documentação do RH.
Adicionar um fluxo de trabalho a um suplemento
No Gerenciador de Soluções, clique com o botão direito do mouse no projeto e selecione Adicionar>Nova Pasta. Nomeie a pasta Fluxos de trabalho.
Clique com o botão direito na nova pasta e selecione Adicionar>Novo Item. A caixa de diálogo Adicionar Novo Item é aberta para o nó Office/SharePoint.
Selecione Fluxo de trabalho e escolha o nome HR_Intake. Quando solicitado para selecionar o tipo de fluxo de trabalho, escolha Fluxo de trabalho de listae selecione Avançar.
Na próxima página do assistente, habilite a opção Sim, associar... e configure os controles do menu suspenso para os seguintes valores:
- A biblioteca ou lista às quais associar seu fluxo de trabalho: Novos Funcionários em Seattle
- A lista do histórico:
<create new>
- A lista de tarefas:
<create new>
Selecione Avançar.
Na última página do assistente, habilite somente a opção para iniciar automaticamente o fluxo de trabalho quando um item for alterado.
Selecione Concluir.
As Office Developer Tools para Visual Studio farão o seguinte:
- Criar um fluxo de trabalho HR_Intake na pasta Fluxo de trabalho, com o arquivo filho Workflow.xaml que é aberto no designer de fluxo de trabalho.
- Criar uma instância de lista WorkflowTaskList em que as tarefas que fazem parte do fluxo de trabalho são criadas e atualizadas.
- Criar uma instância de lista WorkflowHistoryList, que é um log das várias etapas em cada execução do fluxo de trabalho conforme elas ocorrem.
Projetar o fluxo de trabalho
O fluxo de trabalho envia um email para notificar a um membro do RH que o novo funcionário terminou o estágio de orientação Tour de construção e está pronto para preencher a documentação de admissão do RH. Qualquer alteração em um item existente na lista New Employees in Seattle aciona o fluxo de trabalho, mas o fluxo de trabalho não faz nada a menos que o campo Orientation Stage do item da lista esteja definido como HR paperwork. Se estiver, um email é enviado para um membro do RH e uma tarefa para esse funcionário é adicionada à WorkflowTaskList.
Observação
Em vários momentos ao projetar seu fluxo de trabalho, um símbolo de diamante azul com um ponto de exclamação nele ( ) aparecerá em um ou mais itens no designer de fluxo de trabalho. Esses são erros temporários do relatório. (Passe o cursor sobre o símbolo para ver uma breve mensagem ou procure na Lista de Erros do Visual Studio para obter detalhes.) Estes são efeitos colaterais da incompletude do fluxo de trabalho. Todos devem desaparecer quando você terminar esse procedimento.
Abra o painel Caixa de Ferramentas no Visual Studio, expanda o nó SP - List e arraste LookupSPListItem para a Sequência no designer.
Selecione LookupSPListItem para que suas propriedades apareçam no painel Propriedades do Visual Studio. Defina as propriedades a seguir com estes valores:
- ItemID: (item atual)
- ListID: (lista atual)
- DisplayName: LookupCurrentNewEmployee
Agora o painel Propriedades deve ter a seguinte aparência:
Figura 1. Painel propriedades do LookupSPListItem
Selecione qualquer lugar fora do painel para salvar suas alterações. Agora a superfície do designer deve se parecer com o seguinte.
Figura 2. Sequência no designer de fluxo de trabalho
Selecione o link Obter Propriedades dentro da (recém-renomeada) atividade LookupCurrentNewEmployee no designer. Isso adiciona automaticamente a atividade GetDynamicValueProperties na sequência.
Selecione o texto Definir... na atividade GetDynamicValueProperties . Isso abre a caixa de diálogo Propriedades.
Defina o Tipo de Entidade como Item de Lista delist_instance_name, em que list_instance_name são Novos Funcionários em Seattle.
Na coluna Caminho, selecione a célula superior e escolha Orientation Stage no menu suspenso.
Selecione a célula abaixo dela e escolha Empregado na lista suspensa.
Selecione Preencher Variáveis. Isso cria as variáveis OrientationStage e Título e atribui a cada uma os valores de campos correspondentes no item atual da lista Novos Funcionários em Seattle. Agora a caixa de diálogo Propriedades deve ter a seguinte aparência:
Selecione OK. Agora a superfície do designer deve se parecer com o seguinte:
Figura 4. Designer de fluxo de trabalho
Abra o painel Caixa de Ferramentas no Visual Studio, expanda o nó Fluxo de Controle e arraste If na parte inferior da Sequência abaixo de GetDynamicValueProperties.
Na caixa Condição de If, insira OrientationStage=="HR paperwork".
Abra o painel Caixa de Ferramentas no Visual Studio, expanda o nó SP - Utilities e arraste Email para a caixa Then da atividade If.
Selecione a atividade Email. No painel Propriedades, defina os valores das propriedades Corpo, Assunto e Para. Em cada caso, escolha o botão de chamada . . . para a propriedade e use o Editor de Expressão que é aberto para definir o valor da propriedade como na tabela a seguir. Existem expressões de cadeias de caracteres de C#, portanto, use as aspas exatamente como mostrado. A variável
Title
é uma que você atribuiu anterior para o campo Título do item da lista (que contém o nome do funcionário).- Corpo:
Title + " is waiting in the lobby to fill out benefits and employment forms."
- Assunto:
Title + " is ready for HR paperwork"
- Para:
new System.Collections.ObjectModel.Collection<string>() {"your_O365_email"}
Substitua o espaço reservado, your_O365_email, pela identidade que você usa para entrar na sua conta de desenvolvedor do Office 365, tal como
*alias*@*O365domain*.sharepoint.com
. Essa é uma cadeia de caracteres de C# que deve estar entre aspas.- Corpo:
Abra o painel Caixa de Ferramentas no Visual Studio, expanda o nó Tempo de Execução e arraste TerminateWorkflow para a caixa Else da atividade If.
Selecione a atividade TerminateWorkflow e, no painel Propriedades, defina o Motivo como o seguinte, incluindo as aspas:
"Not at HR paperwork stage."
. Agora o designer deve se parecer com o seguinte:Figura 5. Designer de fluxo de trabalho quando o fluxo de trabalho é concluído
Executar e testar o suplemento
Use a tecla F5 para implantar e executar o suplemento. O Visual Studio faz uma instalação temporária do suplemento em seu site de teste do SharePoint e executa o suplemento imediatamente. O console do Host de Serviço de Teste do Gerenciador de Fluxo de Trabalho também é aberto.
Quando a página padrão do suplemento abrir, abra um dos itens para edição e defina o valor de Orientation Stage como HR paperwork.
No console do Host de Serviço de Teste, aparece uma indicação de que o fluxo de trabalho foi iniciado. Logo em seguida há uma indicação de que o fluxo de trabalho foi concluído. Este é um exemplo:
Figura 6. Console do Host de Serviço de Teste
Observação
Se o console do Host do Serviço de Teste não for aberto, talvez seja necessário habilitar a depuração do fluxo de trabalho. Clique com botão direito do mouse no nome do projeto no Gerenciador de Soluções e selecione Propriedades. Abra a guia SharePoint no painel Propriedades e marque a caixa de seleção Habilitar depuração de fluxo de trabalho.
Vá para a caixa de entrada de email (Outlook) da sua conta de desenvolvedor do Office 365. Haverá um email com o assunto "Funcionário está pronto para a documentação do RH" em que Funcionário é o nome do funcionário cujo item que você editou. O corpo do e-mail diz que "O funcionário está esperando no lobby para preencher benefícios e formulários de emprego." Veja a seguir um exemplo:
Figura 7. Email enviados pelo fluxo de trabalho
Dica
Se o fluxo de trabalho começar mas nunca for concluído e o email não for enviado, tente encerrar a sessão de depuração e pressione F5 novamente por algumas vezes antes de concluir que algo está errado em seu código. Às vezes o problema está no SharePoint Online. Se você ainda estiver com problemas, tente adicionar um tipo de conteúdo chamado ListFieldsContentType, se ainda não houver um, na seção ContentTypes do arquivo Schema.xml. Veja a seguir um exemplo da marcação:
<ContentType ID="0x0100781dd48170b94fdc9706313c82b3d04c" Name="ListFieldsContentType" Hidden="TRUE"></ContentType>
Copie toda a seção FieldRefs do tipo de conteúdo NewEmployee para esse novo tipo de conteúdo. Salve o projeto, cancele-o e tente F5 novamente.
Para encerrar a sessão de depuração, feche a janela do navegador ou interrompa a depuração no Visual Studio. Sempre que você seleciona F5, o Visual Studio retira a versão anterior do suplemento e instala a versão mais recente.
Você lidará com esse suplemento e com a solução do Visual Studio em outros artigos, e recomenda-se retirar o suplemento uma última vez quando for deixar de trabalhar com ele por algum tempo. Clique com botão direito do mouse no projeto no Gerenciador de Soluções e escolha Retirar.
Próximas etapas
No próximo artigo desta série, você adicionará um estilo e uma página personalizada a um Suplemento do SharePoint hospedado pelo próprio SharePoint.