Show Menu
TÓPICOS×

Supervisão de worflows

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.
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.
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: