Posts Tagged téléchargement

Migration BW3 – BI7 : vous reprendrez bien un peu de hash ?

Je vous conseille d’aller lire cet article à sa nouvelle adresse : Migration BW3 – BI7 : vous reprendrez bien un peu de hash ?

Ce matin, j’étais tranquillement en train de m’occuper de ma migration, quand tout à coup l’un de mes chargements dump. Je suis interloqué car le dump apparait lorsque je lance l’infopackage, sur le mode actif. Pas en background comme cela arrive habituellement.

En-tête du DUMP

En-tête du DUMP

Log du dump :

Category : ABAP Server Resource Shortage
Runtime Errors : TSV_TNEW_PAGE_ALLOC_FAILED

What happened?
You attempted to extend an internal table, but the required space was not available.

Information on where terminated
Termination occurred in the ABAP program "SAPLRSSM_LOAD" - in "RSSM_RSSELDONE_READ".  The main program was "RSAWBN_START ".  In the source code you have the termination point in line 245 of the (Include) program "LRSSM_LOADU08".

Allant voir plus loin dans le log je me rend compte que le dump survient sur un select avec des conditions dynamiques

Fragment de code en cause pour le DUMP

Fragment de code en cause pour le DUMP

Me voici donc partit pour débugger le tout. J’arrive rapidement à trouver la valeur des paramètres et après un petit tour dans SE16, je suis catastrophé. 6.8 millions d’entrées correspondent à cette sélection. Voici donc pourquoi le chargement dump. Ca fait un peu beaucoup de lignes à mettre dans une table interne…

En revanche j’ai du mal à m’expliquer pourquoi SAP fait ce chargement. La table RSSELDONE contient les paramètres de chargement de toutes les requests. Quel intérêt d’aller charger en mémoire tout l’historique des paramètres de sélection sur ma source ???

Après arrachage de poignées de cheveux et traitage de noms d’oiseaux des développeurs de Waldorf, j’ai fini par comprendre. SAP a ajouté un hash code dans cette table. Il n’était pas présent sur la version 3.x et se trouve dans la 7.x. Dès qu’on fait un chargement en BI7.x, le hash code correspondant est généré et stocké dans RSSELDONE. Mais quid des entrées 3.x lors d’une migration ? Et bien SAP a décidé que le PREMIER CHARGEMENT serait le parfait moment pour générer LA TOTALITE des hash code de chargement de la source correspondante !

Bon c’est bien, je sais maintenant pourquoi ca dump, mais ça ne m’aide pas à corriger. J’ai fini par trouver un programme standard qui permet de générer les hash code : RSSM_HASH_ENTRIES_CREATE. Malheureusement il a probablement été écrit par un stagiaire… son temps d’exécution est très très très (trop) long. Aussi, pour les besoins du projet, j’ai du faire une version light qui appelle directement la fonction standard de génération de hash, sans appeler des tonnes de fonctions inutiles autour…

2h plus tard, j’ai pu relancer mon infopackage qui a chargé sans problème mes données. Affaire classée !

Au cas où cette mésaventure vous arrive, voici le programme dont je me suis servi.

Télécharger le programme correctif

Tags: , , , ,

Cure de rajeunissement pour AL11

Je vous conseille d’aller lire cet article à sa nouvelle adresse : Cure de rajeunissement pour AL11

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).

ZAL11 display local and server file explorer

ZAL11 display local and server file explorer

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.

ZAL11 File and folder context menu

ZAL11 File and folder context menu

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.

Télécharger ZAL11 (compatible ECC) (Si vous n’arrivez pas à télécharger le fichier : click droit puis enregistrer la cible sous… et n’oubliez pas que vous aurez besoin de SAPLINK pour l’installer ensuite)

Tags: , , , , , ,

ZTOAD – Requêteur Open SQL – mise à jour

Je vous conseille d’aller lire cet article à sa nouvelle adresse : ZTOAD – Requêteur Open SQL – mise à jour

Petite mise a jour de mon requêteur open SQL, nommé ZTOAD :
- Correction d’un bug lorsque le nom des champs était trop long
- Affichage du nom technique du champs dans l’entête de colonne ALV si aucun libellé n’est trouvé. (ca évite les colonnes sans libellé)
- Ajout d’une mesure du temps d’exécution de la requête (affiché dans l’entête)

Télécharger ZTOAD (compatible 4.7+)

La présentation complète se trouve ici

Tags: , , , , ,

ZTOAD – Requêteur Open SQL – version ECC

Je vous conseille d’aller lire cet article à sa nouvelle adresse : ZTOAD – Requêteur Open SQL – version ECC

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.

Télécharger ZTOAD (compatible 4.7+)

La présentation complète se trouve ici

Tags: , , , , ,

Upload/download de fichiers

Je vous conseille d’aller lire cet article à sa nouvelle adresse : Upload/download de fichiers

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.

SXDA_TOOLS : Upload/Download de fichiers

SXDA_TOOLS : Upload/Download de fichiers

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

  • CG3Z permet de charger un fichier sur le serveur sap depuis le poste client (upload)
    CG3Z : Upload de fichiers

    CG3Z : Upload de fichiers

  • CG3Y permet de charger un fichier sur le poste client depuis le serveur sap (download)
    CG3Y : Download de fichiers

    CG3Y : Download de fichiers

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

Tags: , ,