Quelquepart

Blog d'un développeur ABAP

Vous êtes ici : Accueil>Application

Application

On connait la musique... vraiment ?

Rédigé par Sébastien Hermann dans Application -

Une fois n'est pas coutume et sortons du thème de ce blog. Je vais vous présenter aujourd'hui deux petits outils d'aide à l'apprentissage du solfège.

Le premier permet de s'entrainer à la lecture de note de manière traditionnelle. Une partition, 5 notes a trouver et un chronomètre qui défile. Sitôt les 5 notes trouvées, 5 autres apparaissent.
A noter : cet outil est orienté piano par l'affichage de la double partition en clé de fa 4 + clé de sol 2.

Le second outil poursuit le même objectif, mais d'une manière plus ludique. Riche en couleurs il est plus orienté vers les enfants que le premier outil, mais pourra néanmoins convenir à toute personne désireuse d'améliorer sa vitesse de lecture. Dans "Solfoid", vous devrez combattre une armée de piranhas.

Entièrement paramétrable, vous pourrez notamment choisir :

  • la clé utilisée : Sol2, Fa3, Fa4 mais aussi les 4 clés de ut
  • la vitesse initiale
  • l'écart maximum entre les notes
  • la plage des notes
  • la notation : les classiques (italienne et anglaise) mais aussi de plus exotiques (allemande, hindi, japonaise)

Pour information, ces 2 outils ont été développés en HTML5 (javascript+canvas) et nécessitent donc un navigateur récent.
Lecture de notes pour piano
Solfoid, apprendre le solfège en s'amusant

ZLISTCUBE : Du nouveau pour visualiser le contenu d'un infoprovider

Rédigé par Sébastien Hermann dans Application -

Si comme moi vous êtes lassé de voir ce popup quand vous essayer d'afficher le contenu d'un cube, voici enfin la solution !

ZLISTCUBE utilise le moteur standard BW pour lire les données, mais modifie complètement la manière de choisir ses filtres et les colonnes affichées :
Fini la limite de 72 champs affichés !
Fini la limite de ne pouvoir afficher que les champs préselectionnés pour filtre !

Avec ZLISTCUBE vous pourrez :

Mais vous pourrez également exporter le résultat d'une requète en fichier. Ce qui vous offre un moyen simplissime de générer des fichiers avec les données de votre systeme BW (interface sortante).

Enfin vous pourrez Charger un cube directement depuis un fichier. Associé à la fonction d'export en fichier, cela vous offre une solution d'archivage / gestion de backup en fichier des plus simple et rapide à mettre en oeuvre.

Vous pouvez utilisez ZLISTCUBE comme un programme spécifique ou bien remplacer le LISTCUBE standard par celui-ci : les instructions sont données dans les commentaires du programme.
A savoir : même si vous remplacez le LISTCUBE standard, celui reste accessible à tout moment via un bouton en haut de l'écran de sélection. Vous n'avez donc aucune régression à craindre dans cette opération.

A noter : n’oubliez pas que vous aurez besoin de SAPLINK pour installer le programme.

ZAL11 : Cure de rajeunissement pour AL11

Rédigé par Sébastien Hermann dans Application -

Le travail sur un datawarehouse nous confronte régulièrement à des injections de fichier. Et sur SAP, nous ne sommes pas gâté niveau outils...
J'entendais souvent mes collègues râler à propos de la transaction AL11, la seule chose dont nous disposons en standard pour naviguer sur le serveur SAP.

J'ai parcouru la toile à la recherche d'une solution de remplacement mais ne fut pas convaincu par ce que j'y ai trouvé, aussi j'ai pris mon courage (et mon clavier) à deux mains afin de réaliser ma propre solution : plus complète, plus lisible et avec l'ergonomie qui me sied (mais je ne crache pas dans leur soupe, j'ai d'ailleurs repris leur manière de déterminer l'icone relatif a chaque type de fichier).

Entièrement graphique, le programme "ZAL11" (tout simplement ;-) ) vous permettra de naviguer sur le serveur SAP, mais également :

  • D'ouvrir les fichiers avec votre application par défaut sur votre PC (excel pour les CSV par exemple)
  • D'ouvrir les fichiers avec un éditeur de texte sur votre PC
  • De télécharger ou télédécharger des fichiers
  • De gérer les fichiers/répertoires du serveur (ajout, copie, déplacement, renommage)
  • De compresser (tar+bz2) ou décompresser (zip, tar, gz, bz2) des fichiers et répertoires sur le serveur
  • De copier dans le presse-papier le chemin d'un fichier sur le serveur, ou d'accéder directement au répertoire d'un chemin contenu dans le presse-papier.

La gestion des raccourcis serveur de AL11 est conservée (et débuggée ;-) )
Vu qu'il s'agit de manipulation sur le serveur, chaque action demande une confirmation via un popup qui récapitule ce qui est en train d'être fait.

