Compartilhar via


Controlar atividades de runbook

Você define a sequência de operações em runbooks vinculando atividades no Runbook Designer. Esses links são conhecidos como links inteligentes porque você pode configurá-los para controlar o tipo de dados passados de uma atividade para outra. Você também pode controlar quando o runbook conclui as atividades definindo a lógica para quando essas operações são executadas com loops inseridos. Por fim, você pode usar operações numéricas e de texto para manipular dados à medida que eles passam entre as atividades ou para definir condições para a ordem das operações. Este artigo descreve como controlar o sequenciamento e manipular dados em seu runbook.

As atividades em seu runbook serão concluídas de acordo com a ordem definida vinculando-as. Você pode controlar os dados que fluem entre as atividades usando as guias Incluir e Excluir das Propriedades do Link. Por exemplo, você só pode incluir dados a serem passados para a atividade subsequente que atenda a um critério específico.

Importante

As regras na guia Excluir do smart link substituem as regras na guia Incluir do smart link.

Importante

As regras em cada guia são unidas por meio de uma condição ou . Apenas uma das condições definidas em uma guia deve ser verdadeira para que a condição seja verdadeira.

O tipo de dados publicados por uma atividade determina o tipo de critério que você pode definir para controlar a sequência de runbook. Algumas atividades publicam dados binários e outras publicam dados numéricos ou de texto.

Se os dados publicados forem dados de texto, você poderá usar qualquer um dos seguintes para definir os critérios de execução, inclusão ou exclusão.

Condição Descrição
contains O texto especificado é exibido em algum lugar no valor do item Dados Publicados.
não contém O texto especificado não é exibido em algum lugar no valor do item Dados Publicados.
inicia com O valor do item Dados Publicados começa com o texto especificado.
termina com O valor do item Dados Publicados termina com o texto especificado.
corresponde ao padrão O valor do item Dados Publicados corresponde à expressão regular específica.
não corresponde ao padrão O valor do item Dados Publicados corresponde à expressão regular específica.
equals O valor do item Dados Publicados corresponde exatamente ao texto especificado.
não é igual a O valor do item Dados Publicados não corresponde ao texto especificado.

Observação

Os valores de texto não diferenciam maiúsculas de minúsculas.

Você também pode definir critérios usando expressões regulares para executar a correspondência de padrões.

Se os dados publicados forem numéricos, você poderá usar qualquer um dos seguintes para definir os critérios de execução, inclusão ou exclusão.

Condição Descrição
equals O valor do item Dados Publicados é exatamente igual ao valor especificado.
não é igual a O valor do item Dados Publicados não é igual ao valor especificado.
é menor que O valor do item Dados Publicados é menor que o valor especificado.
é maior que O valor do item Dados Publicados é maior que o valor especificado.
é menor ou igual a O valor do item Dados Publicados é menor ou igual ao valor especificado.
é maior ou igual a O valor do item Dados Publicados é maior ou igual ao valor especificado.
está entre O valor do item Dados Publicados está entre dois valores especificados.

Selecione a guia necessária para ver as etapas para adicionar ou remover uma condição de link inteligente:

Repetir atividades com loops incorporados

Usando loops, você pode criar repetições automáticas e monitorar em qualquer local em um runbook.

Você pode criar um loop para qualquer atividade para que possa repetir as operações se elas falharem ou testar as informações de saída da atividade para dados válidos. Você também pode usar esses mecanismos para criar condições de espera em seus fluxos de trabalho.

Quando você configura um loop para uma atividade, ele continuará a ser executado com os mesmos dados de entrada até que um critério de loop de saída desejado seja atingido. Você cria os critérios de saída para o loop de maneira semelhante às configurações de link inteligente. Você pode usar qualquer item de dados publicado da atividade como parte da configuração de saída ou não saída. Incluídos nos dados publicados comuns estão itens de dados especiais, como Loop: Número de tentativas e Loop: Duração total, que permitem usar informações do próprio loop nas condições de loop.

