Control de actividades de runbook
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 se puede controlar cuándo el runbook completa las actividades estableciendo la lógica para cuando esas operaciones se ejecutan con bucles incrustados. 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 controlar la secuenciación y manipular datos dentro del runbook.
Control de la secuencia de actividad con vínculos inteligentes
Las actividades del runbook se completarán según el orden establecido mediante la vinculación de las mismas. 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 publicados por una actividad determina el tipo de criterios que puedes establecer para controlar la secuencia del runbook. 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. |
equals | 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 entre mayúsculas y 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 |
---|---|
equals | 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:
Sigue estos pasos para añadir una condición de enlace inteligente:
Haz clic con el botón derecho en un vínculo inteligente para seleccionar Propiedades y abrir el cuadro de diálogo Propiedades del vínculo.
Importante
Para cambiar los valores que componen la regla, debes seleccionar cada parte subrayada de la condición de vínculo inteligente.
Selecciona la actividad enumerada en la condición para abrir el cuadro de diálogo Datos publicados.
Selecciona el cuadro Mostrar datos devueltos comunes para mostrar las propiedades que son comunes a todas las actividades.
Selecciona una propiedad en Datos publicados y, después, Aceptar. La expresión de los criterios se cambia en función del tipo de datos que devuelve la propiedad.
Para cambiar las distintas partes de la expresión, selecciona el texto subrayado y luego selecciona o escribe un valor adecuado.
Seleccione Finalizar.
Repetición de actividades con bucles incrustados
Utilizando bucles, puedes crear reintentos automáticos y supervisar en cualquier ubicación 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 salida o no de la configuración. En los datos publicados comunes se incluyen elementos de datos especiales, como Loop: Number of attempts y Loop: Total duration, que permiten usar información del propio bucle en las condiciones de bucle.
Los bucles se ejecutan una vez para cada fragmento de datos entrante que se pasa a la actividad. Por ejemplo, considera un runbook que usa una actividad Query Database seguida de 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 actividad del runbook.
Configuración de bucle
Haz clic con el botón derecho en una actividad en el runbook para seleccionar Bucle. Se abre el cuadro de diálogo Propiedades de bucle.
En la pestaña General, selecciona Habilitar.
En el cuadro Retraso entre intentos, escribe el número de segundos para pausar entre cada intento de ejecutar la actividad.
Condiciones de salida y no salida
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:
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.
Selecciona la actividad enumerada en la condición para abrir el cuadro de diálogo Datos publicados.
Marca el cuadro Mostrar datos devueltos comunes para mostrar las propiedades que son comunes a todas las actividades.
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 devuelve la propiedad.
Para cambiar las distintas partes de la expresión, selecciona el texto subrayado y selecciona o especifica un valor adecuado.
Seleccione Finalizar.
Establecer una programación para un runbook
Puedes establecer una programación para llevar un control de cuándo se ejecuta un runbook. Por ejemplo, hay ocasiones en las que no es apropiado ejecutar algunos runbooks, como cuando se está realizando una copia de seguridad de un runbook en un servidor principal durante el horario comercial normal. 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.
Las programaciones usan el reloj del sistema del servidor de Runbook que 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.
Runbooks que comienzan antes de una ejecución del tiempo de prohibición hasta que termina, incluso si se siguen procesando cuando llega el tiempo de prohibición. 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 programas un runbook para iniciarse 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 programas un runbook para que se inicie durante una hora dos veces porque el reloj del sistema se ajusta se adelanta una hora, el runbook se inicia dos veces.
Nota:
Orchestrator no admite mover varias programaciones con 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:
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.
En la pestaña General, en el cuadro Nombre , escribe un nombre para la programación.
En el cuadro Descripción, escribe una descripción que describa o explique el propósito de la programación.
Selecciona la pestaña Detalles. Selecciona los días que esta programación permite la ejecución de los runbooks:
Días de la semana: selecciona esta opción y selecciona los días de la semana que esta programación permite que se ejecuten runbooks.
Repetición: selecciona las semanas del mes que la programación permite que se ejecuten runbooks.
Días del mes: selecciona esta opción y selecciona los días del mes que esta programación permite que se ejecuten runbooks. Para especificar los días del mes, escribe el número del día. Puedes 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 midmo 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.
Selecciona Horas para abrir el cuadro de diálogo Programar horario .
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.
Seleccione Aceptar.
Selecciona la pestaña Excepciones. La lista muestra todos los días que son excepciones a las reglas definidas en la pestaña Detalles.
Selecciona Agregar para abrir el cuadro de diálogo Fecha.
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.
Para modificar una entrada de excepción, selecciónela y, a continuación, selecciona Modificar. Para eliminar la aplicación, selecciónala y, a continuación, haz clic en Eliminar.
Para modificar una programación, haz doble clic en Programación.
Para elimianr una programación, haz clic con el botón derecho en Programaciones y, a continuación, selecciona Eliminar.
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, tienes que insertar 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 "this will be inserted in uppercase" del ejemplo se reemplaza por "THIS WILL BE INSERTED IN UPPERCASE".
Las funciones distinguen mayúsculas de 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 está convirtiendo en mayúsculas. | Upper('this will be converted to uppercase') returns 'THIS WILL BE CONVERTED TO UPPERCASE' |
Inferior: convierte el texto en minúsculas. | Lower('Text') | Text: el texto que se está convirtiendo en minúsculas. | Lower('This Will Be Converted To Lowercase') returns 'this will be converted to lowercase' |
Campo: devuelve texto en una posición específica. | Field('Text', 'Delimiter', Field Number) | 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; Herrero; 9055552211', ';', 2) devuelve 'Smith' |
Sum: devuelve la suma de un conjunto de números. | Sum(firstNumber, secondNumber, thirdNumber, ...) | Number: el número que se va a sumar. 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. | Div(Número1, Número2, <Precisión>) | Número1: número del que se restará. 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' Diferencia(9.3, 2.1, 2) devuelve '7.20' |
Mult: devuelve el producto de un conjunto de números. | Mult(firstNumber, secondNumber, thirdNumber, ...) | Number: el 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>) | Number1: el número que se dividirá. 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. |
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('This is a string that is searched', 'string') returns 11 |
Derecha: devuelve un subconjunto del texto del lado derecho del texto completo. | Right('Text', Length) | Texto: el texto completo. Longitud: el número de caracteres del lado derecho que se devolverá. |
Right('Take from the right', 9) returns 'the right' |
Left: devuelve un subconjunto del texto del lado izquierdo del texto completo. | Left('Text', Length) | Texto: el texto completo. Longitud: el número de caracteres contado desde la izquierda que se devolverá. |
Left('Take from the left', 4) devuelve 'Take' |
Mid: devuelve un subconjunto del texto desde el centro del texto completo. | Mid('Text', Start, Length) | Texto: el texto completo. Inicio: la posición inicial en el texto desde donde desea empezar a devolver caracteres. Longitud: el número de caracteres a partir de la posición de Inicio que se va a devolver. |
Mid('Take from the middle', 5, 4) devuelve 'from' |
LTrim: recorta los espacios iniciales del texto. | LTrim('Text') | Texto: el texto al que se le están recortando los espacios iniciales. | LTrim(' Remove the leading spaces only. ') devuelve 'Remove the leading spaces only. ' |
RTrim: recorta los espacios finales del texto. | RTrim('Text') | Texto: el texto al que se le están recortando los espacios finales. | RTrim(' Remove the trailing spaces only. ') devuelve 'Remove the trailing spaces only.' |
Trim: recorta los espacios iniciales y finales del texto. | Trim('Text') | Texto: el texto al que se le están recortando los espacios iniciales y finales. | Trim(' Remove leading and trailing spaces. ') devuelve 'Remove leading and trailing spaces.' |
Len: devuelve la longitud del texto. | Len('Text') | Texto: el texto que se mide. | Len('Measure this text') devuelve 17 |
Nota:
Las funciones distinguen mayúsculas de 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.