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} | [{"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}}"} |