Os loops são executados uma vez para cada dado de entrada que é passado para a atividade. Por exemplo, considere um runbook que usa uma atividade Banco de Dados de Consulta seguida por Linha de Acréscimo. Se a atividade Query Database retornasse três linhas, a atividade Append Line seria executada três vezes. Se você tiver um loop na atividade Append Line , ele executará três loops separados. Depois que o primeiro item de dados tiver feito um loop pela atividade Append Line , o próximo item passará por Append Line e fará um loop até sair e, em seguida, o terceiro começará. Depois que todos os três itens forem processados, a próxima atividade no runbook será executada.

Configurar loop

  1. Clique com o botão direito do mouse em uma atividade no runbook para selecionar Looping. A caixa de diálogo Propriedades de loop é aberta.

  2. Na guia Geral , selecione Habilitar.

  3. Na caixa Atraso entre tentativas, insira o número de segundos para pausar entre cada tentativa de executar a atividade.

Condições de saída e não saída

As regras na guia Exit especificam as condições que determinam se o loop é encerrado. As regras na guia Não sair especificam as condições que fazem com que o loop continue.

Importante

As regras na guia Não Sair substituem as regras na guia Sair .

As regras dentro de cada guia são unidas usando uma condição Ou . Apenas uma das condições em uma guia deve ser verdadeira para que toda a guia seja verdadeira.

Selecione a guia necessária para o procedimento para adicionar ou remover uma condição de saída :

Siga estas etapas para adicionar uma condição de saída:

  1. Na caixa de diálogo Propriedades de loop, selecione a guia Sair ou Não sair e, em seguida, selecione a condição listada na caixa Adicionar para adicionar uma condição.

    Importante

    Para alterar os valores que compõem a regra, você precisa selecionar cada parte sublinhada da condição de link.

  2. Selecione a atividade listada na condição para abrir a caixa de diálogo Dados Publicados .

  3. Marque a caixa Mostrar Dados Retornados comuns para exibir propriedades comuns a todas as atividades.

  4. Selecione uma propriedade nos dados publicados e, em seguida, selecione OK. A expressão dos critérios é alterada dependendo do tipo de dados que a propriedade retorna.

  5. Para alterar as diferentes partes da expressão, selecione o texto sublinhado e selecione ou insira um valor apropriado.

  6. Selecione Concluir.

Definir um agendamento para um runbook

Você pode definir um agendamento para controlar quando um runbook é executado. Por exemplo, há momentos em que é inadequado executar alguns runbooks, como fazer backup de um runbook em um servidor principal durante o horário comercial normal. Você pode criar uma agenda que é executada de acordo com um intervalo complexo, como na primeira e na terceira segunda-feira e quinta-feira de cada mês, exceto quando esse dias caírem em um feriado.

Agendas usam o relógio do sistema do servidor Runbook que executa o runbook. Isso permite que as agendas funcionem em ambientes de máquina virtual e continuem sendo executadas mesmo quando o relógio do sistema for ajustado para mudanças de ou para o Horário de Verão.

Os runbooks que começam antes de um tempo proibido são executados até serem concluídos, mesmo que ainda estejam sendo processados quando o tempo proibido chegar. Eles não serão interrompidos após o início do processamento.

Importante

As permissões de acesso para agendamentos podem ser modificadas, mas o servidor runbook não impõe essas permissões.

Observação

Se você agendar um runbook para iniciar durante uma hora que é ignorada quando o relógio do sistema é ajustado para frente em uma hora, essa hora de início é ignorada e o runbook é iniciado na próxima hora agendada. Se você agendar um runbook para iniciar durante uma hora que ocorre duas vezes porque o relógio do sistema é ajustado para trás em uma hora, o runbook será iniciado duas vezes.

Observação

O Orchestrator não suporta a movimentação de vários agendamentos com seleção múltipla. Para mover mais de uma agenda para outra pasta, você deve mover cada agenda individualmente.

Selecione a guia necessária para criar um agendamento, atribuir um agendamento a um runbook ou remover um agendamento de um runbook:

