La función Record.ReorderFields devuelve un registro tras reordenar sus campos.
Record.ReorderFields(
record as record,
fieldOrder as list,
optional missingField as nullable number
) as record
- record: registro cuyos campos se desean reordenar
- fieldOrder: lista con los campos a reordenar en el orden deseado
- missingField: (opcional) criterio a seguir cuando no exista el campo a reordenar
Los campos no incluidos en el argumento fieldOrder se mantienen en su posición inicial.
Si alguno de los campos incluidos en el argumento fieldOrder no existe, por defecto se devuelve un error, pero este comportamiento puede controlarse añadiendo el argumento missingField. Éste puede tomar los valores MissingField.Error, MissingField.UseNull o MissingField.Ignore. Véanse ejemplos más adelante.
Si partimos del registro [name="Tom", id=1, city="London", country="UK"], podemos modificar el orden de los campos "name", "city" y "country" a "country", "city" y "name" con la siguiente expresión:
Record.ReorderFields(
[name="Tom", id=1, city="London", country="UK"],
{"country", "city", "name"}
)
Record
Un clic en el enlace Record nos muestra el registro devuelto:
Obsérvese que el campo "id" se mantiene en su posición original.
Si alguno de los campos no existe, la función devuelve un error:
Record.ReorderFields(
[name="Tom", id=1, city="London", country="UK"],
{"country", "location", "name"}
)
Error
Este comportamiento puede modificarse incluyendo el argumento missingField. Si éste toma el valor MissingField.Error, la función devuelve un error (es el comportamiento por defecto). Si toma el valor MissingField.Ignore, la función simplemente ignora los campos inexistentes:
Record.ReorderFields(
[name="Tom", id=1, city="London", country="UK"],
{"country", "location", "name"},
MissingField.Ignore
)
Record
En este caso el registro devuelto es el siguiente:
Comprobamos que el supuesto campo "location" se ha ignorado y solo se han reordenado los campos "country" y "name".
Por último, si se incluye como tercer argumento el valor MissingField.UseNull, el campo inexistente se crea y recibe el valor null:
Record.ReorderFields(
[name="Tom", id=1, city="London", country="UK"],
{"country", "location", "name"},
MissingField.UseNull
)
Record
El registro devuelto es el siguiente: