Como criar ações de opção que executam ações de fluxo de trabalho baseadas em valores específicos nos Aplicativos Lógicos do Azure

Aplica-se a: Aplicativos Lógicos do Azure (Consumo)

Para executar ações específicas com base em valores de objetos, expressões ou tokens, adicione uma ação de opção. Essa estrutura avalia o objeto, a expressão ou o token, escolhe o caso que coincide com o resultado e executa ações específicas apenas para esse caso. Apenas um caso deve corresponder ao resultado quando a ação de opção for executada.

Por exemplo, suponhamos que você deseje um aplicativo lógico que execute etapas diferentes com base em uma opção selecionada no e-mail. Neste exemplo, o aplicativo lógico verifica o feed de RSS de um site para o novo conteúdo. Quando um novo item aparece no feed de RSS, o aplicativo lógico envia e-mail a um aprovador. Baseado em se o aprovador seleciona "Aprovar" ou "Rejeitar", o aplicativo lógico segue etapas diferentes.

Dica

Como todas as linguagens de programação, ações de opção dão suporte apenas a operadores de igualdade. Se precisar de outros operadores relacionais, como “maior que”, use uma ação de condição. Para garantir o comportamento de execução determinística, casos devem conter um valor exclusivo e estático em vez de expressões ou tokens dinâmicos.

Pré-requisitos

  • Uma assinatura do Azure. Se você não tem uma assinatura, inscreva-se em uma conta gratuita do Azure.

  • Para seguir o exemplo deste artigo, crie um exemplo de fluxo de trabalho de aplicativo lógico de Consumo com uma conta do Outlook.com ou uma conta corporativa ou de estudante.

    1. Ao adicionar a ação para enviar email, localize e selecione a seguinte ação: Enviar um email de aprovação

      Select

    2. Forneça os campos obrigatórios, como o endereço de e-mail da pessoa que obtém o e-mail de aprovação. Em Opções do usuário, insira “Aprovar, Rejeitar”.

      Enter email details

Como adicionar uma ação de opção

  1. Nesse exemplo, adicione uma ação de opção no final do seu fluxo de trabalho de amostra. Após a última etapa, escolha Nova etapa.

    Quando você deseja adicionar uma ação de opção entre as etapas, passe o ponteiro do mouse sobre a seta onde quer adicionar a ação de opção. Escolha o sinal de adição ( + ) que aparece e, em seguida, escolha Adicionar uma ação.

  2. Na caixa de pesquisa, digite “switch” como filtro. Selecione esta ação: Switch - Controle

    Add switch

    Uma ação de opção aparece com um caso e um caso padrão. Por padrão, uma ação de opção precisa de, no mínimo, um caso além do caso padrão.

    Empty default switch action

  3. Clique dentro da caixa Em para que seja exibida a lista de conteúdo dinâmica. Desta lista, selecione o campo SelectedOption cuja saída determina a ação a ser executada.

    Select

  4. Para lidar com casos onde o aprovador selecione Approve ou Reject, adicione outro caso entre Caso e Padrão.

    Add another case

  5. Adicione essas ações para os casos correspondentes:

    Nº do caso SelectedOption Ação
    Caso 1 Aprovar Adicionar a ação do Outlook Enviar um e-mail para enviar detalhes sobre o item de RSS somente quando o aprovador selecionado Aprovar.
    Caso 2 Rejeitar Adicione a ação do Outlook Enviar um e-mail para notificar outros aprovadores que o item de RSS foi rejeitado.
    Padrão Nenhum Nenhuma ação é necessária. Neste exemplo, o caso Padrão está vazio porque SelectedOption tem apenas duas opções.

    Finished switch action

  6. Salve seu aplicativo lógico.

    Para testar manualmente este exemplo, escolha Executar até que o aplicativo lógico encontre um novo item de RSS e envie um e-mail de aprovação. Selecione Aprovar para observar os resultados.

Definição JSON

Agora que você criou um aplicativo lógico usando uma ação de opção, vamos examinar a definição de código de alto nível contida nessa ação.

"Switch": {
   "type": "Switch",
   "expression": "@body('Send_approval_email')?['SelectedOption']",
   "cases": {
      "Case": {
         "actions": {
           "Send_an_email": {}
         },
         "case" : "Approve"
      },
      "Case_2": {
         "actions": {
           "Send_an_email_2": {}
         },
         "case": "Reject"
      }
   },
   "default": {
      "actions": {}
   },
   "runAfter": {
      "Send_approval_email": [
         "Succeeded"
      ]
   }
}
Rótulo Descrição
"Switch" O nome da ação de opção, que pode ser renomeada para facilitar a leitura
"type": "Switch" Especifica que a ação é uma ação de opção
"expression" Neste exemplo, especifica a opção selecionada pelo aprovador que é avaliada em cada caso declarado posteriormente na definição
"cases" Define qualquer quantidade de casos. Para cada caso, "Case_*" é o nome padrão do caso, que pode ser renomeado para facilitar a leitura
"case" Especifica o valor do caso, que deve ser um valor constante e exclusivo que a ação de opção usa para comparação. Se nenhuma ocorrência corresponder ao resultado da expressão de comutação, as ações na seção "default" são executadas.

Obtenha suporte

Próximas etapas