Siga estas etapas para criar um agendamento:

  1. No painel Conexões, clique com o botão direito do mouse na pasta Agendamentos ou em uma subpasta da pasta Agendamentos, aponte para Novo e selecione Agendamento para abrir a caixa de diálogo Novo Agendamento.

  2. Na guia Geral , na caixa Nome , insira um nome para a agenda.

  3. Na caixa Descrição, insira uma descrição que descreva ou explique a finalidade da agenda.

  4. Selecione a guia Detalhes . Selecione os dias em que esse agendamento permite que os runbooks sejam executados:

    Dias da semana: Marque esta opção e selecione os dias da semana em que esta agenda permitirá a execução de runbooks.

    Ocorrência: Selecione as semanas do mês em que a agenda permitirá a execução de runbooks.

    Dias do mês: Marque esta opção e selecione os dias do mês em que esta agenda permitirá a execução de runbooks. Especifique os dias do mês inserindo o número do dia. Você pode usar hifens para descrever intervalos e vírgulas para separar entradas. Por exemplo, digitar 1,3 inclui o primeiro e o terceiro dia do mês. Inserir 1-21 inclui do primeiro ao vigésimo primeiro dia do mês. Você pode combinar as duas opções para criar descrições complexas dos dias do mês. Insira tudo para especificar todos os dias do mês. Digite last para especificar o último dia do mês.

    Você não pode usar todos e durar como parte de um intervalo de dias. Além disso, se você inseriu um intervalo de 5 a 31, esse intervalo funcionará corretamente para todos os meses, incluindo aqueles com 28, 29, 30 e 31 dias.

  5. Selecione Horas para abrir a caixa de diálogo Agendar Horas .

  6. Selecione e arraste para selecionar um grupo de horas em uma semana. O texto na parte inferior da caixa de diálogo mostra o período de tempo selecionado. Selecione uma das seguintes opções:

    Permitir (azul): atribui o período de tempo selecionado como um período em que é permitida a execução de runbooks.

    Negado (branco): atribui o período de tempo selecionado como um período em que não é permitida a execução de runbooks.

  7. Selecione OK.

  8. Selecione a guia Exceções . A lista exibe todos os dias que são exceções às regras definidas na guia Detalhes .

  9. Selecione Adicionar para abrir a caixa de diálogo Data.

  10. Especifique a data e selecione Permitir ou Não permitir que o runbook seja executado nesse dia e, em seguida, selecione OK. A entrada aparece na lista.

  11. Para modificar uma entrada de exceção, selecione-a e, em seguida, selecione Modificar. Para remover a entrada Exceção, selecione-a e, em seguida, selecione Remover.

  12. Para modificar uma agenda, clique duas vezes na Agenda.

  13. Para remover uma agenda, clique com o botão direito do mouse na Agendae, em seguida, selecione Excluir.

  14. Selecione Concluir.

Manipular dados com funções

Talvez seja necessário manipular dados de cadeia de caracteres de arquivos de texto, dados retornados ou outras fontes e convertê-los em um formulário utilizável para suas atividades de runbook. Além disso, você pode executar operações aritméticas simples, como calcular somas e diferenças e executar operações de divisão e multiplicação. Por exemplo, você pode extrair texto de um arquivo de texto usando uma atividade de Gerenciamento de Arquivos de Texto , cortar espaços à esquerda e à direita do texto e recuperar partes específicas do texto que podem ser passadas para outras atividades como itens de dados retornados.

Você manipula dados no runbook inserindo uma função. As funções de manipulação de dados devem ser colocadas entre colchetes ('[' e ']'). Por exemplo:

[Upper('this will be inserted in upper case')]

Quando a atividade é executada, o texto 'isso será inserido em letras maiúsculas' do exemplo é substituído por 'ISSO SERÁ INSERIDO EM LETRAS MAIÚSCULAS'.

As funções diferenciam maiúsculas de minúsculas. Por exemplo, Upper('Texto') será processada, mas upper('Texto') não será.

A tabela a seguir lista as funções com suporte para runbooks.

Função e definição Uso Parâmetros Exemplo
Upper - converte o texto em letras maiúsculas. Upper('Texto') Texto - o texto que está sendo convertido em letras maiúsculas. Upper('isso será convertido em letras maiúsculas') retorna 'ISSO SERÁ CONVERTIDO EM LETRAS MAIÚSCULAS'
Lower - converte o texto em letras minúsculas. Lower('Texto') Texto - o texto que está sendo convertido em letras minúsculas. Lower('Isso Será Convertido em Letras Minúsculas') retorna 'isso será convertido em letras minúsculas'
Field - retorna o texto em uma posição específica. Field('Texto', 'Delimitador', Número de Campo) Texto - o texto que está sendo pesquisado.

