1 funciones macro

Las funciones de macro ofrecen la posibilidad de personalizar valores macro (por ejemplo, acortar o extraer subcadenas específicas), lo que facilita el trabajo con ellas.

Todas las funciones enumeradas aquí son compatibles con todo tipo de macros:

Las funciones de macro se pueden utilizar en todas las ubicaciones que admitan las macros enumeradas. Esto se aplica a menos que se indique explícitamente que solo se espera una macro. (por ejemplo, al configurar macros de host o regla de descubrimiento de bajo nivel filtros).

Las funciones se enumeran sin información adicional. Haga clic en la función para ver los detalles completos.

Función Descripción
fmtnum Formato numérico para controlar el número de dígitos impresos después del punto decimal.
fmttime Formato de hora.
iregsub Extracción de subcadenas mediante una coincidencia de expresión regular (no distingue entre mayúsculas y minúsculas).
regsub Extracción de subcadenas mediante una coincidencia de expresión regular (distingue entre mayúsculas y minúsculas).

Detalles de la función

La sintaxis de una macro función es:

{macro.func(parámetros)}
  • macro - la macro a personalizar, por ejemplo {ITEM.VALUE} o {#LLDMACRO};
  • func - la función a aplicar;
  • params: una lista delimitada por comas de parámetros de función, que deben citarse si:
    • empieza con un espacio o comillas dobles;
    • contiene paréntesis de cierre "``" o una coma.

Los parámetros de función opcionales se indican con < >.

fmtnum(dígitos)

Formato numérico para controlar el número de dígitos impresos después del punto decimal.

Parámetros:

  • dígitos: el número de dígitos después del punto decimal. Rango válido: 0-20. No se producirán ceros finales.

Ejemplos:

Función macro Valor recibido Salida
{{ITEM.VALUE}.fmtnum(2)} 24.3413523 24.34
{{ITEM.VALUE}.fmtnum(0)} 24.3413523 24

fmttime(formato,<hora_shift>)

Formato de hora.
Tenga en cuenta que esta función se puede utilizar con macros que se resuelven en un valor en uno de los siguientes formatos de hora:

  • hh:mm:ss
  • aaaa-mm-ddThh:mm:ss[tz] (estándar ISO8601)
  • marca de tiempo Unix

Parámetros:

  • format - cadena de formato obligatoria, compatible con el formato de la función strftime;
  • time_shift (opcional): el cambio de hora aplicado a la hora antes del formateo; debe comenzar con -<N><time_unit> o +<N><time_unit>, donde:
    • N - el número de unidades de tiempo para sumar o restar;
    • time_unit - h (hora), d (día), w (semana), M (mes) o y (año).

Comentarios:

  • El parámetro time_shift admite operaciones de tiempo de varios pasos y puede incluir /<time_unit> para desplazarse al principio de la unidad de tiempo. (/d - medianoche, /w - 1er día de la semana (lunes), /M - 1er día del mes, etc.). Ejemplos: -1w - hace exactamente 7 días; -1w/w - lunes de la semana anterior; -1w/w+1d - Martes de la semana anterior.
  • Las operaciones horarias se calculan de izquierda a derecha sin prioridades. Por ejemplo, -1M/d+1h/w se analizará como ((-1M/d)+1h)/w.

Ejemplos:

Función macro Valor recibido Salida
{{TIME}.fmttime(%B)} 12:36:01 Octubre
{{TIME}.fmttime(%d %B,-1M/M)} 12:36:01 1 de septiembre

iregsub(patrón,salida)

Extracción de subcadenas mediante una coincidencia de expresión regular (no distingue entre mayúsculas y minúsculas).

Parámetros:

  • patrón - la expresión regular que debe coincidir;
  • salida - las opciones de salida. \1 - \9 se admiten marcadores de posición para capturar grupos. \0 devuelve el texto coincidente.

Comentarios:

  • Si el patrón de función es una expresión regular incorrecta, entonces la macro se evalúa como 'DESCONOCIDA' (excepto para macros de descubrimiento de bajo nivel, en cuyo caso la función se ignorará y la macro permanecerá sin resolver).

regsub(patrón,salida)

Extracción de subcadenas mediante una coincidencia de expresión regular (distingue entre mayúsculas y minúsculas).

Parámetros:

  • patrón - la expresión regular que debe coincidir;
  • salida - las opciones de salida. \1 - \9 se admiten marcadores de posición para capturar grupos. \0 devuelve el texto coincidente.

Comentarios:

  • Si el patrón de función es una expresión regular incorrecta, entonces la macro se evalúa como 'DESCONOCIDA' (excepto para macros de descubrimiento de bajo nivel, en cuyo caso la función se ignorará y la macro permanecerá sin resolver).

Ejemplos:

Función macro Valor recibido Salida
{{ITEM.VALUE}.regsub(^[0-9]+, Problema)} 123Línea de registro Problema
{{ITEM.VALUE}.regsub("^([0-9]+)", "Problema")} 123 Línea de registro Problema
{{ITEM.VALUE}.regsub("^([0-9]+)", ID del problema: \1)} 123 Línea de registro ID del problema: 123
{{ITEM.VALUE}.regsub(".*", "ID del problema: \1")} Línea de registro ''ID del problema: ''
{{ITEM.VALUE}.regsub("^(\w+).*?([0-9]+)", " ID del problema: \1_\2 ")} MySQL falló errno 123 '' ID del problema: MySQL_123 ''
{{ITEM.VALUE}.regsub("([1-9]+", "ID del problema: \1")} 123 Línea de registro *UNKNOWN* (expresión regular no válida)
{{#IFALIAS}.regsub("(.*)_([0-9]+)", \1)} nombre_cliente_1 nombre_cliente
{{#IFALIAS}.regsub("(.*)_([0-9]+)", \2)} nombre_cliente_1 1
{{#IFALIAS}.regsub("(.*)_([0-9]+", \1)} nombre de cliente_1 {{#IFALIAS}.regsub("(.*)_ ([0-9]+", \1)} (expresión regular no válida)
{$MACRO:"{{#IFALIAS}.regsub(\"(.*)_([0-9]+)\", \1)}"} nombre_cliente_1 {$MACRO: "nombre de cliente"}
{$MACRO:"{{#IFALIAS}.regsub(\"(.*)_([0-9]+)\", \2)}"} nombre_cliente_1 {$MACRO: "1"}
{$MACRO:"{{#IFALIAS}.regsub(\"(.*)_([0-9]+\", \1)}"} nombre_cliente_1 {$MACRO:" {{#M}.regsub(\"(.*)_([0-9]+\", \1)}"} (expresión regular no válida)
"{$MACRO:\"{{#IFALIAS}.regsub(\\"(.*)_([0-9]+)\\", \1)}\"}" nombre_cliente_1 "{$MACRO:\"nombre de cliente\"}"
"{$MACRO:\"{{#IFALIAS}.regsub(\\"(.*)_([0-9]+)\\", \2)}\"}" nombre_cliente_1 "{$MACRO:\"1\"}")
"{$MACRO:\"{{#IFALIAS}.regsub(\\"(.*)_([0-9]+\\", \1)}\"}" nombre_cliente_1 "{$MACRO:\"{{#IFALIAS}.regsub(\\"(.*)_([0-9]+\\", \1)}\"}") (expresión regular no válida)