Téléchargement des produits


Version anglaise


 

Option de conversion de données du modèle de données avant traitement de celui-ci par le template (type JSON tableau d'Objet)

 

Elle permet d'appliquer une transformation sur certaines données du modèle de données avant conversion en source de données et traitement de celle-ci par le template.

La transformation consiste à modifier la valeur d'une donnée (en conservant son type ou en changeant le type de la valeur) mais elle ne peut pas modifier la structure de l'arborescence du modèle de données.

L'option permet de définir plusieurs transformations ; chaque transformation est définie par :

  • un chemin (syntaxe proche de la notation XPath) qui permet d'identifier une ou plusieurs données dans l'arborescence du modèle de données,
  • une classe Java qui contient le traitement de la transformation à appliquer pour chaque valeur de données décrites par le chemin.

 

Une transformation est décrite en JSON par un objet ayant deux membres : "path" (le chemin) et "className" (le nom de la classe Java de conversion).

 

L'option jsonPathConv est décrite en JSON comme un tableau d'objets (transformations).

 

Les transformations prédéfinies

Il existe un certain nombre de classes de transformation disponibles :

  • com.hardis.adelia.mergedocengine.datamodel.conversion.convertors.ISO8601ToDateConversion : convertit une date sous la forme d'une chaîne alphanumérique au format ISO 8601 (format YYYY-MM-DD, par exemple : 2018-12-31) en donnée interprétée dans la source de données comme étant de type FreeMarker Date (conversion de types Java String vers java.sql.Date) ;
  • com.hardis.adelia.mergedocengine.datamodel.conversion.convertors.ISO8601ToTimeConversion : convertit une heure sous la forme d'une chaîne alphanumérique au format ISO 8601 (format HH:MM:SS, par exemple : 15:17:45) en donnée interprétée dans la source de données comme étant de type FreeMarker Time (conversion de types Java String vers java.sql.Time) ;
  • com.hardis.adelia.mergedocengine.datamodel.conversion.convertors.ISO8601ToTimestampConversion : Convertit un horodatage sous la forme d'une chaîne alphanumérique au format ISO 8601 (format YYYY-MM-DDTHH:MM:SS.mmm, par exemple : 2018-12-31T15:17:45.682) en donnée interprétée dans la source de données comme étant de type FreeMarker Date-time (conversion de types Java String vers java.sql.Timestamp) ;
  • com.hardis.adelia.mergedocengine.datamodel.conversion.convertors.YYYYMMDDNumberToDateConversion : convertit un nombre (de 8 chiffres maximum) sous la forme d'une date au format YYYYMMDD en donnée interprétée dans la source de données comme étant de type FreeMarker Date (conversion de types Java Integer vers java.sql.Date) ;
  • com.hardis.adelia.mergedocengine.datamodel.conversion.convertors.EpochToDateConversion : convertit un horodatage sous la forme d'un nombre correspondant à une durée (en millisecondes) à partir du 1er janvier 1970 à 0 heure (UTC) en donnée interprétée dans la source de données comme étant de type FreeMarker Date (conversion de types Java Long vers java.sql.Date) ;
  • com.hardis.adelia.mergedocengine.datamodel.conversion.convertors.EpochToTimeConversion : convertit un horodatage sous la forme d'un nombre correspondant à une durée (en millisecondes) à partir du 1er janvier 1970 à 0 heure (UTC) en donnée interprétée dans la source de données comme étant de type FreeMarker Time - la conversion extrait l'heure du jour de l'horodatage - (conversion de types Java Long vers java.sql.Time) ;
  • com.hardis.adelia.mergedocengine.datamodel.conversion.convertors.EpochToTimestampConversion : convertit un horodatage sous la forme d'un nombre correspondant à une durée (en millisecondes) à partir du 1er janvier 1970 à 0 heure (UTC) en donnée interprétée dans la source de données comme étant de type FreeMarker Date-time (conversion de types Java Long vers java.sql.Timestamp).

↑ Haut de page

 

Syntaxe d'un chemin

La description des données choisies pour l'application de la transformation se fait en utilisant une syntaxe proche du langage XPath. Une expression JSONPath :

  • commence par le caractère $ : il permet de référencer l'objet racine de plus haut niveau, à la manière de la variable ".data_model" de FreeMarker,
  • utilise la notation "point" pour identifier la sous-variable identifiant la donnée (ex : $.name, $.client.lastname),
  • utilise la notation "" pour identifier plusieurs sous-variables (ex : $.studentList[].name).

 

Pour plus d'informations, cliquez ci-dessous : 

 

L'expression JSONPath doit référencer des variables de type simple et ne peut référencer des variables de type complexe (ex : $.studentList[], $.).

 

Par exemple :

Paramètre "Options"

Modèle de données avant transformation

Modèle de données après transformation

 

 

↑ Haut de page


 

  • Aucune étiquette