Vous êtes sur la page 1sur 31

Création de reprise de données via LSMW

en BATCH INPUT
(Legacy System Migration Workbench).

PARTIE 2

1/31
INDEX
1/ Création d’un enregistrement en Batch Input.......................................................................................4
2/ Préparation du projet de reprise............................................................................................................6
A/ Création du projet :..........................................................................................................................6
B/ Création du Sous Projet : .................................................................................................................6
3/ Choix du projet de reprise.....................................................................................................................8
4/ Création des noms de structure...........................................................................................................10
5/ Création des structures........................................................................................................................12
6/ Affectation des structures...................................................................................................................14
7/ Création des liens entre les structures standards et les structures créées............................................15
A/ Le paramétrage. .............................................................................................................................16
B/ la création des liens entre structures standards et structures créées...............................................17
8/ Création de modules de conversion et de User-Define.......................................................................18
A/ Fixed values :.................................................................................................................................18
B/ Translations :..................................................................................................................................19
1/ Source field, target fields............................................................................................................20
2/ Control data.................................................................................................................................21
3/ 1:1 translation values..................................................................................................................22
4/ Interval translation Value............................................................................................................22
C/ User-defined routines.....................................................................................................................23
D/ utilisation des translations, fixed values et user-defined routines..................................................24
9/ Les fichiers à reprendre.......................................................................................................................25
A/Legacy data :...................................................................................................................................26
B/Read data : ......................................................................................................................................27
C/Converted data : .............................................................................................................................27
D/Value for wildcard n’est quasiment jamais utilisé.........................................................................27
E/ Il faut cliquer sur enregistrer avant de sortir de l’écran.................................................................27
10/ L’assignation des fichiers aux structures créées...............................................................................28
11/ Lecture des données..........................................................................................................................29
12/ Affichage des données......................................................................................................................29
13/ Conversion des données....................................................................................................................30
14/ Affichage des données modifiées.....................................................................................................30
15/ Création d’une session de reprise de données en Batch Input..........................................................31
16/ REPRISE DES DONNEES..............................................................................................................31

2/31
LSMW sert à effectuer des reprises de données.
A l’intérieur de cet outil standard, il y a plusieurs méthodes de reprise.
La méthode en Direct Input,
La méthode en Batch Input,
La méthode des BAPI,
La méthode des IDOC.

Ce document présente la seconde solution, c’est à dire la méthode de reprise en Batch Input.

Cet écran est le premier qui s’affiche lorsqu’on lance la transaction LSMW.

Lorsque l’on veut créer un ensemble de reprises de données destinées à un client, il est nécessaire de
créer un Projet, puis de spécifier un Sous-Projet et enfin un Objet..
Le projet peut être le nom de la société cliente (GROUPE-EXPERT).
Le Sous-Projet peut être le nom du module auquel se rattache (MM).
L’Objet peut être le nom de la reprise de données (Commandes).

3/31
1/ Création d’un enregistrement en Batch Input.
LSMW dispose de son propre outil d’enregistrement de Batch Input. Pour cela il faut lancer la
transaction LSMW, puis cliquer sur « GOTO » et ensuite dans « recording ».
On arrive sur une nouvelle fenêtre il suffit de cliquer sur nouveau pour obtenir la fenêtre suivante
(afin de créer un enregistrement).

Il suffit de remplir tous les champs et de cliquer sur valider. Une autre fenêtre apparaît alors, elle sert à
mettre le numéro de transaction pour laquelle on veut créer une reprise de données en Batch Input.

Il suffit de mettre le numéro de la transaction pour lancer celle ci.


Ensuite il faut remplir les champs normalement (comme un enregistrement de données classique).
Une fois que tous les champs sont remplit et que la transaction (dans notre exemple MM01) est
terminée, on revient à l’écran principal.
Il devrait apparaître comme suit :

Les données en bleues sont :

