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


Cesta de compras