Cette fonction est fournie sans le cadre de l'utilisation de l'
Adélia Print Engine.
Elle permet d'exécuter le moteur de gabarits (ou modèles) Freemarker.
Ce moteur prend en entrée :
- un gabarit : un fichier texte (extension .ftlx) définissant les règles d'affichage et de présentation des données,
- une source de données : un arbre d'objets encapsulant les données à afficher,
pour produire en sortie un document textuel.
Lors de l'exécution de Freemarker, le gabarit va recevoir les données à afficher, puis va exécuter son code d'impression. Celui-ci est constitué de code statique lié au format du document en sortie (par exemple, un langage de balises de type XML), ainsi que de code dynamique dans le langage FTL (FreeMarker Template Language) permettant de traiter les données.
Remarque : cette fonction est le pendant Adélia du service Web "
mergedoc" de l'APE.
Rappel : la dll VaToolBx doit être déjà chargée (ordre CHARGER_DLL ) au moment de l'appel de cette fonction et doit rester chargée au moment de l'appel des fonctions VaToolBxAPEClearDataModel, VaToolBxAPETransformDoc, VaToolBxAPEAddInDataModel ou VaToolBxAPEMergeAndTransformDoc.
Domaine d'application
- Client Java,
- Serveur Java,
- Client Adélia Web,
- Client Adélia Cloud.
Paramètres
ALPHA(n) |
NomEspaceNoms |
Nom de l'espace de noms. |
ALPHA(n) |
NomDuGabarit |
Nom du gabarit à traiter. |
ALPHA(n) |
Locale |
Nom de la locale (au format IETF BCP 47) à appliquer lors de la recherche et le traitement du gabarit. |
ALPHA(n) |
NomModele |
Nom du modèle de données servant de source de données lors du traitement du gabarit |
ALPHA(n) ou IMAGE |
Options |
Définition des options à appliquer lors du traitement du gabarit. |
IMAGE |
MergeDoc |
Document résultat du traitement Freemarker du gabarit NomDuGabarit avec la source de données NomModele |
NUM_BIN_2 |
CodeRetour |
Code retour de l'opération : 0 : L'opération s'est déroulée correctement. -1 : Le nom du gabarit ne peut être vide. -2 : Le nom du modèle de données ne correspond à aucun modèle de données déjà crée. -3 : Erreur lors de la fermeture du document résultat MergeDoc. -4 : Erreur lors de l'analyse syntaxique au format JSON des options de traitement Options. -5 : Erreur lors de l'analyse des valeurs des options de traitement Options. -6 : Erreur d'entrée/sortie lors de l'analyse des options de traitement Options. -7 : Le paramètre Options doit être de type ALPHA ou IMAGE. Les erreurs décrites ci-dessous sont liées au traitement Freemarker du gabarit :
|
|
|
|
Espace de noms
Il s'agit d'un espace de regroupement de templates.
On peut comparer les espaces de noms à des dossiers : le comportement est identique à un dossier, il est possible d'avoir des éléments de même nom dans différents espaces de noms.
De plus, un espace de noms peur contenir d'autres espaces de noms.
Cliquez ici pour plus de détails .
Locale
Elle permet de particulariser le gabarit à rechercher en fonction des informations constituant la locale (le code de la langue, le code du pays ou de la région et la variante).
Cliquez ici pour plus de détails .
Options de traitement du gabarit
Le paramètre "Options" permet de définir des caractéristiques supplémentaires dans le traitement du gabarit.
Le format des options doit être le format JSON : l'ensemble des options sont décrites dans un objet dont chaque membre décrit une option, à savoir :
-
- extOutputTransform : option de formatage du document résultat (type JSON string),
- jsonPathConv : option de conversion de données du modèle de données avant traitement de celui-ci par le gabarit (type JSON array of Object),
- jsonGenerator : option de production d'un modèle de données factice utilisé en lieu et place du modèle de données NomModele lors de la phase de mise développement du gabarit (type JSON Object).
Par exemple
ALPHA(20) | NomEspaceNoms |
ALPHA(20) | NomDuGabarit |
ALPHA(10) | Locale |
ALPHA(20) | NomModele |
ALPHA(20) | Options |
IMAGE | MergeDoc |
NUM_BIN_2 | returnCode |
NomEspaceNoms = 'stock/article'
NomDuGabarit = 'detailArticle.ftlx'
Locale = 'en-CA'
NomModele = 'articleDataModel'
Options = '{ "jsonPathConv": [{"path": "$.expirationDate",
"class": "com.hardis.adelia.mergedocengine.datamodel.conversion.convertors.EpochToDateConversion"
}]
}'
APPELER_DLL 'VaToolbx.dll' ' VaToolBxAPEMergeDoc' NomEspaceNoms NomDuGabarit Locale NomModele Options MergeDoc returnCode