Téléchargement des produits


Version anglaise


 

 

Option de production d'un modèle de données factice utilisé en lieu et place du data model lors de la phase de mise en développement du template (type JSON Objet).

 

Principe d'utilisation

 

L'utilisation de cette option permet de se dispenser d'appeler la fonction VaToolBxAPEAddInDataModel pour construire un modèle de données.

 

Lors de la phase de développement d'un template, il n'est pas toujours possible d'avoir un modèle de données dont les valeurs correspondent aux données réelles en production. Il est possible, grâce à cette option, de produire des valeurs de données factices. Les valeurs sont produites de manière aléatoire, en fonction de leur type (à chaque appel de la fonction VaToolBxAPEMergeDoc, de nouvelles valeurs sont automatiquement produites). Pour cela, l'utilisateur doit décrire la structure du modèle de données telle qu'elle est fournie en production, à savoir :

  • la structure arborescente du modèle : l'imbrication (à plusieurs niveaux possibles) des sous-variables entre elles,
  • pour chaque sous-variable : son type (simple ou complexe). En fonction de chaque type, un ensemble de caractéristiques permettant au processus de simuler les valeurs.

L'option jsonGenerator est décrite en JSON et a pour valeur un schéma JSON. Un schéma JSON est un objet JSON détaillant la structure de certaines données JSON (cliquez ici pour plus de détails).
Initialement, un schéma JSON est utilisé pour valider la structure d'une donnée JSON avant son traitement : il peut être vu comme le pendant du XSD (XML Schema Definition) pour le XML.

 

Dans le cas présent, le schéma JSON est utilisé pour produire une donnée JSON validant le schéma. Le processus s'appuie sur la version 4 de la spécification JSON Schema.

 

Structure générale d'un schéma JSON v4

Structure générale d'un schéma JSON v4

Un schéma JSON est un objet JSON contenant les attributs suivants :

  • "$schema" : indique la version de la spécification utilisée pour décrire le schéma,
  • "title" : associe un titre au schéma (optionnel),
  • "description" : associe une description au schéma (optionnel),
  • "type" : définit le type de données de la donnée JSON à produire : la valeur doit être "object" car cette donnée JSON doit représenter le modèle de données qui est une table de hachage (et peut donc être représentée par un objet JSON),
  • "properties" : pour une donnée à produire de type JSON "object", cet attribut (de type JSON "object ") regroupe la description des attributs constituant la donnée JSON "object". L'objet "properties" contient les attributs des noms de "sous-variables" ; chaque attribut a pour valeur un objet qui contient la description de chaque "sous-variable".

 

Exemple : Simuler un modèle de données constitué de trois clés "name" (ALPHA), "age" (NUM_BIN_2) et "isMarried" (BOOL)

L4G Adélia en production

NUM_BIN_2 codeRet
ALPHA(30) name
NUM_BIN_2 age
BOOL isMarried

name = 'Mary Smith'
age = 18
isMarried = *VRAI
appeler_class 'vatoolbx.dll' 'VaToolBxAPEAddInDataModel' 'myDataModel' 'name' name 'alpha' codeRet
appeler_class 'vatoolbx.dll' 'VaToolBxAPEAddInDataModel' 'myDataModel' 'age' age 'num_bin_2' codeRet
appeler_class 'vatoolbx.dll' 'VaToolBxAPEAddInDataModel' 'myDataModel' 'isMarried' isMarried 'bool' codeRet

Modèle de données en production

Paramètre "Options "

Exemple de modèles de données factices produits

 

 

↑ Haut de page

Description des données de type simple

 

On explique ici comment décrire dans un modèle de données factice une "sous-variable" de type simple.

Chaque "sous-variable" est décrite dans l'attribut "properties".

Une "sous-variable" doit être décrite comme suit :

  • Son nom apparaît comme nom d'attribut dans l'objet JSON "properties ",
  • Cet attribut nouvellement créé a pour valeur un autre objet JSON dont l'attribut "type" est associé au type simple,
  • Pour certains types Adélia, l'attribut "adel_type" doit être renseigné pour caractériser le type.

↑ Haut de page

Décrire une donnée foobar de type Adélia BOOL

Paramètre "Options "

L4G Adélia pour la création d'un modèle de données équivalent

NUM_BIN_2 codeRet
BOOL foobar

foobar = *VRAI
appeler_class 'vatoolbx.dll' 'VaToolBxAPEAddInDataModel' 'myDataModel' 'foobar' foobar 'bool' codeRet

