select

Dentro de la definición JSON podemos especificar que el tipo sea 'date'.

{ "fields": 
{
"<field-name>": { "type":"select" }
}
}


Elemento
Descripción
type
select
allow_empty (bool)
Indica si el filtro permitirá que sea opcional u obligatorio (true|false)
empty_value
indica texto en el select que se mostrará en el caso de que esté vacía
prepend_icon
[String] Este parámetro permite agregar un icono al inicio del campo, mejorando la identificación visual de la funcionalidad del campo. Ej. "fa-user"
append_icon
[String] Este parámetro permite agregar un icono al final del campo, mejorando la identificación visual de la funcionalidad del campo. Ej. "fa-user"


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



Campos dependientes

Esta configuración permite crear dos campos select interrelacionados, donde las opciones del segundo select se generan dinámicamente basándose en el valor seleccionado en el primer select. [Nota: Por ahora sólo disponible en los modelos de base de datos (DB)]

Elemento
Descripción
dependent_field
[opcional] [Object] Objeto de configuración con los parámetros a continuación descritos.
dependent_field.field
Identifica el campo dependiente en el modelo de CFO, es decir, será el nombre del field del campo dependiente.
​dependent_field.entity
Especifica el nombre del modelo de datos que contiene las opciones dependientes
dependent_field.entity_linked_field
Define el campo que establece la relación entre ambos modelos
dependent_field.dependent_field_id
Indica el campo que se utilizará como valor (value) en las opciones del select dependiente
dependent_field.dependent_fields_value
Especifica el campo o campos que se mostrarán como texto en las opciones del select dependiente
Cesta de compras