Quelquepart

Blog d'un consultant SAP

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

BW

Empêcher le lancement de RSA1 sur ECC

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

RSA1... la transaction magique pour tout consultant BW... Cette transaction est aussi très fourbe. En effet, lorsque vous la lancez, elle crée à votre insu un job nommé BI_WRITE_PROT_TO_APPLLOG, à votre nom, avec une récurrence toutes les 5 minutes !

"Ce job est utile sur BW, donc ce n'est pas un problème", me direz-vous. Oui, mais que ce passe-t-il si vous lancer par erreur RSA1 sur un système ECC ?

La même chose, malheureusement. Même si ce job a une durée généralement inférieure à 1 seconde, il consomme un peu de puissance machine et 1 work process.

Bien sûr, l'auteur de la faute a juste à aller sur SM37 pour supprimer ce job. Mais dans la mesure ou SAP ne l'avertit pas qu'il a créé ce job pour lui, il faut déjà connaître ce mécanisme (ce qui est maintenant le cas de tous mes lecteurs ;) ).

Bien sûr, il est possible de bloquer RSA1 au niveau des autorisations, il suffit de ne pas donner ce TCODE. Mais il peut être compliqué de mettre cela en place, en fonction de la complexité de gestion des autorisations de votre entreprise.

Heureusement, il existe une autre solution, simple et rapide à mettre en place !

Lors du lancement de RSA1, SAP vérifie si le mandant en cours est conforme à celui défini pour l'exécution de BW. Pour bloquer RSA1 sur un système ECC, il suffit donc de définir un mandant "BW" non utilisé !

Comment faire ? Cette information est stockée dans la table RSADMINA, dans le champ BWMANDT. Les 2 vues de gestion permettant de modifier RSADMINA (RSADMINAV et RSADMINAV2) ne donne pas accès à cette zone, de même qu'aucune des transactions RSCUSTxx. Non, non, non, inutile de sortir votre mode debug sur SE16, il existe un module fonction : RSCC_RSADM_ACC.

En exécutant ce module fonction, vous pouvez mettre à jour le champ BWMANDT de la table RSADMINA pour le faire pointer vers un mandant qui n'existe pas sur ECC afin d'y empêcher l'exécution de RSA1.

Ce fonctionnement est décrit dans la note OSS 1949194.

Astuce BW : Query sur Info Provider

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

Vous avez surement déjà été agacé par le LISTCUBE et ses nombreuses limitations, nous en avons déjà discuté lors de la présentation de ma solution ZLISTCUBE, souvenez-vous. Aujourd'hui, je viens partager une petite astuce de vieux grognard que je ne connaissais pas.

Vous connaissez surement la transaction RSRT, qui permet de tester/debugger les "requêtes Bex" dans BW. Eh bien cette transaction permet également de visualiser le contenu d'un cube ou de n'importe quel Info Provider comme si une requête Bex avait été créé dessus !

Pour faire cela, il faudra suivre scrupuleusement une syntaxe bien particulière (qui se rapproche plus d'un code de piratage de la NSA que d'une inocente query bex). En nom de requête donc, vous tapez : PROVIDER/!PROVIDER (en remplaçant PROVIDER par le nom technique de votre infoprovider) et c'est tout.

En validant l'écran avec la touche entrée, vous aurez alors le message suivant qui apparait en bas de l'écran :

Vous pouvez désormais exécuter votre "query". Enjoy !

Mise à jour d'automne

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

Le temps passe, et les différentes demandes de mes clients m'ont conduit à modifier certains des programmes publiés ici. Comme d'habitude, je vous livre donc une mise à jour de ces évolutions.

La principale mise à jour concerne ZAUTODOC, le générateur de doc technique BW, qui passe de la version 3.1 à la version 3.4 et accueille de nouveaux objets, dont les queries BEx !

  • Les queries BEx et les WAD sont maintenant documentées (très légèrement pour les WAD)
  • Les process chain, les Open Hub, les infosets BW et les includes abap (dans les routines) sont maintenant documentés
  • Si un objet BW (DSO, cube...) contient une documentation dans le système, le programme essaie de la récupérer pour l'inclure dans la documentation générée. Ainsi il devient possible d'ajouter de l'intelligence dans cette documentation automatique en uploadant sur l'objet principal d'un flux votre propre documentation.
  • Extraction du code des user-exit ECC si un include/form par datasource existe
  • Ajout d'un paragraphe à la fin du document qui indique comment regénérer cette documentation
  • Gestion des groupes de règles dans les transformations
  • Nombreuses autres modifications mineures

A noter : la version 1.4 de la classe CL_WORD est nécessaire. Elle est incluse dans le package.

En cas de mise à jour depuis une précédente version, pensez à bien récupérer votre personnalisation (variable cs_custo au début du code)

On continue avec ZTOAD - Requêteur Open SQL qui passe de la version 3.0 à la version 4.0 :

  • Gestion d'onglets : vos requêtes et leurs résultats peuvent être gardées en mémoire dans des onglets séparés. Passez ainsi de l'une a l'autre en 1 clic.
  • Import/export des requêtes sauvegardées
  • Gestion du "case" dans la nouvelle syntaxe abap sql

ZSPRO, la boite à outils passe de la version 2.3 à la version 2.5.1 :

  • Gestion de styles sur l'affichage de la documentation ABAP
  • Affichage d'une image de fond dans la partie droite (le logo du programme) pour permettre une plus forte identification de l'application
  • Divers corrections et ajouts mineurs

