Compartir vía


Control de las actividades de runbooks

Establece la secuencia de operaciones en runbooks mediante la vinculación de actividades en Runbook Designer. Estos vínculos se conocen como vínculos inteligentes porque puedes configurarlos para controlar el tipo de datos pasados de una actividad a otra. También puedes controlar cuándo el runbook completa las actividades configurando la lógica para determinar cuándo se ejecutan esas operaciones mediante bucles integrados. Por último, puedes usar operaciones numéricas y de texto para manipular los datos a medida que pasa entre actividades o para establecer condiciones para el orden de las operaciones. En este artículo se describe cómo gestionar el orden de ejecución y manipular los datos dentro del cuaderno de operaciones.

Las actividades de un runbooks se llevan a cabo en el orden establecido al vincularlas entre sí. Puedes controlar los datos que fluyen entre las actividades mediante las pestañas Incluir y Excluir de las propiedades del vínculo. Por ejemplo, podrías incluir solo los datos que se pasen a la actividad posterior que cumplan un criterio determinado.

Importante

Las reglas de la pestaña Excluir del vínculo inteligente reemplazan las reglas de la pestaña Inclusión del vínculo inteligente.

Importante

Las reglas de cada pestaña se unen mediante una condición OR. Solo una de las condiciones definidas en una pestaña debe ser verdadera para que la condición sea verdadera.

El tipo de datos publicado por una actividad determina el tipo de criterios que se pueden establecer para controlar la secuencia de runbooks. Algunas actividades publican datos binarios y otras publican datos numéricos o de texto.

Si los datos publicados son datos de texto, puedes usar cualquiera de los siguientes para establecer los criterios de ejecución, inclusión o exclusión.

Condición Descripción
contains El texto especificado aparece en algún lugar del valor del elemento Datos publicados.
no contiene El texto especificado no aparece en ningún lugar del valor del elemento Datos publicados.
empieza por El valor del elemento Datos publicados comienza con el texto especificado.
termina por El valor del elemento Datos publicados finaliza con el texto especificado.
coincide con el patrón El valor del elemento Datos publicados coincide con la expresión regular específica.
no coincide con el patrón El valor del elemento Datos publicados coincide con la expresión regular específica.
es igual a El valor del elemento Datos publicados coincide exactamente con el texto especificado.
no es igual a El valor del elemento Datos publicados no coincide con el texto especificado.

Nota:

Los valores de texto no distinguen mayúsculas de minúsculas.

También puedes establecer criterios mediante expresiones regulares para realizar la coincidencia de patrones.

Si los datos publicados son numéricos, puedes utilizar cualquiera de las siguientes opciones para establecer los criterios de ejecución, inclusión o exclusión.

Condición Descripción
es igual a El valor del elemento Datos publicados es exactamente igual al valor especificado.
no es igual a El valor del elemento Datos publicados no es igual al valor especificado.
es menor que El valor del elemento Datos publicados es menor que el valor especificado.
es mayor que El valor del elemento Datos publicados es mayor que el valor especificado.
es menor o igual que El valor del elemento Datos publicados es menor o igual que el valor especificado.
es mayor o igual que El valor del elemento Datos publicados es mayor o igual que el valor especificado.
está comprendido entre El valor del elemento Datos publicados está entre dos valores especificados.

Selecciona la pestaña necesaria para ver los pasos para agregar o quitar una condición de vínculo inteligente:

Repetición de actividades mediante bucles incrustados

El uso de bucles permite incorporar reintentos automáticos y supervisarlos en cualquier punto de un runbook.

Puedes crear un bucle para cualquier actividad, de manera que puedas volver a intentar las operaciones si producen un error o probar la información de salida de la actividad para ver si los datos son válidos. También puedes usar estos mecanismos para crear condiciones de espera en los flujos de trabajo.

Al configurar un bucle para una actividad, seguirá ejecutándose con los mismos datos de entrada hasta que se alcance el criterio de bucle de salida deseado. Los criterios de salida del bucle se compilan de forma similar a las configuraciones de vínculo inteligente. Se puede usar cualquier elemento de datos publicado de la actividad como parte de la configuración de salida o de no salida. En los datos publicados habituales se incluyen elementos de datos especiales, como Bucle: Número de intentos y Bucle: Duración total, que permiten usar información del propio bucle en las condiciones de bucle.

