Archive for category Général

Changement d’adresse

Fidèle lecteur de la première heure, voici la nouvelle adresse ou vous pourrez me lire :
http://quelquepart.biz
A très vite !

PSA Maintenance – impossible d’accéder en modification

Je vous conseille de lire cet article à sa nouvelle adresse : PSA Maintenance – impossible d’accéder en modification

Il arrive que malgré tous vos efforts, BW ne vous laisse pas modifier une entrée de PSA lors d’un chargement en erreur. Tout est pourtant bon au niveau des autorisations… Mais qu’en est-il du statut de chargement ?

- Il est rouge ! Me rétorquerez-vous probablement énervé par cette question, semble-t-il, idiote.

Sauf que le feu tricolore n’est qu’un résumé simpliste des différents statuts possibles d’un chargement. Pour BW il existe 25 statuts différents, et certains d’entre eux ne permettent pas de modification de la table PSA. Ce statut est stocké dans le champ AUFRUFER de la table RSMONICDP.

Voici la liste des statuts en question :

60 Insert/update in database for transaction data
61 Insert/update in database for texts
62 Insert/update in database for master data
63 Insert/update in database for hierarchies
70 End of Processing

Si jamais vous êtes dans une situation semblable et que bidouiller la couleur du feu n’y change rien, vous avez juste à modifier le contenu de RSMONICDP (en y mettant le statut 66 par exemple). Comme par magie, la maintenance de PSA redevient possible.

Activation de DSO un peu longue ? Quelques conseils…

Je vous conseille d’aller lire cet article à sa nouvelle adresse : Activation de DSO un peu longue ? Quelques conseils…

Un DSO (ou ODS pour BW3.x) qui s’active en 5 minutes, un autre avec la même volumétrie qui met plus de 2 heures… Ca ne vous est jamais arrivé ?

Voici quelques pistes pour essayer de résoudre ce problème.

  • En premier lieu, même si ca peut sembler une évidence, s’assurer que les statistiques de l’ODS sont bien à jour (transaction DB20).
  • Si cet ODS n’est pas utilisé pour le reporting, s’assurer que le flag “Reporting Bex” est décoché (ou l’option “SID Generation” n’est pas sur “during activation” en BI7). Dans le cas contraire, BW profite de l’activation des données pour générer/vérifier les SID de toutes les masterdata utilisées, ce qui peut prendre beaucoup de temps !
  • L’activation peut être longue si les tables de batch sont trop grosses car elles sont utilisées lors de l’activation. Pour s’en assurer il suffit de compter le nombre d’entrées sur la table TBTCO via SE16. Si plus de 100 000 entrées sont trouvées, il est conseillé de nettoyer ces tables via le programme RSBTCDEL2 (tcode SM65). Les admins sont sensés être au courant de cette procédure.
  • En dernier lieu, il est aussi possible de faire quelques ajustements de paramétrage des ODS, via la transaction RSODSO_SETTINGS. Ces ajustements peuvent être globaux pour le serveur ou restreint au seul ODS concerné. Cette transaction n’est accessible que sur SAP BI7.x. En version BW3.x, une version primitive existe toutefois : RSCUSTA2, mais elle ne permet que des réglages globaux.

Si les problèmes persistent, alors une analyse plus poussée sera nécessaire. La note OSS 1392715 pourra alors s’avérer utile. Bon courage dans votre chasse aux performances !

Tags: , , ,

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: , , , , , ,