Delimitador - o caractere que separa cada campo.

Número de Campo - a posição do campo que está sendo retornado (começando em 1).
Field('John;Smith;9055552211', ';', 2) retorna 'Smith'.
Sum - retorna a soma de um conjunto de números. Sum(primeiroNúmero, segundoNúmero, terceiroNúmero, ...) Número - o número que está sendo adicionado. Você pode colocar qualquer conjunto de números, cada um separado por uma vírgula (,). Sum(2,3,4,5) retorna '14'
Diff - retorna a diferença entre dois números. Diff(Número1, Número2, <Precisão>) Número1 - o número do qual será subtraído.

Número2 - o número que será subtraído de Número1.

Precisão <opcional> - o número de casas decimais para as quais o resultado será arredondado.
Diff(9, 7) retorna '2'

Diff(9,3, 2,1, 2) retorna '7,20'
Mult - retorna o produto de um conjunto de números. Mult(primeiroNúmero, segundoNúmero, terceiroNúmero, ...) Número - o número que está sendo multiplicado. Você pode colocar qualquer conjunto de números, cada um separado por uma vírgula (,). Mult(2, 3, 4) retorna '24'
Div - retorna o quociente de dois números. Div(Número1, Número2, <Precisão>) Número1 - o número que será dividido.

Número2 - o número que dividirá o Número1.

Precisão <opcional> - o número de casas decimais para as quais o resultado será arredondado.
Div(8, 4) retorna '2'

Div(9, 2, 2) retorna '4,50'
Instr - retorna a posição da primeira ocorrência do texto dentro de outro texto. Instr ('PesquisarTexto', 'TextoParaLocalizar') PesquisarTexto - o texto que está sendo pesquisado.

TextoParaLocalizar - o texto que você está procurando.
InStr('Esta é uma cadeia de caracteres que é procurada', 'cadeia de caracteres') retorna 11
Right - retorna um subconjunto do texto à direita do texto completo. Right('Texto', Comprimento) Texto - o texto completo.

Comprimento - o número de caracteres à direita que será retornado.
Right('Tirar da direita', 9) retorna 'direita'
Left - retorna um subconjunto do texto à esquerda do texto completo. Left('Texto', Comprimento) Texto - o texto completo.

Comprimento - o número de caracteres à esquerda que será retornado.
Left('Tirar da esquerda', 4) retorna 'Tirar'
Mid - retorna um subconjunto do texto no meio do texto completo. Mid('Texto', Início, Comprimento) Texto - o texto completo.

Início - posição inicial do texto onde você deseja começar a retornar caracteres.

Comprimento - o número de caracteres a partir da posição inicial que serão retornados.
Mid('Tirar do meio', 5, 4) retorna 'de'
LTrim - corta espaços à esquerda do texto. LTrim('Texto') Texto - o texto do qual os espaços à esquerda estão sendo cortados. LTrim(' Remova apenas os espaços à esquerda. ') retorna 'Remova apenas os espaços à esquerda. '
RTrim - corta os espaços à direita do texto. RTrim('Texto') Texto - o texto do qual os espaços à direita estão sendo cortados. RTrim(' Remova apenas os espaços à direita. ') retorna ' Remova apenas os espaços à direita.'
Trim - corta espaços à esquerda e à direita do texto. Trim('Texto') Texto - o texto que está sendo cortado. Trim(' Remova os espaços à esquerda e à direita. ') retorna 'Remover espaços à esquerda e à direita'.
Len - retorna o comprimento do texto. Len('Texto') Texto - o texto que está sendo medido. Len('Medir este texto') retorna 17

Observação

As funções diferenciam maiúsculas de minúsculas. Por exemplo, Upper('Texto') será processada, mas upper('Texto') não será.

Próximas etapas

Para ler um passo a passo guiado da criação de um runbook de exemplo, consulte Criando e testando um runbook de exemplo.