jeudi 24 avril 2014

Partage d'écran Androïd vers PC

Vous avez développé une magnifique application mobile sur votre smartphone ou tablette Androïd et voulez en faire la démonstration à vos collègues ou en clientèle ?
Sans aller jusqu'à fournir le .apk à tout le monde, vous vous dîtes qu'un partage d'écran de votre terminal mobile serait du plus bel effet !
Regardons quelques solutions (le panel n'est pas exhaustif !) pour ce faire :

TeamViewer

Il s'agit d'un logiciel bien de prise de contrôle à distance bien connu désormais. 
Et bien, il est possible de prendre la main de votre terminal Androïd depuis votre PC (je n'ai pas poussé ma curiosité jusqu'à voir si je pouvais en prendre le contrôle depuis un iPad !!  :))

Personnellement (j'ai un Samsung Galaxy S3 sous Androïd 4.3 non rooté), j'ai dû :

Le résultat n'est pas saisissant de fluidité mais reste acceptable pour du rendu peu dynamique (dommage pour vos dernières animations CSS3 ulta-travaillées...)

RM : à noter que vous avez également accès à des fonctionnalités telles que l'affichage du CPU, RAM et espace disque utilisés, désinstallation d'applications sur votre terminal, etc...

AirDroid 

Pour que AirDroid soit en mesure d'afficher l'écran de votre terminal mobile, il faut (malheureusement) que votre terminal soit rooté... et je n'ai donc pu le tester :-(
Pour cela il faut, lancer AirDroid sur votre terminal et vous rendre avec votre PC à l'adresse http://web.airdroid.com (il y a de nombreuses autres façons de pouvoir connecter les 2 systèmes mais celui-ci est le plus simple)

Comme TeamViewer (je dirais même "mieux que TeamViewer"), AirDroid est capable d'accéder à de nombreuses fonctionnalités de votre terminal (contacts, sonneries, ...), d'installer des .apk, etc...

Droid@Screen

Cette méthode est un peu longue à mettre en oeuvre (j'adore l'étape ou il faut cliquer 7 fois sur un champ inactif pour activer le mode développeur !!)

Plus de news prochainement...

Samsung Screen Mirroring

Je pensais pouvoir mettre ceci facilement en application mais la réalité a été tout autre... Mon Windows 7 n'est pas Miracast-compatible contrairement à Windows 8.1. De toute façon, la technologie a semble-t-il quelques soucis de jeunesse à résoudre.


Si vous voulez partager votre expérience, les commentaires vous sont grand ouverts.


samedi 12 avril 2014

Sérialisation ABAP vers JSON

Choisir son sérialiseur ABAP vers JSON

Vous voilà lancés dans un nouveau projet dans lequel le format d'échange sera JSON (JavaScript Object Notation) ? Félicitations !

Nous en avions déjà parlé lors d'un précédent billet. Une des solutions est d'utiliser la brique SAP Gateway qui est capable de produire du JSON mais cette brique supplémentaire est soumise à des coûts de licence, éventuellement des coûts d'infrastructure si vous souhaitez la positionner sur un serveur dédié, etc...

Néanmoins, avoir un tel middleware dans votre paysage constitue un apport essentiel pour peu que vous commenciez à développer des interfaces pour mobiles par exemple !

Restons dans un cadre plus restreint où vous cherchez surtout à fournir un premier flux JSON.
Comment passer de vos données ABAP à ce format JSON ?

Offre de sérialisation ABAP vers JSON

Faisons un petit tour d'horizon de ce qui existe chez SAP et ce qui est proposé par la communauté des développeurs ABAP

SAP
  1. classe  CL_TREX_JSON_SERIALIZER
  2. classe /SDF/CL_E2E_XI_ALERT_JSON_DOC (Note OSS 1743560)
  3. classe /UI2/CL_JSON (nécessite l'UI2 Add-on)  [non testé]
  4. conversion native par le noyau via CALL TRANSFORMATION (7.02 and 7.03/7.31 (Kernelpatch 116))
Opensource
  1. ZJSON  (Assembla ou GitHub qui a l'air plus récent)  [version testée 0.2.0]
  2. json4abap
  3. smartJSON  (oublions celui-là en fait... il s'appuie sur le moteur Javascript du serveur ABAP)
  4. json_util
Noter que les solutions ZJSON et classe /SDF/CL_E2E_XI_ALERT_JSON_DOC sont très proches car l'un a servi à construire l'autre.  ;)

Validité du JSON produit

Tout d'abord, je vous recommande de valider le JSON produit à l'aide d'outils en ligne tel que http://jsonformatter.curiousconcept.com/ (qui liste en plus les erreurs rencontrées) avant d'arrêter votre décision !

On pourrait croire que tous ces sérialiseurs produisent un JSON valide et bien c'est loin d'être le cas.
Les solutions SAP 1) et 2) sont utilisées en interne par SAP et n'ont pas franchement vocation à être utilisés par nous autres développeurs. (autrement dit, pas sûr que le support SAP réponde favorablement à vos récriminations)
Il y a également quelques particularités en ABAP telles que l'absence d'un type primitif booléen ou le format des dates à prendre en compte.

Protocole de test
Toutes les solutions semblent relativement à l'aide avec la récursivité (structure/structure, table/table) donc on s'attardera sur le traitement des différents types ABAP.

Voici la structure de test que nous allons sérialiser :


Résultat du test

SAP
1) la classe CL_TREX_JSON_SERIALIZER ne met pas de quotes autour du nom des attributs et ajoute des espaces autour de valeurs numériques (cf. http://scn.sap.com/community/mobile/blog/2012/09/24/serialize-abap-data-into-json-format)
2) la classe /SDF/CL_E2E_XI_ALERT_JSON_DOC peut laisser des attributs sans valeur (les floats, chaines hexadécimales, ... ne semblent pas traités)