4/31
Le nom de la transaction, le nom du programme et le numéro d’écran, le nom de la zone ou la position
du curseur ou le code OK_CODE.
Les zones en blanc sont les valeurs utilisées lors de l’enregistrement du batch input. Ce seront aussi les
valeurs par défaut lors de l’exécution du programme de reprise. Il faut donc veiller à les vider avant
d’aller plus loin.
Les zones en roses sont des noms de structure que l’on voudra faire apparaître lorsqu’on construira la
structure de table pour la reprise de données (elles peuvent porter n’importe quel nom, car cela n’a
aucune incidence pour la suite.)

Une fois que tout est près, il suffit d’enregistrer toutes les modifications apportées et de sortir (touche
F3) et de commencer à préparer un projet de reprise de données.

5/31
2/ Préparation du projet de reprise.

Cet écran est le premier qui s’affiche lorsqu’on lance la transaction LSMW.

Lorsque l’on veut créer un ensemble de reprises de données destinées à un client, il est nécessaire de
créer un Projet, puis de spécifier un Sous Projet et enfin un Objet..
Le projet peut être le nom de la société cliente (IDS-SCHEER).
Le Sous Projet peut être le nom du module auquel se rattache (MM).
L’Objet peut être le nom de la reprise de données (Commandes).

A/ Création du projet :
Il faut se placer sur la case du Projet et cliquer sur l’icône « nouveau » .
On obtient alors l’écran suivant.

B/ Création du Sous Projet :


Il faut se placer sur la case du Sous Projet et cliquer sur l’icône « nouveau » .
On obtient alors l’écran suivant.

6/31
C/ Création de l’Objet :
Il faut se placer sur la case de l’Objet et cliquer sur l’icône « nouveau » .
On obtient alors l’écran suivant.

Une fois que toute ces zones sont renseignées, on peut alors cliquer sur exécuter ou alors sur la
touche « F8 » du clavier pour passer à l’étape suivante, c’est à dire le choix et la création de la reprise
de données que l’on veut traiter.

On arrive à l’écran suivant :

7/31
3/ Choix du projet de reprise
Chaque ligne de l’écran ci-dessus correspond à une étape. Certaines lignes vont disparaître en fonction
du choix de la méthode de reprise que l’on veut appliquer.

Le choix de la méthode de reprise se fait à partir de la première étape.


De toutes les méthodes de reprise, il vaut mieux préférer la reprise en direct input, car c’est l’une des
plus rapide.

Il sera étudié ici, deux méthodes de reprise, la reprise en Direct Input et la reprise en Batch Input.

Il faut sélection « Maintain object attributes » puis cliquer sur (ou double cliquer sur la ligne).

Dans le cadre « attributes », au niveau de Data transfert, il est possible de lui préciser si la reprise de
données est à faire une seule fois ou de manière périodique.

8/31
Dans le cadre « Object type and import technique » on lui précise le mode de reprise (direct input,
batch input, BAPI ou IDOC).

Pour la reprise en Batch Input.


Dans le cadre recording, il suffit de lui préciser le nom de l’enregistrement que l’on vient de faire
(COURS_BI dans notre cas). Comme dans l’image ci-dessous :

Il faut ensuite cliquer sur enregistrement et cliquer sur retour (ou touche F3 du clavier)

9/31
4/ Création des noms de structure.
Il faut ensuite passer à l’étape suivante en double cliquant sur « Maintain source structures », on arrive
à l’écran suivant.

Dans cette partie, nous allons définir les noms de structure à reprendre. Une structure peu correspondre
à un fichier à reprendre. Par exemple, Entête peut correspondre au fichier contenant les en-têtes de
commande, Commande peut correspondre au fichier contenant le corps de la commande, etc.…

Il faut tout d’abord commencer par cliquer sur nouveau .

Une fois les cases ci-dessus remplies. Il faut cliquer sur valider.

