ANS-1834 · IMPRESSION, PDF ET MODèLES D’E-MAILS
Comment résoudre l’erreur « Erreur lors de la lecture du fichier inclus » dans les modèles FreeMarker de NetSuite
Découvrez comment le choix du type de champ influe sur le fonctionnement de la balise #include pour les chemins d'accès dynamiques aux fichiers dans les modèles d'e-mails NetSuite.
Solution courte
Pour résoudre l'erreur « Erreur lors de la lecture du fichier inclus » lors de l'utilisation de la balise #include dans les modèles d'e-mail FreeMarker de NetSuite, remplacez le type de champ stockant le chemin d'accès au fichier par « texte libre » par « lien hypertexte ». Les champs de texte libre sont soumis à l’échappement HTML, ce qui peut corrompre les chemins d’accès, tandis que les champs de lien hypertexte sont généralement mieux adaptés à l’insertion dynamique d’URL ou de chemins d’accès aux fichiers.
Scénario
Les utilisateurs qui tentent d’inclure dynamiquement des fichiers dans des modèles d’e-mail NetSuite FreeMarker à l’aide de la balise #include peuvent rencontrer le message d’erreur « Erreur lors de la lecture du fichier inclus ». Ce problème survient généralement lorsque le chemin d’accès au fichier est stocké dans un champ personnalisé et que le moteur FreeMarker ne parvient pas à interpréter correctement ce chemin, ce qui empêche le modèle de s’afficher comme prévu.
Solution
En cas de problèmes avec la balise #include dans les modèles d’e-mails FreeMarker, notamment une « erreur de lecture du fichier inclus », le type de champ utilisé pour stocker le chemin d’accès au fichier peut constituer un facteur déterminant. Le moteur FreeMarker de NetSuite semble traiter les différents types de champs de manière variable, notamment en ce qui concerne l’échappement des chaînes de caractères.Les champs de texte libre sont soumis à un échappement HTML lorsqu’ils sont rendus dans les modèles FreeMarker, en particulier lorsque leur contenu est placé entre guillemets. Cet échappement peut modifier involontairement les chemins d’accès aux fichiers, ce qui entraîne des erreurs lorsque la directive #include tente de résoudre le chemin. En revanche, le fait de changer le type de champ du chemin d’accès, en passant du texte libre au lien hypertexte, peut résoudre ce problème. Bien que les champs de lien hypertexte soient conçus pour les URL et nécessitent souvent moins d’échappement explicite pour l’insertion directe d’URL, il est important de noter qu’un rendu fiable peut tout de même nécessiter un formatage FreeMarker spécifique (par exemple, la concaténation ou la fonction intégrée ?no_esc) afin de garantir que l’URL soit correctement traitée sans caractères indésirables. L’interaction directe de la balise #include avec ces types de champs pour les chemins d’accès aux fichiers peut varier en fonction de la configuration des champs et de la version de NetSuite.Par conséquent, lorsqu’une chaîne codée en dur représentant un chemin d’accès à un fichier est requise dans un modèle d’e-mail FreeMarker, en particulier pour une utilisation avec la balise #include, il est recommandé d’utiliser un champ de type lien hypertexte plutôt qu’un champ de texte libre standard afin d’atténuer les problèmes d’échappement potentiels.
Support expert NetSuite
Besoin d’aide pour cet enjeu NetSuite ?
Accompagnement-conseil et configuration pour Impression, PDF et modèles d’e-mails