Exemple de modèles de données factices produits


La valeur booléenne "true" équivaut à la valeur *VRAI (false à *FAUX).

↑ Haut de page

 

Décrire une donnée foobar de type NUM_BIN_2

Paramètre "Options"

 

L4G Adélia pour la création d'un modèle de données équivalent

NUM_BIN_2 codeRet
NUM_BIN_2 foobar

foobar = -1256
appeler_class 'vatoolbx.dll' 'VaToolBxAPEAddInDataModel' 'myDataModel' 'foobar' foobar 'num_bin_2' codeRet

 

Exemple de modèles de données factices produits

Les valeurs de foobar sont comprises entre -32768 et 32767

↑ Haut de page

 

Décrire une donnée foobar de type NUM_BIN_4

Paramètre "Options"

 

L4G Adélia pour la création d'un modèle de données équivalent

NUM_BIN_2 codeRet
NUM_BIN_4 foobar

foobar = 45852632
appeler_class 'vatoolbx.dll' 'VaToolBxAPEAddInDataModel' 'myDataModel' 'foobar' foobar 'num_bin_4' codeRet

 

Exemple de modèles de données factices produits

Les valeurs de foobar sont comprises entre -2147483648 et 2147483647

↑ Haut de page

 

 

Décrire une donnée foobar de type NUM_BIN_8

Paramètre "Options"

 

L4G Adélia pour la création d'un modèle de données équivalent

NUM_BIN_2 codeRet
NUM_BIN_8 foobar

foobar = 45852632
appeler_class 'vatoolbx.dll' 'VaToolBxAPEAddInDataModel' 'myDataModel' 'foobar' foobar 'num_bin_8' codeRet

 

Exemple de modèles de données factices produits

Les valeurs de foobar sont comprises entre -9223372036854775808 et 9223372036854775807

↑ Haut de page

 

Décrire une donnée foobar de type NUM_E / NUM_P

La valeur de l'attribut "type" dépend du nombre de décimales du type Adélia :

  • Si les décimales sont égales à 0, fixez "type" à "integer ",
  • Si les décimales sont différentes à 0, fixez "type" à "number".

 

Cas d'une donnée représentant une date

Dans le cas où une donnée de type Adélia NUM_E / NUM_P (6, 0) ou NUM_E / NUM_P (8, 0) représente une date (format YYMMDD ou YYYYMMDD), il est possible de produire des valeurs numériques de dates grâce à l'attribut "adel_format" : celui-ci doit prendre comme valeur la chaîne "ymd".

 

Cas d'une donnée représentant une heure

Dans le cas où une donnée de type Adélia NUM_E / NUM_P (6, 0) représente une heure au format HHMMSS, il est possible de produire des valeurs numériques d'heures grâce à l'attribut "adel_format" : celui-ci doit prendre comme valeur la chaîne "hms".

Paramètre "Options"

L4G Adélia pour la création d'un modèle de données équivalent

NUM_BIN_2 codeRet
NUM_E(4,2) foobar

foobar = 17.85
appeler_class 'vatoolbx.dll' 'VaToolBxAPEAddInDataModel' 'myDataModel' 'foobar' foobar 'num_e' codeRet

Exemple de modèles de données factices produits

Les valeurs de foobar sont comprises entre -99.99 et 99.99

↑ Haut de page

 

Décrire une donnée foobar de type ALPHA

L'attribut "adel_type" permet de définir la longueur maximale des chaînes alphanumériques à produire. Cependant il est possible de restreindre cette longueur à un intervalle défini par les attributs "minLength" et "maxLength".

Ces attributs prennent des valeurs numériques (la valeur de "maxLength" ne doit pas être supérieure à la longueur du type ALPHA).

 

Expression régulière

Il est possible de définir une expression régulière qui servira de motif à la production de la chaîne alphanumérique. Il existe un certain nombre de limitations sur la syntaxe des expressions régulières supportées. L'attribut "pattern" permet de saisir une expression régulière.

Par exemple, pour produire une chaîne représentant un numéro de carte de crédit American Express, il faut saisir la chaîne "3[47][0-9]{13}" comme valeur de l'attribut "pattern".

Paramètre "Options"

 

L4G Adélia pour la création d'un modèle de données équivalent

NUM_BIN_2 codeRet
ALPHA(5) foobar

foobar = 'great'
appeler_class 'vatoolbx.dll' 'VaToolBxAPEAddInDataModel' 'myDataModel' 'foobar' foobar 'alpha' codeRet

 