Dans le cas de plusieurs structures, il faut se positionner sur la nouvelle structure et cliquer sur
pour en créer une nouvelle. Deux possibilités sont alors possibles : soit de créer une structure sur le
même niveau, soit une sous structure comme dans l’exemple ci dessous.

10/31
Il faut ensuite cliquer sur enregistrement et cliquer sur retour (ou touche F3 du clavier)

11/31
5/ Création des structures.
Il faut double-cliquer sur « Maintain source fields » pour passer à l’étape suivante.
On retrouve le dernier écran ci dessus à la différence que cette fois ci, nous allons créer la structure
proprement dite.

Pour créer une structure, il faut se positionner sur ENTETE (par exemple) et cliquer sur pour créer
(comme ci dessous) une partie de la structure.

Si l’on est patient, on peut créer les structures une par une… Mais il existe une petite icône pour aller
un peu plus vite, surtout lorsque tout est déjà prêt…

12/31
Avec cet écran la, il est possible de créer sa structure plus rapidement, voir de la modifier plus
facilement.

Une fois que toutes les structures sont renseignées, il faut cliquer sur enregistrement et cliquer sur
retour (ou touche F3 du clavier) pour revenir à l’écran précédent et passer à une autre structure…

Lorsque toutes les structures sont renseignées, il faut cliquer sur enregistrement et cliquer sur
retour (ou touche F3 du clavier).

13/31
6/ Affectation des structures
Lorsque toutes les structures sont créées. Il faut les affecter aux structures du programme standard.

Pour la reprise des commandes, il y a deux structures standards. La première est la structure contenant
les en-têtes de commandes (MBEPOH) et la seconde qui contient le reste de la commande (MBEPOI).

Pour les affecter, il faut se positionner sur la structure standard (par exemple MBEPOH) puis cliquer
sur le bouton "Relationship".
Une nouvelle fenêtre apparaît, elle permet de faire l’affectation entre ce que vous avez sélectionné
comme structure standard et la structure que vous avez créée (point 2 et 3).
Dans le cadre ci-
contre, pour créer le
lien entre MBEPOH et
ENTETE, il suffit de
sélectionner ENTETE
et de valider cette
liaison. Pour
MBEPOI, il suffit de
renouveler l’opération.

Remarque : Une structure standard ne peut être affectée qu’à une seule structure créée.

Une fois les affections effectuées, on devrait obtenir un écran similaire à celui ci-dessous.

Pour passer à l’étape suivante, il faut enregistrer et cliquer sur retour (ou touche F3 du clavier).

14/31
7/ Création des liens entre les structures standards et les
structures créées.
Pour passer à cette étape, il faut cliquer sur la ligne « Maintain field mapping and conversion
rules ».C’est dans cette partie que nous allons créer les liens entre les deux structures (standard et
créée) et qui permettra, par la même occasion d’appliquer des corrections avant le transfert des
données dans SAP.

Lorsque l’on rentre la première fois dans « Maintain field mapping and conversion rules », ce genre
d’écran apparaît :

C’est bien sur utile, mais il est parfois préférable de mieux connaître cet écran, car il possède de
nombreux avantages.

15/31
A/ Le paramétrage.

Il est possible de paramétrer un peu l’affichage de cet écran. Dans la barre de tâche, il faut sélectionner
Extras puis Display Variant.
Une nouvelle fenêtre apparaît. Elle permet d’ajouter (ou de retirer) des parties supplémentaires de
l’écran ci-dessus.
A l’origine, il n’y a que deux
cases de cochées. Initial Field
fait apparaître les champs de la
structure standard. Coding fait
apparaître le code rattaché à
chaque champ. Technichal
field, fait apparaître des zones
spécifiques. Il n’est pas
nécessaire de faire apparaître
cette dernière.

La partie la plus intéressante sont les trois dernières cases.


Global Data Definition : Cette partie permet de définir des DATA (comme dans un programme
classique).

Processing Points : Permet d’effectuer un certain nombre d’actions avant de commencer un traitement
de données. Il fait apparaître de nouvelles lignes. Au début de l’écran :

