dimanche 7 octobre 2012

Les travers de la traduction (ou les traductions de travers... ?)

Certes, les utilisateurs de langue française ne sont sans doute pas les plus représentés parmi l'ensemble des utilisateurs de SAP. Les traductions françaises sont régulièrement absentes de notre ERP préféré (au moins chez mes clients, et vous ?). L'anglais et l'allemand sont bien mieux lotis !!

 Par contre, pire qu'une traduction absente (on peut toujours se connecter en anglais), il y a la traduction trompeuse dont voici un éloquent exemple dans le domaine "Gestion des talents" (ou Talent Management pour les anglophones)

Français à gauche, anglais à droite

Que dire de la traduction proposée qui invente des types d'objets (FE, GT) ou renvoie vers des types d'objets différents (PC = Centre de Profit et pas Personne Centrale !!)

samedi 23 juin 2012

Bientôt SAP HANA pour l'ERP

Vous imaginez-vous pouvoir traiter la paie de vos salariés en 6,31 secondes... ? C'est peut-être pour demain avec SAP HANA ("anciennement connu sous" l'acronyme High ANalytics Appliance, un peu comme Prince puisqu'il ne s'agit plus d'un acronyme) ! :)

En effet, SAP a fait l'annonce, par l'intermédiaire de son CTO (Chief Technical Officer) Vishal Sikka (@vsikka),

Photo : source SAP