Exemple de modèles de données factices produits

La longueur de la chaîne est aléatoire entre 0 et la longueur du type Adélia.

Chaque caractère est choisi aléatoirement entre la plage de codes décimaux 65 (A) et 90 (Z) et la plage de codes décimaux 97 (a) et 122 (z)

↑ Haut de page

 

Décrire une donnée foobar de type DATE

Il est possible de produire une valeur de date de type objet, alphanumérique ou numérique :

  • Si l'attribut "type" vaut "object", la date est un objet Date,
  • Si l'attribut "type" vaut "string", la date est une chaîne alphanumérique au format ISO 8601 (YYYY-MM-DD),
  • Si l'attribut "type" vaut "integer", la date est un numérique qui correspond à un horodatage c'est-à-dire un nombre correspondant à une durée (en millisecondes) à partir du 1er janvier 1970 à 0 heure (UTC).

 

De plus, il est possible de préciser via les attributs "adel_min" et "adel_max" un intervalle de dates dans lequel sera choisi aléatoirement la date à produire.

Ces deux attributs doivent prendre une chaîne alphanumérique au format ISO 8601 (YYYY-MM-DD). S'ils ne sont pas renseignés, la date produite est comprise entre *LOVAL et *HIVAL.

Paramètre "Options"

 

L4G Adélia pour la création d'un modèle de données équivalent

NUM_BIN_2 codeRet
DATE foobar

Heure foobar
appeler_class 'vatoolbx.dll' 'VaToolBxAPEAddInDataModel' 'myDataModel' 'foobar' foobar 'date' codeRet

 

Exemple de modèles de données factices produits

Les valeurs de foobar sont comprises entre *LOVAL (0001-01-01) et *HIVAL (9999-12-31)

Paramètre "Options"

L4G Adélia pour la création d'un modèle de données équivalent

NUM_BIN_2 codeRet
DATE foobar

Heure foobar
appeler_class 'vatoolbx.dll' 'VaToolBxAPEAddInDataModel' 'myDataModel' 'foobar' foobar 'date' codeRet

 

Exemple de modèles de données factices produits

Les valeurs de foobar sont comprises entre *LOVAL (-62135596800000) et *HIVAL (253402214400000)

↑ Haut de page

 

Décrire une donnée foobar de type TIME

Il est possible de produire une valeur d'heure de type objet, alphanumérique ou numérique :

  • Si l'attribut "type" vaut "objet", l'heure est un objet Time,
  • Si l'attribut "type" vaut "string", l'heure est une chaîne alphanumérique au format ISO 8601 (HH:MM:SS),
  • Si l'attribut "type" vaut "integer", la date est un numérique qui correspond à un horodatage, c'est-à-dire un nombre correspondant à une durée (en millisecondes) à partir du 1er janvier 1970 à 0 heure (UTC).

 

De plus, il est possible de préciser via les attributs "adel_min" et "adel_max" un intervalle d'heures dans lequel sera choisi aléatoirement l'heure à produire. Ces deux attributs doivent prendre une chaîne alphanumérique au format ISO 8601 (HH:MM:SS). S'ils ne sont pas renseignés, l'heure produite est comprise entre *LOVAL et *HIVAL.

Paramètre "Options"

 

L4G Adélia pour la création d'un modèle de données équivalent

NUM_BIN_2 codeRet
TIME foobar

Heure foobar
appeler_class 'vatoolbx.dll' 'VaToolBxAPEAddInDataModel' 'myDataModel' 'foobar' foobar 'time' codeRet

 

Exemple de modèles de données factices produits

Les valeurs de foobar sont comprises entre *LOVAL (01:01:01) et *HIVAL (23:59:59)

Paramètre "Options"

L4G Adélia pour la création d'un modèle de données équivalent

NUM_BIN_2 codeRet
TIME foobar

Heure foobar
appeler_class 'vatoolbx.dll' 'VaToolBxAPEAddInDataModel' 'myDataModel' 'foobar' foobar 'time' codeRet

 

Exemple de modèles de données factices produits

Les valeurs de foobar sont comprises entre *LOVAL (-3600000) et *HIVAL (82799000)

↑ Haut de page

 

Décrire une donnée foobar de type TIMESTAMP