Ainsi qu’à la fin de l’écran :

Chacune de ces nouvelles lignes permet de faire un grand nombre de traitement avant même de
commencer. Dans les reprises de commandes, le plus flagrant sera dans les textes de commande. En
effet, ces derniers utilisent beaucoup ce genre d’opération pour faire correspondre les données de
reprise aux données standards (en fait, cela permet de transformer les données de reprise en données
« sapscript » pour les insérer plus facilement dans SAP lors de la reprise).

La dernière ligne permet de créer des routines et se trouve tout à la fin de l’écran :

16/31
B/ la création des liens entre structures standards et structures créées.
En double-cliquant sur la première zone, il est possible de mettre du code ABAP tout en créant le lien
entre la structure standard et la structure créée. (Comme dans l’exemple ci-dessous.)

Un nouvel écran apparaît ou l’on peut créer son code ABAP.

Comme dans tout écran de développement ABAP, il est possible d’utiliser les contrôles et le
« pretty printer » pour mettre en forme le code.

Une fois que tout est prêt et enregistré, en revenant à l’écran précédent (F3) on obtient l’écran suivant.
Le code doit apparaître comme suit :

Il faut enregistrer et sortir une fois que tout est fini.

17/31
8/ Création de modules de conversion et de User-Define.
Il faut cliquer sur « Maintain fixed values, translations, user-defined routines » pour aller dans cette
partie. On obtient alors l’écran suivant.

Ces sous-programmes et/ou routines vont faire un certain nombre de corrections lorsque l’on fera
l’étape 12 (Convert DATA).
En se positionnant sur une des lignes (en bleu) ci-dessus, et en cliquant sur nouveau , on peut créer
un sous-programme pour effectuer des modifications sur les données.

A/ Fixed values :

En cliquant sur
valider, on repasse à l’écran initial.
Il faut double cliquer sur la ligne que vous venez de créer.
Dans notre exemple ci-contre, la
ligne créée est AKONT.

On obtient alors l’écran suivant.

18/31
Si tout apparaît
grisé, il est possible
de modifier
l’affichage en
cliquant sur .
Il sera alors possible
de changer la
longueur du champ,
le type de donnée,
lower case et de
fixer une donnée.

Il vous est maintenant possible de changer ou fixer des valeurs pour certaines zones.

B/ Translations :

Translations permet de changer des données en masse.


Par exemple, il est possible de changer une colonne entière de données comme les données
monétaires.
Cliquer sur nouveau .

En validant, on se retrouve sur l’écran initial.


Dans notre exemple ci-contre, la ligne
créée est MONNAIE.

En double-cliquant sur la ligne MONNAIE, une nouvelle fenêtre apparaît.

19/31
Dans cette fenêtre, si tout apparaît grisé, il faut cliquer sur pour faire apparaître l’écran comme ci-
dessus.

Il y a quatre sous écrans.

1/ Source field, target fields.


Dans cet écran, la fenêtre est décomposée en deux parties.
Source field : il faut préciser le type de données qui sont à reprendre. La longueur, le type et lower
case.
Target field : Il faut préciser le type de données qui seront utilisées pour la reprise. La longueur, le
type et lower case.

20/31
2/ Control data.

Cet écran est décomposé en deux parties.


La première (image ci-dessus) permet de définir les différentes possibilités pour intervertir les
données.
Dans « Variant » il est possible de définir deux possibilités, soit « 1:1 translation » qui permet de
remplacer une valeur par une autre, soit « Intervel translation » qui permet de remplacer un groupe de
valeur par une valeur (de la valeur XXX à la valeur YYY ; remplacer par la nouvelle valeur ZZZ).

Dans « First Alternative », il est possible de définir des alternatives.

Dans « Second Alternative », il est possible de définir une seconde alternative.

La seconde partie de l’écran permet d’ajouter 1:1 translation values automatiquement.

