dimanche 5 avril 2015

Migration de données SAP LSMW Patie 1

INTRODUCTION PARTIE 1

LSMW – Legacy System Migration Workbench ou outil de reprise de données est un utilitaire présent dans SAP R/3 depuis la version 4.6, et destiné à l'origine à proposer un cadre structuré pour la reprise de données.
LSMW fonctionne de manière séquentielle, en plusieurs étapes clairement définies, ce qui permet de valider les données à chaque étape (lecture, conversion, exécution) :
1.    Définir le type d’objet à utiliser pour la reprise de données.
       Il peut s’agir :
              a.    D’un objet pré existant dans SAP, à traiter en Batch Standard, ou Direct Input. Il se compose en général d’un objet, d’une méthode et d’un programme.
              b.    D’un enregistrement Batch-Input d’une manipulation précise dans une transaction.
              c.    D’une BAPI.
              d.    D’un Idoc.
2.    Définir les noms des structures sources.
3.    Définir les zones qui composent les structures sources.
4.    Définir les relations entre la/les structures sources et la/les structures cibles.
5.    Définir les relations entres les zones des structures sources et les zones cibles, avec règles de conversion si besoin.
6.    Spécifier le chemin du fichier source et définir les fichiers intermédiaires de lecture et de conversion du/des fichiers sources.
7.    Lire les données.
8.    Convertir ces données.
9.    Lancer l’intégration des données avec le mode correspondant à l’objet choisi pour la reprise de données (Batch Input, Direct Input, génération d’iDoc, etc.).
Je vais couper ce tutoriel en 2 parties, les explications étant conséquentes :
  • une première partie qui comprendra la construction du programme de reprise, avec les étapes 1 à 5, c'est à dire juste avant d'utiliser le fichier qui sert de source au programme de reprise.
  • une deuxième partie qui comprendra les réglages au niveau du fichier et l'exécution de la reprise de données, qui ont pour but d'intégrer les données du fichier source dans SAP.

CONSTRUCTION D'UN PROGRAMME DE REPRISE.

Dans l'exemple que je vais vous exposer, je souhaite utiliser la reprise de données pour créer des équipements en masse.
Je détaille donc le cheminement de la création du programme de reprise de données jusqu'à son exécution, et l'inspection du résultat. Des captures d'écran permettront de mieux saisir les opérations effectuées. Le but est de comprendre le fonctionnement de base de la LSMW, afin de pouvoir s'initier sans douleur et maux de têtes :)
Prérequis : lorsqu'on vous demande de créer un programme de reprise, je pense que le minimum dont il faut disposer est le fichier source, avec les zones qui le composent.
Si vous ne l'avez pas, vous pourriez éventuellement en proposer un, mais c'est synonyme de perte de temps. Normalement le client doit savoir ce qu'il souhaite reprendre et vous proposer un fichier source cohérent avec l'existant sur SAP.

I- Création du programme de reprise de données.

Lancer la transaction LSMW, vous arrivez sur l'écran de sélection du programme de reprise de données.
Pour créer son programme, il faut avant tout créer si cela n'existe pas un projet et un sous-projet. Vous pourrez ensuite créer votre objet, qui est bien le programme de reprise de données. Rien de difficile, il suffit de se laisser guider. 
Après avoir créé votre programme de reprise de données, vous arrivez sur cet écran, qui liste toutes les étapes de son programme de reprises.
La barre d'outil vous permet dans l'ordre : 
  • de lancer l'étape sélectionnée
  • d'afficher le menu utilisateur
  • d'afficher ou non la numérotation des étapes
  • de changer de mode de double clic : soit afficher, soit entrer en modification sur l'étape sur laquelle vous double cliquez
  • afficher une vue générale des éléments composant votre programme de reprise
  • afficher un listing des actions effectuées sur les étapes du programme

       1. Définition de l'objet à utiliser.

