Conversion de prix en temps réel dans InDesign !

Si vous travaillez avec des données financières dans Adobe InDesign que ce soit pour du catalogue, du rapport financier ou même des menus, vous avez pu avoir besoin de convertir des prix d’une devise X vers une monnaie Y.

Normalement c’est au client de vous apporter ces éléments mais voilà que vous vous retrouvez en charge de la conversion en dollars des 5000 références exprimées en euro contenues dans votre document InDesign.

Tâche ingrate s’il en est. Rangez dès à présent la calculette, nous allons réussir le tour de force non seulement de mettre à jour nos prix très facilement, mais qui plus est en s’appuyant sur les valeurs de change en temps réel ! Désormais, la conversion des prix d’une devise à une autre n’est plus votre principal cauchemar !

A) De jolis prix en euros

Nous allons générer une liste de données fictives et extrêmement basiques. Nous utilisons le site generatedata, très utile pour générer rapidement de petites bases de données :

Donnes avec prix pour change

La dernière colonne contient nos prix en euros. Nous souhaitons à terme pouvoir exprimer ce prix en dollars US en temps réel et à moindre effort. Nous allons pour cela utiliser le plugin EasyCatalog et l’une de ses fonctions méconnues : l’appel à un script javascript !

B) Script Javascript

Notre script va effectuer un requête HTTP vers le site rate-exchange.appspot.com via un objet Socket. Je profite de cette occasion pour remercier notre ami et confrère Martinho da Gloria de la société Automatication pour sa mise à disposition d’un code spécifique à l’utilisation d’un objet Socket.

Il existe par ailleurs un script mis à disposition par ChrisKoppieters de la société Rorohiko : GetURL Ce script vous permettra ainsi d’interroger toute url utile pour autant que vous n’utilisiez pas un proxy.

Il nous reste donc qu’à utiliser notre script dans EasyCatalog.

C) Javascript dans EasyCatalog

Nous allons créer une colonne personnalisée « Prix en dollars US » et nous allons choisir la fonction « CALLSCRIPT« :

custom field with call script

D) Le résultat

Et voilà, en un instant, tous nos prix sont convertis en dollars US :

euros convertis en dollars

L’intérêt de la procédure est que nos prix en dollars sont dynamiques au regard de la colonne « Prix ». Si une valeur de cette dernière vient à changer alors la conversion sera faite automatiquement et tout notre document sera ainsi maintenu en toute facilité !

E) Conclusion

Confier la conversion de prix à un graphiste n’est pas l’usage courant. C’est au client à fournir ce type de données car il en va de sa responsabilité. Nous souhaitions toutefois à travers cet exemple démontrer la faisabilité d’une conversion temps réel de nos prix grâce aux fonctionnalités avancées d’EasyCatalog.

Les utilisateurs les plus aguerris se demanderont pourquoi ne pas avoir plutôt utiliser la fonction MUL (Pour multiplier par…) et utiliser une valeur fixe. C’est une méthode tout à fait valable. L’objectif ici était de pousser notre ensemble EasyCatalog/Javascript dans ses retranchements les plus profonds.

En préparant cet article, je me suis demandé quel pourrait être un exemple frappant d’utilisation d’un script javascript dans EasyCatalog. Surtout, je me suis interrogé sur le facteur déterminant. Qu’est ce que pourrait faire un script javascript que ne pourrait faire EasyCatalog par nature.  L’interrogation d’un service HTTP est un exemple plutôt intéressant.

Dans notre cas, plus qu’une conversion de devises, nous apportons une grande réactivité puisque le ratio est calculé d’après des valeurs temps réel. Un crash boursier, une action qui grimpe en flèche, une pénurie chez un fournisseur et des changes qui jouent au yoyo ? En un instant, tous les prix sont à jour sans avoir besoin de chercher quel taux a cours à l’instant « t ».

Sans compter que certains services vous permettent de convertir des devises en fonction d’une valeur pour une date passée. Cela peut être intéressant à exploiter pour qui voudra éventuellement mettre en place un comparatif d’évolution d’un prix en fonction de telle ou telle date. Et peut-être alors générer de jolis diagrammes en barres ?

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *