Skip to Content
Author's profile photo Jürgen Lins

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.

LSMW_STEP0_defineProject.JPG

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

LSMW_STEP0_stepoverview.JPG

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)

LSMW_STEP0_usermenu.JPG

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

LSMW_STEP5_DetermineLAYOUT.JPG

Here are some examples how the layout looks like depending on the settings made.

with technical fields active:

LSMW_STEP5_with_TECFIELDS.JPG

same section technical fields inactive:

LSMW_STEP5_without_TECFIELDS.JPG

With initial fields (fields that do not have a mapping)

LSMW_STEP5_withINITIAL.JPG

And the same section without initial fields:

LSMW_STEP5_withoutINITIAL.JPG

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)

LSMW_STEP5_without_CODE.JPG

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)

LSMW_STEP5_without_PROCTIME.JPG

the following screen shot is made with “Global Data Definitions” set to inactive (please compare with screenshot “technical fields active”  further above:

LSMW_STEP5_without_GLOBALDEF.JPG

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

LSMW_STEP0_prepareIDOC.JPG

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.

LSMW_STEP0_prepareIDOC1.JPG

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.

LSMW_STEP0_definePORTWE21.JPG

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.

LSMW_STEP0_definePartnerProfileWE20.JPG

Then define the Inbound parameters, Click the “insert line” icon below the table.

LSMW_STEP0_definePartnerProfileWE20_inbound.JPG

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

Assigned Tags

      33 Comments
      You must be Logged on to comment or reply to a post.
      Author's profile photo Jürgen Lins
      Jürgen Lins
      Blog Post Author

      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

      Author's profile photo PARAS SHAH
      PARAS SHAH

      It's really good. Thanks...

      Author's profile photo Former Member
      Former Member

      helpful blog thank you 🙂

      Author's profile photo Former Member
      Former Member

      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.?    

      Author's profile photo Former Member
      Former Member

      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.

      Author's profile photo Jürgen Lins
      Jürgen Lins
      Blog Post Author

      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

      Author's profile photo Former Member
      Former Member

      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.

      Inline image 1

      Kindly advise.

      thanks.

      carol

      Author's profile photo Jürgen Lins
      Jürgen Lins
      Blog Post Author

      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.

      Author's profile photo Former Member
      Former Member

      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.

      Author's profile photo Jürgen Lins
      Jürgen Lins
      Blog Post Author

      yes

      Author's profile photo Former Member
      Former Member

      alright.

      many thanks.

      if success will share.

      Author's profile photo Former Member
      Former Member

      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?

      Author's profile photo Jürgen Lins
      Jürgen Lins
      Blog Post Author

      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

      Author's profile photo Former Member
      Former Member

      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.

      Author's profile photo Former Member
      Former Member

      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

      Author's profile photo Jürgen Lins
      Jürgen Lins
      Blog Post Author

      it should even work on IDES

      Author's profile photo Former Member
      Former Member

      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.

      Author's profile photo AMOL MARATHE
      AMOL MARATHE

      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

      Author's profile photo Marius Becker
      Marius Becker

      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

      Author's profile photo Jürgen Lins
      Jürgen Lins
      Blog Post Author

      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?

      Author's profile photo Marius Becker
      Marius Becker

      Technically this tool can use any BAPI or function module, including customer function modules. See this slide for more:

      SLT.PNG

      Author's profile photo Jürgen Lins
      Jürgen Lins
      Blog Post Author

      But customer master does not have any BAPI, how is it then done with SLT?

      Author's profile photo Laszlo Honig
      Laszlo Honig

      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

      Author's profile photo Jürgen Lins
      Jürgen Lins
      Blog Post Author

      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.

      Author's profile photo Laszlo Honig
      Laszlo Honig

      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

      Author's profile photo Fatih Kutlu
      Fatih Kutlu

      thank you Jürgen L

      Author's profile photo Former Member
      Former Member

      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.

      Author's profile photo Jürgen Lins
      Jürgen Lins
      Blog Post Author

      you find your answer in OSS note 1977343 - BAPI_CONTRACT_CREATE for service or limit items

      Author's profile photo Former Member
      Former Member

      Thanks Jurgen.

      But I couldn't find this note as its showing SAP note incomplete.

      Author's profile photo Jürgen Lins
      Jürgen Lins
      Blog Post Author

      then you have probably no user account for the SAP Support portal, ask your supervisor

      Author's profile photo Rodrigo Marcos de Almeida
      Rodrigo Marcos de Almeida

      Can you tell me how to do the mapping? step 1

      Author's profile photo Jürgen Lins
      Jürgen Lins
      Blog Post Author

      why don't you just follow the link at the end of the blog?

      Author's profile photo Jose Ruz Polanco
      Jose Ruz Polanco

      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