3) non testé
4) sans surprise, cette solution produit un JSON valide dans tous les cas


Opensource
1) idem SAP 2)
2) json4abap ne produit vraiment pas du bon JSON...!
il oublie d'entourer les attributs de quotes (noter qu'il laisse les attributs en majuscules comme il est d'usage en ABAP - et comme le fait la solution SAP 3) - mais ne pas oublier que JavaScript est sensible à la casse et que l'usage veut que les attributs y soient en minuscules, les majuscules étant plutôt réservées aux constantes), qu'il ne traite pas tous les types (on était prévenu sur la page d'accueil du projet !) et qu'il a implicitement converti le type NUMC en entier (en raison de l'absence de quotes)
3) trop smart à installer... oublions-le !
4) json_util ne se débrouille pas si mal. Certes, il a converti en entier le NUMC mais au moins il produit un JSON valide



Conclusion

Malgré une offre prolifique, compte-tenu des résultats de validité, le choix est assez restreint. Mon top 3 serait le suivant :
  1. conversion native par le noyau via CALL TRANSFORMATION
  2. ZJSON / classe /SDF/CL_E2E_XI_ALERT_JSON_DOC (en faisant attention au format float, etc...)
  3. json_util

jeudi 24 octobre 2013

AngularJS : le framework architectural Web de Google

Si vous n'avez pas vécu coupé du monde (donc sans Internet...) ces derniers mois, vous avez certainement entendu parler d'AngularJS.


J'avais déjà évoqué ce framework architectural lors de mon dernier billet sur BRF+.

Pas grand-chose à voir avec SAP me direz-vous ? Oui et non : oui car AngularJS est une solution Open source largement développée par Google; non car votre serveur d'application NetWeaver est capable de servir aussi bien des données à une application SAP qu'à une application non-SAP !  :)
Ainsi, avec les nouvelles fonctionnalités de NW 7.02 (version qui commence même à dater maintenant), vous pouvez facilement passer d'un format ABAP à un format JSON et réciproquement ce qui rend les échanges avec notre application AngularJS particulièrement aisés.

