ISOTOOLS BUILDER X8 V3.0

Transcription

ISOTOOLS BUILDER X8 V3.0
FICHE VERSION
ISOTOOLS BUILDER X8 V3.0
Nouveautés et évolutions depuis la version 2.2
Sommaire
>> VERSION X8 3.0 BUILD 25 (VERSION CORRECTIVE) _____ 3
A retenir
EVOLUTIONS __________________________________________ 3
CORRECTION __________________________________________ 3
>> VERSION X8 3.0 BUILD 24 (VERSION CORRECTIVE) _____ 3
EVOLUTIONS __________________________________________ 3
-- Important -Suppression de la diffusion en ASP. Seule la
diffusion en ASP.Net persiste.
CORRECTIONS _________________________________________ 3
>> VERSION X8 3.0 BUILD 23 (VERSION CORRECTIVE) _____ 4
>> VERSION X8 3.0 BUILD 22 (VERSION CORRECTIVE) _____ 4
EVOLUTIONS __________________________________________ 4
CORRECTIONS _________________________________________ 5
>> VERSION X8 3.0 BUILD 21 (VERSION CORRECTIVE) _____ 5
EVOLUTIONS __________________________________________ 5
CORRECTIONS _________________________________________ 6
>> VERSION X8 3.0 BUILD 20 (VERSION CORRECTIVE) _____ 6
EVOLUTIONS __________________________________________ 6
CORRECTIONS _________________________________________ 7
>> VERSION X8 3.0 BUILD 14 (RELEASE) ________________ 7
PASSAGE DE COLLECTION D’OBJETS EN PARAMÈTRE _________ 8
IMAGERIE PRODUIT ____________________________________ 9
INTÉGRATION DE JQUERY ET KENDOUI ____________________ 9
NOUVEAU SYSTÈME DE LANGUE ET GESTION DU REPLI ______ 10
API D’ACCÈS AU REPLI DES LANGUES_________________________10
FONCTION ITL:LOCALE __________________________________11
SORTIE DERNIERE BUILD X8 V3.0 (KERNEL ID 460225) : 06/12/2013 – RÉF. DOC. : 13BUIX8460225RN01
NOUVEAUTES ET EVOLUTIONS ISOTOOLS STUDIO X8 V3.0
PAGE 2
OUVERTURES LIÉES À SOCOLISSIMO __________________________________________________________________13
MODIFICATION DE L’AUTHENTIFICATION BOUTIQUE SUITE À REFONTE USERS / XRM
(PROCESSUS DE COMMANDE B2C) ___________________________________________________________________15
EVOLUTIONS MINEURES ___________________________________________________________________________16
APPLICATION ___________________________________________________________________________________
ITL__________________________________________________________________________________________
SYNCHRONISATION _______________________________________________________________________________
WIZARD ______________________________________________________________________________________
16
16
17
17
CORRECTIONS ____________________________________________________________________________________17
SORTIE DERNIERE BUILD X8 V3.0 (KERNEL ID 460225) : 06/12/2013 – RÉF. DOC. : 13BUIX8460225RN01
>> Version X8 3.0 build 25 (version corrective)
ITL Library 2.8.9 – Kernel ID 460225- Sortie le 06/12/2013
Evolutions

[TFS2071] et [TFS2193] Suppression de l’attribut useYUIMarkup sur sds:buttonBar et ajout de l'attribut
useYUIMarkup sur sds:submitButton.

[TFS2504] Prise en compte du containerSpanClass et ajout d’un span autour du libellé du
sds:linkbutton.

[TFS2537] et [TFS650] Amélioration des performances des Recordset ADO. Le IRecord est désormais
disposable.
Correction

[TFS2502] itl:input de type xrm:filter : balise Label fermée sur l'élément l'ouvrant.

[TFS2518] Erreur javascript si problème dans l'expression de la condition d'utilisation d'une ressource.

[TFS2484] La méthode collection.keys() fait de la concaténation de chaîne au lieu d'utiliser un
stringBuilder provoquant alors de mauvaises performances.

[TFS2554] Bug de compatibilité suite à la refonte de IRecord.
>> Version X8 3.0 build 24 (version corrective)
ITL Library 2.8.4 – Kernel ID 460224- Sortie le 17/10/2013
Evolutions

[TFS1478] et [TFS1479] Nouveaux articles dans le wiki concernant la trace :
- Activer les traces dans un site diffusion
- Liste des sources disponibles
- Comment créer une nouvelle source de trace
Corrections

[TFS2209] Correction du problème lors de l'appel à rightsGids dans le contexte d’utilisation de SolR.
SORTIE DERNIERE BUILD X8 V3.0 (KERNEL ID 460225) : 06/12/2013 – RÉF. DOC. : 13BUIX8460225RN01
NOUVEAUTES ET EVOLUTIONS ISOTOOLS STUDIO X8 V3.0