En mode modification, double cliquez sur la première étape : "Maintain Object Attributes".
Vous arrivez sur cet écran :
C'est là que vous allez définir un des éléments principaux du programme de reprise : l'objet qui va permettre d'intégrer les données à reprendre dans SAP.
Dans la manipulation qui nous intéresse, je souhaite créer des équipements.
Ici, j'ai potentiellement le choix entre 4 types d'objets :
  • Standard Batch/Direct Input : un objet prédéfini par SAP qui reproduit intègre via un programme les données à reprendre dans SAP. Cette option propose des choses assez générales, je pense, comme la création, ou autre fonctionnalité assez commune.
  • Batch Input Recording : cet objet nécessite que vous ayez enregistré auparavant une manipulation précise dans une transaction. Par exemple dans mon cas si j'avais enregistré une création d'équipement via la transaction IE01.
  • Business Object Method (BAPI) : un objet prédéfini encore une fois, sauf qu'il s'agit ici d'une BAPI, avec méthode etc.
  • Idoc (Intermediate Document) : utilisation d'un iDoc comme source pour alimenter la structure cible.
La question qui se pose ici est : comment choisir le bon objet pour réaliser sa reprise de données ? Je pense que la réponse est qu'il faut chercher, comme d'habitude dans SAP. Pour procéder, j'ai donc décidé de commencer dans l'ordre, à savoir cocher Standard Batch/Direct Input et essayer de trouver un objet qui convienne à mon besoin.
Je vais sur le matchcode de l'objet :
Je parcours un peu la liste, qui semble être classée par thème. Je trouve une ligne Equipement (objet 0400) que je sélectionne.
Je vais sur le paramètre Méthode qui suit l'Objet, clique sur le matchcode :
3 lignes avec deux qui m'intéressent :
0001 - Créer BI
0003 - Créer DI
J'en déduis que BI = Batch Input et DI = Direct Input (après plusieurs tests, j'ai une préférence pour Batch Input, pour lequel on peut avoir plus facilement des infos sur la réussite ou non de la reprise). Je choisis donc l'objet 0001.
Nous y voilà nous avons notre objet. Sauvegarder et revenir à l'écran des étapes. Direction l'étape 2.

       2. Définition du nom de la structure source.

Double cliquez sur l'étape 2 "Maintain Source Structures", vous arrivez sur un nouvel écran, avec une barre d'outils. C'est là que nous allons définir le nom de la structure à utiliser.
Cliquer sur le bouton  "Créer une structure" pour insérer un nouvel élément. Une popup s'affiche où vous pouvez entrer le nom de la structure, ainsi que sa description.
Libre à vous de choisir le nom qui vous convient, si vous avez le choix. Pour ma part, ce sera ZIF_SOURCE (Z pour le spécifique, IF pour Input File).
Validez. Voilà vous avez créé la base de votre structure source.
Sauvegardez et revenez au menu des étapes.
NB : Vous pouvez avoir besoin de créer plusieurs fichiers sources, c'est possible facilement et de la même manière. Vous pouvez également hiérarchiser vos fichiers, si par exemple un fichier est imbriqué dans un autre. Ce peut être le cas lorsque vous avez un fichier qui correspond aux données d'un en-tête qui comprend un fichier dont les données correspondent à des postes).

       3. Définition des zones de la structure source.

Il est maintenant temps de définir les zones qui composent son fichier source.
NB : Si vous ne connaissez pas les éléments qui composent votre fichier source, vous pouvez tenter de les déterminer vous-même en passant à l'étape 4 pour revenir ensuite à celle-ci. Ou alors comme dans cet exemple il s'agit d'une création d'équipement, vous pouvez lancer la transaction correspondante, créer un équipement, voir les zones qui vous intéressent ou sont obligatoires et récupérer le nom de zone via la touche F1 pour afficher l'aide,
puis choisir le bouton "Informations techniques" pour récupérer le nom de zone.
Au final, vous pouvez vous faire un schéma qui regroupe toutes les zones qui vous intéressent et l'utiliser pour savoir quoi utiliser.
Quand vous avez votre structure, vous pouvez commencer à insérer un à un les éléments.
Le fonctionnement est le même que lors de la création des fichiers sources en étape 2. Le bouton  vous permet d'ajouter la zone qui vous intéresse. Une popup apparaît alors avec les informations à entrer pour son élément :
Dans cet exemple je vais au plus simple, la structure source est unique, et elle n'est composée que de deux zones nécessaires à la création d'un équipement : la catégorie d'équipement (EQTYP), et sa désignation (EQKTX).
Ce qui nous donne au final : 
Sauvegardez, revenez au menu des étapes, direction l'étape 4.

       4. Etablir les relations entre les structures source/cible.

