Estructurar tu archivo de definición JSON
Para crear una tabla personalizada en el modelo de datos deberás definir su estructura a través de un archivo JSON.
Este archivo JSON debe incluir una serie de datos, algunos con carácter obligatorio y otros con carácter opcional. Además, tendrán que seguir una serie de criterios específicos, tanto en cuanto a la tipología, como en cuanto a los posibles valores.
Los parámetros utilizados para definir la identidad de tu tabla (nombre técnico y nombre de visualización, entidad, etc.) podrán especificarse directamente, mientras que los parámetros que definan el comportamiento de tu tabla deberán estructurarse como tablas de valores.
La siguiente tabla te ofrece una explicación exhaustiva de los distintos parámetros que podrás incluir en tu archivo JSON.
Tabla explicativa de parámetros
Parámetro |
Información que representa |
Tipo |
Obligatorio / opcional |
Explicaciones adicionales y limitaciones |
||
id |
ID para identificar la tabla en cuestión. |
String |
Opcional |
En caso de ausencia, Actito generará este identificador automáticamente. |
||
businessKey |
Nombre del atributo que identifica la clave principal de la tabla. |
String |
Obligatorio |
Este atributo debe estar incluido en el archivo de definición. El campo debe ser único y obligatorio. |
||
technicalName |
Nombre técnico de la tabla, utilizado para hacer referencia a la tabla, por ejemplo, a la hora de exportarla. |
String |
Obligatorio |
Número máximo de caracteres: 64. |
||
userName |
Nombre de visualización de la tabla, utilizado en la interfaz. |
String |
Opcional |
En caso de ausencia, se recurrirá por defecto al technicalName. |
||
prettyNameExpression |
Nombre de visualización de la fuente de datos. |
String |
Opcional |
Solo para tablas repositorio. |
||
entityName |
Nombre de la entidad a la que pertenece la tabla. |
String |
Obligatorio |
|
||
Illustration des paramètres d'identification
"id" (string, optional): " " ,
"businessKey" (string): " " ,
"technicalName" (string): " " ,
"userName" (string, optional): " " ,
"prettyNameExpression" (string, optional): " " ,
"entityName" (string): " " ,
|
||||||
capabilityDTOs |
Obligatorio |
|
||||
Tipos de capacidades que se pueden dar a una tabla. Véase el artículo Comprender las capacidades de las tablas para una explicación en mayor detalle. |
||||||
|
name |
Nombre de la capacidad de la tabla. |
|
|
Valores posibles: «Lookup table», «EventGeneratedTable», «Interaction», «ProfileData». |
|
Illustration capabilityDTOs
"capabilityDTOs"
(Array[Capability], optional):
[ { "name" (string): " 'LookupTable' , 'EventGeneratedTable',
'Interaction' , 'ProfileData' "
} ], |
||||||
defaultFetchingParameters |
Opcional |
|
||||
Es posible precisar en la tabla cómo queremos que se ordenen los datos por defecto. Esto condicionará la personalización de los mensajes cuando escojamos como fuente de personalización (email o sms) el modo por defecto. |
||||||
|
keyAttribute |
Nombre del campo que se va a ordenar. |
String |
Opcional |
|
|
|
ascending |
Orden que se seguirá: ascendente o descendente. |
Boolean |
Opcional |
Falso es el valor por defecto y quiere decir descendente. |
|
|
sortingKey |
Nombre del atributo utilizado para ordenar. |
String |
Opcional |
|
|
|
maxNumberOfRecords |
Número máximo de entradas. |
Long |
Opcional |
Valor por defecto: 1. |
|
Illustration defaultFetchingParameters
"defaultFetchingParameters"
(Array[FetchingParameters], optional):
[ { "keyAttribute" (string, optional): " " ,
"ascending" (boolean, optional): ,
"sortingKey" (string, optional): " " ,
"maxNumberOfRecords" (long, optional):
} ], |
||||||
emails |
String |
Opcional |
|
|||
Lista de direcciones de correo electrónico a las que se enviarán los informes técnicos (errores, alertas, etc.). |
||||||
Illustration emails
"emails"
(Array[string], optional):
|
||||||
fields |
Obligatorio |
|
||||
Atributos de la tabla |
||||||
|
objectType |
Obligatorio para identificar el tipo de objeto. |
String |
Obligatorio |
Único valor posible: ['SIMPLE']. |
|
|
fieldName |
Nombre del atributo. |
String |
Obligatorio |
Hay una serie de términos técnicos que están reservados y no pueden utilizarse como «fieldName». |
|
|
columnName |
Valor técnico. |
String |
Obligatorio |
El valor debe ser igual que el «fieldName». |
|
|
userName |
Nombre de visualización del atributo en Actito. |
String |
Obligatorio |
En caso de ausencia se utilizará por defecto el «fieldName». |
|
|
type |
Tipo de atributo. |
String |
Obligatorio |
Valores posibles: «STRING»,«INTEGER»,«BOOLEAN»,«DATE»,«TIMESTAMP»,«NUMERIC», «LONG». |
|
|
extended |
Indica si el atributo es un ID de una tabla de tipo LookUp (se sustituirá el ID). |
Boolean |
Opcional |
|
|
|
required |
Indica si el atributo es obligatorio. |
Boolean |
Opcional |
|
|
|
unique |
Indica si el atributo es único. |
Boolean |
Opcional |
Se indexará automáticamente un campo único. |
|
|
indexed |
Indica si la tabla se indexa a partir de este atributo. |
Boolean |
Opcional |
|
|
|
cacheIndexed |
Lista desplegable de posibles datos. |
Boolean |
Opcional |
Solo para atributos de tipo «string». Máx. 10 000 valores posibles. |
|
|
description |
Descripción del atributo. |
String |
Opcional |
|
|
|
possibleValues |
Enumeración de los valores posibles. |
String |
Opcional |
|
|
|
valueDisplayer |
|
|
Opcional |
|
|
|
Se pueden utilizar los tipos de atributos predefinidos de Actito. |
|||||
|
|
displayerType |
Nombre del displayer Actito que permite la interpretación del campo. |
String |
Opcional |
Valores posibles: «CivilState», «PersonTitle», «Gender», «Country», «Language». |
|
typeValidator |
|
|
Opcional |
|
|
|
Se pueden utilizar los tipos de atributos predefinidos de Actito. |
|||||
|
|
objectType |
Nombre del validador utilizado para garantizar la coherencia de los datos. |
String |
Opcional |
Valores posibles:«EMAIL_ADDRESS», «SEX», «COUNTRY», «LANGUAGE», «PHONE_NUMBER», «CIVIL_STATE», «PERSON_TITLE», «STRING_LENGTH». |
|
|
minCharacters |
Número mínimo de caracteres. |
Long |
Opcional |
Solo si el objectType = «STRING_LENGTH» |
|
|
maxCharacters |
Número máximo de caracteres. |
Long |
Opcional |
Solo si el objectType = «STRING_LENGTH» |
Illustration fields
"fields"
(Array[PropertyWithInfoDTO], optional):
[ { "cacheIndexed" (boolean, optional): ,
"columnName" (string): ,
"type" (string) : "STRING" , "INTEGER" , "BOOLEAN" , "DATE" , "TIMESTAMP" , "NUMERIC" , "LONG"
"extended" (boolean, optional): ,
"fieldName" (string): " " ,
"indexed" (boolean, optional): ,
"objectType" (string): "SIMPLE" ,
"required" (boolean, optional): ,
"unique" (boolean, optional): ,
"userName" (string, optional): " " ,
"possibleValues" : (Array [String]) : ,
"description" : (string, optional): " " ,
"valueDisplayer"
(ValueDisplayerDTO, optional) : ,
{ "displayerType" : "CivilState" , "PersonTitle" , "Gender" , "Country" , "Language"
} , "typeValidator"
(AdvancedTypeValidator, optional) :
{ "objectType" : "EMAIL_ADDRESS" , "SEX" , "COUNTRY" , "LANGUAGE" , "PHONE_NUMBER" , "CIVIL_STATE" , "PERSON_TITLE" , "STRING_LENGTH"
"minCharacters" (long, optional): ,
"maxCharacters"
(integer, optional): : ,
} } ], |
||||||
layout |
Opcional |
|
||||
Visualización y composición de la tabla |
||||||
|
details |
|
|
Opcional |
|
|
|
sections |
|
|
|
Opcional |
|
|
|
fields |
|
String |
Opcional |
|
|
|
name |
Nombre de la sección |
String |
Obligatorio |
|
|
list |
|
|
Opcional |
|
|
|
|
fields |
Nombres de los campos |
String |
Opcional |
|
Aquí es donde deberías incluir la lista de atributos que deberán aparecer en el resumen de la interacción en la ficha de perfil (pestaña de interacciones del perfil). |
||||||
Illustration layout
"layout" (Layout, optional):
{ "details" (Details, optional):
{ "sections"
(Array[Section], optional):
[ { "fields"
(Array[string], optional): " " ,
"name" (string): " "
} ] } , "list" (FieldList, optional):
{ "fields"
(Array[string], optional):
} } |
||||||
links |
Opcional |
|
||||
Definición de los links o vínculos de esta tabla con otras tablas (tablas de perfiles o repositorio). |
||||||
|
constraintType |
Comportamiento de la limitación cuando se borra un perfil. |
String |
Opcional |
|
|
|
linkName |
Nombre del link. |
String |
Obligatorio |
|
|
|
objectType |
Tipo de tabla vinculada. |
String |
Obligatorio |
Valores posibles: «PROFILE_LINK», «DATA_SOURCE_LINK». |
|
|
sourceFieldName |
Nombre del atributo de la tabla de origen. |
String |
Obligatorio |
Este atributo debe estar recogido en el archivo de definición. Debe ser obligatorio y estar indexado. El «sourceFieldName» y el «targetFieldName» deben ser del mismo tipo. |
|
|
targetFieldName |
Nombre del atributo en la tabla vinculada. |
String |
Obligatorio |
|
|
|
targetedEntityName |
Entidad en la que se encuentra la tabla vinculada. |
String |
Opcional |
|
|
|
targetedProfileTableName / targetedDataSourceName |
Nombre de la tabla (de perfiles o personalizada) vinculada. |
String |
Obligatorio |
|
|
Illustration links
"links"
(Array[SimpleLinkDTO], optional):
[ { "constraintType" (string, optional): "none" , "onDeleteCascade" , "onDeleteSetNull" ,
"linkName" (string): " " ,
"objectType" (string): "PROFILE_LINK" , "DATA_SOURCE_LINK" ,
"sourceFieldName" (string): " " ,
"targetFieldName" (string): " " ,
"targetedEntityName" (string, optional): " " ,
"targetedProfileTableName" / "targetedDataSourceName" (string): " "
} ], |
||||||
tableEventDefinitions |
|
|
Opcional |
Obligatorio para las tablas de tipo interacción si se quiere programar escenarios. |
||
Solo para las tablas de interacciones: Permite definir qué acciones almacenadas en la tabla deben desencadenar un evento y pueden por tanto utilizarse en los escenarios de Actito. |
||||||
|
technicalName |
Nombre técnico del evento. |
String |
Obligatorio |
|
|
|
userName |
Nombre de visualización, el que se mostrará en Actito. |
String |
Opcional |
Si este campo está vacío, se utilizará por defecto el nombre técnico. |
|
|
tableEventConditionDefinitionDTOs |
|
Opcional |
|
||
|
|
afterPredicate |
|
|
|
|
|
|
beforePredicate |
|
|
|
|
|
|
type |
Tipo de acción que debe crear una acción en Actito . |
String |
Obligatorio |
|
Illustration tableEventDefinitions
"tableEventDefinitions" : [
{ "technicalName" : "testEvent" ,
"userName" : " JoliNomPourMonTestEvent " ,
"tableEventConditionDefinitionDTOs" : [
{ "type" : "CREATE"
} ] } ] |
Ejemplo de archivo completo
El siguiente archivo sirve de ejemplo para ilustrar el formato de un archivo que incluya todos los parámetros posibles y todos los valores necesarios.
{
"id"
(string, optional):
" "
,
"businessKey"
(string):
" "
,
"technicalName"
(string):
" "
,
"userName"
(string, optional):
" "
,
"prettyNameExpression"
(string, optional):
" "
,
"entityName"
(string):
" "
,
"capabilityDTOs"
(Array[Capability], optional):
[
{
"name"
(string):
" 'LookupTable' , 'EventGeneratedTable', 'Interaction' ,
'ProfileData', "
}
],
"defaultFetchingParameters"
(Array[FetchingParameters], optional):
[
{
"keyAttribute"
(string, optional):
" "
,
"ascending"
(boolean, optional): ,
"sortingKey"
(string, optional):
" "
,
"maxNumberOfRecords"
(long, optional):
}
],
"emails"
(Array[string], optional):
"fields"
(Array[PropertyWithInfoDTO], optional):
[
{
"cacheIndexed"
(boolean, optional): ,
"columnName"
(string): ,
"type"
(string) :
"STRING"
,
"INTEGER"
,
"BOOLEAN"
,
"DATE"
,
"TIMESTAMP"
,
"NUMERIC"
,
"LONG"
"extended"
(boolean, optional): ,
"fieldName"
(string):
" "
,
"indexed"
(boolean, optional): ,
"objectType"
(string):
"SIMPLE"
,
"required"
(boolean, optional): ,
"unique"
(boolean, optional): ,
"userName"
(string, optional):
" "
,
"possibleValues"
: (Array [String]) :
"description"
(string, optional):
" "
,
"valueDisplayer"
(ValueDisplayerDTO, optional) : ,
{
"displayerType"
:
"CivilState"
,
"PersonTitle"
,
"Gender"
,
"Country"
,
"Language"
}
,
"typeValidator"
(AdvancedTypeValidator, optional) :
{
"objectType"
:
"EMAIL_ADDRESS"
,
"SEX"
,
"COUNTRY"
,
"LANGUAGE"
,
"PHONE_NUMBER"
,
"CIVIL_STATE"
,
"PERSON_TITLE"
,
"STRING_LENGTH"
"minCharacters"
(long, optional): ,
"maxCharacters"
(long, optional): : ,
}
}
],
"layout"
(Layout, optional):
{
"details"
(Details, optional):
{
"sections"
(Array[Section], optional):
[
{
"fields"
(Array[string], optional):
" "
,
"name"
(string):
" "
}
]
Tipos de campos
Los campos deben respetar una serie de criterios según su tipología:
-
STRING: secuencia de caracteres [a-z, A-Z, 0-9]
-
El número máximo de caracteres para este tipo de campos es 255. El límite puede modificarse a través del parámetro «typeValidator» (ver a continuación).
-
-
INTEGER:
-
Este tipo está obsoleto pero sigue siendo aceptado en la definición de una tabla. Se transformará automáticamente en uno de tipo LONG.
Sin espacios ni puntos ni comas.
Valor máximo: 2147483647
Valor mínimo: -2147483647
-
-
LONG:
Valor máximo: 2147483647
Valor mínimo: -2147483647
Sin espacios ni puntos ni comas
-
BOOLEAN: se deben respetar los valores «verdadero» y «falso»
-
DATE: cadena de caracteres siguiendo uno de los siguientes formatos:
YYYYMMDD
YYYY-MM-DD
dd/MM/yyyy
-
TIMESTAMP: cadena de caracteres siguiendo uno de los siguientes formatos:
YYYYMMDD *
YYYY-MM-DD *
dd/MM/yyyy *
YYYYMMDDhhmmss
YYYY-MM-DD hh:mm:ss
dd/MM/yyyy HH:mm:ss
MM/dd/yyyy hh:mm:ss AM|PM
* Si no hay valores para hhmmss, se añadirán los valores 00:00:00.
-
NUMERIC:
-
Se debe utilizar un punto («.») como separador.
-
Número de caracteres ilimitado.
-
Recuerda
Además de la tipología general, hay una tipología avanzada para algunos campos, lo que garantiza que su formato corresponda al formato necesario para Actito.
Se trata de «EMAIL_ADDRESS», «SEX», «COUNTRY», «LANGUAGE», «PHONE_NUMBER», «CIVIL_STATE». Puedes consultar en mayor detalle la sintaxis que requieren estos tipos en la página sobre utilizar atributos predefinidos.
Para que uno de tus campos se corresponda con uno de estos tipos de valores, debes especificarlo a través del parámetro «objectType».