Caso de uso: supervisionar seus workflows

Esse caso de uso detalha a criação de um workflow que permite monitorar o status de um conjunto de workflows que são "pausados", "interrompido" ou "com erros".

Seu objetivo é:

  • Usar um workflow para monitorar um grupo de workflows de negócios.
  • Enviar uma mensagem para um supervisor por meio de uma atividade "delivery".

Para monitorar o status de um conjunto de workflows, siga estas etapas:

  1. Crie o workflow de sincronização.
  2. Escreva o JavaScript para determinar se os workflows estão pausados, interrompidos ou com erros.
  3. Crie a atividade Test.
  4. Prepare o template de delivery.
OBSERVAÇÃO

Além do workflow, o Workflow Heatmap do Campaign permite analisar os detalhes dos workflows executados no momento. Para obter mais informações, consulte a seção dedicada.

Para obter mais informações sobre como monitorar a execução dos workflows, consulte esta seção.

Etapa 1: Criação do workflow de monitoramento

A pasta de workflow que vamos monitorar é a pasta "CustomWorkflows" armazenada no nó Administration > Production > Technical workflows. Esta pasta contém um conjunto de workflows de negócios.

O Monitoring workflow é armazenado na raiz da pasta Technical Workflows. O rótulo usado é "Monitoring".

O schema a seguir mostra a sequência de atividades:

Este workflow é composto por:

  • uma atividade "Start" .
  • uma atividade "JavaScript code" responsável pela análise da pasta de workflows corporativos.
  • uma atividade "Test" para enviar uma delivery ao supervisor ou reiniciar o workflow.
  • uma atividade "Delivery" responsável pelo layout da mensagem.
  • uma atividade "Wait" que controla os tempos de lead entre as iterações do workflow.

Etapa 2: Gravação do JavaScript

A primeira parte do código JavaScript coincides com um query (queryDef) que permite identificar os workflows com status "pause" (@state == 13), "error" (@failed == 1) ou "stopped" (@state == 20).

O nome interno da pasta de workflow a monitorar é fornecido na seguinte condição:

<condition boolOperator="AND" expr="[folder/@name] = 'Folder20'" internalId="1"/>
var strError = "";
var strPaused = "";
var strStop = "";

var queryWkfError = xtk.queryDef.create(
  <queryDef schema="xtk:workflow" operation="select">
    <select>
      <node expr="@internalName"/>
      <node expr="@state"/>
      <node expr="@label"/>
      <node expr="@failed"/>
      <node expr="@state"/>   
    </select>
    <where id="12837805386">
      <condition boolOperator="AND" expr="[folder/@name] = 'Folder20'" internalId="1"/>
        <condition boolOperator="AND" internalId="2">
          <condition boolOperator="OR" expr="@state = 20" internalId="3"/>
          <condition expr="@state = 13" internalId="4"/>
        </condition>  
    </where>
  </queryDef>
);
var ndWkfError = queryWkfError.ExecuteQuery(); 

A segunda parte do código JavaScript permite exibir uma mensagem para cada workflow com base no status recuperado durante a query.

OBSERVAÇÃO

As cadeias de caracteres criadas devem ser carregadas nas variáveis de evento do workflow.

for each ( var wkf in ndWkfError.workflow ) 
{
  if ( wkf.@state == 13 )  // Status 13 = paused
  {
    if ( wkf.@failed == 1 )
      strError += "<li>Workflow '" + wkf.@internalName + "' with the label '" + wkf.@label + "'</li>";
    else
      strPaused += "<li>Workflow '" + wkf.@internalName + "' with the label '" + wkf.@label + "'</li>";
  }
  
  if ( wkf.@state == 20 )  // Status 20 = stop
    strStop += "<li>Workflow '" + wkf.@internalName + "' with the label '" + wkf.@label + "'</li>";
}

vars.strWorkflowError = strError;
vars.strWorkflowPaused = strPaused;
vars.strWorkflowStop = strStop;

Etapa 3: Criação da atividade "Test"

A atividade "Test" permite determinar se um fornecimento precisa ser enviado ou se o workflow de monitoramento precisa executar outro ciclo com base na atividade "Wait".

Uma delivery é realizada ao supervisor se pelo menos uma das três variáveis de evento "vars.strWorkflowError", "vars.strWorkflowPaused" ou "vars.strWorkflowStop" for não nulas.

A atividade "Wait" pode ser configurada para reiniciar o workflow de monitoramento em intervalos regulares. Para esse caso de uso, o tempo de espera é definido como uma hora.

Etapa 4 - Preparação do delivery

A atividade "Delivery" baseia-se em um template de delivery armazenado no nó Resources > Templates >Delivery templates.

Este template deve incluir:

  • o endereço de e-mail do supervisor.

  • Conteúdo HTML para inserir texto personalizado.

    As três variáveis declaradas (WF_Stop, WF_Paused, WF_Error) correspondem às três variáveis de evento do workflow.

    Essas variáveis devem ser declaradas na guia Variables das propriedades do template de delivery.

    Para recuperar o conteúdo das variáveis de evento do workflow, é preciso declarar as variáveis específicas para a delivery que será inicializada com valores retornados pelo código JavaScript.

    O template de delivery tem o seguinte conteúdo:

Depois que o template tiver sido criado e aprovado, é necessário configurar a atividade Delivery para:

  • vincular a atividade "Delivery" ao template de delivery criado anteriormente.
  • vincular as variáveis de evento do workflow àquelas específicas do template de delivery.

Clique duas vezes na atividade Delivery e selecione as seguintes opções:

  • Delivery: selecione New, created from a template e selecione o template de delivery criado anteriormente.

  • Para os campos Recipientes e Content , selecione Specified in the delivery.

  • Ação para executar: selecione Prepare and start.

  • Desmarque a opção Process errors.

  • Acesse a guia Script da atividade Delivery, adicione três variáveis de tipo de character string por meio do menu de campo de personalização.

    As três variáveis declaradas são:

    delivery.variables._var[0].stringValue = vars.strWorkflowError;
    delivery.variables._var[1].stringValue = vars.strWorkflowPaused;
    delivery.variables._var[2].stringValue = vars.strWorkflowStop; 
    

Depois que esse workflow de monitoramento for iniciado, ele enviará o seguinte resumo para o recipient:

Nesta página

Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free
Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now