Quelquepart

Blog d'un développeur ABAP

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

BW

ZRSPC : Mini ordonnanceur BW par fichier plat

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

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.

ZLISTCUBE : Du nouveau pour visualiser le contenu d'un infoprovider

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

Si comme moi vous êtes lassé de voir ce popup quand vous essayer d'afficher le contenu d'un cube, voici enfin la solution !

ZLISTCUBE utilise le moteur standard BW pour lire les données, mais modifie complètement la manière de choisir ses filtres et les colonnes affichées :
Fini la limite de 72 champs affichés !
Fini la limite de ne pouvoir afficher que les champs préselectionnés pour filtre !

Avec ZLISTCUBE vous pourrez :

Mais vous pourrez également exporter le résultat d'une requète en fichier. Ce qui vous offre un moyen simplissime de générer des fichiers avec les données de votre systeme BW (interface sortante).

Enfin vous pourrez Charger un cube directement depuis un fichier. Associé à la fonction d'export en fichier, cela vous offre une solution d'archivage / gestion de backup en fichier des plus simple et rapide à mettre en oeuvre.

Vous pouvez utilisez ZLISTCUBE comme un programme spécifique ou bien remplacer le LISTCUBE standard par celui-ci : les instructions sont données dans les commentaires du programme.
A savoir : même si vous remplacez le LISTCUBE standard, celui reste accessible à tout moment via un bouton en haut de l'écran de sélection. Vous n'avez donc aucune régression à craindre dans cette opération.

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

Mise à jour estivale

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

Je vous propose une petite mise à jour de mes différentes réalisations.

On commence par ZAL11, l'explorateur de fichiers, qui passe de la 1.1.2 à la 1.4.1 :

  • Gestion des raccourcis serveur
  • Gestion du répertoire "Mes documents"
  • Gestion du CHMOD sur le serveur
  • Quelques corrections

On continue avec ZTOAD, le requeteur SQL, qui passe en version 1.2 :

  • Une correction pour empecher les dump lors d'utilisation de nom de champs trop long

Ensuite ZCUBE_DELETE, pour supprimer le contenu un infoprovider, qui s'offre une mise à jour mineure :

  • Mise aux normes du programme

Pour finir ZSPRO, la boite à outils, qui passe en version 1.05 :

  • Mise à niveau du programme sur ECC
  • Possibilité d'insérer des programmes dans l'arborescence
  • Affichage de l'entête des programmes si pas de documentation dans le système
  • Pour chaque entrée, navigation possible vers le contenu de table, vers la structure de table (SE11), vers le code du programme (SE38)
  • Affichage possible des noms techniques des entrées (nom de table/programme)

Attention a bien utiliser l'extension SAPLINK de gestion de tables

Quelques nouveaux programmes seront détaillés prochainement.

Correspondance Request number / Request ID

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

Dans toutes les tables relatives aux chargements (listées dans un billet à venir), vous trouverez un ID unique sur 29 caractères de la forme REQU_xxxx. Mais en affichage dans BW, il est souvent fait référence à un numéro court (nombre incrémenté de 1 pour chaque nouveau chargement).

Lors d’une erreur à l’activation, BW indique généralement l’ID de requête erroné.

Passer facilement de l’un à l’autre est enfantin… une fois que l’on connait la signification de ces 2 objets : Le request ID est en fait le SID du Request number (parfois appelé lui même request ID, suivant les écrans...) Il suffit donc d’aller lire la table /BI0/SREQUID pour obtenir l’un à partir de l’autre.

PSA Maintenance - impossible d'accéder en modification

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

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 :

60Insert/update in database for transaction data
61Insert/update in database for texts
62Insert/update in database for master data
63Insert/update in database for hierarchies
70End 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. N'oubliez pas de remettre les statuts d'origine après modification de la PSA.

Une solution moins brutale consiste a supprimer des cibles toutes les demandes qui sont dans un des statuts bloquants. La PSA redeviendra modifiable, et ensuite vous pourrez "pousser" les données vers les cibles non mises à jour.