Pour cette entrée en matière, je vous propose simplement de voir un petit "sélecteur localisateur" (largement inspiré de http://tympanus.net/Tutorials/Cust"omDropDownListStyling/index3.html) conçu par votre serviteur.

Cet exemple vous est servi par le service en ligne Plunker (concurrent de JSFiddle) mais qui a le bon goût d'être largement écrit... en AngularJS !  ;)

Merci de répondre positivement à la demande de votre navigateur concernant votre géolocalisation pour profiter pleinement de l'exemple.




A bientôt !

mardi 1 octobre 2013

BRF+ : le moteur de règles métier de SAP

Dans le cadre de ma mission actuelle, la solution BRF+ (Business Rules Framework) a fait son chemin lors de la mise en place d'un menu pour des services ESS (Employee Self-Service) développés en spécifique (AngularJS au-dessus d'un SAP HCM) pour un grand groupe cosmétique. (NDLR : principe similaire aux classes proxy qui existaient pour la solution standard mais en BRF+ cette fois)

Plusieurs avantages pour ce moteur de règles métiers apparu avec l'Enhancement Package 1 pour SAP NetWeaver (SAP NW 7.01) :
  • une lisibilité des règles par tous
  • une maintenance possible par une population pas forcément rompu au langage de développement ABAP (il faut quand même être très à l'aise avec l'outil informatique !)
  • une performance correcte (surtout en NW 7.02+ a priori) du fait que le code est généré en ABAP Objects
Petite mise en garde : la modélisation sous BRF+ est néanmoins plus longue que pour du code ABAP, il ne faut la réserver aux seules règles d'évoluer fréquemment. Vous savez celles pour lesquelles on vient vous voir au moins 1 fois par mois en vous demandant "Quelle est la règle ?"

Si la table de décision répondra à 80% des besoins,
Source : SCN (par le grand guru de BRF+ : Carsten Ziegler)

il y a pléthore d'expressions pour arriver à modéliser les règles les plus complexes auxquelles votre MOA aura pu penser...  :)
  • arbre de décision
  • détermination dynamique de l'expression à appeler
  • lecture d'une table ABAP
  • module fonction ABAP / méthode de classe ABAP
  • ...

Un aspect déroutant au début : les Data Objects sont plus que des simples types (comme pourraient l'être des objets du DDIC) mais de véritables variables d'où un mapping nécessaire lors de l'appel d'une fonction BRF+ par exemple.
Enfin, BRF+ dispose d'une API très complète de manipulation de ses propres objets ce qui peut être bien utile quand tout a été correctement référencé dans de beaux fichiers Excel.  :D





vendredi 16 août 2013

JSON et ABAP

SAP a fait évoluer le noyau ABAP pour prendre en compte des fonctionnalités JSON.
Ce qui suit est disponible à partir de la version 7.02 (il s’agit d’un backport de la 7.40 vers la 7.31 et la 7.02)
Voir le blog d’un des gourous, Horst Keller, sur le sujet (ainsi que les commentaires qui sont tout aussi instructifs sinon plus !) :
http://scn.sap.com/community/abap/blog/2013/01/07/abap-and-json
J’ai relevé 2 apports intéressants :
  • une conversion ABAP <-> JSON prise en charge par le Kernel (on peut en espérer une performance bien meilleure, à vérifier…)
  • une visualisation dédiée des variables JSON dans le débugger

Un petit aperçu du dernier point
Source : SDN
Il existe des bibliothèques JSON si vous n'êtes pas encore dans cette version.
Attention au sérialiseur estampillé TREX (classe CL_TREX_JSON_SERIALIZER) qui ne produit pas un JSON valide.

Je vous recommande :
http://wiki.sdn.sap.com/wiki/display/Snippets/JSON+and+ABAP
https://code.google.com/p/zjson/

dimanche 27 janvier 2013

URL d'une image du MIME et NWBC for HTML

NWBC for HTML

Rappelez-vous, le NetWeaver Business Client est un nouveau client pour les écrans SAP Gui, Web Dynpro, etc... Naturellement, SAP a laissé une (toute petite) latitude pour personnaliser l'interface utilisateur à l'aide d'une image. (cf. capture ci-dessous dans la partie inférieur du bandeau latéral gauche)


MIME Repository

C'est où sont stockés les fichiers tels que les images, feuilles de style, Javascript... qui ont vocation a être utilisés sur le Web (dans les BSP, Web Dynpro, Web Templates BI, etc...). Il arrive même qu'on y stocke des fichiers (aide en ligne par exemple) au format PDF ou encore des .doc et .xls, bref ne nous limitons pas ! :)
Pour accéder à ces documents directement, ce n'est pas évident (non pas que ce soit impossible en standard comme on le verra). Et surtout, que de circonvolutions nécessaires alors que le chemin "naturel" est tout trouvé : celui du MIME !