PAGE 4
[TFS2148] itl:input de type alb:privateImage sans attribut requiredMeta provoque une exception en
runtime.
>> Version X8 3.0 build 23 (version corrective)
ITL Library 2.7.8 à 2.8.2 – Kernel ID 460223- Sortie le 12/08/2013
Aucune modification.
>> Version X8 3.0 build 22 (version corrective)
ITL Library 2.7.7 à 2.8.2 – Kernel ID 460222- Sortie le 02/08/2013
Evolutions

[TFS2018] Nouvel événement onAfterGenerateWebConfig appelé après la génération du fichier
web.config en diffusion et en visualisation.
Les propriétés de l'événement sont les suivantes :
o
o
o
o

document : document site
destination : objet destination
isPreview : booléen indiquant si la génération concerne la visualisation
webConfigPath : chemin de fichier web.config généré
[TFS1959] Il existe désormais dans le module isotools une ressource (iso:currencyUtils) qui apporte les
méthode d'affichage d'un nombre selon un format monétaire défini dans la vue Configurer :
o
o
o
isoCurrencyUtils.toCurrency(amount) : cherche le format monétaire le plus approprié en
fonction de la langue courante
isoCurrencyUtils.toCurrencyByName(amount, formatName) : utilise le format monétaire
dont le nom est formatName
isoCurrencyUtils.toCurrencyByFormat(amount, format) : utilise le format passé en
paramètre. Ce format doit respecter ce qui est fait dans la vue Configurer.

[TFS1991] Possibilité d’utiliser la ressource IoniZip côté runtime afin de pouvoir gérer des fichiers
d’extension.zip.

[TFS2063] Amélioration de l'héritage des évènements : les évènements relatifs à des erreurs héritent
désormais de WebBaseErrorEvent. Usage de WebEventCodes.WebExtendedBase pour la
génération du code des évènements

[TFS2035] Ajout dans le web.config de la section <mailSettings> lorsque l'envoi de mail est
configuré dans la destination.
SORTIE DERNIERE BUILD X8 V3.0 (KERNEL ID 460225) : 06/12/2013 – RÉF. DOC. : 13BUIX8460225RN01
NOUVEAUTES ET EVOLUTIONS ISOTOOLS STUDIO X8 V3.0

[TFS1994] Amélioration de l’historique dans la vue Modéliser.

[TFS2011] Possibilité d’appeler des .less en visualisation.
PAGE 5
Corrections

[TFS2032] La fonction sm_getAdditionalFieldsDef qui permet d'ajouter
complémentaires est appelée dans un contexte où "this" n'est pas valide.
des
champs

[TFS1933] Correction de l’erreur 500 suite à l’utilisation d’une même clé dans une collection de
configuration.

