Quelquepart

Blog d'un développeur ABAP

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

BW

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.

Terminated change run : fonction RSDDS_AGGR_MOD_CLOSE

Rédigé par Sébastien Hermann dans Fonction - aucun commentaire

Lors d'une interruption de chargement d'une donnée de base, elle peut se retrouver complètement bloquée avec une erreur "Attributes for characteristic are locked by a terminated change run" (RSENQ 063 ou RSENQ 062) ou bien une erreur plus générale "Lock NOT set for: ...." (RSENQ 002)

Le cas peut être diagnostiqué en lançant le module fonction : RSDDS_AGGR_MOD_STATE_GET (ne rien renseigner en entrée), la table E_T_CHABASNM contiendra la liste des données de base bloquées. S'il n'y a aucun problème, la fonction renverra une exception.

Pour débloquer la situation il suffit de lancer le module fonction : RSDDS_AGGR_MOD_CLOSE

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

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

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.

Envoyer des emails depuis SAP BW (2/2) : Process chain

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

Nous avons vu comment configurer le serveur SAP dans un précédent billet, il reste à planifier l'envoi d'alertes dans nos process chain.

Dans la transaction RSPC, vous pouvez ajouter un message pour chaque type de processus, par exemple sur le processus de lancement.

Faites un clic droit sur le processus et sélectionner "Créer message"

Un popup de sélection de variante apparait. Entrer un nouveau nom puis cliquer sur le bouton "Créer".

Un nouveau popup vous demande de saisir un libellé pour ce message. Saisissez le avec précaution. En effet ce libellé sera le SUJET de l'email envoyé par le message.

Vous arrivez alors sur le panneau de gestion du nouveau message. Le bouton "Editer document" permet de saisir le corps du message, le bouton "Gérer liste réception." permet de définir les destinataires.

Valider et sauvegarder. Une fois de retour sur la process chain, le message est affiché directement dans le rectangle du processus, et un clic droit sur ce processus vous affiche de nouvelles options "Gérer message" et "Supprimer message".

Envoyer des emails depuis SAP BW (1/2) : paramétrage du serveur

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

Sur BW, il est intéressant de pouvoir envoyer des alertes par email en cas d'erreur dans les chargements nocturnes (process chain). Si sur SAP R/3 il peut être intéressant d'utiliser le système d'alerte de SAP, ce n'est pas pertinent pour BW, les utilisateurs ne se connectant pas directement en transactionnel, mais soit via Excel, soit via le portail web donc il ne serait pas aisé pour eux de souscrire aux alertes.

Chez un client sans administrateur SAP dédié, j'ai du paramétrer le serveur pour qu'il gère l'envoi d'e-mails vers une boite générique, des règles de redirection étant paramétrées sur cette boite pour "arroser" l'équipe technique, ainsi que quelques key-users.

Première étape du paramétrage : transaction SCOT

Si vous n'arrivez pas sur l'écran d'état du système, aller dans le menu Vue > Etat du système (ou appuyer sur F5).
Une fois sur l'écran d'état du système, double cliquer sur la ligne SMTP (après avoir déplié le noeud INT).

Renseigner les champs "Hôte mail" et "Port mail" avec les données du serveur de messagerie de l'entreprise. Cocher la case "Noeuds opérationnels"
Cliquer sur le bouton "paramétrer" de la ligne "Internet"

Renseigner la plage d'adresses email autorisées, ou * pour autoriser toute adresse puis valider les écrans.

Vous pouvez maintenant faire un test de routage :
Menu Utilitaires > Test de routage (ou CTRL F10)

Renseigner le type d'adresse INT et indiquer un email. Appuyer sur ENTREE pour valider et lancer le test de routage. Si tout se passe bien, vous verrez apparaitre sous vos informations le noeud SMTP ainsi que l'adresse mail que vous avez indiqué.

Deuxième étape, il vous faut activer le service SMTP de SAPConnect via la transaction SICF Si le service n'est pas activé, il apparaitra grisé dans la liste des services. Clic droit sur SAPconnect puis choisir l'option "Activave SMTP Host"

Un message de succès apparait et la ligne devient noire. Si le service est déjà actif, cette même opération fera apparaitre le message d'erreur "Service has already been actively saved"

Troisième étape, il faut définir une adresse email pour son User SAP via la transaction SU01

A partir de maintenant, il doit être possible d'envoyer un email.
Pour le vérifier il existe de multiples manières. La plus simple est de passer par la Business workplace SAPOffice : transaction SO01.

Créer un nouveau message en indiquant un titre, un contenu, et un destinataire de type "Adresse internet", puis cliquer sur "Envoyer"

Le message doit être maintenant en attente dans la file d'envoi. Pour le faire sortir de SAP, il faut aller dans la transaction SOST. Le message apparait bien en jaune : il est prêt, en attente d'envoi.

Pour l'envoyer, Aller dans le menu Utilitaires > Lancer processus d'envoi (ou CTRL F7)

Une liste des messages envoyés apparait. Vous pouvez double cliquer sur une ligne pour voir le détail du routage.

Si tout s'est bien passé, le message est passé en vert ou en gris. En cas de problème il sera passé en rouge. Vous pouvez cliquer sur le nombre de la dernière colonne (Msg) pour avoir le texte d'erreur (ou refaire un test et analyser le détail du routage lors de l'envoi).
En cas d'erreur il est probable qu'il faille se tourner du coté de l'administration du serveur de messagerie pour qu'il accepte d'envoyer les messages en provenance du serveur SAP (possible blocage total ou internet, auquel cas il sera possible de faire un test sur sa messagerie d'entreprise mais pas sur un webmail).

Une fois le test passé avec succès, il ne reste plus qu'a paramétrer les process chain, cela fera l'objet d'un prochain billet.