Source : Help SAP

Configuration de NWBC

Une table de configuration est mise à disposition : NWBC_CFG (anciennement, on utilisait plutôt NWBC_CONFIG). Cette table contient des paramètres d'affichage dont vous trouverez la liste à cette adresse :


Le paramètre qui nous intéresse est BRANDING_IMAGE que l'on va associer à une URL de notre crû pointant vers un service ICF maison. Notez comment l'URL paramétrée (http://<serveur>:<port>/sap/zmime/SAP/PUBLIC/<votre fichier>) contient le nom du service suivi du chemin vers le fichier du logo stocké dans le MIME Repository.

Service ICF

Basiquement, c'est derrière ce service que se passe tous les traitements des requêtes HTTP(S).
Nous en créons donc un nouveau avec un gestionnaire de service sous la forme d'une classe ABAP OO et y implémentons l'interface IF_HTTP_EXTENSION.
Le coeur de la solution repose sur l'appel au module fonction standard 'SDOK_GET_PHIO_ACCESS' qui retourne le contenu du fichier du MIME Repository. Il ne nous restera plus qu'à renvoyer ce contenu dans la réponse HTTP.

Voici le code complet de classe (bien entendu, si un membre de votre équipe ou vous-même étiez amenés à l'utiliser en Production, nous nierons avoir eu connaissance de vos agissements...). Il faut créer une classe ZCL_HTTP_MIME en implémentant l'interface IF_HTTP_HANDLER.


Pour ceux qui ont tout suivi et qui se demande comment faire pour appeler cette même image de façon standard, sans une lilgne de spécifique, le fameux module fonction renvoie également une URL d'appel mais de la forme :
http://:/sap/bc/contentserver/?get&pVersion=0045&contRep=MIME&docId=F2E0E661BCA5F1ED291A78156D38AD2022E0E661BCA5F1ED291A78156D3BF5202&compId=



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

dimanche 23 octobre 2011

Génération de données de tests

Les tests sont un passage impératif du processus de développement. Ils garantissent la qualité du produit livré au client.

Dans nos environnements de développements, il arrive parfois que nous manquions de données de test.
Or, il existe de petits outils comme generatedata.com (et beta.generatedata.com) qui permettent facilement de générer des jeux de données volumineux en quelques secondes. (une limitation de 200 enregistrements est imposée si on se s'enregistre pas)
Que ce soit pour votre application SAP (pour contrôler une saisie de donnée par exemple) ou pour alimenter une base de données SQL quelconque, cet outil est d'une aide précieuse.


Les formats d'export proposés sont : HTML, Excel, XML, CSV, SQL

Certes, la configuration du résultat reste assez sommaire mais en tant que première étape de construction de votre jeu de test, il fait merveille.

Bons tests !

vendredi 26 août 2011

New Normal dans le monde SAP ?

Cela fait quelque temps que l'on m'avait recommandé cette vidéo "New Normal" par Peter Hinssen qui traite de l'évolution des métiers de l'IT et des rapports avec nos clients du métier et je la revois aujourd'hui avec autant de plaisir et d'intérêt.  :)


Source : http://www.viddler.com/player/bb1a3da7/0/

Que serait le "New Normal" dans le monde SAP : expérience utilisateur (RIA), Mobilité, Hana, Cloud-Computing ?

Nous n'y sommes pas encore car l'inertie des systèmes d'information (en particulier des ERP tels que celui de SAP) est énorme. Aussi, comme le fait remarquer Peter Hinssen dans sa présentation : "Work = period during the day where we have to use old technology".
Mais petit à petit, nous allons voir arriver ces nouvelles applications mobiles d'entreprise que tout le monde prédit !

RM : le lecteur vidéo est en Flex de ma conception !  :)  (ceux qui connaissant le spark VideoPlayer savent que cela ne demandent pas un effort surhumain)

samedi 26 mars 2011

Anecdote germanique

Petite histoire de clavier.

Tous les consultants, développeurs et (souvent) utilisateurs de SAP ERP et R/3 connaissent la combinaison CTRL+Y qui permet de sélectionner une zone de texte sur un écran SAP Gui (dans un spool, un ALV, un dynpro, ...)

Sans doute aurez-vous noté que le CTRL+Y n'est pas vraiment une combinaison "évidente" sur nos claviers ?
Quelle idée ont encore eu nos voisins allemands de Walldorf, car on connaît les incontournables combinaisons suivantes :
  • CTRL+X : Couper
  • CTRL+C : Copier
  • CTRL+V : Coller

CTRL+Y : c'est quasiment le claquage assuré de l'index gauche !!

Source : http://en.wikipedia.org/wiki/Keyboard_layout#Germany_and_Austria_.28but_not_Switzerland.29

 Et là, ne comprend-on pas un poil mieux ?!   ;-)