[TFS2040] L'usage d'un itl:create en tâche de fond (hors du contexte d'une requête HTTP) produit
une exception.

[TFS2066] Correction de l’erreur dans l’expression SortExpression de omc:stringItem.
>> Version X8 3.0 build 21 (version corrective)
ITL Library 2.7.5 à 2.8.2 – Kernel ID 460221- Sortie le 12/06/2013
Evolutions

[TFS1841] Au niveau de la déclaration d'une classe, on peut désormais définir des indexes de base
de donnée (en plus de ceux créés implicitement par le modèle : association, clé primaire... etc).

[TFS1845] Les dll compilées par ITLLibrary peuvent désormais définir la trace.

[TFS1851] Amélioration des performances dans le contexte de la synchronisation par l’ajout d’un
index sur la notion de clé de synchronisation.

[TFS1852] Amélioration des performances des requêtes OCS par l’ajout d'un index sur
ocs_card.ocsStatus.

[TFS1860] Amélioration du Dispose de EC et des IsoPage.

[TFS1863] Ajout de l’élément itl:cache (cache de markup).

[TFS1869] Amélioration de la modularité par le déplacement de la chaîne de connexion à
ADO.Net à la base de données vers le fichier web.config.

[TFS1907] L'attribut restrictAllToVisible dde <sds:table-selection> est obligatoire.
SORTIE DERNIERE BUILD X8 V3.0 (KERNEL ID 460225) : 06/12/2013 – RÉF. DOC. : 13BUIX8460225RN01
NOUVEAUTES ET EVOLUTIONS ISOTOOLS STUDIO X8 V3.0
PAGE 6
Attention ! Rupture de compatibilité :
Les éléments <sds:table-selection> doivent être muni explicitement de l'attribut restrictAllToVisible.

[TFS1924] Amélioration des performances de la base : possibilité d'ajouter des indexes à une
structure personnalisée.

[TFS1931] Ajout de l'attribut rel sur itl:link.

[TFS1944] Les urls utilisées pour invoquer les ressources Js ou css contiennent maintenant une
information de version dont le seul rôle est de changer à la livraison d'un nouveau Studio ou d'une
nouvelle extension. Ceci permet alors à chaque navigateur de considérer que la version de la
ressource qu'il connait n'est plus à jour lors du changement de version. On évite ainsi les problèmes
d'erreur javascript liés au fait que les navigateurs utilisaient une version précédente d'une ressource
stockée dans son cache alors que le site met à disposition la nouvelle version.
Corrections

[TFS1915] MatchOid ne peut être utilisé dans une collection mise en variable.

[TFS1938] itl:set sur un booléen génère du SQL invalide.
>> Version X8 3.0 build 20 (version corrective)
ITL Library 2.7.4 à 2.8.2 – Kernel ID 460220- Sortie le 22/04/2013
Evolutions

[TFS1473] Indication de la date de processing (DateTime.Now) dans le méta http-equiv « Date ».
Cette information permettra alors de pouvoir vérifier le fonctionnement du cache simplement en
examinant les retours http (460216).

[TFS1596] Amélioration du dumpOverloadedAttributes de gshp (460218).

[TFS1677] Possibilité de surcharger par le projet/décor des formules récupérant les données (label,
label2, introduction, description et body) de gshp:product (460218).

[TFS1750] Ajout du monitoring des évènements start et end de l'application web (460218).

[TFS1824] Mise en place d'évènement custom de monitoring pour les synchronisations (460220).

[TFS1825] Instrumentation de la trace dans SynchroService avec l’ajout de la nouvelle TraceSource
Isotools.SynchroService.
SORTIE DERNIERE BUILD X8 V3.0 (KERNEL ID 460225) : 06/12/2013 – RÉF. DOC. : 13BUIX8460225RN01
NOUVEAUTES ET EVOLUTIONS ISOTOOLS STUDIO X8 V3.0
PAGE 7
Corrections

[TFS1347] Correction de la perte du séparateur lorsqu'on utilise une virgule sur un itl:input de type
iso:decimal (460216).

[TFS1507] Correction de l’erreur en backoffice OCS lorsqu’on utilise
odf:referencesField et que plus de 10 références sont sélectionnées (460216).

[TFS1509] Correction du problème sur un use-distinct avec des ascendingBy / descendingBy depuis
la disponibilité du passage de collection en paramètre (460216).

[TFS1548] Correction du dysfonctionnement de l’itl:mailAttachment (460216).

[TFS1656] Correction du problème de génération de la clause OrderBy si l’ascendingBy n’est pas
porté directement par la collection principale mais par une collection avant association (460216).

[TFS1681] Utilisation de variables globales pour pallier au dysfonctionnement de functionExists avec
les fonctions ajax (460218).

[TFS1758] Les collections passée en paramètre perdent les tri nécessaires aux itl:group.

[TFS1800] Rétablissement du tri dans itl:option (460219).

[TFS1743] Correction de l’erreur dans le backoffice boutique lors de l'activation des traces (460218).

[TFS1774] Correction de l’erreur de typage ITL suite au rechargement
ITLLibrary 2.7.2).

[TFS1811] Clause orderBy mal générée dans le cas d'itl:group sur un critère statique (460220).

[TFS1815] itl:mailAttachment ne fonctionne pas si on lui passe directement une collection en
paramètre.

[TFS1816] Inclure un itl:mailAttachment dans un itl:for-each ne fonctionne pas.

[TFS1840] Correction du problème de destinataire en copie (itl:mailRecipient) sur itl:mail (460220).

[TFS1781] Duplication de la fonction context.codes.usr.registerClassFactory dans les fichiers
method.js et anonymousIdent.js afin que le chargement de ces fichiers Studio script se fasse dans
le bon ordre (460220).