21/31
3/ 1:1 translation values.

Dans les zones « Old value », on inscrit les données que l’on veut remplacer par « New value ». Dans
notre exemple, on veut remplacer toutes les données DOLLARS par $$.
Pour que le remplacement soit appliqué lors de la transformation (étape 12), il ne fait pas oublier de
cocher la case OK correspondant à la ligne.

4/ Interval translation Value.

Dans cet écran, il faut définir la donnée de départ (Old value from) et la donnée de fin (Old value to)
qui représente l’intervalle de données que l’on veut remplacer par la nouvelle valeur (New value).

22/31
C/ User-defined routines

Une nouvelle fenêtre apparaît.

Dans la case du haut, il faut mettre


le nombre de données en entrée à
modifier à chaque exécution de la
routine. Dans la case du bas, le
nombre de données en sortie.
Pour une date 25/01/2002 à
transformer en 2002-01-25. Le
nombre de paramètre est de 1 et 1.

En validant on se retrouve sur l’écran initial :

Dans notre exemple ci-contre, la routine va


changer le format de la date de AAAAMMJJ
en JJMMAAAA.

Il faut cliquer une fois sur la routine que l’on veut modifier et ensuite, il faut cliquer sur pour
pouvoir modifier la routine en question ( dans notre exemple, c’est DATE_TRANSFORME). On
arrive alors à l’écran suivant.

23/31
C’est un écran ABAP classique dans lequel il y a déjà un certain nombre de données par défaut (en
fonction du nombre de paramètre d’entrée et de sortie mis un peu plus haut).

D/ utilisation des translations, fixed values et user-defined routines.

Pour que les conversions se fassent au cours de l’étape 12, il faut écrire dans « Maintain field mapping
and conversion rules » (au niveau de la zone à modifier) un appel au forme que l’on vient d’écrire
(étape 7a, 7b ou 7c) qui doit avoir la forme suivante :
Dans le cas d’un user-defined routines :
perform ur_DATE_TRANSFORME
changing p_out .
* code à écrire
endform.

24/31
9/ Les fichiers à reprendre.
Une fois que toute la partie « programme » est écrite, il faut préciser l’emplacement des fichiers à
reprendre et quelques caractéristiques techniques les concernant.