jeudi 30 décembre 2010

Projet ABAP AMF

Tout d'abord, bonne fêtes de fin d'année à vous tous !!
Je vous souhaite tout le meilleur pour 2011.

AMF, qu'est-ce c'est ?

C'est l'acronyme de Action Message Format, un format binaire utilisé par le Flash Player pour échanger des données. La technique appelée Remoting permet d'échanger ces données entre le Flash Player côté client et le serveur. Si Adobe fournit des implémentations (BlazeDS, LiveCycle Data Services) pour le monde Java, des projets ont vu le jour pour permettre aux autres technos (.Net, PHP, ...) de bénéficier également de ce mode de communication très performant (cf. comparatif de James Ward ci-dessous)


Le test en ligne est disponible à cette adresse : http://www.jamesward.com/census/

Le Projet ABAP AMF



Voilà quelques semaines que j'ai lancé le projet ABAP AMF sur CodeExchange dont le but est de fournir un moyen efficace d'appeler des BAPI / modules fonctions RFC depuis un applicatif Flex ou AIR :

  • sans avoir à faire de Web Service côté ABAP
  • en ayant des performances optimales (pas de conversion entrante et sortante vers XML, dialogues moins "verbeux" car binaire pour l'AMF)

Ce projet n'en est encore qu'à ses balbutiements mais j'ai espoir qu'il permette rapidement d'utiliser quelques BAPI simples dès que les conversions des types simples (String, Integer, Date) seront opérationnelles.

A très bientôt !

lundi 1 novembre 2010

Compilation d'annonces du SAP TechEd 2010

Même si je ne fais malheureusement pas partie de ces heureux, de nombreux professionnels du monde SAP se sont réunis à l'occasion du SAP TechEd 2010 à Las Vegas.

Parmi les grandes annonces : l'émergence du In-Memory et du HANA (High-performance Analytics Appliance). Mais je vous propose de laisser ceci de côté tant la perspective de voir ça chez nos clients est disons... lointaine.

Par contre, je vous invite à vous pencher sur quelques unes des révélations que certains SAP Mentors ont pu consigner dans leurs billets (références à la fin de ce billet) telles que :

Arrêt du développement de Web Dynpro Java

Naturellement, WDJ va continuer à exister dans le monde SAP pour encore quelques belles années (9 ans à la date de rédaction de cet article) mais la fin des évolutions de cette technologie est annoncée pour NetWeaver 7.3. On l'avait doucement senti venir avec une compétition avec Web Dynpro ABAP qui tournait ces derniers temps franchement à l'avantage de ce dernier (POWL, Floor Plan Manager, ...)
-> pour ceux qui veulent revoir un comparatif, voir la fin de ce document "FAQ WDJ vs WDA" et celui-ci ""SAP NetWeaver UI Infrastructure"

A n'en pas douter, l'abandon de WDJ se fera au profit de technologies Java plus "ouvertes" (JSF, HTML5...).
Enfin, avec le rachat de Sun par Oracle, doit-on craindre une certaine défiance de SAP vis-à-vis des technologies Java... ?

Arrêt du développement de Visual Composer

Ceci est beaucoup plus étonnant pour ceux qui ont suivi les grands changements opérés sur Visual Composer encore très récemment (intégration de VC dans NWDS, avec BPM). Mais d'après SAP, VC aura atteint une maturité à l'issue de NetWeaver 7.3.
Rappelons que VC n'a pas d'équivalent : aucun autre outil dans le monde SAP ne permet de créer des applications composites aussi vite (et aussi bien). Ce serait dommage de ne pas lui voir un remplaçant dans le long terme.

Ceux qui étaient là à cette époque (bon ok, ça date de 4-5 ans !) se souviendront sûrement de Guided Procedures qui avait connu un revirement pour le moins rapide aussi !!

Déclin de l'AS Java pour une utilisation SAP pure

Pour ceux (comme moi) qui évoluent dans le monde HCM et donc dans l'ESS/MSS, cela est d'autant plus vrai. En effet, avec le transfert progressif de la technologie WDJ vers WDA pour ce Business Package, il devient de moins en moins utile de monter une stack Java.
A l'horizon ERP 6.0 Enhancement Package 5, l'ensemble des services ESS/MSS aura été migré sur WDA. Mais le Portail me direz-vous ?! Et bien, je ne serai pas surpris que l'on dispose d'une interface WDA pour le remplacer...

Mise à jour 18-Jan-2011 : et non, ce sera NetWeaver Business Client qui remplacera (avnatageusement ?) le Portail !

Duet Enterprise : le nouveau challenger ?

Concernant celui-ci, j'ai un petit doute où alors il va sérieusement falloir réviser l'architecture car c'est un vrai cauchemar à administrer aujourd'hui.

Cap sur la mobilité !

Avec le rachat de Sybase et la tendance du marché, les applications mobiles sont à la fête. Le combat risque de faire rage sur ce secteur très convoité et quasiment vierge encore aujourd'hui. A quand votre application de saisie de congés directement sur votre mobile ?

Un recentrage de NetWeaver BI sur la stack ABAP

Quand on connait les efforts consentis par certains clients lors du passage à NetWeaver 7.0 côté BI, cela pourrait faire des remous...


Quelques billets (en anglais) sur ce SAP TechEd :

  1. NetWeaver is dead. Long Live NetWeaver!
  2. Kiss of Death for Web Dynpro Java – The Follow-Up Questions
  3. Video Blog: The Future of SAP Java UIs - Breaking News and Customer Dialogue from SAP TechEd Las Vegas
  4. Impressions from SAP TechEd 2010 Las Vegas
  5. Fear and Loathing.....at SAP TechEd 2010?
  6. The death of Web Dypro Java has been greatly exaggerated...
  7. Additional Feedback on the Recent Message Pertaining to the Future Focus of Web Dynpro Java and Visual Composer

samedi 25 septembre 2010

Détendez-vous avec CashMachine !

Mise à jour (08-Janvier-2012) : CashMachine est passé sous OpenFeint et AGON Online a fermé le 30 Juin 2011 donc le badge ne fonctionnera plus... mais les enseignements tirés restent valables !!

Une fois n'est pas coutume, laissons SAP de côté et regardons une application - CashMachine - qui se décline en Flash et sur iPhone (avec une conversion du Flash en application iPhone via le Packager for iPhone d'Adobe ??)
Il ne s'agit d'une application toute récente mais on me l'a fait découvrir la semaine dernière.  ;-)

