Quelquepart

Blog d'un développeur ABAP

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

BW

ZAUTODOC : Documentation technique BW automatique !

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

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

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 !

Mise à jour de ZAL11 - l'explorateur de fichiers

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

ZAL11 a un peu évolué depuis la dernière version mise en ligne (1.4.1).

La nouvelle version est estampillée 2.1, rien que çà. C'est dire si les nouveautés sont nombreuses :

  • Gestion des serveurs SAP sous windows
  • Répertoire "bureau"
  • Possibilité de glisser des fichiers/répertoires vers l'arborescence de répertoires et plus seulement vers la grille ALV.
  • Simplification de la personnalisation : tous les paramètres ont été mis au début du programme
  • Affichage du propriétaire des fichiers
  • Calcul de la taille des répertoires (automatique ou a la demande)
  • Choix du nom lors de la création d'un répertoire
  • Affichage de liens vers les répertoires système
  • Acces a des serveurs distants (//serveur/chemin/) par copier coller d'adresse
  • Réécriture de la gestion des commandes serveurs pour permettre plus de souplesse
  • Correction d'erreurs
  • Nettoyage du code

Le lien de téléchargement est disponible sur la fiche principale de l'outil : ZAL11 - L'explorateur de fichiers

Message type X à l'ouverture d'un infopackage

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

Si vous avez un message type X lors de l'ouverture d'un infopackage, il est probable que la gestion du delta soit en cause. Dans le log du dump vous pouvez trouver ces critères :
MESSAGE_TYPE_X, SAPLRSS1, LRSS1F11, RSM1_CHECK_FOR_DELTAUPD, RSAWBN_START.

Dès lors, impossible de rentrer dans l'infopackage pour corriger. La création d'un nouvel infopackage ne résoud rien car il dump immédiatement.

La solution est tout simple, il suffit de lancer le programme RSSM_OLTP_INIT_DELTA_UPDATE pour reparer le delta en cours (en cochant ALWAYS).
Si jamais cela ne fonctionne pas, il faut essayer de lancer directement la fonction : RSC1_QUEUE_DELETE_ALL.

Si cela resiste encore... supprimer les entrées d'inits résiduts dans les tables suivantes:

  • ROOSPRMSC
  • ROOSPRMSF

La référence de la demande de mise à jour à supprimer est indiqué dans le dump (L_T_RSSDLINIT_OLTPDEL-RNR ou L_REQ_TO_KILL suivant la version de BW).

ZRSPC : Mini ordonnanceur BW par fichier plat

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

SAP a eu la bonne idée de fournir un ordonanceur avec sa solution BI, c'est le concept de Process chain, accessible via la transaction RSPC.

Si la solution technique est très efficace (de nombreuses sociétés lui font confiance pour la gestion de leur nuit applicative), en revanche l'interface est assez désastreuse : peu ergonomique, très lente, incomplète...

Sur BW il n'est pas rare de devoir planifier des actions manuelles de chargement, que ce soit pour un déploiement ou bien une initialisation de données à refaire. L'usage d'une process chain est alors recommandé mais ne peut couvrir 100% des besoins car certains processus essentiels sont absents, comme par exemple la suppression de flag d'initialisation. Cela oblige à panacher entre process chain et action manuelle (donc risque d'erreur).

Pour palier ces manques j'ai créé un petit programme : ZRSPC. Il permet de planifier une suite d'opérations qui sera réalisée automatiquement, de la même manière que le ferait le lancement d'une process chain.

L'intéret est d'une part d'avoir une gestion des actions par fichier, ce qui permet une plus grande réactivité que lorsque l'on doit gérer le transport d'une process chain. D'autre part le programme gère certaines actions non prises en charge par RSPC, comme par exemple la suppression des données non utilisées dans les dimensions d'un cube ou la suppression de flag delta.

Un rapport d'exécution permet de suivre l'avancement des chargements en temps réel. Un email peut être envoyé automatiquement à la fin du traitement.

Voici la liste des processus gérés actuellement par le programme :

  • Suppression complète ou sélective d'un cube ou d'un DSO
  • Suppression d'un flag d'initialisation de chargement delta
  • Lancement d'un IP
  • Chargement des cibles depuis la PSA
  • Lancement d'un DTP (option pour lancer un DTP init sans transfert de données)
  • Lancement d'une process chain
  • Activation d'un DSO
  • Suppression et création d'index (cube)
  • Suppression des données inutilisées dans les dimensions d'un cube
  • Suppression des données inutilisées dans un info objet
  • Lancement d'un programme ABAP
  • Faire une pause
  • Interrompre le traitement

La structure du programme est assez souple pour permettre de gérer tout type de processus donc n'hésitez pas à le compléter des votres !

A noter : n’oubliez pas que vous aurez besoin de SAPLINK pour installer le programme.