[TFS1864] Ajout de la référence à adodb.dll dans ItlLibrary (460220).
le
composant
du périmètre (460218 –
>> Version X8 3.0 build 14 (Release)
SORTIE DERNIERE BUILD X8 V3.0 (KERNEL ID 460225) : 06/12/2013 – RÉF. DOC. : 13BUIX8460225RN01
NOUVEAUTES ET EVOLUTIONS ISOTOOLS STUDIO X8 V3.0
PAGE 8
ITL Library 2.6.5 – Kernel ID 460214- Sortie le 07/11/2012
Attention !
Les noms des extensions produits s’enrichissent désormais des 4 premiers chiffres du kernel ID de la version
avec laquelle elles sont compatibles (le numéro de build n’est donc pas concerné). Le gestionnaire
d’extensions permet l’installation des anciennes versions mais des risques de dysfonctionnement sont
toutefois possibles.
Nous vous conseillons de vous rapprocher de votre revendeur pour en valider le bon fonctionnement.
Passage de collection d’objets en paramètre
Il est maintenant possible de passer des collections d'objets ITL en paramètre. Pour déclarer un paramètre
de type collection, il convient d'écrire :
<itl:page-param name="products" type="collection:gshp:product"/>
Le paramètre peut alors être consommé comme n'importe quelle collection et on peut, en particulier,
l'utiliser dans un énumérateur. Cela permet de pouvoir modulariser entre différentes pages origines. Elles
produiront une collection d'un même type qui sera passée en paramètre à une page assurant le rendu de
ces collections. La page finale pourra donc consommer, dans le même énumérateur, des collections de
même type mais d'origine très diverses.
Il est important de bien comprendre la manière utilisée pour implémenter cet usage. Tout énumérateur ITL
utilise maintenant non pas une requête SQL mais deux requêtes :

La première requête détermine la collection énumérée avec ses critères de tri. Elle est produite
exclusivement avec le select de l'élément <itl:for-each>.

La deuxième requête détermine l'extraction de donnée consommée par l'énumération. Elle est
produite sans utiliser le select du <ilt:for-each> mais utilise toutes les consommations de données
faites à partir des expressions ITL dérivées de la variable de l'itération.
Le runtime ITL va donc fusionner ces deux requêtes. La requête d'énumération est utilisée comme base de
la requête produite dans laquelle est injectée, par une jointure interne, la requête exprimant la collection à
afficher.
Logiquement, une collection passée en paramètre revient à passer une requête SQL exprimant cette
collection.
Pour des raisons de sécurité et de taille, la requête SQL n'est pas passée directement en tant que
paramètre HTTP. On utilise la classe de session ITL de nom iso:sessionData pour faire persister la collection
de manière linéarisée dans une propriété mémo de cette classe.
SORTIE DERNIERE BUILD X8 V3.0 (KERNEL ID 460225) : 06/12/2013 – RÉF. DOC. : 13BUIX8460225RN01
NOUVEAUTES ET EVOLUTIONS ISOTOOLS STUDIO X8 V3.0
PAGE 9
L'oid (privé pour la session utilisateur) de l'objet ITL de type iso:sessionData permet de retrouver la collection
initiale lorsque celle-ci sera consommée dans la page. Il est alors utilisé comme paramètre HTTP.
La méthode collection.saveToSession() peut être explicitement appelée pour sauver la collection et
récupérer cet identifiant.
La classe de session ITL iso:sessionData est automatiquement nettoyée à la fin de la session de l'utilisateur.
L'opérateur de choix ?: supporte maintenant le type collection.
Attention ! Rupture de compatibilité :
La sémantique de la propriété « sort » de l’élément ITL <sds:column> a légèrement changée. Cet attribut
contient normalement une expression ITL dans laquelle on définit le critère de tri lié à l’énumérateur.
Il existe deux manières de spécifier le tri par rapport à un champ :
1.
La manière explicite en précisant le nom de l’énumérateur : product.label
2.
La manière implicite en ne le précisant pas : label
Si le nom de l’énumérateur porte le nom d’un champ qu’on veut trier, la forme raccourci qui fonctionnait dans la
version précédente ne fonctionnera plus à cause de l’ambiguïté entre le nom de l’énumérateur et le nom du
champ.
Pour éviter ce problème, il convient de renommer l’énumérateur.
Imagerie produit
Révision des icônes et splash de démarrage de l’application.
Intégration de Jquery et kendoUI
Un élément ressource javascript peut désormais indiquer qu'il nécessite jQuery, jQueryTools, knockout ou
kendoUI. Ceci via les éléments Utilisation de jQuery, Utilisation de jQueryTools, Utilisation de Knowkout,
Utilisation de kendoUI. Cela induit l'insertion d'une balise <script> faisant référence au fichier jquery.min.js
(pour jQuery), jquery.tools.min.js (pour jQueryTools), knockout-min.js (pour knockout) et kendo.all.min.js
(pour kendoUI).
Dans le cas de kendoUI, les feuilles de style CSS kendo.common.min.css, kendo.[theme].min.css,
kendo.dataviz.min.css et kendo.mobile.all.min.css sont aussi référencées dans la page via une balise <link>.
La notion de theme de kendoUI est configurable via le décor en définissant une surcharge de
Configuration de kendoUI.
Par défaut, les URL de bases font références aux CDN :

jQuery :
SORTIE DERNIERE BUILD X8 V3.0 (KERNEL ID 460225) : 06/12/2013 – RÉF. DOC. : 13BUIX8460225RN01
NOUVEAUTES ET EVOLUTIONS ISOTOOLS STUDIO X8 V3.0



o
http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/
o
https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/
PAGE 10
jQueryTools:
o
http://cdn.jquerytools.org/1.2.7/all/
o
https://cdn.jquerytools.org/1.2.7/all/
knockout:
o
http://cdnjs.cloudflare.com/ajax/libs/knockout/2.1.0/
o
https://cdnjs.cloudflare.com/ajax/libs/knockout/2.1.0/
kendoUI:
o
http://cdn.kendostatic.com/2012.1.515/
o
https://da7xgjtj801h2.cloudfront.net/2012.1.515/
En visualisation, le système utilise une version embarquée des framework (cela permet le fonctionnement
en mode déconnecté).
Pour l'utilisateur (configurateur, chef de projet) d’Isotools Studio X8 :
Dans un contexte où les CDN par défaut ne sont pas disponibles par les utilisateurs du site (cas d'un intranet
dans un contexte très limitatif), on peut indiquer d'autres URL de base via l'élément Configuration des
framework externes dans l'écosystème technologique.
En outre, le nouvel élément <itl:ko-block data-bind="foreach : items">...</itl:ko-block> permet d'entourer un
contenu par deux commentaires à l'usage de knockout JS. Ceci permet d'utiliser le contrôle de flot
knockout (foreach, if, with) en utilisant des commentaires XHTML. Cela évite d'avoir à utiliser du markup
XHTML pour porter le binding, ce qui n'est pas toujours possible.
Nouveau système de langue et gestion du repli
API d’accès au repli des langues
Avec la nouvelle gestion des langues, une API permet d’accéder à l'information de repli des langues :

Dans le runtime C# : fonction statique
IsoGlobalizationManager.getFallbackForLang(string langId) qui renvoie l'information sous forme de
chaine.

Dans le runtime js : fonction dans isoRuntime.js
getFallbackForLang(langId) qui renvoie l'information sous forme de chaine.
SORTIE DERNIERE BUILD X8 V3.0 (KERNEL ID 460225) : 06/12/2013 – RÉF. DOC. : 13BUIX8460225RN01
NOUVEAUTES ET EVOLUTIONS ISOTOOLS STUDIO X8 V3.0
PAGE 11
Fonction itl:locale
Le compilateur ITL a été modifié pour tenir compte de la nouvelle sémantique de repli des langues.
Pour mémoire, le repli de langues au niveau de la base de données se faisait en prenant d'abord la valeur
de la variable localisée dans la langue courante et à défaut la valeur de la variable dans la première
langue du site.
Dans cette release, nous disposons maintenant du contrôle explicite des replis des langues.
Ce repli est paramétrable dans la vue Configurer et induit pour chaque langue du site deux cascades de
langues. Une cascade de langue est la liste des langues considérées pour traduire une ressource pour une
langue donnée. Le processus de traduction va considérer successivement toutes les langues de la
cascade pour trouver une valeur non nulle correspondant à la traduction

La première cascade est utilisée pour traduire les ressources linguistiques issues d’Isotools Studio X8.

La seconde cascade indique les variations linguistiques des colonnes utilisées dans la base de
données.
Le compilateur contient actuellement deux méthodes pour gérer cette notion de repli au niveau des
objets ITL :

La méthode obj.locale('fieldName', [alternativeLang]) actuellement retourne la valeur du champ
fieldName de l'objet obj dans la langue courante. A défaut, elle retourne la valeur dans la langue
alternative qui, si elle n'est pas précisée, sera la première langue du site.

La méthode obj.mainLocale('fieldName') retourne la valeur du champ dans la première langue du
site.
La sémantique de la première méthode évolue pour tenir compte de la liste de langue de repli qui n'est
plus. Plutôt que de ne considérer qu'une liste de deux langues, langue courante et langue alternative
(explicite ou première langue du site), nous considérons maintenant toute la cascade de langues
associées à la langue courante. Si le paramètre de langue alternative est fourni, on ajoute cette langue en
deuxième position de la liste.
Nous n'avons rien changé à la sémantique de la méthode mainLocale qui retourne toujours la traduction
dans la langue principale du site. Elle est simplement maintenant considérée comme obsolète.
Elle est principalement utilisée pour spécifier des champs calculés gérant le repli dans des expressions de la
forme (ghsp:product.effectiveLocalizedLabel) :
onlineAddOn.label || label || onlineAddOn.mainLocale('label') || mainLocale('label')
On remarquera au passage que cette expression est différente de :
onlineAddOn.locale("label") || locale("label")
SORTIE DERNIERE BUILD X8 V3.0 (KERNEL ID 460225) : 06/12/2013 – RÉF. DOC. : 13BUIX8460225RN01
NOUVEAUTES ET EVOLUTIONS ISOTOOLS STUDIO X8 V3.0
PAGE 12
dont la valeur équivaut à :
onlineAddOn.label || onlineAddOn.mainLocale('label') || label || mainLocale('label')
C'est pour cette raison que le repli automatique des champs localisés n'existe pas dans ITL.
Pour adapter ces macros de repli au nouveau modèle de repli multi langues, nous avons introduit la
fonction ITL getBestLocale.
getBestLocale(<champ localisé 1>, <champ localisé 2>[, lang])
Les deux premiers paramètres sont des expressions identifiant deux champs localisés.
Le dernier paramètre (lang) est la langue de traduction désirée avec comme défaut la langue courante.
Cette fonction va renvoyer la meilleure traduction issue des deux champs localisés en donnant une priorité
au premier champ.
Pour ce faire, la fonction étudie la cascade de langue pour la base de données et pour chacune des
langues, considère successivement pour chacune des deux expressions l'existence d'une valeur. La
fonction va retourner la première valeur non nulle.
Cette fonction permet donc de gérer à la fois un repli applicatif (tel que la surcharge d'un champ par un
autre) entre deux expressions localisées avec le repli linguistique.
Avec cette fonction, la précédence est donnée d'abord aux langues puis à la surcharge.
Si la cascade de langues est "en" puis "fr", l'appel de :
getBestLocale(obj.a, obj.b)
est équivalente à :
a || b || obj.get("a", "fr") || obj.get("a", "fr")
Ce qui signifie qu'on ne donnera une valeur dans la langue alternative que si aucune valeur n'est trouvée
dans la langue courante.
Cette fonction est maintenant utilisée dans les macros de repli en remplacement de l'appel à la méthode
obsolète mainLocale.
Enfin une nouvelle méthode est ajoutée aux objets et énumérateurs ITL :
obj.translateField('fieldName' [, lang])
Cette méthode traduit le champ localisé fieldName de l'objet dans la langue lang (à défaut la langue
courante) en considérant la cascade de langues de la base de données de cette langue.
SORTIE DERNIERE BUILD X8 V3.0 (KERNEL ID 460225) : 06/12/2013 – RÉF. DOC. : 13BUIX8460225RN01
NOUVEAUTES ET EVOLUTIONS ISOTOOLS STUDIO X8 V3.0
PAGE 13
La fonction ITL getLanguages retourne une liste d'objets de type Language décrivant la langue avec son
nom, son libellé et le booléen isSiteLanguage qui indique si cette langue est la langue courante.
Cette fonction se limite à lister les langues du site.
La nouvelle fonction getDatabaseLanguages retourne la liste des descriptions des langues utilisées par la
base de données. On trouvera parmi elles les langues du site.
Ouvertures liées à SoColissimo
Plusieurs ouvertures liées au développement de la fonction Socolissimo ont été réalisées. Elles permettent
de gérer facilement un autre service de livraison si besoin :