CashMachine

Les scores sont disponibles sur AGON Online.


Le petit badge que vous voyez ci-dessous est loin d'être anodin car il a fallu :

  1. attaquer l'API REST de la plateforme AGON (chaque application dispose de son propre ID application_id avec des catégories de score leaderboard_id différents par jeu)
  2. effectuer un appel JSON depuis l'application Flex
  3. encapsuler l'appel JSON dans un appel YQL pour pouvoir contourner les restrictions liées au crossdomain.xml
  4. contourner 2 bugs (sur encodeURI avec HTTPService et sur YQL qui renvoie une chaîne JSON bien étrange lorsque le JSON initial est complexe)
Un outil bien utile pour analyser le flux JSON : http://json.parser.online.fr/

Mais au final, vous avez un badge qui se met à jour automatiquement au chargement de ce billet !  :)
Vous pouvez faire de même sur votre site puisqu'il suffit de changer le paramètre FlashVars.
Pour ceux qui voudrait récupérer le projet Flex 3...

Le principe est à mi-chemin entre un Tetris et un Bejeweled (pour l'aspect graphique surtout) et consiste à aligner au moins 3 objets de nature identique pour les voir se transmuter en un objet de niveau immédiatement supérieur. Le jeu se complique donc au fur et à mesure car la variété des objets augmente progressivement.


Pour les possesseurs d'iPod Touch, d'iPhone et d'iPad, il existe une version gratuite (avec un bandeau publicitaire) et une version payante.

A noter l'intégration avec la plateforme Agon pour partager vos scores avec vos amis.



Voilà, bonne détente !

Ah une dernière chose, si comme moi vous trouvez étrange que le score diminue par moment, c'est normal ! Le jeu ne comptabilise pas la façon dont vous progressez (vous faîtes des combos par dizaine) mais seulement la valeur des objets à chaque instant. Ainsi chacun peut jouer de la manière qu'il préfère. Et puis, si vous faîtes des combos, dîtes-vous que vous avez plus de place pour mettre des objets de plus grande valeur pour la suite...   8oD

Mise à jour (26-Mars-2011) : suite à une modification du flux JSON par AGON, j'ai dû recompiler le Flex

PS : je ne suis nullement affilié avec les créateurs de ce jeu. Il ne s'agit pas d'un billet rémunéré !!  ;-)