Los bucles se ejecutan una vez por cada dato entrante que se pasa a la actividad. Por ejemplo, piensa en un runbook que usa una actividad de Query Database seguida por Append Line. Si la actividad Query Database devolvió tres filas, la actividad Append Line se ejecutaría tres veces. Si tienes un bucle en la actividad Append Line, ejecutaría tres bucles independientes. Después de que el primer elemento de datos haya recorrido el bucle de la actividad Anexar línea, el siguiente elemento pasa por Anexar línea y recorre bucles hasta que se cierra y, a continuación, comienza el tercero. Una vez procesados los tres elementos, se ejecuta la siguiente ejecución de runbook.

Configuración de bucles

  1. Haga clic con el botón derecho en una actividad del runbook para seleccionar Bucle. Se abrirá el cuadro de diálogo Propiedades de bucle.

  2. En la pestaña General, selecciona Habilitar.

  3. En el cuadro Retraso entre intentos, escribe el número de segundos para pausar entre cada intento de ejecutar la actividad.

Condiciones para salir y no salir

Las reglas de la pestaña Salir especifican las condiciones que determinan si el bucle sale. Las reglas de la pestaña No salir especifican las condiciones que hacen que el bucle continúe.

Importante

Las reglas de la pestaña No salir reemplazan las reglas de la pestaña Salir.

Las reglas de cada pestaña se unen mediante una condición OR. Solo una de las condiciones de una pestaña debe ser verdadera para que toda la pestaña lo sea.

Selecciona la pestaña necesaria para el procedimiento para agregar o quitar una condición de salida:

Para agregar una condición de salida, sigue estos pasos:

  1. En el cuadro de diálogo Propiedades de bucle, selecciona la pestaña Salir o la pestaña No salir y luego selecciona la condición que aparece en el cuadro. Por último, selecciona Agregar para agregar una condición.

    Importante

    Para cambiar los valores que componen la regla, debes seleccionar cada parte subrayada de la condición de vínculo.

  2. Selecciona la actividad enumerada en la condición para abrir el cuadro de diálogo Datos publicados.

  3. Marca el cuadro Mostrar datos devueltos comunes para mostrar las propiedades que son comunes a todas las actividades.

  4. Selecciona una propiedad de los datos publicados y, a continuación, haz clic en Aceptar. La expresión de los criterios se cambia en función del tipo de datos que la propiedad devuelve.

  5. Para cambiar las distintas partes de la expresión, selecciona el texto subrayado y selecciona o especifica un valor adecuado.

  6. Seleccione Finalizar.

Establecimiento de una programación para un runbook

Puede establecer una programación para controlar cuándo se ejecuta un runbook. Por ejemplo, hay ocasiones en las que no es apropiado ejecutar algunos runbooks, como al realizar una copia de seguridad de un runbook en un servidor principal durante el horario laboral habitual. Puedes crear una programación que se ejecute según un intervalo complejo, como el primer y el tercer lunes y jueves de cada mes, excepto cuando estos días caen en un día festivo.

En las programaciones, se utiliza el reloj del sistema del servidor de Runbooks en el que se ejecuta el runbook. Esto permite que las programaciones funcionen en entornos de máquina virtual y sigan ejecutándose incluso cuando el reloj del sistema se ajuste debido al cambio del horario de verano.

Los runbooks que comienzan antes de una hora prohibida continúan ejecutándose hasta que finalizan, aunque aún se estén procesando cuando llegue la hora prohibida. No se interrumpirán después de que se haya iniciado el procesamiento.

Importante

Los permisos de acceso a las programaciones se pueden modificar, pero el servidor del runbook no aplica estos permisos.

Nota:

Si programa un runbook para que se inicie durante una hora que se omite cuando el reloj del sistema se adelanta una hora, esa hora de inicio se omite y el runbook se inicia a la próxima hora programada. Si programa un runbook para que se inicie durante una hora que se produce dos veces porque el reloj del sistema se retrasa una hora, el runbook se inicia dos veces.

Nota:

Orchestrator no admite trasladar varias programaciones con la función de selección múltiple. Para mover más de una programación a otra carpeta, debes mover cada programación individualmente.

Selecciona la pestaña necesaria para crear una programación, asigna una programación a un runbook o quita una programación de un runbook:

