Structurer votre fichier de définition JSON
Pour créer votre table personnalisée du modèle de données, il sera nécessaire de définir sa structure par le biais d'un fichier JSON.
Ce fichier JSON doit contenir une série d’informations. Certaines de ces informations sont obligatoires, d’autres sont optionnelles. De plus, elles peuvent avoir certaines contraintes à respecter, soit au niveau de leur typage, soit au niveau des valeurs possibles.
Les paramètres permettant de définir l'identité de votre table (nom d'affichage et nom technique, entité, ...) pourront être spécifiés directement, tandis que les paramètres définissant le comportement de votre table devront être structurés sous forme de tableaux de valeurs.
Le tableau ci-dessous vous fournit des explications exhaustives concernant les différents paramètres pouvant constituer votre fichier JSON.
Tableau explicatif des paramètres
Paramètre |
Explications de l'information attendue |
Type |
Obligatoire ou Optionnel ? |
Explications complémentaires et contraintes |
||
id |
ID servant d'identifiant à cette table |
String |
Optionnel |
En cas d'absence, ACTITO générera automatiquement cet identifiant |
||
businessKey |
Nom de l'attribut qui identifie la clé primaire de cette table |
String |
Obligatoire |
Cet attribut doit être présent dans ce fichier de définition. Ce champ devra être unique et obligatoire. |
||
technicalName |
Nom technique de la table, utilisé pour toute référence à cette table (par ex. lors d’export) |
String |
Obligatoire |
Nombre max. de caractères : 64 |
||
userName |
Nom donné à la table, qui sera utilisé dans l’interface |
String |
Optionnel |
Si vide, par défaut, le technicalName sera utilisé dans l’interface |
||
prettyNameExpression |
Joli nom d’affichage de la donnée source |
String |
Optionnel |
Uniquement pour les Table de type "Référentiel" |
||
entityName |
Nom de l’entité à laquelle doit appartenir cette Table |
String |
Obligatoire |
|
||
Illustration des paramètres d'identification
"id" (string, optional): " " ,
"businessKey" (string): " " ,
"technicalName" (string): " " ,
"userName" (string, optional): " " ,
"prettyNameExpression" (string, optional): " " ,
"entityName" (string): " " ,
|
||||||
capabilityDTOs |
Obligatoire |
|
||||
Type(s) de capacité à donner à la Table. Voir la page "Comprendre les capacités des tables" pour explication détaillée de ce paramètre. |
||||||
|
name |
Nom de la capacité à donner |
|
|
Valeurs possibles : "Lookup table", "EventGeneratedTable", "Interaction", "ProfileData", |
|
Illustration capabilityDTOs
"capabilityDTOs"
(Array[Capability], optional):
[ { "name" (string): " 'LookupTable' , 'EventGeneratedTable',
'Interaction' , 'ProfileData' "
} ], |
||||||
defaultFetchingParameters |
Optionnel |
|
||||
Il est possible de préciser dans la table comment on veut que les données soient ordonnées par défaut. Ceci conditionnera la personnalisation des messages lorsque l’on choisit comme source de personnalisation (e-mail ou sms) le "mode par défaut". |
||||||
|
keyAttribute |
Nom du champ sur lequel faire le tri |
String |
Optionnel |
|
|
|
ascending |
Ordre dans lequel le tri va être fait : Ascendant ou Descendant |
Boolean |
Optionnel |
Valeur à "Faux" par défaut (c'est-à-dire par ordre Descendant) |
|
|
sortingKey |
Nom de l’attribut utilisé pour faire le tri |
String |
Optionnel |
|
|
|
maxNumberOfRecords |
Nombre maximal d’entrées à rechercher |
Long |
Optionnel |
Valeur à 1 par défaut |
|
Illustration defaultFetchingParameters
"defaultFetchingParameters"
(Array[FetchingParameters], optional):
[ { "keyAttribute" (string, optional): " " ,
"ascending" (boolean, optional): ,
"sortingKey" (string, optional): " " ,
"maxNumberOfRecords" (long, optional):
} ], |
||||||
emails |
String |
Optionnel |
|
|||
Liste d'adresse e-mail à qui sont à renvoyer les rapports techniques (erreurs, alerting, ...) |
||||||
Illustration emails
"emails"
(Array[string], optional):
|
||||||
fields |
Obligatoire |
|
||||
Enumération des attributs à créer dans cette Table |
||||||
|
objectType |
Obligatoire pour identifier le type d'objet |
String |
Obligatoire |
Seule valeur possible : ['SIMPLE'] |
|
|
fieldName |
Nom de l’attribut |
String |
Obligatoire |
Un certain nombre de termes techniques sont réservés et ne peuvent pas être utilisés comme "fieldName". |
|
|
columnName |
Valeur technique |
String |
Obligatoire |
La valeur doit être égale au "fieldName" |
|
|
userName |
Nom d'affichage de l’attribut tel qu’il apparaîtra dans ACTITO |
String |
Obligatoire |
En cas d’absence, la valeur reprise sera le "fieldName" |
|
|
type |
Typage de l’attribut concerné |
String |
Obligatoire |
Valeurs possibles : “STRING”,”INTEGER”,”BOOLEAN”,”DATE”,”TIMESTAMP”,”NUMERIC”, ”LONG” |
|
|
extended |
Indication que l’attribut est un ID d’une table de type "LookUp" (l’ID sera remplacé) |
Boolean |
Optionnel |
|
|
|
required |
Indication si l’attribut est obligatoire |
Boolean |
Optionnel |
|
|
|
unique |
Indication si l’attribut est unique |
Boolean |
Optionnel |
Un champ unique sera automatiquement indexé |
|
|
indexed |
Indication si la table est indexée sur cet attribut |
Boolean |
Optionnel |
|
|
|
cacheIndexed |
Mise à disposition d’une liste déroulante d’aide à la saisie |
Boolean |
Optionnel |
Uniquement valable pour les attributs de type ‘STRING’ Max. 10 000 valeurs possibles |
|
|
description |
Description de l'attribut |
String |
Optionnel |
|
|
|
possibleValues |
Enumérations des valeurs possibles |
String |
Optionnel |
|
|
|
valueDisplayer |
|
|
Optionnel |
|
|
|
Il est possible de faire appel aux typages des attributs prédéfinis d'ACTITO |
|||||
|
|
displayerType |
Nom du displayer ACTITO permettant le rendu du champ |
String |
Optionnel |
Valeurs possibles : ‘CivilState’, ’PersonTitle’, ’Gender’, ’Country’, ’Language' |
|
typeValidator |
|
|
Optionnel |
|
|
|
Il est possible de faire appel aux typages des attributs prédéfinis d’ACTITO |
|||||
|
|
objectType |
Nom du validateur pour assurer la consistance des données |
String |
Optionnel |
Valeurs possibles :‘EMAIL_ADDRESS’, ’SEX’, ‘COUNTRY’, ’LANGUAGE’, ‘PHONE_NUMBER’, ‘CIVIL_STATE’, ‘PERSON_TITLE’, ’STRING_LENGTH’ |
|
|
minCharacters |
Nombre minimal de caractère |
Long |
Optionnel |
Uniquement si l’objectType = ’STRING_LENGTH’ |
|
|
maxCharacters |
Nombre maximal de caractère |
Long |
Optionnel |
Uniquement si l’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 |
Optionnel |
|
||||
Mise en page de la visualisation de la table |
||||||
|
details |
|
|
Optionnel |
|
|
|
sections |
|
|
|
Optionnel |
|
|
|
fields |
|
String |
Optionnel |
|
|
|
name |
Nom de la section |
String |
Obligatoire |
|
|
list |
|
|
Optionnel |
|
|
|
|
fields |
Noms des champs |
String |
Optionnel |
|
Mettre ici la liste des attributs qui doivent être affiché dans le résumé de l’interaction, au niveau de la fiche profil (onglet interaction du profil) |
||||||
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 |
Optionnel |
|
||||
Définition du ou des liens de cette table avec d’autres tables (Tables de profils ou Table de type "Référentiel") |
||||||
|
constraintType |
Type de contrainte sur le lien |
String |
Optionnel |
|
|
|
linkName |
Nom donné au lien |
String |
Obligatoire |
|
|
|
objectType |
Type de table liée |
String |
Obligatoire |
Valeurs possibles : 'PROFILE_LINK', 'DATA_SOURCE_LINK' |
|
|
sourceFieldName |
Nom de l’attribut de la table source |
String |
Obligatoire |
Cet attribut doit être présent dans le fichier de définition. Cet attribut doit être obligatoire et indexé. Le sourceFieldName et le targetFieldName doivent avoir le même typage. |
|
|
targetFieldName |
Nom de l’attribut dans la table en lien |
String |
Obligatoire |
Si lien avec une table de profils : doit référer à businessKey ou profileID Si lien sur une table référentiel : doit référer à businessKey |
|
|
targetedEntityName |
Entité dans laquelle se trouve la Table en lien |
String |
Optionnel |
|
|
|
targetedProfileTableName / targetedDataSourceName |
Nom de la table (de profils ou personnalisée) en lien |
String |
Obligatoire |
|
|
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 |
|
|
Optionnel |
Obligatoire pour lesTable de type "Interaction" si on compte pouvoir faire des scénarios |
||
Uniquement pour les Table de type "Interaction" : Ceci permet de définir les ‘actions’ se passant sur cette table qui doivent déclencher un évènement pouvant être utilisé dans les scénarios ACTITO. |
||||||
|
technicalName |
Nom technique donné à cet évènement |
String |
Obligatoire |
|
|
|
userName |
Nom d’usage donné à cet évènement (qui apparaitra dans ACTITO) |
String |
Optionnel |
Nom technique repris par défaut dans ACTITO |
|
|
tableEventConditionDefinitionDTOs |
|
Optionnel |
|
||
|
|
afterPredicate |
|
|
|
|
|
|
beforePredicate |
|
|
|
|
|
|
type |
Type d’’action’ devant déclencher un ‘évènement’ ACTITO |
String |
Obligatoire |
|
Illustration tableEventDefinitions
"tableEventDefinitions" : [
{ "technicalName" : "testEvent" ,
"userName" : " JoliNomPourMonTestEvent " ,
"tableEventConditionDefinitionDTOs" : [
{ "type" : "CREATE"
} ] } ] |
Illustration d'un fichier complet
Le fichier ci-dessous vous donne une illustration du format pris par un fichier possédant tous les différents paramètres possibles, ainsi que des valeurs attendues.
{
"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):
" "
}
]
Typage des champs
Selon leur typage, les champs devront respecter certaines contraintes :
-
STRING : séquence de caractères [a-z, A-Z, 0-9]
-
le nombre maximum de caractères pour le typage STRING est de 255. Cela peut être modifié avec un paramètre "typeValidator" (voir le tableau ci-dessus)
-
-
INTEGER :
-
ce typage est déprécié mais reste accepté dans la définition d'une table. Il sera automatiquement transformé en typage LONG
-
pas d’espace, ni de point, ni de virgule
valeur maximale : 2147483647
valeur minimale: -2147483647
-
-
LONG :
valeur maximale : 2147483647
valeur minimale: -2147483647
-
pas d’espace, ni de point, ni de virgule
-
BOOLEAN : respecter les valeurs suivantes “true” ou “false”
-
DATE : chaine de caractères répondant à un des formats suivants :
YYYYMMDD
YYYY-MM-DD
dd/MM/yyyy
-
TIMESTAMP : chaine de caractères répondant à un des formats suivants :
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 pas de valeur pour hhmmss, seront ajoutées les valeurs 00:00:00
-
NUMERIC :
-
le séparateur doit être un .
-
pas de limite de nombre de caractère
-
A savoir
En plus du typage général, il existe un typage avancé pour certains champs, afin de s'assurer que leur format corresponde au format attendu par ACTITO.
Il s'agit des types "EMAIL_ADDRESS","SEX","COUNTRY","LANGUAGE","PHONE_NUMBER","CIVIL_STATE". La syntaxe imposée pour ces types est détaillée dans la page "Utiliser les attributs prédéfinis".
Pour imposer qu'un champ de votre table corresponde à un de ces types, il sera nécessaire de le spécifier dans le paramètre "objectType".