samedi 14 août 2010

Google arrête le développement de Google Wave

J'ai été surpris (sinon choqué) d'apprendre l'arrêt du développement de Google Wave à propos duquel vous avez pu lire plusieurs billets au sein de ce blog.

Manque d'engouement de la part du public (sûrement mais pour certains professionnels un enthousiasme réel) ?
Défaut d'explication et de promotion du produit ?
Trop innovant ?
...

Google nous promet de réutiliser des parties de la technologie Wave dans d'autres produits (Gmail et GTalk en premier lieu, le futur produit concurrent de Facebook "Google Me" ?), l'avenir nous dira quel sera le niveau de ce "sauvetage".

Pour ceux qui voudraient participer à une ultime tentative, vous pouvez signer la cyber-pétition à l'adresse : http://www.savegooglewave.com/

So long Wave...  :-(


Mise à jour 7-Septembre-2010

Le projet Wave In A Box redonne une nouvelle vie à Google Wave dans l'Open Source.
Reste à voir si la communauté saura réussir là où Google a échoué...

http://www.numerama.com/magazine/16668-google-wave-fait-son-retour-dans-le-projet-wave-in-a-box.html

Notons que dans la communication de Google, on voit que l'entreprise met en avant l'intéropérabilité que certains avaient réalisée avec la solution SAP StreamWork   ;-)
http://googlewavedev.blogspot.com/2010/06/wave-federation-keeps-growing-rich-text.html

