La función Record.HasFields comprueba si un registro incluye uno o varios campos, devolviendo el valor lógico True en caso positivo.
Record.HasFields(
record as record,
fields as any
) as logical
- record: registro a evaluar
- fields: campo o campos a buscar en el registro
El argumento fields puede ser una cadena de texto conteniendo el nombre del campo buscado, o una lista de nombres de campos.
En el caso de que dicho argumento se trate de una lista de campos, el orden en el que aparezcan éstos no es relevante.
Podemos comprobar si el registro [id=1, name="Tom", city="London"] incluye el campo "name" con la siguiente expresión:
Record.HasFields(
[id=1, name="Tom", city="London"],
"name"
)
TRUE

Sin embargo, si buscamos el campo "age" el resultado es negativo:
Record.HasFields(
[id=1, name="Tom", city="London"],
"age"
)
FALSE

Si queremos comprobar la existencia de dos o más campos, deberemos incluirlos en una lista. En el siguiente ejemplo buscamos los campos "name" y "city":
Record.HasFields(
[id=1, name="Tom", city="London"],
{"name", "city"}
)
TRUE

Si, por el contrario, buscamos los campos "name" y "age", el resultado es negativo:
Record.HasFields(
[id=1, name="Tom", city="London"],
{"name", "age"}
)
FALSE
