#1 Funciones macro
Las funciones macro ofrecen la posibilidad de personalizar Valores de macro.
A veces una macro puede resolverse con un valor que no es necesariamente f¨¢cil de trabajar con ¨¦l. Puede ser largo o contener una subcadena espec¨ªfica que le interesar¨ªa extraer. Aqu¨ª es donde es ¨²til usar las funciones macro.
La sintaxis de una funci¨®n macro es:
»å¨®²Ô»å±ð:
Los par¨¢metros deben entrecomillarse si:
)
" o una comaPor ejemplo:
{{TIME}.fmttime(formato,time_shift)}
{{ITEM.VALUE}.regsub(±è²¹³Ù°ù¨®²Ô, salida)}
{{#LLDMACRO}.regsub(±è²¹³Ù°ù¨®²Ô, salida)}
Los par¨¢metros de funci¨®n opcionales se indican con < >.
|FUNCI?N|<|<|<| |-|--------------------|--------------------|----- ---------------| |<|¶Ù±ð²õ³¦°ù¾±±è³¦¾±¨®²Ô|±Ê²¹°ù¨¢³¾±ð³Ù°ù´Ç²õ|Compatible con| |fmtnum (»å¨ª²µ¾±³Ù´Ç²õ)|<|<|<| |<|Formato num¨¦rico para controlar el n¨²mero de »å¨ª²µ¾±³Ù´Ç²õ impresos despu¨¦s del punto decimal.|»å¨ª²µ¾±³Ù´Ç²õ - el n¨²mero de »å¨ª²µ¾±³Ù´Ç²õ despu¨¦s del punto decimal. Rango v¨¢lido: 0-20 (desde Áú»¢¶Ä²© 6.0.21). No se producir¨¢n ceros finales.|{ITEM.VALUE}
{ITEM.LASTVALUE}
Macros de expresi¨®n| |fmttime (formato,<hora_shift>)|<|<|<| |<|Formato de hora.|formato - cadena de formato obligatoria, compatible con el formato de la funci¨®n strftime
time_shift - 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).
Desde Áú»¢¶Ä²© 5.4, el par¨¢metro time_shift admite operaciones de tiempo de varios pasos y puede incluir / <time_unit>
para cambiar 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:-1s
- hace exactamente 7 d¨ªas;-1s/s
- lunes de la semana anterior;-1s/s+1d
- martes de la semana anterior.< br>Tenga en cuenta que las operaciones de tiempo se calculan de izquierda a derecha sin prioridades. Por ejemplo, -1M/d+1h/w
se analizar¨¢ como ((-1M/d)+1h)/w
.|{TIME}| |iregsub (±è²¹³Ù°ù¨®²Ô,salida)|<|<|<| |<|Extracci¨®n de subcadenas mediante una coincidencia de expresi¨®n regular (no distingue entre may¨²sculas y min¨²sculas).|±è²¹³Ù°ù¨®²Ô - la expresi¨®n regular para coincidir
salida - las opciones de salida. \1 - \9 se admiten marcadores de posici¨®n para capturar grupos. \0 devuelve el texto coincidente.|{ITEM.VALUE}
{ITEM.LASTVALUE}
Macros de descubrimiento de bajo nivel (excepto en bajo nivel filtro de reglas de descubrimiento de nivel)| |regsub (±è²¹³Ù°ù¨®²Ô,salida)|<|<|<| |<|Extracci¨®n de subcadenas mediante una coincidencia de expresi¨®n regular (distingue entre may¨²sculas y min¨²sculas).|±è²¹³Ù°ù¨®²Ô - la expresi¨®n regular para coincidir
salida - las opciones de salida. \1 - \9 se admiten marcadores de posici¨®n para capturar grupos. \0 devuelve el texto coincidente.|{ITEM.VALUE}
{ITEM.LASTVALUE}
Macros de descubrimiento de bajo nivel (excepto en bajo filtro de reglas de descubrimiento de nivel)|
Si una funci¨®n se utiliza en un compatible ubicaci¨®n, pero se aplica a una macro que no admite funciones de macro, entonces la macro se eval¨²a como 'DESCONOCIDO'.
Si el ±è²¹³Ù°ù¨®²Ô no es una expresi¨®n regular correcta, entonces la macro eval¨²a a 'DESCONOCIDO' (excluyendo macros de descubrimiento de bajo nivel donde la funci¨®n se ignorar¨¢ en ese caso y la macro permanecer¨¢ sin expandir)
Las formas en que se pueden utilizar las funciones macro para personalizar los valores macro se ilustra en los siguientes ejemplos sobre los valores recibidos:
Valor recibido | Macro | Salida |
---|---|---|
24.3413523 |
{{ITEM.VALUE}.fmtnum(2)} |
24.34 |
24.3413523 |
{{ITEM.VALUE}.fmtnum(0)} |
24 |
12:36:01 |
{{TIME}.fmttime(%B)} |
Octubre |
12:36:01 |
{{TIME}.fmttime(%d %B,-1M/M)} |
1 de septiembre |
123L¨ªnea de registro |
{{ITEM.VALUE}.regsub(^[0-9]+, Problema)} |
Problema |
123 L¨ªnea de registro |
{{ITEM.VALUE}.regsub("^([0-9]+)", "Problema")} |
Problema |
123 L¨ªnea de registro |
{{ITEM.VALUE}.regsub("^([0-9]+)", ID del problema: \1)} |
ID del problema: 123 |
L¨ªnea de registro |
{{ITEM.VALUE}.regsub(".*", "ID del problema: \1")} |
''ID del problema: '' |
MySQL fall¨® errno 123 |
{{ITEM.VALUE}.regsub("^(\w+).*?([0-9]+)", " ID del problema: \1_\2 ")} |
'' ID del problema: MySQL_123?'' |
123 L¨ªnea de registro |
{{ITEM.VALUE}.regsub("([1-9]+", "ID del problema: \1")} |
*UNKNOWN* (expresi¨®n regular no v¨¢lida) |
nombredecliente_1 |
{{#IFALIAS}.regsub("(.*)_([0-9]+)", \1)} |
nombre de cliente |
nombre_cliente_1 |
{{#IFALIAS}.regsub("(.*)_([0-9]+)", \2)} |
1 |
nombre_cliente_1 |
{{#IFALIAS}.regsub("(.*)_([0-9]+", \1)} |
{{#IFALIAS}.regsub("(.*)_ ([0-9]+", \1)} (expresi¨®n regular no v¨¢lida) |
nombre_cliente_1 |
{$MACRO:"{{#IFALIAS}.regsub(\"(.*)_([0-9]+)\", \1)}"} |
{$MACRO: "nombre de cliente"} |
nombre_cliente_1 |
{$MACRO:"{{#IFALIAS}.regsub(\"(.*)_([0-9]+)\", \2)}"} |
{$MACRO: "1"} |
nombre_cliente_1 |
{$MACRO:"{{#IFALIAS}.regsub(\"(.*)_([0-9]+\", \1)}"} |
{$MACRO:" {{#M}.regsub(\"(.*)_([0-9]+\", \1)}"} (expresi¨®n regular no v¨¢lida) |
nombre_cliente_1 |
"{$MACRO:\"{{#IFALIAS}.regsub(\\"(.*)_([0-9]+)\\", \1)}\"}" |
"{$MACRO:\"nombre de cliente\"}" |
nombre_cliente_1 |
"{$MACRO:\"{{#IFALIAS}.regsub(\\"(.*)_([0-9]+)\\", \2)}\"}" |
"{$MACRO:\"1\"}") |
nombre_cliente_1 |
"{$MACRO:\"{{#IFALIAS}.regsub(\\"(.*)_([0-9]+\\", \1)}\"}" |
"{$MACRO:\"{{#IFALIAS}.regsub(\\"(.*)_([0-9]+\\", \1)}\"}") (expresi¨®n regular no v¨¢lida) |
Los valores largos de las macros {ITEM.VALUE} y {ITEM.LASTVALUE} resueltas para elementos de texto/registro se truncan a 20 caracteres en algunas ubicaciones de la interfaz. Para ver los valores completos de estas macros, puede utilizar funciones de macro, por ejemplo:
{{ITEM.VALUE}.regsub("(.*)", \1)}
{{ITEM.LASTVALUE}.regsub("(.*)", \1)}
Consulte tambi¨¦n: {ITEM.VALUE} y {ITEM.LASTVALUE} detalles de la macro.