Para crear una programación, sigue estos pasos:

  1. En el panel Conexiones, haz clic con el botón derecho en la carpeta Programaciones o en una subcarpeta de la carpeta Programaciones, coloca el puntero sobre Nuevo y luego selecciona Programar para abrir el cuadro de diálogo Nueva programación.

  2. En la pestaña General, en el cuadro Nombre , escribe un nombre para la programación.

  3. En el cuadro Descripción, escribe una descripción que describa o explique el propósito de la programación.

  4. Seleccione la pestaña Detalles. Selecciona los días en los que esta programación permite ejecutar runbooks:

    Días de la semana: Selecciona esta opción y selecciona los días de la semana en los que esta programación permita que los runbooks puedan ejecutarse.

    Repetición: seleccione las semanas del mes en las que la programación permite que se ejecuten runbooks.

    Días del mes: Seleccione esta opción y elija los días del mes en los que esta programación permite ejecutar runbooks. Para especificar los días del mes, escribe el número del día. Puede usar guiones para describir intervalos y comas para separar entradas. Por ejemplo, si escribes 1,3, se incluyen los días 1 y 3 del mes. Si introduces 1-21, se incluye desde el día 1 hasta el día 21 del mes. Puedes combinar ambos métodos para crear descripciones complejas de los días del mes. Introduce todo para especificar todos los días del mes. Introduce último para especificar el último día del mes.

    No puedes usar todo y último como parte de un intervalo de días. Además, si has especificado un intervalo 5-31, este intervalo funciona correctamente para todos los meses, incluidos los meses con 28, 29, 30 y 31 días.

  5. Selecciona Horas para abrir el cuadro de diálogo Programar horario .

  6. Selecciona y arrastra para seleccionar un grupo de horas de una semana. El texto de la parte inferior del cuadro de diálogo muestra el período de tiempo que has seleccionado. A continuación, seleccione una de las siguientes opciones:

    Permitir (azul): asigna el período de tiempo que has seleccionado como la hora en que los runbooks pueden ejecutarse.

    Denegado (blanco): asigna el período de tiempo que has seleccioando como la hora en que los runbooks no pueden ejecutarse.

  7. Seleccione Aceptar.

  8. Selecciona la pestaña Excepciones. La lista muestra todos los días que son excepciones a las reglas definidas en la pestaña Detalles.

  9. Selecciona Agregar para abrir el cuadro de diálogo Fecha.

  10. Especifica la fecha y selecciona Permitir o No permitir para permitir que el runbook se ejecute en ese día o no y, a continuación, selecciona Aceptar. La entrada aparece en la lista.

  11. Para modificar una entrada de excepción, selecciónela y, a continuación, selecciona Modificar. Para eliminar la entrada de excepción, selecciónala y, a continuación, haz clic en Eliminar.

  12. Para modificar una programación, haz doble clic en Programación.

  13. Para elimianr una programación, haz clic con el botón derecho en Programaciones y, a continuación, selecciona Eliminar.

  14. Seleccione Finalizar.

Manipular datos con funciones

Es posible que tengas que manipular datos de cadena de archivos de texto, de datos devueltos o de otro origen y convertirlos en un formulario utilizable para las actividades del runbook. Aparte, puedes realizar operaciones aritméticas sencillas, como calcular sumas y restas, así como divisiones y multiplicaciones. Por ejemplo, puedes extraer texto de un archivo de texto através de una actividad de administración de archivos de texto, recortar los espacios iniciales y finales del texto y, a continuación, recuperar partes específicas del texto que puede pasar a otras actividades como elementos de datos devueltos.

Para manipular los datos del runbook, se inserta una función. Las funciones de manipulación de datos deben incluirse entre corchetes ("[" y "]"). Por ejemplo:

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

Cuando se ejecuta la actividad, el texto "esto será insertado en mayúsculas" del ejemplo se reemplaza por "ESTO SERÁ INSERTADO EN MAYÚSCULAS".

Las funciones distinguen entre mayúsculas y minúsculas. Por ejemplo, Upper('Text') se procesará, pero upper('Text'), no.

En la tabla siguiente se enumeran las funciones admitidas para runbooks.

