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».

Descargar la lista de términos reservados.

 

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

  • Solo para tablas repositorio.

  • Valor por defecto: «falso».

  • Si el valor es «verdadero», deberás incluir un «DATA_SOURCE_LINK» en el que el sourceFieldName sea este campo.

 

required

Indica si el atributo es obligatorio.

Boolean

Opcional

  • Valor por defecto: «falso».

 

unique

Indica si el atributo es único.

Boolean

Opcional

  • Valor por defecto: «falso».

Se indexará automáticamente un campo único.

 

indexed

Indica si la tabla se indexa a partir de este atributo.

Boolean

Opcional

  • Valor por defecto: «falso».

 

cacheIndexed

Lista desplegable de posibles datos.

Boolean

Opcional

  • Valor por defecto: «falso».

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

  • Si está vinculada con una tabla de perfiles: el valor por defecto será «onDeleteCascade» (se eliminarán las entradas de la tabla si se elimina el perfil).

  • Si no, no habrá valor por defecto.

  • Valores posibles : «none», «onDeleteCascade», «onDeleteSetNull».

 

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

  • Si está vinculada a una tabla de perfiles, dede hacer referencia al «businessKey» o al «profileID».

  • Si está vinculada a una tabla repositorio, debe hacer referencia al «businessKey».

 

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

  • si «ObjectType» = «PROFILE_LINK» Nombre de la tabla de perfiles.

  • si «ObjectType» = «DATA_SOURCE_LINK» Nombre de la tabla.

  • Estas propiedades son exclusivas.

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

  • Valores posibles: «CREATE», «UPDATE».

  • Al menos incluir una acción de tipo «CREATE».

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.

Illustration visuelle du fichier de définition JSON
{
"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».