Cette étape est assez simple, quand on sait où on va. Si on cherche la structure du fichier source en venant ici, on obtient un message d'informations, vous indiquant que vous n'avez pas encore défini les champs de votre fichier source.
Vous arrivez sur ce type d'écran : 
A gauche, vous avez les structures qui composent l'objet SAP que vous avez choisi pour votre programme de reprise. C'est à dire que toutes les structures que vous voyez, sont autant de structures que vous pouvez potentiellement alimenter. Une description les accompagne en général. 
Cliquer sur la description de l'une d'entre elles vous emmènera sur sa composition (comme en SE11 par exemple). Si je vais sur la structure IBIPEQUI par exemple, j'afficherais cela :
J'y retrouve les deux zones qui m'intéressent et qui composent mon fichier source : EQTYP et EQKTX. Revenir en arrière, se placer sur le nom de la structure et cliquer sur le bouton  "Relationship" pour créer une nouvelle relation.
Le nom de votre fichier source apparaît alors à la fin de la ligne pour montrer son association.
Une fois terminées les associations, vous pouvez sauvegarder et revenir au menu.

       5. Etablir les connexions entre les zones des fichiers source/cible.

Après avoir associé les structures entre elles, il est temps d'associer les éléments de ces structures ensemble. C'est le rôle de l'étape 5 "Maintain Field Mapping and Conversion Rules".
L'écran ressemble à ça :
Il reprend les structures cibles pour lesquelles un fichier source a été associé. On voit le nom de la structure IBIPEQUI, et les champs qui la composent. Certains champs sont déjà associé par défaut à quelque chose : c'est le cas pour le champ TCODE. On y distingue une règle associée (ligne verte) : Default Settings. Une ligne de code apparaît aussi, et renseigne le code ransaction à utiliser par défaut.
NB : Si on veut respecter la fonction de l'objet, il faut éviter de toucher à ce code, sous peine de ne pas pouvoir faire fonctionner correctement le programme de reprise. Si vous le modifiez, c'est que vous savez ce que vous faites.
Pour associer un champ de son fichier source à la zone de la structure qui va bien, il faut se placer sur le champ qui vous intéresse, et cliquer sur le bouton  "Source Field" dans la barre d'outils. Une popup apparaît alors, reprenant les éléments du fichier source associé à la structure cible.
Choisir le champ souhaité et validez. Cela intégrera deux nouvelles lignes, une avec une règle "Transfert de zone", et une autre avec le code correspondant.
Il suffit alors d'établir la liaison entre tous les éléments qui vous intéressent. Il est possible de rajouter du code, comme des conditions, des appels de fonction, ou autre code nécessaire à la bonne interprétation de ce que contient votre zone source.
Pour ce faire il faut double cliquer sur l'élément, ou la ligne de code. Vous arrivez alors sur un éditeur très basique.
Le but de cet éditeur est de faire de petits ajustements, pas pour faire une usine à gaz : Vous pouvez ajouter une ligne par une ligne, donc si vous voulez appelez une fonction par exemple, il faut savoir exactement ce qu'il faut écrire. Si jamais vous connaissez un moyen d'afficher un éditeur plus agréable d'utilisation, je suis preneur, et j'attends votre commentaire. Le but est donc ici de faire de simples ajustements et conversions.
Une fois terminé votre association de zones et vos possibles ajouts de code, enregistrez et revenez au menu des étapes.

Fin de la première partie

Voilà vous avez fait l'essentiel du travail, à savoir :
  • choisir l'objet adéquat,
  • définir la structure source et les zones qui la composent
  • définir les relations entre la structure source et ses éléments, et la structure cible.
Pour la suite, rendez-vous sur la partie 2 de ce tutoriel !
Bon apprentissage.

Aucun commentaire:

Enregistrer un commentaire