Le code a été écrit dans une optique de sécurité, de maintenabilité et de respect des normes de développement usuels. Il est entièrement documenté en anglais (25% de commentaires ajoutés par rapport au code brut).
La principale "entorse" aux règles est que le code est fourni dans un seul pavé de 3500 lignes au lieu d'être découpé en includes (top, class, pbo, pai, form). C'est volontaire afin de n'avoir qu'un seul code source à fournir. Néanmoins chaque partie est clairement délimitée et il ne devrait pas falloir plus d'une minute à un développeur pour recréer les includes nécessaires. Pour la même raison de simplicité de partage, aucune classe de message n'a été créée.

A noter : n’oubliez pas que vous aurez besoin de SAPLINK pour installer le programme.

BW3 - Suppression des données d'un cube avec ses dimensions

Rédigé par Sébastien Hermann dans Application -

L'accroissement de la taille des dimensions sur BW3 est un problème classique de l'équipe de maintenance. En effet, lors d'un cube chargé en "full" quotidiennement, le contenu du cube est généralement purgé au début du chargement.

Malheureusement cette étape de la process chain ne propose pas d'option pour supprimer également le contenu des dimensions. Ainsi leur taille croit jour après jour, finissant si l'on y prend pas garde par dépasser la volumétrie du cube lui même, entrainant ainsi une dégradation des performances de plus en plus prononcée, ainsi qu'un accroissement de la taille occupée par le cube sur le disque.

SAP a finit par se rendre compte de ce problème, et la version BI7 propose en option de supprimer le contenu des dimensions lors de la suppression du contenu d'un cube.
Pour les malheureux qui n'ont pas encore migré, il n'y a pas de solution standard, à part effectuer régulièrement une suppression manuelle du contenu des dimensions (prévoir un réveil a 3h du matin pour intervenir juste avant le chargement de la process chain...)

J'ai donc réalisé un petit ABAP spécifique afin de réaliser cette opération. Il vient remplacer le processus de suppression de contenu de cube dans les process chain. Il suffit de préciser en paramètre d'entrée le nom du cube pour que son contenu ainsi que ses dimensions soient supprimées.

A noter : n’oubliez pas que vous aurez besoin de SAPLINK pour installer le programme.

ZTOAD : Requêteur Open SQL

Rédigé par Sébastien Hermann dans Application -

Vous avez surement déjà été confronté à un bug dans un programme en production qui ne semble pas être reproductible en environnement de test.

Dans ces cas là, il n'est pas toujours évident de débugger directement le programme en production (problème de droits, sensibilité des données, risque de mauvaise exécution, documents créés avec votre user...). Quand le bug semble venir d'une requête SQL un peu compliquée (jointure sur 5 tables, subquery...), vous voila embarqué dans de fastidieuses recherches via SE16 avec 3 ou 4 modes ouverts pour essayer de comprendre le problème avec la requête (et encore... le problème ne vient peut-être même pas de cette requête la !)

Dans d'autres mondes, les développeurs n'ont pas ce genre de problèmes et peuvent composer en temps réel leur requêtes personnalisées directement sur la base de données. Sur SAP ce n'est pas possible. Vraiment ? Pas en standard en tout cas. Il suffit donc de créer un programme spécifique.

Dérivé de Z_TETARD lui même dérivé de YES4SQL, voici ZTOAD, mon requêteur SQL. Il permet de faire vos propres requêtes multi-tables, ou de copier coller celle du programme à débugger.

Les commentaires ABAP sont supprimés avant exécution, les alias de table sont compris, les requêtes sont mémorisées pour réutilisation (jusqu'à 99 requêtes).

ZTOAD nouveau se présente sous la forme d'une transaction à écran unique :

  • A gauche vos requêtes sauvegardées et votre historique de requête exécutées.
  • Au milieu votre éditeur de requête, qui accepte toute forme de select, mais également insert, delete, update...
  • A droite un explorateur de DDIC qui vous affiche les champs des tables présentes dans votre requête.
  • Et en bas une grille ALV affichant les résultats de la requête exécutée

L'aide ABAP est disponible lors de la saisie de requête, ainsi que l'aide intégrée du programme. Vous pouvez saisir plusieurs requêtes et choisir celle a exécuter sans avoir a effacer les autres. Vous pouvez partager vos requêtes avec les autres utilisateurs.

A noter : vous pouvez définir finement les autorisations par utilisateur pour chaque type de requête (SELECT, INSERT, UPDATE, DELETE). A la manière initiée dans ZAL11, cette gestion est simple et accessible au début du programme : Vous pouvez désactiver certaines commandes en quelques secondes sans avoir à comprendre les méandres du code.

Cette nouvelle version utilise une table pour stocker les requêtes, il faudra donc utiliser l'extension SAPLINK de gestion de tables pour pouvoir l'installer.

Télécharger ZTOAD - version pour SAP 4.6 n'est plus mis à jour

A noter : n’oubliez pas que vous aurez besoin de SAPLINK et son extension de gestion de table pour installer le programme.