Ajout de l’élément Configuration des services de livraison qui accepte tout élément ayant
l’interface
gshpShippingServiceConfig
dans
sa
définition
(voir
l’élément
soColissimoShippingServiceConfig du module e-shopLaPoste),

L’élément Zone de livraison dispose désormais d’une case à cocher Nécessite un service de
livraison et d’une liste de choix proposant tous les services de livraison définis dans la vue
Configurer,

Le template gshp:showBasketOption a été créé sur la classe gshp:shippingZone. Il redirige selon la
zone choisie (donc selon l’utilisation d’un service de livraison) vers l’appel de l’ancien template
gshp:showBasketOption de gshp :carrier ou vers le template xsl gshp:showBasketCarrierOption du
service de livraison associé à la zone(Voir feuille de style xls dans le module e-shopLaPoste),

Dans le template basketDisplayStep4.xml , appel du template ci-dessous et ajout d’un nouveau
champ caché shippingServiceDescr destiné à être utilisé par le service pour son besoin et passé à
l’étape suivante du processus,

En base, la classe gshp :command possède les 3 nouveaux champs shippingServiceUser,
shippingServiceType et shippingServiceDescr
o
shippingServiceUsed doit contenir le iso:gid de l’élément de configuration utilisé,
o
shippingServiceType doit contenir le nom xml complet de l’élément de configuration
utilisé,
o
shippingServiceDescr doit contenir la chaine de description de la livraison,
o
Il est impératif que la description rappelle le type du service.
Exemple :
Pour SoColissimo, la chaîne est de la forme nom:valeur avec | comme séparateur
SORTIE DERNIERE BUILD X8 V3.0 (KERNEL ID 460225) : 06/12/2013 – RÉF. DOC. : 13BUIX8460225RN01
NOUVEAUTES ET EVOLUTIONS ISOTOOLS STUDIO X8 V3.0
configType:laposte:soColissimoShippingServiceConfig
configGId:
weight:
type:
PAGE 14
modeLabel:
// Type de la configuration et description
// Gid du service de livraison SoColissimo définie dans le Studio
// Poids en gramme de la commande
// Type de livraison (deliveryAtHome,
deliveryAtHomeWithoutSignature, deliveryAtHomeWithAppointment
ou deliveryPoint)
// Mode de livraison (home, homeWithoutSignature,
homeWithAppointment, shop, cityssimo ou postOffice)
// Libellé du mode de livraison
Point de retrait (FACULTATIF)
dlvyPtId:
dlvyPtType:
// Identification SoColissimo du point de retrait
// Type SoColissimo du point de retrait (A2P, CIT, BPR, CDI ou ACP)
Prix
price:
vatPrice:
sPrice:
sVatPrice:
codeERP:
// Prix HT (double)
// Prix TTC (double)
// Prix HT et devise (string)
// Prix TTC et devise (string)
// Code ERP identifiant la livraison
Adresse
addrName:
civilityCode:
civility:
firstName:
lastName:
adr1:
adr2:
adr3:
zip:
city:
countryCode:
country:
// Nom du lieu de livraison (Bureau de poste, magasin, ...)
// Code de la civilité
// Libellé de la civilité
// Prénom
// Nom
// Adresse 1 du lieu de livraison (domicile ou point de retrait)
// Adresse 2
// Adresse 3
// Code postal
// Ville
// Code du pays
// Libellé du pays
Instructions pour la livraison à domicile (FACULTATIF)
doorCode1:
doorCode2:
instructionsCompl:
// Code de la porte 1
// Code de la porte 2
// Instructions complémentaires
Notification (FACULTATIF)
notifEmail:
notifPhone:
// Email de notification
// Téléphone de notification
mode:
Attention ! Il est du ressort du service concerné de modifier en base ces 3 champs de la commande après
validation du mode de livraison. Il en est de même pour l’adresse de livraison.
Pour déclencher une modification de la commande et de l’adresse de livraison, le template
basketProcessorStep5.xml détecte éventuellement l’utilisation d’un service de livraison et appelle alors le
template xsl gshp:updateCommandByShippingService.
Exemple : Avec SoColissimo, le paramètre de page shippingServiceDescr est récupéré dans le template
en question du service dans le but d’être décortiqué par une classe C# et de mettre à jour les champs en
base shippingServiceUser, shippingServiceType et shippingServiceDescr de la commande en cours ainsi
que l’adresse de livraison.
SORTIE DERNIERE BUILD X8 V3.0 (KERNEL ID 460225) : 06/12/2013 – RÉF. DOC. : 13BUIX8460225RN01
NOUVEAUTES ET EVOLUTIONS ISOTOOLS STUDIO X8 V3.0
PAGE 15
Dans les pages Mode de paiement ou Récap de la commande, on rappelait déjà le transporteur utilisé et
le prix du port. Mais dans le cas d’un service de livraison, il peut être important de rajouter certaines
informations importantes.
Pour cela, les templates gshp-paymentItem-showShippingMode.xml et gshp-commandItemshowShippingMode.xml utilisés respectivement dans les pages mentionnées ci-dessus appellent
respectivement
les
templates
xsl
gshp:showPaymentItemShippingMode
et
gshp:showCommandItemShippingMode pour afficher les infos de livraison.
Exemple : Avec SoColissimo, on effectue un rendu classique « Icône, libellé du transporteur et prix » mais en
plus, un objet C# charge la description contenue dans le champ shippingServiceDescr de la commande
et fournit au template des informations complémentaires (mode de livraison, code d’accès, …). (voir
generic-laposte_showSoColissimoCommandItemShippingMode.xml).
Modification de l’authentification boutique suite à refonte Users / XRM (processus
de commande B2C)
Avant de lire ce qui suit, veuillez consulter le document Release_notes_ext_XRMServer_V4.17.pdf associé à
la release 3.0 pour connaitre les évolutions concernant l'authentification et les fonctions de
MembershipUtils.
Suite à la nouvelle gestion de l'authentification, il est impératif de recharger une page du site pour que
l'authentification soit effective et le profil rechargé.
Il est possible de spécifier la page de redirection appelée après l'authentification en initialisant le
paramètre de requête returnURL.
A l'étape 2 du processus de commande B to C, les formulaires permettent de :

