Quelquepart

Blog d'un développeur ABAP

Vous êtes ici : Accueil>Mots clés>telechargement

téléchargement

ZTOAD – Requêteur Open SQL - version ECC

Rédigé par Sébastien Hermann dans Mise à jour -

Voici la version ECC (a priori compatible 4.7) de mon requêteur open SQL, nommé ZTOAD, publié le 26 octobre 2009.

Peu de changement dans le code, si ce n'est une uniformisation des noms de variables, et un accroissement du taux de commentaires.

Le lien de téléchargement est disponible sur la fiche principale de l’outil : ZTOAD – Requêteur Open SQL

Upload/download de fichiers

Rédigé par Sébastien Hermann dans Non classé -

Si la transaction AL11 permet de visualiser les fichiers sur le serveur, elle ne permet ni de les télécharger, ni d'en ajouter. C'est un vrai manque qui se fait resentir de manière chronique chez la plupart des sociétés utilisatrices de SAP.

Généralement, un programme spécifique est déployé pour répondre à ce besoin. J'ai même fait une version améliorée qui historise les fichiers en utilisant une compression tar+bz2, cela fera peut-être l'objet d'un prochain billet.

Les personne ayant déjà travaillés sur un projet de reprise de données connaissent probablement la transaction SXDA et plus spécifiquement SXDA_TOOLS, qui permet de faire des upload/download entre serveur sap et poste client, même si ce n'est pas son but premier. Cette solution standard s'apparente à un hack car on renseigne les paramètres obligatoires avec des données bidons avant d'appeler la fonction de copie. Néanmoins elle évite de développer un programme spécifique.

Mais grâce au module EHS (Environment, Health and Safety), 2 transaction 100% dédiées à ces opérations ont vues le jour :

Testé sur divers systèmes sap, de 4.6b à ECC5, les transactions semblent fonctionner convenablement.

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.

Conserver ses programmes ABAP

Rédigé par Sébastien Hermann dans Général -

Etant prestataire de service, je suis amené régulièrement à changer de client. Cela présente certains avantages mais aussi des inconvénients. Et parmi eux celui de "perdre" toutes ses réalisations.

Afin de capitaliser mon temps passé à rechercher des fonctions standards cachées, à réaliser des algorithmes tordus hyper optimisés ou à réinventer la roue, j'essaie de conserver mes codes sources.

Au fil des ans et des versions de SAP, j'ai utilisé différents programmes pour le faire car chacun devenait incompatible avec la version de SAP suivante (4.5/4.6, 4.7, ECCx...)

Récemment j'ai découvert SAPLink, un programme ABAP "open source" pour essayer de standardiser cette opération. Ce programme est très bien fait, est ouvert aux "plugins" pour en étendre les fonctionnalités, et possède l'énorme avantage de permettre d'uniformiser les échanges de programmes entre développeurs via un format de fichier commun.

L'installation se fait en 2 temps. Il y a un programme temporaire (zsaplink_installer) dont le seul usage est de charger le .nugg (format de fichier utilisé par saplink) afin d'installer complètement Saplink.

Sur leur site ils se définissent comme : "an open source project that aims to make it easier to share ABAP developments between programmers. It provides the ability to easily distribute and package custom objects."

J'ai décidé de l'utiliser et de proposer ici mes réalisations sous ce format, que je pense pérenne.
Malheureusement, SAPLink ne fonctionne qu'a partir de SAP 4.7
Aussi pour les codes compatibles 4.6, j'utiliserai le programme ZAPC0007. Bien que moins abouti, il permettra néanmoins de passer l'essentiel des éléments d'un programme. Seul le ddic restera à recréer manuellement.

SAPLINK évolue avec le temps et perd malheureusement sa compatibilité avec les vieilles versions de SAP. Les déménagements successifs du projet ont rendu compliqué l'accès aux différentes versions aussi je vais proposer sur mon site le téléchargement des principales versions exploitées.

Si la dernière version stable proposée ne fonctionne pas, voici de plus anciennes versions :

Sans oublier l'extension de gestion de tables indispensable pour certains de mes applications.