Campos
Una entidad está formada por varios campos. Es por ello que el objeto JSON entity contendrá a su vez un array fields, formado por objetos JSON que definen cada uno de los campos de la entidad:
...
"entity": {
"entityName": ...,
"entityTable": ...,
"entityDescriptionField": ...,
"fields": [
{
--> descripción campo 1
},
{
--> descripción campo 2
},
{
---> descripción campo 3
},
{
...
}
]
}
...
La estructura de un objeto JSON de tipo campo es la siguiente:
...
{
"fieldName": "nombre del campo", ** REQUERIDO **
"fieldColumn": "nombre de la columna de la tabla asociada a la entidad",
"fieldType": "tipo de datos del campo",
"fieldRequired": ¿es un campo requerido?,
"fieldBlank": ¿puede consistir solo de espacios en blanco?,
"fieldMaxSize": tamaño máximo del campo,
"fieldMinSize": tamaño mínimo del campo,
"fieldPast": ¿debe tener la fecha un valor pasado?,
"fieldPresent": ¿puede tener la fecha el valor de la fecha actual?,
"fieldFuture": debe tener la fecha un valor futuro?,
"fieldIsImage": ¿es el campo una imagen?,
"fieldIsLongText": ¿es un campo de texto largo?,
"fieldIsList": ¿es un campo de tipo lista?,
"fieldListValues": [array de valores de la lista],
"fieldListLabel": "etiqueta del campo para la lista de registros",
"fieldFormLabel": "etiqueta del campo para el formulario de alta o modificaciónk y la pantalla de visualización",
"fieldVisibleInList": ¿es el campo visible en la lista de registros?,
"fieldDefaultValue": "valor por defecto del campo"
}
...
fieldName
Valor: Nombre del campo
Tipo de datos: cadena de texto
Requerido: SÍ
Este es el único elemento obligatorio para la definición del campo. Se corresponde con el nombre que tendrá el campo. Debe tener en cuenta que este valor se corresponde con el nombre de una propiedad de la clase Java de la entidad en la aplicación objetivo, por lo que debería estar escrita en camelCase (empezando en minúsculas) y no debe tener espacios. No use acentos ni caracteres especiales en este elemento que puedan producir un nombre de propiedad de clase inválido en lenguaje Java.
fieldColumn
Valor: Nombre de la columna asociada al campo en la tabla de la base de datos
Tipo de datos: cadena de texto
Requerido: No
Valor por Defecto: nombre del campo en minúsculas
Este elemento permite indicar el nombre que tendrá la columna asociada al campo en la tabla de la base de datos asociada a la entidad. Si se indica un valor para este elemento éste debería estar en minúsculas y, en el caso de constar de varias palabras, usarse snake_case. No use acentos ni caracteres especiales en este elemento que puedan producir un valor no válido para el nombre de una columna en la base de datos que usará. Si no se proporciona este dato, el valor que se asociará será el nombre del campo en minúsculas.
fieldType
Valor: Tipo de datos del campo
Tipo de datos: cadena de texto
Requerido: No
Valor por Defecto: String
Este elemento debe indicar el tipo de datos del campo. Puede elegir entre los siguientes tipos:
- String: cadena de texto
- Integer: número entero
- Long: número entero largo
- Float: número flotante
- Double: número flotante largo
- Date: fecha
- Boolean: valor booleano
Indicar otro valor distinto a los anteriores producirá errores en la aplicación objetivo ya que la aplicación considerará la existencia de una relación con otra entidad (esta funcionalidad no está incluida en la versión 1.X.X de Duende CG)
Si quiere crear un campo de imagen, su tipo de datos debería ser String.
El tipo de datos por defecto si no se indica ninguno es String.
Algunas consideraciones acerca del funcionamiento de los tipos de datos en la aplicación generada:
- Las fechas se mostrarán en formato Año/Mes/Día
- Para introducir números flotantes o double, use el punto decimal, no la coma.
- Para introducir un valor booleano escriba true o false
fieldRequired
Valor: ¿Es el campo requerido?
Tipo de datos: boolean
Requerido: No
Valor por Defecto: false
Este elemento permite indicar si el campo será requerido.
fieldBlank
Valor: ¿Puede consistir este campo solo de espacios en blanco?
Tipo de datos: boolean
Requerido: No
Valor por Defecto: false
Este elemento permite indicar si el campo podrá admitir valores en blanco (solo espacios).
fieldMaxSize
Valor: Tamaño máximo del campo
Tipo de datos: número entero
Requerido: No
Valor por Defecto: null
Este elemento permite indicar el valor máximo del campo. Cuando se aplica a campos de tipo String (cadena de texto) se refiere al tamaño máximo que puede tener la cadena. Cuando se aplica a campos enteros se refiere al valor máximo que puede tomar el campo.
Si no se indica este elemento, su valor por defecto es null, lo cual se traduce en que no se tiene en cuenta validaciones de tamaño máximo.
fieldMinSize
Valor: Tamaño mínimo del campo
Tipo de datos: número entero
Requerido: No
Valor por Defecto: null
Este elemento permite indicar el valor mínimo del campo. Cuando se aplica a campos de tipo String (cadena de texto) se refiere al tamaño mínimo que puede tener la cadena. Cuando se aplica a campos enteros se refiere al valor mínimo que puede tomar el campo.
Si no se indica este elemento, su valor por defecto es null, lo cual se traduce en que no se tiene en cuenta validaciones de tamaño mínimo.
fieldPast
Valor: ¿Debe tener la fecha un valor pasado?
Tipo de datos: boolean
Requerido: No
Valor por Defecto: false
Este elemento permite forzar al campo fecha a que tenga un valor pasado. Solo es aplicable en el caso de campos de tipo Date.
fieldPresent
Valor: ¿Puede tener la fecha el valor de la fecha actual?
Tipo de datos: boolean
Requerido: No
Valor por Defecto: false
Este elemento permite al campo fecha que tome el valor de la fecha actual. Solo es aplicable en el caso de campos de tipo Date.
fieldFuture
Valor: ¿Debe tener la fecha un valor futuro?
Tipo de datos: boolean
Requerido: No
Valor por Defecto: false
Este elemento permite forzar al campo fecha a que tenga un valor futuro. Solo es aplicable en el caso de campos de tipo Date.
fieldIsImage
Valor: ¿Es un campo de imagen?
Tipo de datos: boolean
Requerido: No
Valor por Defecto: false
Si se asigna el valor true a este elemento, convertirá al campo en un campo de imagen. Esto hará que se puedan subir imágenes asociadas a este campo en la aplicación objetivo. Es necesario que el tipo de datos de este campo sea String.
En el caso del uso de campos de imagen, es necesario que la aplicación objetivo contenga una carpeta para guardar las imágenes que se suban. Puede establecer el nombre que tendrá esta carpeta a través del elemento appFilesUploadFolder. Puede ver más información sobre la configuración de carpetas de imágenes en Creación del Proyecto de la Aplicación.
fieldIsLongText
Valor: ¿Es un campo de texto largo?
Tipo de datos: boolean
Requerido: No
Valor por Defecto: false
Si se asigna el valor true a este elemento, convertirá al campo en un campo de texto largo. Es necesario que el tipo de datos de este campo sea String. Cuando un campo es texto largo, su representación en los formularios es a través de áreas de texto, lo que permite escribir tantas líneas de texto como se quiera. Estas áreas de texto pueden ser cambiadas de tamaño y tienen barras de scroll para navegar por el texto contenido en ellas.
fieldIsList
Valor: ¿Es un campo de lista desplegable?
Tipo de datos: boolean
Requerido: No
Valor por Defecto: false
Si se asigna el valor true a este elemento, convertirá al campo en un campo de lista desplegable. Esta característica es aplicable a campos de tipo String, Integer, Long, Float o Double.
En el caso de que active esta característica será necesario que añada un listado de valores al campo a través del elemento fieldListValues.
fieldListValues
Valor: Array de valores correspondientes a la lista desplegable del campo.
Tipo de datos: Array de cadenas de texto
Requerido: No (sólo en el caso de que se active el elemento fieldIsList)
Valor por Defecto: null
Este elemento es un array Json de cadenas de texto que permite indicar los valores que aparecerán en la lista desplegable del campo. Este elemento solo tiene sentido en el caso de que se haya asignado el valor true al elemento fieldIsList.
Aunque inicialmente este elemento es un array de cadenas, puede indicarse un array de números en el caso de que el tipo de campo sea numérico (Integer, Long, Float ó Double)
fieldListLabel
Valor: Etiqueta en la cabecera del listado de registros para el campo
Tipo de datos: cadena de texto
Requerido: No
Valor por Defecto: nombre del campo con la primera letra en mayúsculas
Este elemento se usa para indicar una etiqueta específica que aparecerá en la cabecera de la tabla de registros, encima de la columna del campo. Si no se indica nada la etiqueta será el nombre del campo con la primera letra en mayúsculas.
En algunas ocasiones no es necesario usar este elemento. Por ejemplo para el campo nombre este elemento será Nombre, que de por sí es una etiqueta de cabecera adecuada. Sin embargo para el campo fechaNac podría ser interesante especificar una etiqueta más descriptiva como podría ser Fecha Nacimiento.
fieldFormLabel
Valor: Etiqueta en para el campo en los formularios y pantalla de visualización
Tipo de datos: cadena de texto
Requerido: No
Valor por Defecto: valor de la etiqueta para listados (fieldListLabel), y en su defecto, nombre del campo con la primera letra en mayúsculas.
Este elemento se usa para indicar una etiqueta específica que aparecerá acompañando al cuadro de texto o elemento de formulario correspondiente en las pantallas de alta, modificación y visualización.
En algunas ocasiones no es necesario usar este elemento. Por ejemplo para el campo nombre este elemento será Nombre, que de por sí es una etiqueta adecuada para los formularios. Sin embargo para el campo fechaNac podría ser interesante especificar una etiqueta más descriptiva como podría ser Fecha Nacimiento.
fieldVisibleInList
Valor: ¿Es el campo visible en el listado de registros?
Tipo de datos: boolean
Requerido: No
Valor por Defecto: true
Si se asigna el valor false a este elemento, el campo correspondiente no se visualizará en la tabla con el listado de registros. Use este elemento cuando tenga tablas con muchos registros, y algunos de ellos no sean tan importantes como para mostrarlos en el listado principal, o puedan afectar a la visualización de éste (campos de texto largo, imágenes, etc.)
Aunque este elemento anula la visualización del campo en el listado principal, el valor del campo puede mostrarse al activar la opción de visualización, y por supuesto a la hora de modificar el registro.
fieldDefaultValue
Valor: Valor por defecto del campo
Tipo de datos: cadena de texto
Requerido: No
Valor por Defecto: null
Gracias a este elemento se puede indicar un valor por defecto al campo. Este valor aparecerá automáticamente cada vez que se inserte un nuevo registro en la aplicación final.
El valor indicado debe ser adecuado para el tipo de datos del campo, así pues, en el caso de un campo numérico, indique un valor numérico adecuado (entero o decimal, según el tipo de número) En el caso de un valor booleano indique el valor true o false, etc. Estos valores se indicarán como cadenas de texto.
Aquí tiene información sobre los distintos tipos de datos y los valores por defecto adecuados:
- String: "indique una cadena"
- Integer, Long: indique un número entero, como por ejemplo: "25" ó "1000"
- Float, Double: indique un número decimal, como por ejemplo: "3.14" ó "1000.50"
- Boolean: indique un valor booleano: "true" ó "false"
- Date: indique un valor de fecha con el formato "yyyy-mm-dd", como por ejemplo "2001-09-22". También puede indicar "now" para que el valor por defecto sea la fecha actual.