Il est possible de produire une valeur d'horodatage de type objet, alphanumérique ou numérique :

  • Si l'attribut "type" vaut "objet", l'horodatage est un objet Timestamp,
  • Si l'attribut "type" vaut "string", l'horodatage est une chaîne alphanumérique au format ISO 8601 (yyyy-MM-dd'T'HH:mm:ss.SSS),
  • Si l'attribut "type" vaut "integer", l'horodatage est un numérique qui correspond à une durée (en millisecondes) à partir du 1er janvier 1970 à 0 heure (UTC).

 

De plus, il est possible de préciser via les attributs "adel_min" et "adel_max" un intervalle d'horodatages dans lequel sera choisi aléatoirement l'horodatage à produire. Ces deux attributs doivent prendre une chaîne alphanumérique au format ISO 8601 (yyyy-MM-dd'T'HH:mm:ss.SSS). S'ils ne sont pas renseignés, l'horodatage produit est compris entre *LOVAL et *HIVAL.

Paramètre "Options"

 

L4G Adélia pour la création d'un modèle de données équivalent

NUM_BIN_2 codeRet
TIMESTAMP foobar

Heure foobar
appeler_class 'vatoolbx.dll' 'VaToolBxAPEAddInDataModel' 'myDataModel' 'foobar' foobar 'timestamp' codeRet

 

Exemple de modèles de données factices produits

Les valeurs de foobar sont comprises entre *LOVAL (01-01-01T01:01:01.000) et *HIVAL (9999-31-12T23:59:59.999)

Paramètre "Options"

L4G Adélia pour la création d'un modèle de données équivalent

NUM_BIN_2 codeRet
TIMESTAMP foobar

Heure foobar
appeler_class 'vatoolbx.dll' 'VaToolBxAPEAddInDataModel' 'myDataModel' 'foobar' foobar 'timestamp' codeRet

 

Exemple de modèles de données factices produits

Les valeurs de foobar sont comprises entre *LOVAL (-62135596800000) et *HIVAL (253402300799999)

↑ Haut de page

 

Décrire une donnée foobar de type IMAGE

Il est possible de produire une valeur d'image de type chaîne alphanumérique ou tableau d'octets :

  • Si l'attribut "type" vaut "string", la valeur produite représente le contenu de l'image encodé en base 64,
  • Si l'attribut "type" vaut "array", la valeur produite est un tableau d'octets.

 

Dans les deux définitions, il est nécessaire de préciser le format d'image à produire grâce à l'attribut "adel_format", qui permet de définir des paramètres via la syntaxe clé = valeur. Trois formats d'image sont supportés en renseignant la clé "mimetype" :

  • mimetype=image/jpeg : Image au format JPEG,
  • mimetype=image/png : Image au format PNG,
  • mimetype=image/gif : Image au format GIF.

 

De plus, il est possible de préciser la taille (en pixels) de l'image à produire en fournissant les dimensions de l'image (largeur x hauteur) comme valeur de la clé "size". Par exemple, pour indiquer qu'il faut produire une image au format PNG de 100 pixels de largeur par 50 pixels de hauteur, renseignez dans l'attribut "adel_format" la valeur "mimetype=image/png ;size=100x50".

 

Si aucune taille n'est spécifiée, la largeur et la hauteur de l'image produite sont choisies aléatoirement dans les intervalles [100, 200] pixels.

Paramètre "Options"

L4G Adélia pour la création d'un modèle de données équivalent

NUM_BIN_2 codeRet
IMAGE foobar

appeler_class 'vatoolbx.dll' 'VaToolBxFileToImage' 'c:/dot.png' foobar codeRet

* the image is converted to a base 64 encoded string

appeler_class 'vatoolbx.dll' 'VaToolBxAPEAddInDataModel' 'myDataModel' 'foobar' foobar 'image' codeRet

Exemple de modèles de données factices produits

Image résultat :

L'image a une couleur de fond choisie aléatoirement, ainsi qu'un texte indiquant sa dimension (largeur x hauteur)

↑ Haut de page

 

Description des données de type complexe

On explique ici comment décrire dans un modèle de donnée factice une "sous-variable "de type REF_CLASSE, TABLEAU ou LISTE.

 

Décrire une donnée foobar de type REF_CLASSE

Une donnée de type Adélia REF_CLASSE peut être décrite en JSON comme un objet JSON (type "object"). Cet objet contient son propre attribut "properties" permettant de décrire l'ensemble des attributs (les "sous-variables") de l'instance de classe Adélia foobar.

 

Exemple : Simuler une classe Adélia ayant des attributs de type simples

L4G Adélia en production

