checkbox
Dentro de la definición JSON podemos especificar que el tipo sea 'checkbox'.
{ "fields":
{
"<field-name>": { "type":"checkbox" }
}
}
Elemento | Descripción |
---|---|
field | Nombre del campo sobre el que se realiza el filtro |
field_name | [opcional] Nombre que deseamos que aparezca en el filtro. Si no se define el filtro. Admite un tag de Localization |
type | checkbox |
Checkbox tipo manual
Elemento | Descripción |
---|---|
values[] | Es un array de objetos con la estructura {"id":<valor_id>,"value":"Texto para mostrar asociado a ese id"}. values pude ser también un array simple [valor1,valor2,valor3] |
defaultvalue | Qué valor por defecto queremos en el seleccionable |
show_select_value(bool) | En el caso que el valor sea 'true' y los valores del select tenga un 'id' y 'value', entonces muestra el valor en vez del id en los listados y en las visualizaciones. |
Select desde otro CFO
{"external_values":"[ds,db,bq]"} /training/cfos/field-definitions/attribute/external_values [pm]
Dentro de la definición JSON podemos especificar el atributo 'external_values' para indicar que los valores del campo los va a tomar de otro CFO.
{ "fields":
{
"<field-name>": { "type":"<select>","external_values":"<ds,db,bq>",.. }
}
}
Cuando se quiere referencia a otro CFO, tenemos que añadir la entidad como una dependencia del CFO que estás modificando.

Elemento | Descripción | Ejemplo |
---|---|---|
*external_values | Indica que los datos se van a conseguir de otro CFO. Los valores admitidos son: db (database), ds (datastore), bq (BigQuery) | ds |
*entity | Nombre del CFOs | Categories |
*linked_field | Nombre del campo dentro del CFO {entity} que se utilizará como ID en la relación con el campo actual | KeyName |
*fields | Nombre del campo o campos (separados por ','), dentro del CFO {entity} que se utilizará como textos a mostrar en el seleccionable | KeyName,Cat |
allow_empty | Si el valor es true se require el campo {empty_value} | true |
empty_value | Texto a mostrar cuando no hay ningún elemento seleccionado | Seleccionar un valor |
external_where[] | Es un array de objetos {"<campo>":<valor>} que aplicará un condición al listado de elementos que vendrán del CFO {entity}. Si el tipo de campo es Datastore.list, entonces el <valor> puede ser una lista de valores separados por ',' en cuyo caso la condición where asociada buscará registros cuyo campo de lista contenga todos los valores (condición AND). Si por el contrario <valor> es un array, buscará los registros cuyo <campo> contenga alguno de dichos valores (condición OR) | [{"Cat":"Sistema"}] |
external_order | Puedes indicar el/los campos de ordenación | Cat ASC |
Ejemplos
El CFO quiere añadir un filtro de tipo de usuario asociado al campo user_type_id y que se relaciona con el CFO rg_list_user_types.rg_list_user_type_id
{
"field": "user_type_id",
"field_name": "{cfos;customers;variables; user_type_id}",
"type": "select",
"empty_value": "Seleccionar un tipo de usuario",
"external_values": "db",
"entity": "rg_list_user_types",
"linked_field": "rg_list_user_type_id",
"fields": "rg_list_user_type_name",
"allow_empty": true
}
Cargar en Memoria (load_in_memory)
Para datastore existe una opción de hacer un left join con una tabla relacionada.
Elemento | Descripción | Ejemplo |
---|---|---|
* load_in_memory | (bool) sólo aplica para CFOs [ds] y carga en memoria los registros de [entity] para poder ser usados | true |
* id_field | El nombre del campo del CFO que contiene el valor de relación y que se utilizará para la tabla en memoria | Status |
data_format | [opcional] Permite definir una cadena con substituciones utilizando el valor del registro de la tabla en memoria, | {"data_format":"{{Name}}:{{Status}}"} |