Aller au contenu principal

Structurer votre fichier de définition JSON

Description des informations constituant votre fichier de définition

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.

Illustration d'un fichier JSON complet

Le fichier suivant fournit une illustration du format que prend un fichier contenant tous les paramètres possibles, avec les valeurs attendues.

Illustration visuelle d'un 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', 'MultipleTargetingAllowed' "
}
],
"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 : 9223372036854775808

    • valeur minimale: -9223372036854775808

    • 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".