CLASSE Personne :
*attributs {
ALPHA(15) name ;
ALPHA(15) lastName ;
NUM_BIN_2 age ;
}

 

NUM_BIN_2 codeRet
REF_CLASSE(Personne) foobar
foobar = new Personne()
foobar.setname('Mary')
foobar.setlastName('Smith')
foobar.setage(18)
appeler_class 'vatoolbx.dll' 'VaToolBxAPEAddInDataModel' 'myDataModel' 'foobar' foobar 'class' codeRet

Paramètre "Options"

Exemple de modèles de données factices produits

 


Autre exemple : Simuler une classe Adélia ayant des attributs de type simple et complexe

L4G Adélia en production

CLASSE Adresse :
*attributs {
ALPHA(15) city ;
NUM_BIN_2 postalCode ;

CLASSE Personne :
*attributs {
ALPHA(15) name ;
ALPHA(15) lastName ;
NUM_BIN_2 age ;
REF_CLASSE(Adresse) address;
}

 

NUM_BIN_2 codeRet
REF_CLASSE(Adresse) address
address = new Adresse()
address.setcity('Seyssinet Pariset')
address.setpostalCode(38170)

REF_CLASSE(Personne) foobar
foobar = new Personne()
foobar.setaddress(address)
foobar.setname('Mary')
foobar.setlastName('Smith')
foobar.setage(18)
appeler_class 'vatoolbx.dll' 'VaToolBxAPEAddInDataModel' 'myDataModel' 'foobar' foobar 'class' codeRet

 

Paramètre "Options"

 

Exemple de modèles de données factices produits

 

↑ Haut de page

 

Décrire une donnée foobar de type TABLEAU

Une donnée de type Adélia TABLEAU peut être décrite en JSON comme un tableau JSON (type "array").

Le type des valeurs contenues dans ce tableau est décrit dans l'attribut "items". De plus, il est possible de définir une longueur minimale et une longueur maximale pour le tableau produit à l'aide des attributs "minItems" et "maxItems". Si ces deux attributs ne sont pas définis, le tableau aura une taille aléatoire.

 

Exemple : Simuler un tableau 1D de valeurs de type simple

L4G Adélia en production

NUM_BIN_2 codeRet
NUM_E(2,1) foobar(3)
foobar(1) = 0.5
foobar(2) = 1.2
foobar(3) = -8.6
appeler_class 'vatoolbx.dll' 'VaToolBxAPEAddInDataModel' 'myDataModel' 'foobar' foobar 'num_e' codeRet

Paramètre "Options"

Exemple de modèles de données factices produits

 


Autre exemple : Simuler un tableau 2D de valeurs de type simple

L4G Adélia en production

NUM_BIN_2 codeRet
DATE foobar(2,4)
foobar(1, 1) = &ALPHA_DATE('*ISO';'1985-02-12')
...
appeler_class 'vatoolbx.dll' 'VaToolBxAPEAddInDataModel' 'myDataModel' 'foobar' foobar 'date' codeRet

Paramètre "Options"

Exemple de modèles de données factices produits

↑ Haut de page

 

Décrire une donnée foobar de type LISTE

Une donnée de type Adélia LISTE peut être décrite en JSON comme un tableau JSON (type "array ") d'objets JSON.

Chaque objet JSON contient les valeurs d'une ligne de la liste : chaque valeur de colonne de liste est associée à un attribut de nom de la colonne (en minuscule).

L'attribut "items" doit donc décrire un objet JSON (type "object").

De plus, il est possible de définir une longueur minimale et une longueur maximale pour la liste (le tableau) produite à l'aide des attributs "minItems" et "maxItems". Si ces deux attributs ne sont pas définis, la liste aura une taille aléatoire.

 

Exemple : Simuler une liste de valeurs de type simple

L4G Adélia en production

NUM_BIN_2 codeRet
ALPHA(30) NAME
NUM_BIN_2 Age
LISTE foobar NAME Age

NAME = 'Franck Hunter'
Age = 18
Inserer_elt foobar
NAME = 'Theresa Black'
Age = 17
Inserer_elt foobar
NAME = 'Alexander Faye'
Age = 19
Inserer_elt foobar

appeler_class 'vatoolbx.dll' 'VaToolBxAPEAddInDataModel' 'myDataModel' 'foobar' foobar 'list' codeRet

Paramètre "Options"

Exemple de modèles de données factices produits

↑ Haut de page


 

  • Aucune étiquette