samedi 3 juillet 2010

Où sont les SAP Management Console et Visual Administrator ?

Il arrive parfois (souvent) que sur la machine qui nous (prestataires) est confiée en clientèle, nous n'ayons pas le logiciel qu'il faut.
C'est toujours quand on s'aperçoit qu'on a besoin d'eux que le Visual Administrator, le SAP Management Console nous font défaut...

SAP Management Console

Heureusement, une applet Java est disponible pour le SAP Enterprise Portal à l'URL :
<protocol>:<server>:5xx13  où xx désigne le system ID

Par exemple: si vous vous connectez sur votre Portail à l'adresse http://portal.company.com:50000/irj/portal, alors vous trouverez la SAP Management Console à l'adresse http://portal.company.com:50013

Visual Administrator

Pour ce qui est du Visual Administrator, il faut de toute façon être Administrator pour pouvoir se loguer sur le serveur J2EE, mais il faut également lancer le soft : c'est souvent compliqué de le faire directement sur le serveur (Infogérance, ...)
L'une de mes méthodes préférées, mais qui ne fonctionne qu'avec une Dual Stack (ABAP et J2EE), c'est de copier le ficher .sda à l'aide de la transaction CG3Y (ou est-ce CG3Z) ou du module fonction 'ARHCHIVFILE_SERVER_TO_CLIENT'



Après récupération du fichier, on le décompresse (c'est un ZIP en réalité), et on lance Visual Administrator sur son poste. Enfin, on se connecte à distance sur le serveur J2EE.

mercredi 16 juin 2010

Coupe du monde de Football, SAP et RIA

Personne n'est à l'abri de la coupe du monde de Football en Afrique du Sud.
Je vous épargnerai la bande-son reposant sur les vuvuzelas...   ;-)

N'étant pas un grand amateur de foot, je me contenterai de parler de technos :

http://explorer.sap.com/html/Pages/index.htm  pour consulter les statistiques de foot

foot_sap

User : SoccerFan
Mot de passe : le laisser vide

Un superbe calendrier de foot en Flash !
http://www.marca.com/deporte/futbol/mundial/sudafrica-2010/calendario-english.html

foot_flash

Bon Foot !  ;)


Update (23 Juin 2010) : encore plus de contenu Flash autour de la Coupe du Monde dans ce billet (en anglais) de Serge Jespers
http://www.webkitchen.be/2010/06/23/world-cup-visualizations-powered-by-flash/

jeudi 20 mai 2010

StreamWork vs Google Wave ?

Google Wave a 1 an !

Vous avez pu lire de nombreux billets sur Google Wave il y a quelque temps maintenant mais Google Wave a peu fait parler de lui depuis qu'il a été dévoilé il y a 1 an lors de l'événement Google I/O.

Pour la suite, souvenez-vous que Google Wave est à la fois un Produit, un Protocole et une Plateforme.
Cette présentation réalisé à l'aide de l'outil Prezi rappelle les fondamentaux !  :)


SAP StreamWork, le concurrent ?

Et voilà que SAP (et sa "nouvelle" branche Business Objects) sort SAP StreamWork, un outil collaboratif - plutôt orienté aide à la décision là où Google Wave se veut plus général - plutôt bien ficelé mais dont l'intégration avec les solutions SAP existantes ne (me) semblent pas encore très poussée.

Je demande en effet à voir comment SAP StreamWork s'intégre au Portail SAP et ce que va devenir la brique Collaboration du SAP Netweaver Portal.



La complémentarité !

En réalité, en utilisant le protocole de communication de Google Wave, David Meyer de SAP a réussi à démontrer qu'il est possible de jeter un pont entre SAP StreamWork et Google Wave en "unifiant" une Activité (brique de base de SAP StreamWork) et une Wave (le "pendant" côté Google Wave)



Et voilà que 2 produits qu'on opposait finissent par se réunir... :)

Mise à jour (28 Mai 2010) : voir le blog de David Meyer sur SCN.