s'authentifier (formulaire d'authentification avec cmd à 'login' et step à 2)

créer un nouveau compte Client/Utilisateur (formulaire d'édition avec cmd à 'newClient' et step à
3)

éditer le client déjà loggué (formulaire d'édition avec cmd à 'editClient' et step à 3)
Attention ! Si le template basketDisplayStep2.xml a été surchargé ou si les templates du décor teste le
cmd, il faut bien comprendre que le paramètre cmd du 2e formulaire avait auparavant la valeur
'identification'. Maintenant, il peut désormais avoir la valeur 'newClient' ou 'editClient'.
De plus, si le template basketDisplayStep2.xml avait été surchargé par le décor, il faut aussi rajouter les
paramètres returnURL.
En standard, les formulaires appellent la page Panier et au chargement de celle-ci :

si cmd = 'login', l'authentification est demandée (Cf autoLog)
SORTIE DERNIERE BUILD X8 V3.0 (KERNEL ID 460225) : 06/12/2013 – RÉF. DOC. : 13BUIX8460225RN01
NOUVEAUTES ET EVOLUTIONS ISOTOOLS STUDIO X8 V3.0
PAGE 16

si cmd = 'newClient', la création du compte est effectuée dans le basketProcessorStep3 et
l'authentification demandée ultérieurement (Cf authenticateCreatedUserAccount)

si cmd = 'editClient', la mise à jour du compte est effectuée dans le basketProcessorStep3 suivi du
rendu de l'étape 3
Attention ! Les fonctions autoLog et authenticateCreatedUserAccount de gshp.UserManager appellent la
fonction signIn en précisant que la redirection doit être immédiate (paramètre endResponse à true).
Pour cette raison, l'authentification qui suit la création d'un nouveau compte n'est plus faite dans le
basketProcessor mais entre les templates basketProcessor (PreProcessor, Processor et PostProcessor) et les
template basketDisplay (PreDisplay, Display et PostDisplay) (Cf basket.xml). Le traitement spécifique du
décor est donc exécuté avant la redirection !
L'appel de autoLog reste aussi en début de template basket.xml.
La redirection immédiate effectuée après les 2 authentifications tient compte du paramètre returnURL. Ce
paramètre est initialisé par les 2 formulaires mais dans le cas d'une création de compte, il faut revenir sur la
même page en spécifiant l'oid du client. Pour cette raison, comme l'oid est encore inconnu au moment de
l'envoi du formulaire, on fait un setRequestVar('returnURL', returnUrlParams) juste après la création des
comptes client/utilisateur (basketProcessorStep3.xml).
returnURL est la nouvelle url de redirection avec les paramètres step (3), cmd ('' pour ne pas recréer/éditer
le nouveau compte), client (oid du nouveau compte), canInvoiceElsewhere et canShipElsewhere (valeur
des cases à cocher de nouvelles adresses).
Concernant les paramètres can....Elsewhere, ils sont remis dans l'url de redirection car ils ne sont pas utilisés
par les templates de traitement (contrairement aux champs d'édition) mais par le templates de rendu de
l'étape 3. N'étant pas stockés en base ni utilisés avant la redirection, il est impératif de les renvoyer.
Si le décor a rajouté de nouveaux champs dans le formulaire et en fonction de leur usage (traitement ou
affichage), le décor devra éventuellement faire son propre setRequestVar dans le template surchargé
basketPostProcessor.xml en rajoutant les paramètres d'url manquants.
Evolutions mineures
Application
[TFS750] Ouverture au niveau des fichiers studioScript pour permettre de rajouter une association sur les
classes complémentaires.
ITL

[TFS756] Gestion de l’attribut readonly dans un itl:option.
SORTIE DERNIERE BUILD X8 V3.0 (KERNEL ID 460225) : 06/12/2013 – RÉF. DOC. : 13BUIX8460225RN01
NOUVEAUTES ET EVOLUTIONS ISOTOOLS STUDIO X8 V3.0

PAGE 17
[TFS1282] Nouvel élément <itl:simple-comment content="text éventuellement calculable"/>
permettant de produire un commentaire XHTML donc le contenu est défini par content. Il convient
d'utiliser les {} si le contenu est calculé par une expression ITL.
Synchronisation
[TFS1067] Les méthodes suivantes utilisées par la classe GenericRpcServerDownload de ItlRuntime
(synchronisation remontante) sont devenues statiques :

getSqlExpIfThenElse,

getSqlExpConcat,

getSqlExpConcatNonNullWithSep,

getSqlExpConcatWithSep

protectText
Ainsi que les méthodes suivantes de gshp.Downloader :

getSqlExpRowDiscountAmount,

getSqlExpRowDiscountVatAmount,

getSqlExpTotalPrice

getSqlExpTotalVatPrice
[TFS1291] La ressource omc:objectModelConfig générant le fichier objectModelData.config ne doit
désormais plus être utilisée. Préférée lui la ressource omc:xmlObjectModelConfig qui génèrera alors le
fichier objectModel.xml.
Wizard
[TFS1140] Il est désormais possible dans les assignations d'écran d'assistant de spécifier une expression à
évaluer en la préfixant de "javascript:" (voir dans le module aspx l'écran webServiceProtection, assignation
de httpURLAdmin).
Corrections

[X8-4405] Correction du problème de fermeture de variable dans itl:for.

[X8-4444] Correction de l’erreur 500 apparaissant lorsque l’utilisateur commence sa session via une
page contenue dans un sous-répertoire et non pas à la racine du site.
SORTIE DERNIERE BUILD X8 V3.0 (KERNEL ID 460225) : 06/12/2013 – RÉF. DOC. : 13BUIX8460225RN01
NOUVEAUTES ET EVOLUTIONS ISOTOOLS STUDIO X8 V3.0
PAGE 18

[X8-4574] Suite aux erreurs d’exécution liées à la disparition de setSessionOid, un itl:using a été créé
tel que <itl:using name="sessionContext" select="new SessionContext(session)">

[TFS306] Correction d'un bug faisant qu'un contrôle ajax:reference ou ajax:references ne
fonctionnait pas dans une page construite à partir d'un modèle de page nommé.

[TFS449] Désormais lorsqu'un module projet est spécifié (racine de l'élément "Configuration des
modèles"), celui-ci est bien considéré dans le périmètre du site (les ressources qu'il définies sont
accessibles) sans avoir besoin d'une autre référence explicite.

[TFS524] Correction de l’erreur de parsing par JSON d’une chaîne avec ‘ et ayant subi une syntax
= « jstring ».

[TFS481] Correction du problème de chaînes longues ayant plusieurs caractères ‘’

[TFS676] La fonction Integer(double) utilise maintenant un arrondi par défaut au lieu d'un arrondi
au plus près, pour coller aux standards usuels de conversion de type.
SORTIE DERNIERE BUILD X8 V3.0 (KERNEL ID 460225) : 06/12/2013 – RÉF. DOC. : 13BUIX8460225RN01

Documents pareils