ZRSPC, le mini ordonanceur passe de la version 1.7.1 à la version 1.10 :

  • CHANGE_DTP_SEL permet de modifier les critères de sélection d'un DTP
  • TRIG_IP, TRIG_DTP et TRIG_CHAIN ont maintenant la possibilité de ne pas lancer plus de X chaines en parallèle
  • Affichage de la documentation du programme sur l'écran de sélection
  • Le mode test affiche désormais l'ALV d'exécution s'il n'y a pas d'erreur (ce qui permt d'interragir avec les différents objets)
  • Diverses corrections mineures

ZAL11, l'explorateur de fichiers subit une mise à jour mineur pour corriger un DUMP potentiel.

ZAUTODOC : Documentation technique BW automatique !

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

Dans un passé fort lointain, je me suis retrouvé chez un client qui avait la phobie du black out. Il craignait par dessus tout que l'ensemble de ses serveurs soit détruits, backup compris. Aussi souhaitait-il une documentation papier complète de chaque système. BW n’échappant pas à la règle, le client souhaitait une documentation de chaque objet et de chaque flux...

C'est à cette époque que j'ai décidé d'automatiser le tout, et ZAUTODOC est né. Ce programme va lire dans la base de données toutes les informations relatives à un flux ou un objet afin de le retranscrire dans Word.

Si la première version générait du HTML (le docx n'existait pas encore... c'est dire si le programme est vieux !), le programme a fait beaucoup d'émules et a été utilisé dans de nombreux projets. Je l'ai même retrouvé récemment chez un client, taggé au nom d'une SSII sans scrupule dont je tairais le nom.

Depuis la version originale de 2006, ZAUTODOC a bien évolué. Enrichi par plusieurs développeurs talentueux puis livré aux aléas du temps, je l'ai entièrement réécrit récemment afin qu'il génère un DOCX directement (grâce a la classe CL_WORD).

Son utilisation est simple : Vous choisissez un objet (DSO, Cube, InfoObjet, mais aussi multiprovider ou même WORKBOOK, WAD ou Query BEx) et le programme va créer un fichier Word contenant l'objet et son flux d'alimentation (une option vous permet de remonter l'intégralité du flux jusqu'à arriver à des systèmes hors BW). Les routines abap et les formules sont également remontées dans le fichier

Le document contient également un diagramme "data flow" du flux, ainsi que la liste des process chain utilisées. Les DTP et IP peuvent également y être ajoutés. Enfin le programme gère le traitement en masse afin de générer 1 fichier par objet (cube, dso...). Les flux 7, mais aussi les vieillissants flux 3 sont pris en charge. Le programme peut très facilement être personnalisé : au tout début du code, vous trouverez tous les points de paramétrage dans une structure cs_custo afin de définir vos préférences projets.

Le seul travail qu'il vous reste à faire est de créer le template DOTX aux couleurs de votre projet afin de personnaliser votre documentation technique !

Un template et une image de couverture de démo ont été ajoutés dans ZIP, n'oubliez pas d'en indiquer le chemin dans le programme avant de l'exécuter. CL_WORD en version 1.2 a également été ajouté. C'est la version minimale nécessaire pour ZAUTODOC.

Mise à jour estivale #2

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

Après ZTOAD qui méritait bien un post pour lui tout seul, voici une petite mise à jour de mes différentes réalisations.

On commence par ZAL11, l'explorateur de fichiers, qui passe à la version 2.3 :

  • Ajout d'un bouton "grid options" pour gérer filtres, tris et autres options sur la liste des fichiers du serveur
  • Ajout d'une entrée de menu contextuel "Ouvrir avec" pour choisir le programme avec lequel ouvrir le fichier distant/local
  • Affichage d'un message si le fichier ne peut pas etre ouvert
  • Affichage du nombre de fichiers dans le répertoire en cours

On continue avec ZSPRO, la boite à outils, qui passe aussi à la version 2.3 :

  • Prise en charge des noeuds de type "classe d'objet abap"
  • Ajout de l'import XML : permet d'importer une arborescence exporté avec le bouton "export XML. Cela permet de déployer rapidement une arborescence sur plusieurs environnement, sans avoir gérer un transport.
  • Correction de la gestion des liens dans l'affichage de l'aide
  • Nettoyage du code

ZLISTCUBE a quant à lui eu son lot de correction et passe à la version 1.2.1 :

  • Interruption du programme quand on annule un des popup de sélection après lancement du programme
  • Ajout d'un point de modification du standard pour remplacement du LISTCUBE
  • Ajout d'une procédure de modification du standard pour correction du bug qui empêche les valeurs de l'écran de sélection de s'afficher lors de la réouverture du popup
  • Ajout d'un bouton pour simplement connaitre le nombre d'entrées correspondant aux critères
  • Lors de l'ouverture du ZLISTCUBE sur une cible, les dernières valeurs récentes de filtre sont automatiquement rappelées
  • Correction de bugs divers

ZRSPC, le mini ordonanceur passe en version 1.7.1 et se voit ajouter plusieurs processus :

  • CHANGE_IP_MODE : permet de modifier le mode de chargement d'un infopackage (full/delta/init)
  • CHANGE_IP_SEL : permet de modifier les sélections d'un infopackage
  • DBSTAT : permet de générer statistique et/ou index sur une table (remplace INDEX)
  • WAIT permet maintenant d'attendre une certaine heure et plus seulement un nombre de seconde données
  • STOP peut maintenant être annulé depuis la visualisation du log en cours
  • Ajout de l'affichage du nombre de lignes sélectionnées lors du clic sur le bouton "SUM"
  • Correction de quelques bugs (entrées vides en ST13, plantage si process entré en minuscule)
  • Compression du mail avant envoi (division par 4 de sa taille)
  • Envoi de mail à intervalle régulier pour les longs traitements (nécessite l'implémentation d'une fonction dont le code est donné en fin de programme)
C'est tout pour aujourd'hui !