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 |