Mashup Builder > Fonctions > Bonnes pratiques en matière de création d'expressions de fonction
Bonnes pratiques en matière de création d'expressions de fonction
Les fonctions et widgets suivants prennent en charge les expressions JavaScript personnalisées dans une application composite :
Fonction d'expression : est évaluée en une valeur
Fonction Validateur : est évaluée en une valeur booléenne
Widgets de grille : évaluent les entrées utilisateur lors de la modification des cellules de la grille
Utilisation de la fonction TW.log à des fins de développement uniquement
Vous pouvez utiliser la fonction TW.log() pour consigner les messages de débogage, d'erreur, d'avertissement et d'information associés à l'expression dans une application composite. Les messages du journal s'affichent dans la boîte de dialogue de journal de l'application composite au moment de l'exécution. Par exemple :
TW.log.debug('debug')
TW.log.error('error')
TW.log.warn('warn')
TW.log.info('info')
L'ouverture d'applications composites contenant un grand nombre d'instructions de consignation des expressions a une incidence significative sur les performances de l'application composite. Si vous utilisez un grand nombre d'instructions de journalisation dans vos applications composites, nous vous recommandons de ne pas les utiliser dans un environnement de production actif. Vous pouvez utiliser des instructions de journalisation lors du développement et du test d'une application composite. Toutefois, vous devez les convertir en commentaire ou les supprimer du code avant de déployer l'application composite dans un environnement de production.
Vérification de la console de débogage lors de l'exécution
Après avoir conçu une application composite contenant des expressions, consultez la boîte de dialogue des informations de débogage lors de l'exécution. Vous pouvez utiliser cette fonction pour suivre l'exécution de votre application composite, ce qui vous aide à identifier les problèmes de logique, tels que les liaisons circulaires et les boucles infinies dans votre conception ou votre implémentation. Pour afficher les informations de débogage d'une application composite, cliquez sur Afficher/masquer les informations de débogage dans la barre d'outils d'exécution.
Analyse d'entrées JSON
Lorsque vous travaillez avec des données JSON dans une expression, évitez d'utiliser la méthode JSON.parse() pour analyser et convertir du JSON à partir d'une chaîne. Vous pouvez accéder aux objets JSON dans les paramètres définis directement sur un type de base JSON.
Utilisation de la fonction TW.setTimout
Dans les versions antérieures de ThingWorx, setTimeout n'est pas pris en charge dans les expressions de fonction. Dans ThingWorx 9.6 ou versions ultérieures, vous pouvez exécuter simultanément jusqu'à 10 expressions qui contiennent une fonction TW.setTimeout. Vous pouvez définir une fonction setTimeout unique dans chaque fonction d'expression. Tout code ajouté avant ou après la fonction setTimeout dans l'expression n'est pas exécuté. La valeur de délai d'attente maximale que vous pouvez définir pour une fonction est limitée à 10 secondes. Lorsque la valeur définie dépasse cette limite, la valeur de la fonction est automatiquement définie sur 10 secondes et un message TW.log.warn s'affiche dans les journaux de l'application composite lors de l'exécution.
TW.setTimeout(() => {
TW.log.info("Delayed for 1 second.")
}, "1000");
* 
Jusqu'à dix convertisseurs Web sont disponibles pour exécuter des expressions avec une fonction setTimeout lors de l'exécution. D'autres sont mises en file d'attente jusqu'à ce qu'un convertisseur soit disponible.
Utilisation des fonctions TW.sessionStorage
Les paires nom/valeur stockées dans l'objet window.sessionStorage sont disponibles pendant la durée de la session du navigateur uniquement. Les conditions de concurrence peuvent se produire car les expressions sécurisées sont exécutées de manière asynchrone. Par exemple, une expression peut mettre à jour les propriétés de stockage de session et une autre expression peut s'exécuter avant d'obtenir les valeurs mises à jour. Pour réduire les conditions de concurrence et vous assurer que des mises à jour de stockage de session sont disponibles lorsqu'une autre expression commence à s'exécuter, vous devez chaîner les expressions à l'aide d'un événement Changed.
* 
Les variables window.sessionStorage ne sont pas associées aux GlobalSessionVariables ThingWorx.
Est-ce que cela a été utile ?