Dans le menu principal, il faut cliquer sur « Specify files », on arrive alors à l’écran suivant :
Pour créer une
nouvelle ligne
(telle que dans le
sous répertoire
« Read data », il
faut se
positionner sur la
ligne rose dans
laquelle on veut
créer la ligne,
puis il faut
cliquer sur
nouveau .

25/31
A/Legacy data :
Une des deux lignes doit être renseignée. Elle sert à indiquer ou se trouvent les fichiers (la première
ligne correspond au serveur de présentation, et la seconde correspond au serveur SAP).
En cliquant sur nouveau (ligne Legacy data) on obtient l’écran suivant :

Cet écran est décomposé en 6 parties.


- Le nom du fichier et son emplacement avec la description.
- File contents : le type de données qui se trouvent à l’intérieur du fichier.
- Délimiter : c’est l’élément qui va servir à déterminer le point de séparation entre deux données.
- File structure : pour indiquer si l’entête figure ou non dans le fichier.
- File type : cela sert à indiquer le mode de fin de fichier, ou pour lui préciser le nombre
d’enregistrement à prendre.
- Code page : le type de donnée (en général ASCII).

26/31
Une fois ces informations fournies, on obtiendra l’écran suivant :

B/Read data :
Cette ligne est un peu spéciale, elle sert à stocker les données avant la conversion (le données seront
sur le serveur), il faut donc renseigner le nom. Par défaut le nom est
NOMduPROJET_NOMduMODULE_NOMdeREPRISE.lsmw.read. Le nom ne doit pas dépasser un
certain nombre de caractères.
En double cliquant sur la ligne à modifier on obtient la fenêtre suivante :

C/Converted data :
Dans cette ligne figure le nom du fichier (sur le serveur) qui recevra les données qui sont converties.
Elles serviront par la suite à envoyer les données dans SAP. ?
En double cliquant sur la ligne à modifier on obtient la fenêtre suivante :

Il est possible d’indiquer un emplacement (logical path) et un nom de fichier (logical file).

D/Value for wildcard n’est quasiment jamais utilisé.

E/ Il faut cliquer sur enregistrer avant de sortir de l’écran.

27/31
10/ L’assignation des fichiers aux structures créées.
Dans le menu principal, il faut cliquer sur « Assign files », on arrive à l’écran suivant :

Il suffit de se positionner sur la partie de la structure à laquelle on veut attribuer un fichier de reprise.
En sur positionnant sur « ENTETE » par exemple. Il faut cliquer sur pour obtenir
l’écran suivant :
Il faut maintenant
sélectionner le fichier qui
correspond aux entêtes
(afin de l’affecter à la
structure ENTETE). Puis
il faut valider pour que
l’affectation se fasse.
Après validation, on
obtiendra l’écran ci-
dessous.

28/31
11/ Lecture des données.
Dans le menu principal, il faut cliquer sur « Read data ». Le programme va alors commencer à
uploader les données du serveur de présentation sur le serveur.

Il est possible de demande qu’un certain nombre de lignes soient traitées.


Ensuite, il va faire correspondre les données en fonction de la structure qui a été défini dans les
premières étapes.

12/ Affichage des données.


Dans le menu principal, il faut cliquer sur « display read data ».
Il est possible de vérifier que tout est en ordre en affichant les données qui ont été uploader.

Avant d’arriver à l’affichage, il est possible de lui demander de n’afficher qu’un certain nombre de
lignes. Ligne 200 à 250 par exemple.

L’affichage se fait selon un code de couleur. Une couleur par fichier de reprise. Dans le cas de la
commande, l’entête serait de couleur jaune, et les données de commande seraient de couleur bleue, etc.

29/31
13/ Conversion des données.
Dans le menu principal, il faut cliquer sur « Convert data ».
Le programme va construire les structures de fichier, et les tables qui vont contenir les données. De
même il va convertir toutes les données pour qu’elles soient conformes aux spécifications données à
l’étape 6.

Avant de convertir les données, il est possible de ne convertir qu’un certain nombre de donnée (par
nombre de transactions.)

14/ Affichage des données modifiées.


Dans le menu principal, il faut cliquer sur « Display converted data ».
Il est possible de vérifier que toutes les transformations ont bien été effectuées.

Avant de vérifier la conversion des données, il est possible de lui demander de n’afficher d’un certain
nombre de lignes.
L’affichage se ensuite comme suit :

30/31
15/ Création d’une session de reprise de données en Batch
Input.
Une fois que tout est correctement convertit, il est alors possible de créer une session de Batch Input.
La création de session est plus ou moins longue selon le nombre de données à reprendre.

Pour créer une session de reprise de données, il faut cliquer sur « Create batch input session » et suivre
les indications.

16/ REPRISE DES DONNEES.


Si tout est bon, il ne reste plus qu’une seule étape à faire… L’envoi de données.
Dans le menu principal, il faut cliquer sur « Run Batch Input session » et laisser le programme
reprendre les données.

Il est aussi possible de passer directement par la transaction SM35 pour lancer la reprise de données.

Il faut laisser tourner le programme jusqu’à la fin.

Remarque : Dans certains cas, il est préférable de faire des tests pour voir si toutes les données sont
bien reprises correctement et placées dans les bonnes zones. Il vaut mieux donc passer par la
transaction SM35, et faire un test sur le premier article (ou autre) en lançant la reprise en avant plan.
Par la suite il est possible de sortir de l’exécution du batch input (/BEND dans la zone OK_CODE) et
de relancer le traitement en arrière plan.

31/31

Vous aimerez peut-être aussi