LSMW Material master by BAPI method – Part 1
I would like to show how BAPI method is used to create and change material master.
As an example I use a real business case:
existing material masters need to be updated with new material descriptions and sales text
not all materials have a sales text view
Text needs to be maintained in German and English language, English text is identical to German text
Text is provided in a Excel spreadsheet
Annotation: Our material numbers are set as Lexicographical, no leading zeros
We have to use a certain path to store the .read and .conv files
The homepage of LSMW can be found here in SCN at http://scn.sap.com/docs/DOC-26158
In that document you can find the links to the general documentation in help.sap.com too:
http://help.sap.com/saphelp_nw70/helpdata/en/4d/455035082e2271e10000009b38f889/frameset.htm
LSMW is a workbench which makes use of several tools (Batch/Direct Input, BAPI, IDOC and batch input recorder) which existed long before LSMW was created and that still exist and can be used independently of LSMW, LSMW is basically a tool to map legacy data with SAP structures, exchange field values and to generate a program that supplies those import tools with the data.
Prepare your LSMW
Define your project, sub-project and object
Project, sub-project and object is a free definable hierarchy
The project is usually self-explaining, it is the name of your project. Keep in mind that all mapping rules are shared among all subprojects and objects within a project. This is a big advantage, however, if many persons work in the same LSMW project you can as well face some disadvantages. E.g. if somebody is in development and has a syntax error, then others in the same project are affected by this error too.
The subproject is a lower part of your project. It could be for example represent a module or sub-divide the project by responsibles.
The object is the lowermost part where you actually define the migration for a certain business object or a part of it.
My area is global master data, so I usually chose Master data as subproject and Material, vendor or customer as object.
In this example I am going to use SCN as project, material as subproject and texts as object.
SAP uses project, subproject and object name to build the file names for read and conv files.. Each field is 15 character long, the maximum length of the conversion file name is 45 characters. If you have to work with a certain path, then this path will occupy a part of the conv file name. Because of that, I recommend to make the names for project, subproject and object shorter than the maximum of 15 characters.
If you start with a new project, then you have to click the new document icon, you get a pop-up to enter project name and description.
You will have to do the same for Subproject and Object.
Next you get to the overview of all steps in LSMW. At this moment SAP will show more steps than you finally have to go through. What steps you have to perform depends on the import method you chose in step 1 Maintain object attributes. I highlighted the steps which are variable on the import method
Above the step overview you can see various buttons.
The button “Double click = ” can be used to set your preferred way to work, I prefer double click to go into change mode
With “numbering on ” you get those numbers in front of the steps. This can make communication easier, but only if both are working with the same settings, because the numbers are not fix to the text next to it, they are just number to the positions in the overview
The button “User menu” allows you to add hidden steps to the LSMW steps (and causes renumbering to the shown entries)
As you can see in the pop-up there are some interesting options like “Display Read Program” and “Display Conversion Program” which can be enabled if you need to debug in case the programs do not work like you expect.
The steps “Generate Read Program” and “Generate Conversion Program” are not really needed, because this step is automatically carried out with the next visible step below them.
Often neglected is the option to check the converted data against customizing, which means you could find errors (e.g. missing customizing transports, wrong mapping rules) without the need to post your data.
Prepare your Field mapping and conversion rules
After executing step 5 Field mapping and conversion rules you will see the mapping based on the SAP given settings. I rarely saw that professionals can work with the presetting given by SAP.
You can change this setting from menu Extras > Layout. You get then a pop-up to define the layout
I prefer and recommend to set each field in the layout active
Here are some examples how the layout looks like depending on the settings made.
with technical fields active:
same section technical fields inactive:
With initial fields (fields that do not have a mapping)
And the same section without initial fields:
With this setting you will not even know that there are more fields in the import structure.
The next screen shot shows the same section code inactive (compare it with the screen shot above)
You do not see what values the constants have and you can’t see the ABAP coding for the Move-statement.
The next screenshot shows the appearance with inactive processing time (BEGIN_OF_RECORD; END_OF_RECORD; compare with screenshot above)
the following screen shot is made with “Global Data Definitions” set to inactive (please compare with screenshot “technical fields active” further above:
the very first entry __GLOBAL_DATA___ is gone now.
Prepare for IDOC Import method
if you use IDOC and BAPI import method then you need to define Ports and partner profiles like you have to do it when you get IDOCs from an external system.
In the initial screen of LSMW, where you entered the project name chose from menu Settings > IDOC Inbound processing
in the next screen you have to enter the File port name, the partner type US (user) and the partner number and then you click Activate Inbound processing.
This has to be done in any system where you use this LSMW project.
File port and partner number are free definable names, and in many companies set up by the Basis team. So you would only need to enter those names and Activate IDoc Inbound processing,
However, if you have to do it yourself, then you need to make use of the buttons next to those fields.
Maintain ports is actually nothing else than transaction WE21
In my example I had used the name DATEI (which is nothing else than the German word for FILE)
After clicking Maintain ports you get the screen shown below. Put the cursor onto the file folder on the left, then click the create icon
Enter a description, set the radio button for the IDOC record type (most probably the 4.x type nowadays), make the setting if you use Unicode format. then set the radio button to physical directory, enter a directory and a function module in tab Outbound file then do an Access test to make sure you have access to this directory. These are the minimum settings needed for a Port used in LSMW.
The button Maintain partner numbers is actually transaction WE20
In my example I named it LSMW
After clicking this button you are taken to the Partner profiles. Click create button. Enter the partner number (here LSMW), partner type US, type US for user, Agent: you user-ID and your language.
Then define the Inbound parameters, Click the “insert line” icon below the table.
At this place you add the IDOC message type that will be used as your import method. LSMW can create this entry itself if you have activated the IDOC inbound processing before you defined the first step of your LSMW. But there is no harm if you add it manually, which usually has to be done in Test and production systems as you do not carry out step 1 anymore.
For this example we use message type MATMAS_MASS_BAPI (which is basically the same BAPI that is used in MM17 Material master mass maintenance)
Enter the process code with help of F4 (in this case it is BAPI, but it may vary by message type)
Activate “Cancel Processing after Syntax error” and set the radio button to Trigger by background program, otherwise your IDOCs get posted immediately while creating.
This blog will continue in LSMW Material master by BAPI method – Part 2
In case the pictures do not show up. You can download it as PDF document from my google drive: https://docs.google.com/open?id=0B4VGSkvGNHAyYnpxaW9jbWlYSzg
It's really good. Thanks...
helpful blog thank you 🙂
Thank you for the link which you have shared with me.
But, i do have a doubt..It says more about the material management is that same method is applicable for ABAP module also.?
Hi Gurus,
question,
I want to edit almost all materials in our material master. they have the wrong descriptions and most of them part numbers were not maintained.
I have read i can use LSMW or MM17.
i have tried to run in MM17 but it is not uploading from the excel workbook in a systematic way.
Kindly someone guide me on step by step how to go about this.
I tried to use the method here.. but my LSMW has no SCN as project.
I have only used LSMW for mass creation of codes and extending and i start from specify files.
Kindly assist urgently. is it the same excel sheet to prepare and what steps to take.
Thanks.
Carol.
Dear Carol,
I would recommend to read the blog again from the beginning as I explained what a project is. Of course you dont have the project that I used not in your system, because it is a name that you give yourself . But this is as well explained with a screen shot in this blog.
MM17 cannot upload any data from Excel, you can only copy and paste from Excel into the data screen of MM17.
Maybe it is better for you to start with the most easy way to use LSMW before you try it with this advanced method, see this document LSMW for Functional Consultants in simple step-by-step way
yes Jürgen. Thank you for the guidance.
question.
Kindly clarify the same excel format i use with creating new codes is the same format i use for change?
2.Do i have to create a new project because in my system there is material data but when i pick it automatically picks the rest.see screen shot.
Kindly advise.
thanks.
carol
You picture does not show, copy and paste of images does not work in SCN. you have to upload the images from your local drive .
Anyhow, you can have as many subprojects and objects per project as you want.
I see no problem in using exact the same Excel template for changes like it is used for creating.
Ok.
I know i have many question please bear with me. 😉
i am now trying to follow the link you gave me for LSMW for functional consultants. the example given there was for vendor creation.
my assumption is tha even for material change ( what i want to do) will be the same steps shown? only the transaction code will change?
please.
thanks.
carol.
yes
alright.
many thanks.
if success will share.
Jurgen,
sorry, Kindly reply, do i create the legacy in quality or development and transport?
or i once sure it is working i do it in production straight?
never do it directly in production, I am experienced and using LSMW for more than 10 years, still I would not consider to do it in production directly (would not be possible anyway in our system) without having done a serious test in Quality system.
this document explains how to transport LSMW How to Move LSMW all objects from one server to another server
yes,..thanks, am testing in quality first. many thanks Jurgen, you have been of much help.
i have more than 16000 materials to edit. this will be wonderful.
Most Appreciated.
Carol.
Hi Jurgen,
Firstly, i would like to thank you for giving this detailed information about the LSMW.
Which i am working on it, is it ok if i can use IDES tool for practising LSMW?
Thank you.
Ramesh J.V
it should even work on IDES
Wel Jurgen,
Can you help me out in making a self project by using IDES. I taught it would add more weightage in my profile or in my resume.
Could, you please help me out with this. If you don't mind!
I know that i am troubling you a lot,, please do not mind i am totally new to these kind of stuff.
I am just a beginner, please help me out with this.
Thank you.
Hello Jürgen L,
I have followed this blog and tested what you have suggested in below link,
Mass creation scheduling agreement ME31L
I had similar requirement and it worked fine. 🙂 Thanks for sharing.
Regards,
Amol
Hi Jürgen,
did you already take a look at the SAP Landscape Transformation tool?
This tool can load, transform and push the data directly into the target BAPIs, in which case you don't need LSWM anymore
Regards,
Marius
Actually not. I guess it is what what we call "SLO tool" in our company. It is currently used in a parallel project to my migration project and supported and executed by externals.
Does this tool provide more BAPIs than the LSMW, e.g. BAPIs to load customer master?
Technically this tool can use any BAPI or function module, including customer function modules. See this slide for more:
But customer master does not have any BAPI, how is it then done with SLT?
Hi Jürgen,
thank you for great post!
I am about to use mass data change/extension on already existing materials (in a previous step created with necessary Basic Data only), using BAPI that I cloned from another BAPI based solution used by our contractors in migration phase.
Import method: BAPI
Business Object: BUS1001006, Standard material
Method: SAVEDATA - Create and change material master data
Message Type: MATMAS_BAPI - Create and change material master data
Basic Type: MATMAS_BAPI03 - Create and Change Material Master Data
I use above as this is the way the materials have been extended before.
When getting to step 'Start IDoc Generation', I receive the following message:
Unable to read file
'MM_OBJECTS_TEST_MAT_MASTER_MATMAS3.lsmw.conv'
Message no. /SAPDMC/LSMW801
I have dug all threads for this type of error ever occurred and have been shared within community but in vain.
Do you have any idea how to get a grip on this?
Thank you in advance, Laszlo
can it be that you ran the conversion, then you wanted execute 'Start IDoc Generation' but got an error that IDOC processing is not active? You then activated IDOC processing and executed directly 'Start IDoc Generation' when this error "Unable to read file" cam up?
if that is the case, then you need to redo the conversion step, since the first conversion was made without an active IDOC processing and the data is missing important information to generate idocs.
Hi Jürgen,
thanks for the hint. It must have been the reason as now IDoc is getting generated. That's another thing that eventually I still get an IDoc failure error but that's something I can handle I guess with some extra work on the scenario I use.
Danke! 🙂
Laszlo
thank you Jürgen L
Hi
Is it possible to migrate data through recording or BAPI from LSMW for Creating Service Contracts(ME31K)?
I didn't find suitable thread on this.
you find your answer in OSS note 1977343 - BAPI_CONTRACT_CREATE for service or limit items
Thanks Jurgen.
But I couldn't find this note as its showing SAP note incomplete.
then you have probably no user account for the SAP Support portal, ask your supervisor
Can you tell me how to do the mapping? step 1
why don't you just follow the link at the end of the blog?
Great blog and very detailed info.
I know this a very old post but I have a question, when you created that partner profile LSMW of type US, did you created a Logical system for it as well? An RFC destination or something?
Regards.
Jose