que SAP HANA sera bientôt disponible pour SAP Business Suite et donc notre ERP préféré. Une petite révolution est donc en marche... est-ce que cela signe (un peu) le déclin de l'ABAP au profit du SQLScript ? En effet, pour exploiter pleinement HANA et son calcul en mémoire, il faudra certainement que SAP réécrive une partie de l'existant ABAP pour le porter sur HANA, le but étant non plus d'optimiser le traitement sur le serveur d'application (comme on le fait souvent en ABAP aujourd'hui) mais sur le SGBD.

Pour la petite histoire, SAP s'est même payé le luxe (pour faire un peu de buzz certainement...) de monter une machine sur le cloud avec pas moins de... 100 To de mémoire (vous avez bien lu !). Tous les clients ne pourront sans doute pas s'offrir une telle machine estimée à 4 millions de dollars, surtout en cette période de crise.

Vous avez déjà une expérience d'HANA ? N'hésitez pas à la partager dans les commentaires.

dimanche 20 mai 2012

Mobile : l'illusion de la solution ubiquitaire

La jungle mobile

Face à la multitude de solutions mobiles, difficile de faire un choix pour le développeur : solutions purement natives (laissant forcement de côté une bonne partie des utilisateurs , ne serait-ce qu'iOS ou Android), HTML5 ou solutions hybrides.

Laissons, un temps, les solutions natives de côté qui - côté ubiquité - sont hors course !

AIR mobile

Il y a quelque chose d'intéressant dans AIR mobile avec ses Native Extensions, c'est qu'on peut forcément atteindre une fonctionnalité native du périphérique mobile quitte à en payer un effort de développement supplémentaire. Et puis, le framework apporte déjà des éléments quasi inaccessibles des solutions orientées Web. Une réutilisation non négligeable de/vers une version Desktop est également possible.

Hélas, 2 fois hélas, Adobe est beaucoup moins actif ces derniers mois sur le créneau AIR mobile :
  • l'accent est mis sur PhoneGap et on ne voit plus grand-chose sortir de chez Adobe
  • pas beaucoup de visibilité du côté de la fondation Apache qui a repris le flambeau de Flex
Il faut dire que l'arrêt du Flash Player pour mobile (trop de hardware, OS et software différents) n'a pas enthousiasmé les développeurs.
Notons néanmoins l'apparition de la 3D (voici une vue virtuelle du Duomo de Florence en 3D) mais pour nos applications d'entreprise, cela a peu de conséquence !

HTML5, PhoneGap

Mais que reste-t-il ?
Et bien, la victoire annoncée d'HTML5 est en train de faire (trop ?) pencher la balance : PhoneGap, Sencha et consorts tiennent le haut du pavé et même SAP noue des accords avec ces acteur.

Une infographie intéressante pour savoir quand utiliser PhoneGap.

SAP propose d'ailleurs son propre framework HTML5 : SAP UI5.
Source : SAP (blog de Rui Nogueira)
Encore une fois, on se heurte à quelques dures réalités :
  • une forte présence de navigateurs anciens en entreprise (IE6 en tête) qui ne supporte pas HTML5 et CSS3 (est-ce que Modernizr, dont l'objectif est de pallier certaines lacunes des navigateurs, change vraiment la donne ?)
  • la disparité de la prise en charge par les nouveaux navigateurs(cf. cainuse.com)
Les développeurs doivent donc adopter une stratégie d'amélioration progressive (Progressive Enhancement dans la langue de Shakespeare) afin d'offrir la meilleure expérience à chacun.

Portal on Device

Une nouvelle solution à destination des utilisateurs du Portail SAP.
Attention ! Ce n'est pas parce que vous pouvez accéder au Portail que les applications qui y sont hébergées fonctionneront sur votre terminal.

Extrait de la note OSS 1705067
SAP recommends using mobile-adapted applications in the portal on device environment. Non-mobile supported UI technologies (for example, Web Dynpro, Business Server Page (BSP)) may not be rendered correctly or may not be rendered at all on the mobile devices, depending on each UI technology and/or specific implementation. SAP UI technologies currently do not support the mobile Product Availability Matrix (PAM), and therefore are not supported for portal on device.
Solution: Customers should adapt their applications to match the correct form factor, application complexity, and UI technology in order to run correctly on a mobile device. This adaptation usually involves manually recreating the user interaction layer to suit the touch-mobile device characteristics.


Et télechargez Appliness, c'est excellent !

dimanche 8 janvier 2012

AIR mobile et Google Spreadsheet

Scénario classique : vous souhaitez afficher une liste de valeurs ou un tableau sur une application mobile. Cette liste provient d'une base de données qui est mise à jour régulièrement par des administrateurs / gestionnaires.

De prime abord, on est tenté de penser : serveur Web, base de données, interface d'administration, ...
Or, pour des besoins modestes, je vous propose une approche full web qui ne vous coûtera pas un centime !

Ma proposition consiste à simplement gérer votre liste au sein d'une Google Spreadsheet (vous aurez besoin d'un compte Google pour ce faire) et à permettre à votre application AIR mobile d'y accéder.
Attention : à partir du moment où vous publiez votre Google Spreadsheet sur le Web, quiconque dispose de l'URL est capable de la visualiser même si elle est privée !




Malheureusement :

  1.  Google n'autorise pas - via son crossdomain.xml - aux applications Flash d'accéder à ses fichiers
  2. Google interdit à YQL - via son robots.txt - d'attaquer les URLs en http://docs.google.com/spreadsheet/... (ou tout autre url qui nous permettrait d'accéder à nos données)
Aussi, la plupart des solutions qu'on trouve sur le Web consiste donc à monter un petit serveur proxy pour s'affranchir de cette contrainte (qui en crée une nouvelle : la maintenance dudit serveur : qu'il soit physiquement chez vous, chez un hébergeur ou encore dans le cloud Google App Engine, Amazon, ...)
Nous nous contenterons de simplement publier le fichier sur le Web (cf. Etape 1) ce qui lève cette restriction (si quelqu'un a l'explication, je suis preneur !!)

En utilisant YQL (Yahoo! Query Language), on va pouvoir attaquer notre Google Spreadsheet de façon puissante.



J'avoue adorer le fait que Yahoo! vienne un peu à la "rescousse" de Google   :-)

Étape 1 : créer la Google Spreadsheet et la publier (Fichier -> Publier sur le Web) en cochant la publication automatique après modification


Étape 2 : construire la requête YQL. Pour cette partie, je vous conseille fortement la console YQL !


Exemple de requête avec clause WHERE :
select * from csv where url="https://docs.google.com/spreadsheet/pub?key=0ArrC4225dYxmdG9LNFNvVjBPb2ZURGJpWVV6TG9Za0E&output=csv" and columns="personnalite,fonction,photo" and personnalite LIKE "%u%"


Étape 3 : consommer cette requête depuis AIR et exploiter le résultat



Les références vers le projet  Flash Builder et le fichier AIR (pour bureau)
Projet Flash Builder 4.6 : BlogYQL.fxp
Package AIR pour le bureau : BlogYQL.air


Quelques références qui m'ont aider à construire ce billet :
  1. http://www.ravelrumba.com/blog/json-google-spreadsheets/
  2. http://net.tutsplus.com/tutorials/other/how-to-create-a-web-service-in-a-matter-of-minutes/
  3. http://active.tutsplus.com/tutorials/tools-tips/quick-tip-using-google-app-engine-as-a-proxy-server/
PS : Merci à Pierre B. pour son aide sur YQL dans la rédaction de ce billet