Professional Documents
Culture Documents
Go to transaction LSMW.
Create Project:
Click on “Continue”.
Create ‘Subproject’:
Click on “Continue” and create Object.
Click on Continue.
Here mention object and method in standard batch/Direct input radio button and press enter ,it will give
standard program name . SAVE and go back.
Save and go back .
Here mention the what ever fields we require and flat file should be in the same structure .
Nothing should be done in this step .(we will go for this step rarely).
6. specify files :
Here to specify files take file from legacy data ( on the pc front end ) .
click on legacy data and click create button. And browse for your flat file on your pc . (create flat file for
your structure in second step.). here in imported data it will take only 45 characters .
7 : Assign Files
To assign files click cursor on structure and click assignment .it will assign to file .
8: Read Data
Click on “Continue”.
Create ‘Subproject’:
Click on Continue.
Click on “Continue”.
Select the radio button “Maintain Source Fields” and click on Execute
Now select ‘Maintain Field Mapping and Conversion Rules’ and click Execute
Now we need to assign the relationship between source structure (of the input file) and the target
structure (from the recording).
Select the field from the list and click on “assign source field”:
Save and go back to the previous screen.
Provide the location of the test data file and other details as shown below:
Click on Continue, next SAVE.
If you get any error like this:
Then click on Converted data file, and reduce the file name.
To see the data that is read, use “Display read data” on the main screen.
Double-click on the record.
Now come back to the main screen and select “Convert data”
To check, if the data has successfully converted from source structure to target structure, select “Display
Converted data”
Double-click on the record.
Now create batch input session and the run the same.
Now run the session to upload the data.
2 LSMW
The Legacy System Migration Workbench (LSMW) is a tool that supports data migration from legacy
systems (non-SAP systems) to SAP systems. It is a cross-platform component of the SAP system. The
tool has interfaces with the Data Transfer Center and with batch input and direct input processing as well
as standard interfaces BAPI and IDoc.
The tool migrates user-defined datasets (known as objects), which are combined according to business
criteria instead of individual tables or field contents. In addition to using standard import techniques, the
user-specific objects can be generated.
The LSMW supports a one-time transfer of data (initial data load) and also offers a restricted support of
permanent interfaces. Thus, a periodic transfer of data is possible. The LSMW, however, does not include
any functions for monitoring of permanent interfaces. The tool does not support any data export interfaces
(outbound interfaces).
Fig : LSMW-Process flow diagram
3 Creation of Project Hierarchy
Use the Transaction Code LSMW to go to the initial screen. Create a project, corresponding subproject
and object using Edit -> Create entry on menu bar. This is a hierarchy maintained in LSMW for all the
data transfer done.
Fig-01: LSMW - create project hierarchy
Create a project, subproject and an object and click on continue. The following screen is displayed
with the Project hierarchy details:
Fig-02: LSMW- Initial screen
Once the project Hierarchy is being created, an enumeration of steps for data migration is displayed
as shown in Fig-03 below.
This can be changed depending on the requirement of the user. For this “User Menu” tab in the tool
bar needs to be clicked and all the necessary steps required for data transfer need to be selected.
Fig-03: LSMW initial screen with user menu for selection of various steps.
4 Step by Step Process for uploading BP master data:
The screenshot as in Fig-04 displays the fourteen steps required for loading Business partner data
along with their relationships:
Fig-04: Fourteen steps involved in LSMW
The following pages describe each of those fourteen steps and key points to be remembered in each
step.
4.1 Maintain Object Attributes
In this step a Recording needs to be created (using GOTO -> Recordings overview in menu bar as
shown in Fig-05) using Transaction code BP.
Once recordings overview is clicked the following screen as in Fig-06 will be displayed. Enter a name and
description to the recording.
Enter the transaction for which the recording is to be done as shown in Fig-07
Here the Business partner category needs to be chosen, under which the customers should be created.
Click on Organization as shown in Fig-08:
Select a Grouping and a Business Partner number in that Grouping and the role under which the
customers needs to be created. Enter all the necessary details for business partner that needs to be
loaded from the flat file:
Fig-09: Shows Business partner number, Grouping and Role and other details entered. “External
Grouping for loading the Customers and Accounts” has been used.
Maintain relationships for the Business partner, as shown in fig-10 if relationships also need to be
mapped from flat file.
Fig-10: Displays three Relationships of BP number 1100.
Once all the details have been entered save the Business Partner and click on back icon to go to
recording that we created.
Click on the fields displayed in orange color to change the name and default value of the fields. And
let the other fields remain same whose values need to be defaulted to existing values.
Fig-11: Displays the first screen of Recording ZRECORDC
Fig-12: Displays the second screen of Recording ZRECORDC
Fig-13: Displays the third screen of Recording ZRECORDC asking details for relationships.
Now once recording is done, this is the first step of LSMW menu where the way or method of Import
needs to be decided. There are generally four choices:
- In this method a Recording of the transaction needs to be created which is later run as
a Batch input Session.
- Here the BAPI takes care of the data conversions and updating any database table.
So the function module is responsible for the import of data into the system.
- Here the data is written into an IDoc and passed to the LSMW to get it imported into
the system.
However This Document discusses the import of data through Batch input Recording Method.
Fig-14: Choose the “Batch input recording” radio button and give the name of the recording that has
been done earlier. Then save the object attributes.
The LSMW system has to have the prior knowledge of what kind of data it is getting from the source
that has to be imported into the system. For this reason the following three steps are very important
that describe the structure of the files that has to be imported.
4.2 Maintain Source Structure
Go to main menu in LSMW as shown in Fig-04 and click on second step: Maintain Source Structure
and the following screen as in Fig-15 will be displayed:
Click on create icon, enter a name and description to the source structure and click on continue.
Then save the source structure and click on Back icon on the top of the screen.
4.3 Maintain Source Fields
Go to LSMW Menu screen as shown in Fig-04 and Go to Third step: Maintain Source Fields.
Select the source structure that was created and click on Table maintenance as shown in Fig-16
Once Table Maintenance has been clicked, enter Field name, Data type and Length of all the fields under
the required structure as it will appear in the input file. Even it is important to keep the sequence of the
fields according to their position in the file. Give name to the fields and save it. Fields, that have constant
value like Grouping, Role etc need not be maintained in this table and those fields need not be included in
the flat file.
Generally it is important to keep the data type and size of the fields same as that of the corresponding
field in database table. However this might not be possible in all the cases, then the issue needs to be
handled through the conversion routines.
4.4 Maintain Structure Relations
Go to LSMW Menu screen as shown in Fig-04 and Go to Next step: Maintain Structure Relations. The
following screen as shown in Fig-18 will be displayed. Save it and go to next step.
Structure relations are the mapping between the structures we have declared in the previous steps with
the recording done. However the one to one mapping of the fields will take place in the next step. Here
only the high level correspondence is shown
4.5 Maintain Filed Mapping and Conversion Rules
In the previous step the recording is mapped to the structure. There it automatically creates a one to one
correspondence with the fields of both the sides and show in this stage as tree structure. Here each
source field needs to be assigned to its corresponding target field in the recording side. A simple way to
do this is to select the field from recording and press the tab “Assign source field” which will give a list of
fields in the source structure and then select the filed that needs to be mapped to field in recording.
Fig-20: Field Mapping-Next Screen
To maintain constant value to a field select that field in the recording and click on Constant (Ctrl+F9) Icon
as shown in Fig-20 and a constant value can be assigned to that field.
The following fields have been assigned constant values as displayed below:
Here the conversion rules for processing project data need to be defined. The system generates the
conversion program from the structure and field relationships as well as the conversion rules.
Customization required for migration of data also needs to be specified here. That is, fixed values and
translation values can be assigned and definite variants for the conversion rules can also be specified
here.
Once the previous step of mapping each field to the source structure has been done, the next step is
mentioning the file path to be selected for importing.
Here apart from the physical path, other attributes of the file that is to be imported also need to be
specified. For example if it is a comma separated or tab delimitated file and if the file contains the field
name as Start of File etc.
There are other file-paths that can be mentioned, such as the file for imported data, converted data, etc. if
necessary we can choose to change the existing file path that has been defaulted.
4.8 Assign Files
Once the file has been specified as in previous step, this file needs to be assigned.
So in this step select source structure and then click on save.
4.9 Read/Import Data
Once assign the file has been assigned, next step is to execute the program as shown in Fig-24 to import
the data from the file and put in the structure maintained earlier. For reference the test file that is imported
is given below. This is a tab delimitated text file with header row. When it s run, the above program gives
the output as in Fig-25. However the successful import data can also be seen from the main menu.
Once the data is imported, it can be displayed using this step. Once this step is selected and continue
icon is clicked, system would display the following screen where all the imported data can be seen. Each
row can be selected to see all the details of each customer.
4.11 Convert Data
Once the data is imported to the structure then go to the next step in the main menu that is- Generate
conversion program, Convert data and display converted data. The first step generates the program that
converts the data imported into the structure to the structure of Recording - ZRECORDC. This take care
of all the conversion earlier mentioned. This step converts the data executing above program and store it
in the filename given earlier. The result is shown as in Fig-27 & Fig 28. Also the converted data can be
seen as in Fig-29.
Fig-28: Converted Data
4.12 Display Converted Data
Once the data is converted, all the Converted data can be seen in this step. Once this step is selected
and continue icon is clicked, system would display the following screen where all the Converted data can
be seen. Each row can be selected to see more details of each customer.
In this step a Batch input session needs to be created. For creating a Batch Input Session, Go to main
menu in LSMW as shown in Fig-04 and click on next step: Create Batch input session and the following
screen will be displayed. Click on execute.
Fig-26: Intermediate screen showing the file path for creating Batch input Session.
Once execute is clicked, system will display the following screen with the number of transactions
(Business Partners) being created.
4.14 Run Batch input session
This is the final step where system processes the session to get all the data upload into the database
through the given transaction (here BP- creating a Business Partner). For this it takes to the session over
view screen as in Fig-27 and asks about the way of execution whether it should execute in the foreground
or in the back ground. So select the line item and click on process icon on top. A new window pops up as
shown. Then the type of processing mode needs to be selected. Processing mode Display errors only
has been used which would display any errors encountered during creating business partners.
Once this step is processed, system will upload all the 450 Business Partners as in flat file into the
respective database tables.
In this document since BP transaction has been used, so it will create 450 Business Partners in SAP
CRM Database tables. To see the Business Partner data updated in the system use Transaction SE16
and follow the steps as displayed in Fig-28, Fig-29 and Fig-30. Now all the business partners along with
their relationship data can be seen that have been uploaded into the CRM System using Transaction BP.
Fig-29: Intermediate screen asking for certain criteria to display Business partners. Enter the criteria and
click on execute.
Business Case:
In Business scenario, it is required to upload the data into R/3 and process the data in the IDOC form
only. The data can be migrated to R/3 SAP system using IDOC Generation Method in LSMW. The data to
be uploaded can be regarding material, vendor, customer etc. IDOC is the container, which stores the
data in structured format and is used to communicate between R/3 systems. IDOC structure includes
Status Record for storing status information of IDOC dispatch, Data Record for storing data into
segments and its corresponding fields and Control Record has receiver and source system details etc.
This document contains Step‐by‐Step instructions to use LSMW to generate and process IDOC from the
data file available. In first part user‐defined IDOC structure is created and required ALE settings are done
.In the Second part, this IDOC structure is used in the LSMW IDOC.
Part One: To create IDOC structure
Step One: Run transaction WE31.Create Segment with name ‘ZEMP_SEG’.
Step Two: Input the fields for the segment structure, which would be required in LSMW for mapping
purpose.
Step Three: Now, Go to Edit ‐> Set Release, so that you can use this segment in the R/3 system further.
Step Four: Run transaction ‘we30’ and enter IDOC structure name we want to create.
Here, IDOC structure name is ‘ZEMP_IDC’.
Step Five:
(A)Add segment created earlier to this IDOC type ‘ZEMP_IDC’.
The maximum and minimum repetitions can be from 000000000000 to 99999999999.
Choose any number rang as per requirement.
Now, Go back to earlier page and Click Edit‐> Set Release.
(B)Create new Message type in transaction ‘WE81’.
(C) Attach message type and IDOC type with the help of transaction ‘WE82’.
Step Six: Go to transaction ‘SALE’. Click as marked in red color.
Now add two logical system names for sender and receiver ex. IDC64 and IDC87.
Select the client of your current system as per decision to make that system sender or receiver.
After clicking on to Goto->Details , you come to following screen. Input receiver system
‘IDC87’ to client 800.
Here in our LSMW using IDOC method, no need to assign client to sender as we are doing
Inbound IDOC Processing (i.e. Receiver side).
Step Eight: Run transaction ‘WE21’ to create File port. Give directory name as the location of
your file to be read. Give dummy name for ‘Outbound file’ field.
Step
Nine: Run ‘SM59’ transaction to create RFC connection. Please make sure here connection type
is ‘T’ for TCP/IP .
Step Ten: Run transaction ‘WE20’ to create partner profile for partner of receiver system
(IDC87) i.e. sender system (IDC64).
Step Eleven: Create process code using ‘WE42’.
After saving this data, you go screen as below to attach function module to the process code. The
process code is the representation of the function module for inbound idoc processing.
Step Twelve: Now you can use this process code in the inbound parameters of the partner’s
profile.
Part Two:
Step One:
Enter the project, sub-project and Object name for our scenario.
Step Two:
Click the first radio button ‘Maintain Object Attributes’ , execute and enter the message name
and IDOC name into the screen as follows.
Step Three:
Click radio button ‘Maintain Source Structures’ and execute to create new source structure as
follows.
Step Four:
Click radio button ‘Maintain Source Fields’ and execute to enter the fields in the source
structure. Here these fields are same as the fields in segment of the IDOC created earlier.
Step Five:
Click radio button ‘Maintain Structure Relations’ and execute to create relationship between
source and target structure. Here target structure is Message type ‘ZEMP_MSG’.
Step Six:
Click radio button ‘Maintain Field Mapping and Conversion Rules’ and execute to create field
mapping and a conversion rules between source structure and target structure.
Step Seven:
Click radio button ‘Maintain Fixed Values, Translations, User-Defined Routines’ and execute to
assign fixed values to any field, to call user defined routines etc. These activities are not required
in our scenario.
Step Eight:
Click radio button ‘Specify Files’ and execute to assign file on the local workstation to the
LSMW to read. The file has contents as shown below.
Click radio button ‘Specify Files’ and execute to specify file to source structure as follows.
Step Ten:
Click radio button ‘Read Data’ and execute to read file from local workstation as per path
specified.
Step Eleven:
Click radio button ‘Display Read Data’ and execute to display data just read.
Step Twelve:
Click radio button ‘Convert Data’ and execute to create a file with extension ‘.conv ’.
Step Thirteen:
Click radio button ‘Display Converted Data’ and execute to display the converted data.
Step Fourteen:
Click radio button ‘Start IDoc Generation’ and execute to generate the IDOC from the data
provided and structure mapping done earlier in this document. For this purpose, we cam use the
converted file in step twelve. After successful generation of IDOC, below shown message is
displayed.
Step Fifteen:
Click radio button ‘Start IDoc Processing’ and execute to process the IDOC by inputting
necessary selection parameters.
Step Sixteen:
Click radio button ‘Create IDoc Overview’ and execute to show status and details of IDOC
generated. This screen is similar to ‘WE02’ or ‘WE05’ transaction.
Here , as you can see , the status of IDOC is OK (Green color Bubble) and hence confirms
successful processing of IDOC.
Step Seventeen:
Click radio button ‘Start IDoc Follow-Up’ and execute to reprocess the IDOC if not posted or
generated properly initially.
Requirement is to convert Purchase info records data from an excel sheet into SAP ECC using IDOC.
Select IDOC radio button and give "Message Type and " Basic Type".
Click on Save .
The following screen shots explain the activating IDOC Inbound processing.
Click " IDOC inbound processing “ under settings.
Here maintain ' port ' and 'partner type ' and partner number here and press 'Activate Idoc inbound
processing ".
Here for message type "SRCLST” process code is "SRCL”. This has to maintain while maintaining
partner type.
This tutorial illustrates the usage of BAPI method in the LSMW, a tool provided by SAP for migrating the
data from Legacy Systems into SAP.
This example demonstrates the migration of BANK data into SAP In ECC6.0.
2. Method: Create
Click on Maintain port provide select port type FILE and click on create
Provide Port name as FILE_PORT.
Click on save.
Then it displays our created FILE_PORT as Below.
NOTE: Before Providing Partner no go to transaction SALE and do the following settings.
Enter Provide Logical system name as we created.
And save.
NOTE END.
Click on SAVE.
PROVIDE Partner number as LSMW_BAPI.
NOTE: Then it shows a screen With 17 Steps, which are to be executed sequentially as below.
STEP1.
NOTE: Make sure that Message type and Basic type Comes Automatically.
Save.
BACK.
STEP2.
Select Source Structure and click on create Provide source structure name and Description.
Enter and Save.
Back.
STEP3.
STEP4.
STEP5.
Execute.
Select BANK_CTRY, BANK_KEY,BANK_NAME and click on source field.
Now Double click on corresponding fields from the above popup window.
STEP6.
STEP7.
Specify Files.
Click on Execute
STEP8.
Assign Files.
Execute and Save.
STEP9.
Read Data.
Execute.
Execute.
Enter.
STEP11.
Convert Data.
EXECUTE.
Execute.
STEP 12.
Enter.
Back.
STEP13.
Execute.
And Execute.
STEP14.
Execute.
Execute.
STEP15.
Execute.
Double click on IDOC Number.
STEP 16.
Start IDOC follow-up.
Test the posted data in the database table.
Go to SE11
Note! The screen prints in this article are from ECC 5.0. They may differ slightly in other versions.
Introduction:
This document details the usage of BAPI in LSMW. We have used the example of migration of the
purchase order data into SAP.
Pre‐requisites:
It is assumed that the reader of this article has the minimum knowledge required on the Business
Object, BAPI, Message Types and IDoc Types.
Step‐by‐Step Procedure:
Details of the BAPI used in this scenario:
Business Object: BUS2012
Method: CreateFromData
Details of Message Type and Basic IDoc Type:
Message Type: PORDCR
Basic IDoc Type: PORDCR02
Let’s have a look at the BAPI first, before proceeding to the LSMW:
1. Go to Transaction BAPI
2. Click on Search Button
3. Enter the value “BUS2012” and select “Obj.type(Technical Object Name”
4. Press ENTER
5. Following screen appears:
Building LSMW using BAPI:
1. Go to Transaction LSMW.
2. Enter the Project, Subproject and Object information and click on CREATE.
3. Enter the descriptions for Project, Subproject and Object as prompted.
4. Now select Settings Æ IDoc Inbound Processing
5. “IDoc Inbound Processing” screen appears. Enter the required details as shown below:
10. Select the Step 1 “Maintain Object Attributes” and select “Execute”.
11. Select the radio button “Business Object Method” and enter the following details:
Method: CreateFromData
Hit ENTER
12. Save and click on BACK button. Following information message is displayed.
13. Now select step 2 “Maintain Source Structures” and click “Execute”.
14. In this step, we need to maintain the source structure. In our example, lets consider the
example of a file with 2 structures Head and Item data as shown below:
Click on Create and name the source structure as HEADERDATA. Now select
HEADERDATA and click on “Create” again to create the child structure. Following popup
appears:
Select “Lower Level” and click on Continue. Enter the Item data structure name.
Click Save and hit BACK button to go to the main screen.
Similarly do the same for the structure E1BPEKKOA, E1BPEKPOC and E1BPPEKET.
Click Save and return to main screen.
19. Select the step “Maintain Field Mapping and Conversion Rules” and click on execute.
Maintain the Field Mapping as seen below:
20. Select step 7 “Maintain Source Files” and provide the link for the test file created. (Create a
test file with the same structure as defined earlier).
Assign the file provided to the source structure. Here the same file is provided for both the
structures.
Save and return to the main screen.
Click on Execute.
23. Select the step “Display read data” and click on execute.
Click on the structure name to get the field level values.
27. Now select the step “Start IDoc Processing” on the main screen.
28. Return to main screen and click on “Create IDoc overview”. Here the data record and status
records of the IDoc could be viewed:
Provide descriptions for Project, Subproject and Object respectively. And press execution button.
Step3: “IDOC Inbound Processing” screen appears. Enter the required details as shown below:
Step4: Define port and partner profile.
Now come back to initial screen and click execute button.
Provide Method
Save and click BACK button.
Step7: Now select step2 ‘Maintain Source Structure’ and click execute button.
Step8: Place the cursor on Source structure and click create. Provide name and description
Step9: Select step3 ‘Maintain Source Fields’ and click execute button.
Press create button and provide details for Field Name, Field Description and Field Length.
Step10: Enter all required fields as shown below.
Note! The screenprints in this article are from IDES Release 4.6. They may differ slightly in
other versions.
Call Legacy System Migration Workbench by entering transaction code LSMW. Every
conversion task is grouped together as Project / Subproject / Object structure. Create a Project
called LSMW_DEMO and a Subproject as CUSTOMERS and Object as CUST_REC as
shown in Figure 1.
Figure 1 Conversion Task with Project, Subproject and Object
The main screen of LSMW provides wizard-like step-by-step tasks, as shown in Figure 2. To complete your
data conversion, you need to execute these steps in sequence. Once a step is executed, the cursor is
automatically positioned to the next step.
Note that these steps may look different depending upon your Personal menu settings. You
could make step numbers visible by ‘Numbers on’ icon or hidden by ‘Numbers off’ icon. You
can execute a step by double-clicking on the row. Toggle icon ‘Doubleclick=Display’ or
‘Doubleclick=Edit’, makes the step in ‘display’ mode or ‘change’ mode.
Figure 2 LSMW Wizard – initial screen
In this example, you will be updating the customer master records with the help of recording a
transaction (XD02). Choose radio button Batch Input Recording and click on the recording
overview icon to record the R/3 transaction. Enter the Recording name as XD02_REC, the
description as Customer Master Updates Recording, and the transaction code as XD02.
The system calls the transaction code XD02 and prompts you to complete the Change
Customer transaction, as shown in Figure 4. Enter the key customer information (I entered
customer number 1000, sales organization 1000, distribution channel 01, and division 00) and
choose ‘Sales’ view within ‘Sales area data’. Make changes to these three fields (I entered, sales
office 1010, sales group 110, and customer group 01) and save the transaction.
Figure 4 Transaction recording for Transaction Code ‘XD02’
Once the transaction is completed, R/3 records the flow of screens and fields and saves the
information, as shown in Figure 5.
Default Values
Field Names
Figure 5 Transaction recording overview
Note that the fields are populated with default values. The values you entered when you recorded the
transaction are set by default.
Note that if you have more fields in the recording than needed, you can remove them by clicking
‘Remove Screen field’ icon.
Observe that the transaction-recording process stores field names in a technical format. By
pressing the F1 key on individual screen fields and then pressing the F9 key, the system displays
technical names. You then can replace the technical names with descriptive names. Double-click
on the field RF02D-KUNNR and enter the name as KUNNR and the description as Customer
Account Number and remove the default value. (See Figure 6.)
Similarly, double-click on all other fields with default values and make appropriate changes. Once you have
made changes, the recording overview screen looks like what you see in Figure 7.
Figure 7 Transaction Recording Overview – with screen field attributes
Save your changes. When you go back to the initial screen, you will see that the initial screen
steps have changed. Since you want to import data via the BDC method, the Direct Input and
IDoc-related steps are hidden, as they are not relevant.
In this step, you need to list what fields are present in the source structure. The easiest way is to
click on ‘Table Maintenance’ icon to enter Fieldname, Type and Length for each field as
shown in Figure 9.
Figure 9 Source fields of source Structure
Note that your input file will have four fields as key fields and you need to update three fields in
the system.
Execute a step to ‘Maintain Structure Relations’. (See Figure 10.) Since, there is only one Source and Target
Structure, the relationship is defaulted automatically.
Field RF02D-D0310 represents that you chose ‘Sales view’ for the customer Master screen accordingly its
value should be set to X. Keep your cursor on field RF02D-D0310 and click on Constant rule icon to choose
the constant value of ‘X’.
If your source file already has the field value, you choose rule ‘Source Field’.
Keep cursor on field ‘KUNNR’ and click on ‘Assign Source field’ icon to choose source field
CUSTOMER from structure XD02S as shown in Figure 11.
Figure 11 Assign source fields
Once all the fields are mapped, you should have an overview screen as shown in Figure 12.
You can also maintain re-usable translations and user-defined routines, which can be used across
conversion tasks. In this case, that step is not required.
In this step, we define how the layout of the input file is. The input file is a [Tab] delimited with
the first row as field names. It is present on my PC (local drive) as C:\XD02.txt. (See Figure 13.)
Figure 13 File attributes
Create an Excel file (Figure 14) with your data and save it as a Tab-delimited text file on your
local drive (C:\) and name it XD02.txt.
Execute step ‘Assign Files’ (Figure 15) and the system automatically defaults the filename to the
source structure.
Figure 15 Assign file to Source Structure
In this step, LSMW reads the data (Figure 16) from the source file (from your PC’s local drive).
You have the option to read only selected rows and convert data values to Internal format.
This step (Figure 17) is optional. If required, you can review the field contents for the rows of
data read.
This is the step that actually converts the source data (in source format) to a target format. Based
on the conversion rules defined, source fields are mapped to target fields.
Again this is an optional step to view how the source data is converted to internal SAP format
(Figure 18).
Once the source data is converted in an internal format, you can create a batch session to process
updates (Figure 19).
You can execute the BDC session by Run Batch input session. Executing a batch input session is a standard
SM35 transaction for managing BDC sessions. Once you have successfully executed the batch input session,
the customer master records are updated in the system. You can confirm this by viewing the customer master
records (XD03).
Note! Browsing thru these 14 steps, you may get a feeling that this is a very lengthy and time-
consuming activity. However, for the purposes of demonstration, I have made it detailed.
Although it looks lengthy, actually it takes hardly few hours from start-to-finish! After playing
around with few simple LSMW scripts, you will find it so easy to change and create more
complex ones.
Step1: Use the transaction code LSMW to upload the data using Legacy System Migration Work Bench.
Here in this scenario, uploading Material Master Data using Batch Input Recording.
Step2: Click the create button on ‘Main screen’ and provide descriptions for Project, Subproject and
Object. And click execution button.
Step4: Select create button and provide recording name and descriptions.
Step5: Recording as shown below.
Save and return to main screen.
Step6: Now select step2 ‘Maintain Source Structure’ and click execute button.
Step7: Place the cursor on Source structure and click create. Provide name and description
Step8: Select step3 ‘Maintain Source Fields’ and click execute button.
Press create button and provide details for Field Name, Field Description and Field Length.
Step9: Enter all required fields as shown below
Step12: Select step7 ‘Specify Files’. Create a test file with the same structure as defined earlier.
Step‐by‐Step Guide for using LSMW to Update Customer Master Records
Note! The screenprints in this article are from IDES Release 4.6. They may differ slightly in other versions.
As an alternative to using ‘Transaction Recording’, you could also use a standard SAP object to update
Customer Master Records. Business Object ‘0050’ is already pre-defined in the system with standard Batch
Create an Object CUST_OBJ within Project as LSMW_DEMO and Subproject as CUSTOMERS as shown in
Figure 20.
Figure 20 LSMW Object with Standard SAP Object
Note! Only steps that are different from the recording method are listed here.
Step 1: Maintain Object attributes
You will be updating the customer master records with the help of Standard Batch Input; therefore,
choose radio‐button Standard Batch/Direct Input as shown in Figure 21. Enter Object ‘0050’ for
Customer Master records and default method ‘0000’ and click on Save.
Sales view of Customer Master is stored in table KNVV. Accordingly, you need to update structure
BKNVV. However, in addition, the Standard Object ‘0050’ also requires updates to BGR00, BKN00 and
BKNA1 structures. (If you do not maintain Structure relations for mandatory entries, you might get a
message such as ‘Target structure BKNA1 needs a relation to a source structure’.)
Even though you don’t want to update any fields in these structures, you need to create a relationship
with source structures. In all, you need to create relationship for four target structures.
Create relationship between source structures XD02S with these target structures with icon ‘Create
Relationship’ .
Keep Cursor on these four target structures and click on icon ‘Create Relation’ and structure relations
are maintained as shown in Figure 22.
Figure 22 Structure Relation
-- Keep your cursor on ‘TCODE’ field and click on ‘Insert Rule’ icon
Figure 23 LSMW Conversion Rules
Choose radio button ‘Constant’ (Figure 23) to enter value ‘XD02’ transaction code.
‐‐ Keep your cursor on field ‘KUNNR’ and click on ‘Assign source field’ icon
Choose source field ‘Customer’ from source structure ‘XD02S’. (See Figure 24.)
‐‐ Scroll down to structure BKNVV fields and assign source fields to three fields Sales Office, Sales
Group, and Customer Group (Figure 26).
Save and go back to main screen.
Step 12: Display Converted data
When you convert data, LSMW automatically converts into the appropriate structure layouts, as
required by Standard program (RFBIDE00). (See Figure 27).
Figure 27 Converted data into multiple structures
Note that if you had only one record in source file, the converted file has four records.
Earlier, creating this input file, so that the standard interface program can read it, was a big nightmare,
the primary reason being that it could have multiple record layouts. Even for a simple conversion with
one input record, you would have to create this complex file with many record layouts. The advantage
of LSMW is that it prepares these multi‐layout files automatically.
Step 13: Create batch input session
Once source data is converted in internal format, you can create a BDC session to process the updates
(Figures 28 and 29).
Figure 28 Create BDC Session
Figure 29 BDC Session ‘CUST_OBJ’ created
Uploading Material master data using Direct input method
Step1: Use the transaction code LSMW to upload the data using Legacy System Migration Work Bench.
Here in this scenario, uploading Material Master Data using Direct Input Method.
Step2: Provide the following details as shown and enter CREATE BUTTON.
Project : YPRO_MAT
Subproject : YSUB_MAT
Object : YPBT_MAT
Step5: Now select step2 ‘Maintain Source Structure’ and click execute button.
Step6: Place the cursor on Source structure and click create. Provide name and description
Step7: Select step3 ‘Maintain Source Fields’ and click execute button.
Press create button and provide details for Field Name, Field Description and Field Length.
Step7: Now select step2 ‘Maintain Source Structure’ and click execute button.
Step8: Place the cursor on Source structure and click create. Provide name and description
Save and click BACK button.
Step9: Select step3 ‘Maintain Source Fields’ and click execute button.
Press create button and provide details for Field Name, Field Description and Field Length.
Batch Data Communication (BDC) is the oldest batch interfacing technique that SAP provided since the
early versions of R/3. BDC is not a
typical integration tool, in the sense that, it can be only be used for uploading data into R/3 and so it is not
bi-directional.
BDC works on the principle of simulating user input for transactional screen, via an ABAP program.
Typically the input comes in the form
of a flat file. The ABAP program reads this file and formats the input data screen by screen into an internal
table (BDCDATA). The
transaction is then started using this internal table as the input and executed in the background.
In Call Transaction, the transactions are triggered at the time of processing itself and so the ABAP
program must do the error handling.
It can also be used for real-time interfaces and custom error handling & logging features. Whereas in
Batch Input Sessions, the ABAP
program creates a session with all the transactional data, and this session can be viewed, scheduled and
processed (using
Transaction SM35) at a later time. The latter technique has a built-in error processing mechanism too.
Batch Input (BI) programs still use the classical BDC approach but doesnt require an ABAP program to be
written to format the
BDCDATA. The user has to format the data using predefined structures and store it in a flat file. The BI
program then reads this and
invokes the transaction mentioned in the header record of the file.
Direct Input (DI) programs work exactly similar to BI programs. But the only difference is, instead of
processing screens they validate
fields and directly load the data into tables using standard function modules. For this reason, DI programs
are much faster (RMDATIND - Material Master DI program works at least 5 times faster) than the BDC
counterpart and so ideally suited for loading large volume data. DI programs are
not available for all application areas.
LSMW is an encapsulated data transfer tool. It can provide the same functionality as BDC infact much
more but when coming to techinical perspective most the parameters are encapulated. To listout some of
the differences :
• LSMW is basicaly designed for a fuctional consultant who do not do much coding but need to
explore the fuctionality while BDC is designed for a technical consultant.
• LSMW offers different techinque for migrating data: Direct input ,BAPI,Idoc,Batch input recording.
While bdc basically uses recording.
• LSMW mapping is done by SAP while in BDC we have to do it explicitly .
• LSMW is basically for standard SAP application while bdc basically for customized application.
• Coding can be done flexibly in BDC when compared to LSMW
LSMW’s can be copied from one client to another client by using the Export and Import option.
The steps are detailed below.
Export Project
In the initial screen of the LSMW, select Extras Æ Export project. This first displays the structure
tree of the selected project. Via Select / Deselect you can select whether the entire project or parts
of the project are exported. Then select Export. The program then creates an ASCII file.
The selected elements are exported together with their documentation.
Import Project
The exported mapping and rules can be imported into another SAP system by using Import Project
option.
On the selection screen, select Extras ‐> Import. The program then prompts you to enter the name
of the PC file. The file is imported and the contents are analyzed. After the analysis, a list of the
subprojects and objects found is displayed.
You can now mark the objects to be imported. Project data existing already are check‐marked.
They are overwritten by the import.
You can prevent a project already existing in the target system from being overwritten by using
function "Import under different name".
Consider a scenario where the existing BAPI function module doesn’t cater to your needs and you
need to make some changes to the code. You can take a copy of the BAPI function module to
achieve the functionality. In this case we also need to take a copy of the Business object and the
steps are as follows.
Consider the below example for detailed explanation of all the steps required.
Example:
Materials can be uploaded by using a BAPI function module BAPI_MATERIAL_SAVEREPLICA. The
corresponding business object is BUS1001006.
Consider a case The Material Upload LSMW’s that can be created using a BAPI function module
(BAPI_MATERIAL_SAVEREPLICA) for creating different material views. Now there is a requirement,
which demands for some changes in the function module. Then the following steps are to be
implemented.
Business Object:
code.
2. Copy the Business Object BUS1001006 as ZMATERIAL using the transaction SWO1 as shown
below.
3. Now we need to include our custom function module (ZBAPI_MATERIAL_SAVEREPLICA) in the
SAVEREPLICA method of the business object as shown below.
4. Generate and Release the Business object (ZMATERIAL).
Generate ALE Interface:
5. Goto transaction BDBG to generate ALE interface for the BAPI. Create the interface as shown
below.
6. The message type, IDOC type and the inbound function module are created.
LSMW:
7. Go to transaction LSMW and on the initial screen, click on SETTINGS Æ iDoc Inbound Processing.
Maintain the Port and Partner Profile by entering the Port and Partner number and Partner Type.
Step1: Use the transaction code LSMW to upload the data using Legacy System Migration Work
Bench. Here in this scenario describes routines and exception handling.
Step4: Now select step2 ‘Maintain Source Structure’ and click execute button.
Step5: Place the cursor on Source structure and click create. Provide name and description
Step6: : Select step3 ‘Maintain Source Fields’ and click execute button.
Press create button and provide details for Field Name, Field Description and Field Length.
Step11: Place the cursor on the field for which we want to translate and click the RULE on the
Application tool bar. Select Translate radio button.
Step12: Provide name and press enter.
Step14: Select step6 ‘Maintain Fixed Values, Translations, User-Defined Routines’ and execute.
Double click on G_MEINS. Then the following screen appears. Made the changes in length as per
our requirement.
Select .
Validations in LSMW
Requirement: Validation in LSMW. Here we are taking a simple example to change the customer
telephone number. Do the validation in LSMW to check whether the provided customer is valid or
not. We will handle the Validations in 5th step (Maintain field mapping and conversion rules) of
LSMW. If the customer is invalid collect the record to the error internal table and skip the further
processing of the record. Download all the error customers into an excel file once the conversion of
the all the customers is done. This example mainly will help you to write the custom code in LSMW.
Maintain the source fields as per the input file. Here we are taking only Customer and Telephone
number as our flat file contains only those two fields shown blow.
We will do the validation in this step. Execute this step. Go to the change mode.
Click on the button (layout) and select all the check boxes.
Double click on Global Data (this block is like Global data in normal ABAP programs), will get an
ABAP editor. Declare the required fields and Internal tables here as shown below.
Double click on BEGIN_OF_TRANSACTION block (this block will trigger for every new
transaction), and write the validation code as shown below.
We can validate the given customer by checking the table KNA1. If the customer is invalid, then
append the Customer to the error internal table with appropriate message. Skip further
execution of the record using the Global function skip_transaction (Insert->Global Function->
skip_transaction). This statement will skip the current record and goes to the next record.
Double click on the END_OF_PROCESSING block (this block will trigger after conversion of all
the transactions), and write the code to download and display the error records as shown below.
The error records will download to the specified file path when we execute the convert data step
and same will be displayed.
6. Specify Files
8. Read Data
Execute the read data step to read the input file data.
11) Further continue with the processing (Create batch input session and Run batch input Session)
to update the valid customers.
The flat file in our example contains the long text for multiple materials. The header record contains
the material information (Material Number and Text ID) and is identified by the starting character ‘H’.
The item records contain the long text to be uploaded for the material and the starting character ‘I’
identifies the record. See the screenshot below:
Create a Project, Subproject and Object in the LSMW transaction
Object - 0001
Method - 0001
Create two structures one for Header and one for Item. The item structure will be at lower level
for the Header
Define the fields as per the flat file structure. In both the structures the first field must be
identifier. Create the identifier field of character 1 and specify the identifying field content 'H' for
header structure and 'I' for item stricture as shown below.
Here the Field LINE of item structure is char 132, so each text line from the input file must be
less than or equal to the length 132.
Assign the header source structure to the Header target structure and Item source structure to
Item target structure.
5. Maintain Field Mapping and Conversion Rules
Header mapping
For NAME and ID map the source fields MATNR and TEXID respectively.
For OBJECT and SPRAS pass the constants. To enter a constant value for any field, place the
cursor on the field and enter a value by clicking on constant button available in the application
toolbar.
Item mapping
For TEXTFORMAT pass the constant '*' and for the TEXTLINE map the input field LINE of the
ITEM structure.
6. Specify Files
Select the delimiter 'Tabulator', if the fields in the input file are separated by tab.
7. Assign Files
Result: The Long text will be updated for the given Materials
In this example, we need to handle more than one recording, because based on message
transmission medium screens will change.
In this example, have created two separate recordings when message medium is ‘1’ and message
medium is ‘6’ respectively.
Here we need to create two separate recordings one for medium type is printer and one for medium
type is EDI as shown below.
Select BACK button and in batch input recording need to select more recordings as shown below.
Here initially only one recording will be displayed, then we need to add second recording manually as
shown below.
Here we need to write code to handle recordings based on Message medium as shown below.
7. Specify files