Función y definición Uso Parámetros Ejemplo
Upper: convierte el texto en mayúsculas. Upper('Text') Text: el texto que se convierte a mayúsculas. Upper('esto se convertirá a mayúsculas') devuelve 'ESTO SE CONVERTIRÁ A MAYÚSCULAS'
Inferior: convierte el texto en minúsculas. Lower('Text') Texto: el texto que se está convirtiendo en minúsculas. Lower('Esto Se Convertirá A Minúsculas') devuelve 'esto se convertirá a minúsculas'.
Campo: devuelve texto en una posición específica. Campo('Texto', 'Delimitador', Número de campo) Texto: el texto que se está buscando.

Delimiter: el carácter que separa cada campo.

Número de campo: la posición del campo que se va a devolver (a partir de 1).
Field('John; Smith; 9055552211', ';', 2) devuelve 'Smith'
Sum: devuelve la suma de un conjunto de números. Suma(primerNúmero, segundoNúmero, tercerNúmero, ...) Número: número que se suma. Puedes incluir cualquier conjunto de números, separados por una coma (,). Sum(2,3,4,5) devuelve '14'
Diff: devuelve la diferencia de dos números. Dif(Número1, Número2, <Precisión>) Number1: número del que se resta.

Número2: número que se restará del Número1.

Precisión <opcional> : el número de posiciones decimales a las que se redondeará el resultado.
Diferencia(9, 7) devuelve '2'

Diff(9.3, 2.1, 2) devuelve '7.20'.
Mult: devuelve el producto de un conjunto de números. Mult(firstNumber, secondNumber, thirdNumber, ...) Number: número que se multiplica. Puedes incluir cualquier conjunto de números, separados por una coma (,). Mult(2, 3, 4) devuelve '24'
Div: devuelve el cociente de dos números. Div(Número1, Número2, <Precisión>) Número1: el número que va a ser dividido.

Número2: el número que dividirá el Número1.

Precisión <opcional> : el número de posiciones decimales a las que se redondeará el resultado.
La función Div(8, 4) devuelve '2'

Div(9, 2, 2) devuelve '4,50'
Instr: devuelve la posición de la primera aparición de un texto dentro de otro. Instr ('SearchText', 'TextToFind') SearchText: el texto que se está buscando.

TextToFind: el texto que está buscando.
Instr('Esta es una cadena que se busca', 'string') devuelve 11
Right: devuelve un subconjunto del texto a partir del lado derecho del texto completo. Right('Text', Length) Texto: el texto completo.

Length: número de caracteres a partir del lado derecho que se devolverán.
Right('Tomar desde la derecha', 9) devuelve 'a derecha'
Left: devuelve un subconjunto del texto a partir del lado izquierdo del texto completo. Left('Text', Length) Texto: el texto completo.

Length: número de caracteres a partir del lado izquierdo que se devolverán.
Left('Tomar desde la izquierda', 4) devuelve 'Toma'
Mid: devuelve un subconjunto del texto desde el centro del texto completo. Medio('Texto', Inicio, Longitud) Texto: el texto completo.

Inicio: la posición inicial en el texto desde donde desea empezar a devolver caracteres.

Length: número de caracteres a partir de la posición de inicio que se devolverán.
Mid('Tomar desde el centro', 5, 4) devuelve ' des'
LTrim: recorta los espacios iniciales del texto. LTrim('Text') Text: texto al que se quitan los espacios iniciales. LTrim(' Quitar solo espacios iniciales. ') devuelve 'Quitar solo espacios iniciales. ' '
RTrim: recorta los espacios finales del texto. RTrim('Text') Texto: el texto al que se le están recortando los espacios finales. RTrim(' Quitar solo espacios finales. ') devuelve ' Quitar solo espacios finales.'
Trim: recorta los espacios iniciales y finales del texto. Trim('Text') Texto: el texto que se está recortando. Trim(' Remove leading and trailing spaces. ') devuelve 'Elimina los espacios iniciales y finales.'
Len: devuelve la longitud del texto. Len('Text') Text: texto que se mide. Len('Medir este texto') devuelve 17

Nota:

Las funciones distinguen entre mayúsculas y minúsculas. Por ejemplo, Upper('Text') se procesará, pero upper('Text'), no.

Pasos siguientes

Si quieres leer un tutorial guiado sobre cómo crear un runbook de muestra, consulta Crear y probar un runbook de muestra.