LSMW Material Master by Bapi Method Part 2
LSMW Material Master by Bapi Method Part 2
SAP ERP - Logistics Materials Management (SAP MM): LSMW Material master by BAPI method - Part 2
Please make use of F4 search help to get the parameters for the import objects.
in this example we are using standard material (industry) as BAPI import method: BUS1001006, method
SAVEREPLICA and Basic type MATMAS_MASS_BAPI03
SAP ERP - Logistics Materials Management (SAP MM): LSMW Material master by BAPI method - Part 2
SAP ERP - Logistics Materials Management (SAP MM): LSMW Material master by BAPI method - Part 2
For such small files like in this business case I usually do it manually. Move the cursor onto the structure line,
then click the table icon (right from the copy icon). This is more convenient than defining field by field via the
create button.
I usually use the field names, its type and length from data dictionary in SAP, but if you want identify the values
from your source based on field names (instead of position in field sequence), then you need to make sure that
the fields names are identical with your source file.
SAP ERP - Logistics Materials Management (SAP MM): LSMW Material master by BAPI method - Part 2
SAP ERP - Logistics Materials Management (SAP MM): LSMW Material master by BAPI method - Part 2
you will then get a screen to define the rules for this auto field mapping:
Here you control whether you do this for all fields or just for empty fields
I usually choose the 100% match as there are too many fields with similar names that could get a wrong
assignment if you use a lower percentage.
If you have not yet define reusable rules then you can only apply the MOVE rule to the fields. You can change
it anyway later.
And as I want to see what SAP does I choose "with confirmation", SAP will then show me each assignment
and I click only okay to continue.
With my example the auto field mapping does not work as my source field names are different from the BAPI
field names.
This happens often with BAPIs, as they do not use the table field names. With IDOC import method this auto
field mapping is a big success if your source field names are defined like the SAP table fields.
SAP ERP - Logistics Materials Management (SAP MM): LSMW Material master by BAPI method - Part 2
SAP ERP - Logistics Materials Management (SAP MM): LSMW Material master by BAPI method - Part 2
The sales view is only needed if there is sales text in the source file. Hence we cannot assign a pure constant,
we need some coding.
Nevertheless, assign the constant first, so you need to code less yourself, then double click the coding to get to
the code editor.
Now you only need a small piece of ABAP coding to check if the sales organisation field in the source is empty.
After this is done we move forward to the Segment E1BPE1MAKT for the material description.
Here you find as well the material number field, so you assign it to your source field.(think about leading zeros!)
SAP ERP - Logistics Materials Management (SAP MM): LSMW Material master by BAPI method - Part 2
Language is not among the fields in the source file, so you assign the language as a constant. Remember we
need the text in German and English.
However, we can only assign one language here. So you could think about cerating a second LSMW object
to load with the other language, or you make it flexible with some coding. At this point we assign just the first
language. We do it for both language fields LANGU and LANGU_ISO.
LANGU is the 1 character long field, LANGU_ISO is the 2 character long field for language (see table T002 for
reference).
Just assign the language via F4 and SAP will put the right code for you (even you enter e.g. EN in the pop-up,
SAP will only enter E in the LANGU field.
And the last field in this section is the Material description which need to be assigned to your source field.
Now we need to care about the second language, which is from the text identical to the first language as our
product names are equal in all languages.
We do this with a small coding in the section __END_OF_RECORD__
By default you see the code transfer_record. This code submits the entries made in this section.
We need a second record for material description in English.We can force this in the __END_OF_RECORD__
processing time
Double click the coding line here to get to the code editor and enter the code behind the transfer_record
statement.
You only need to move the new value for the 2 language fields, all other field values are still in the memory.
so you add: E1BPE1MAKT-LANGU = 'E'.
and:
E1BPE1MAKT-LANGU_ISO = 'EN'.
followed by: transfer_record.
This way you transferred 2 records for MAKT table with a different language.
SAP ERP - Logistics Materials Management (SAP MM): LSMW Material master by BAPI method - Part 2
The same has to be done for the sales text now, but only if we have sales text, which means a few lines more
coding.
But let us start from the beginning in the sales text structure:
All long text is stored in table STXH and STXL. The key of this table is Text object (for material master sales
text: MVKE), the text ID (0001), the language, and a combination of material number, sales organisation and
distribution channel for the text name.
You can find this key if you maintain one material manually, then click the editor icon in the sales text view. In
the editor chose from menu GOTO > Header
and you will get all necessary information.
In this example you assign MVKE as a constant to the Object field, 0001 as a constant to the Text-ID field, and
again the language to the 2 language fields.
For the combination of the text name field we need to do it with coding.
SAP ERP - Logistics Materials Management (SAP MM): LSMW Material master by BAPI method - Part 2
Until here we only have the first of 2 lines sales text. So we need to take care about the second line and as we
need this sales text as well in the second language we solve this with coding in the __END_OF_RECORD__
section, similar as we did for the material description.
SAP ERP - Logistics Materials Management (SAP MM): LSMW Material master by BAPI method - Part 2
the transfer_record statement in line 1 creates a record with the first Sales text line in the German language .
in line 3 we check if there is a second line for sales text, and only if we have one then wie move the content
from the source field to the target field and transfer this record. The language and the object, text id and text
name is still in memory.
And then we repeat the same for the English language. We first move the English language to the 2 language
fields, then we move the 1st line of sales text and transfer the record. And then we do it for the second sales
text line - if present.
SAP ERP - Logistics Materials Management (SAP MM): LSMW Material master by BAPI method - Part 2
SAP ERP - Logistics Materials Management (SAP MM): LSMW Material master by BAPI method - Part 2
Please use F4 to find the file on your PC, SAP is then creating the content of the FILE field itself
Enter a name of your choice
Indicate whether this file has one source structure or multiple source structures. In this case there is only one
source structure (remember the definition in step 2)
In case you saved your Excel file as unicode text you have to put the radio button to Tabulator.
As we have field names in the first line in our Excel source, we need to select the box for "Field names at Start
of File". This controls that SAP starts processing the source file at the second line.
If the sequence of fields in the source is identical to the definition made in Step 3 then you have to mark the
box "Field Order Matches Source Structure Definition". Without this indicator SAP would try to find the fields
based on the names.
Further set the radio button to "Record End Marker" and to ASCII as we are using a text file as source.
SAP ERP - Logistics Materials Management (SAP MM): LSMW Material master by BAPI method - Part 2
SAP ERP - Logistics Materials Management (SAP MM): LSMW Material master by BAPI method - Part 2
SAP ERP - Logistics Materials Management (SAP MM): LSMW Material master by BAPI method - Part 2
However, the overview screen is important too. Here you can see in one sight if the records look equally or if
you see a kind of wave, which indicates that something with the field lengths i wrong. And if you use the icons
to go the end then you can as well check if your records have data until the last record
SAP will process even empty records in the conversion step, which certainly leads to errors. Such empty
records need to be removed from your source file, then you need to read it again.
SAP ERP - Logistics Materials Management (SAP MM): LSMW Material master by BAPI method - Part 2
Important here is to set the radio button to "Create File". This way SAP writes the CONV file with the converted
data. This corresponds to the setting made for the Port in Activation of IDOC Inbound processing.
Further is gives you the last chance to check in step 12 a few individual records if the data was correct
converted.
Not to forget that you get the numbers of converted records and transactions. Those numbers will hopefully
match with your expected numbers:
I usually store this output as text file for audit purposes.
SAP ERP - Logistics Materials Management (SAP MM): LSMW Material master by BAPI method - Part 2
The green lines are technical lines for the IDOC, The yellow line is the header segment for the transaction, the
blue lines are the individual records.
You can already see that there are 2 records with ...MAKT which holds the material description in German and
English
and another 2 records with ...MLTX for the sales text. (if we had sales text wit 2 lines, then we could see 4
records here)
Go into the detail of at least any record of one transaction to verify that each target field has the right content.
SAP ERP - Logistics Materials Management (SAP MM): LSMW Material master by BAPI method - Part 2
SAP proposed already the file name with the CONV file. Click execute and see the count in the status line
going up.
SAP tells you when it has finished. then leave this step and continue with the next step.
SAP ERP - Logistics Materials Management (SAP MM): LSMW Material master by BAPI method - Part 2
When processing has finished, then SAP present an overview like you probably know it from MM17 Mass
maintenance.
You can sort it by status to get immediately an overview if you have failed IDOCs.
However, this analysis is better made from the next step.
SAP ERP - Logistics Materials Management (SAP MM): LSMW Material master by BAPI method - Part 2
By double click onto the IDOC number you can display the IDOC details, and eventually correct the content of
a failed IDOC and then repost the IDOC in the last step of your LSMW. I plan to describe this in more detail in
another blog later (but first I have to make something wrong, otherwise I cant get the screen shots - this will be
tough
SAP ERP - Logistics Materials Management (SAP MM): LSMW Material master by BAPI method - Part 2
18216 Views Tags: abap, port, idoc, bapi, define, lsmw, material_master, long_text,
enterprise_resource_planning, import_method, partner_profile, we20, we21,
sap_erp_logistics_materials_management
SAP ERP - Logistics Materials Management (SAP MM): LSMW Material master by BAPI method - Part 2
Kind regards,
Anand
Dipankar Som
Jul 30, 2016 7:06 PM
Nice document. Thanks for sharing with us
Juergen L in response to Joris Bayer on page 24
Jul 29, 2016 4:02 PM
I can't answer that without seeing screenshots from the IDOC data and from text file. Please open a discussion
in MM space and provide the details
Joris Bayer in response to Juergen L on page 24
Jul 29, 2016 3:40 PM
The IDOC posts 'green' even if I provide incorrect data on purpose in the source TXT file (e.g. material X128
instead of material 128). I guess something is wrong with the ALE part although all settings in WE20/21 seem
to be correct. Master data are not updated (MTPOS_MARA)
SAP ERP - Logistics Materials Management (SAP MM): LSMW Material master by BAPI method - Part 2
SAP ERP - Logistics Materials Management (SAP MM): LSMW Material master by BAPI method - Part 2
Great document. I did a quick test and all went well it seemed... Except that the material master value I wanted
to modify in my test wasnt modified by the BAPI. IDOC green, no errors. Any clue what the culprit could be?
Thanks,
Joris
Juergen L in response to Ali Dai on page 26
Mar 18, 2016 12:36 AM
I suggest to open a discussion in the EAM space and then provide some details from your source file for class
and classification as well as from the overview of Dispaly read file step in LSMW. From the target structure
itself I do not see any issue that it would only take one class with with one characteristic.
However I usually load classes and classification separately with IDoc method
Ali Dai
Mar 17, 2016 2:43 PM
Hi Jurgen,
This is once again an excellent post. I have a challenge that I would like to address and ask if you have a way
of resolving it. I need to upload master data (materials and functional locations). For Functional Locations I
use 0440 Standard Object and I can upload one class and one characteristic. However, I want to upload two
classes and more than one characteristic per class.
Do you have any idea?
BR
Mohammed Fath Elbab in response to Juergen L on page 26
Sep 10, 2015 2:25 PM
Dear Jurgen,
Many thanks for your reply.
Juergen L in response to Mohammed Fath Elbab on page 27
Sep 10, 2015 2:13 PM
Not sure if I can help, projects and WBS creation is usually not my duty so there might be something specific to
projects what you are missing.
SAP ERP - Logistics Materials Management (SAP MM): LSMW Material master by BAPI method - Part 2
You should post this as a question in the forum instead as a comment to a blog. There you can also post
screenshots of your IDOC structure and content
Mohammed Fath Elbab
Sep 10, 2015 2:05 PM
Hi Jurgen,
it is a very helpful topic.. I am trying to create a Project and WBS . i have followed all your steps and the Idoc
get green however after i checked the project it is not created.
can you help me on this why it is not created?
Abhilash Joseph in response to Juergen L on page 27
Jan 29, 2014 12:36 PM
Thanks Jurgen.Its explained well by you . I thought it should be logical to create only one file due the huge I/
O overhead this will bring if it has to create one file per each IDOC but some of the people who worked in SAP
claimed that there is single physical file per each idoc and hence I asked the question.
Juergen L in response to Abhilash Joseph on page 27
Jan 29, 2014 8:21 AM
It creates 1 file only.
It is possible to directly create IDocs and omit this file.
But this removes an extra chance to check yourself the quality before posting.
Of course it will save time if you do not go this extra step (maybe 15 minutes for 50000 Idocs)
If you tested your LSMW very well in a QA system, then there is no need for this extra step in production
system.
Abhilash Joseph
Jan 29, 2014 8:08 AM
Hi Jurgen,
What I was referring will it result exactly 12 files( one for each Idoc) being created on the server .
I was just trying to understand if it will be a performance bottleneck if there is need to use this for large volume
data set due to heavy I/O(writing a file and then reading this file for DB )
Is there a way to bypass creation of physical files by choosing "create Idocs directly" in step 11.?
Juergen L in response to Abhilash Joseph on page 27
Jan 23, 2014 11:15 AM
not sure if I understand the question correct.
LSMW step 13 converts the data from the conv file into 12 individual Idocs, and they were posted one after the
other
Abhilash Joseph
Jan 23, 2014 4:17 AM
Hi Jurgen
Example very informative.
SAP ERP - Logistics Materials Management (SAP MM): LSMW Material master by BAPI method - Part 2
In this example does that mean 12 physical documents were created in SAP Application before being moved
into the respective tables ?
Juergen L in response to Vamsi Krishna C V on page 28
Nov 22, 2013 10:24 PM
I remember that I have seen similar reaction, but I dont remember the exact root cause, must have been my
fault otherwise I would remember
Vamsi Krishna C V
Nov 22, 2013 7:02 AM
Hi Jurgen,
I've been facing a peculiar Issue with MATMAS_MASS_BAPI03.
While popualting the MARAX structure i have passed the MATERIALNUMBER field as 'X'.
(I do know that we have to pass the material number here as well, i passed X by mistake, when i checked the
status it was 53.
My concern is that this could lead to misinformation and some data might be missed to be loaded
I have checked the BAPI return messages by debugging at the BAPI's Call statement
and they provide no info whatever.
the Reason the IDOC sets status as 53 is because the BAPI return table returns message type as S(E
expected). and the IDOC logic interprets it as succesful processing)
I am creating a material with an external number range. so it is required that i pass the Material Number.
But the weird thing is the IDOC goes into status 53. But no data is uploaded into the database.
Functionality wise, the IDOC should not be in status 53, beacause no data was transferred into the database
have you ever faced a similar issue.?
i may be paranoid but just checking.
Regards,
Vamsi
Aravinda Davanam
Nov 11, 2013 1:13 PM
Hi Jurgen,
Its very informative documents, thanks for uploading it.
Aravinda
SAP ERP - Logistics Materials Management (SAP MM): LSMW Material master by BAPI method - Part 2
SAP ERP - Logistics Materials Management (SAP MM): LSMW Material master by BAPI method - Part 2
https://docs.google.com/open?id=0B4VGSkvGNHAyNEJZRVBoZlZvLTA
yawar khan
Jan 3, 2013 5:13 AM
Hi Jurgen,
I was not in the favour of using LSMW for Material master, This document will surely help.
but I am not able to view the screen shots from Step no 4 and latter.
Please help.
Regards
Yawar Khan
Rajen Patel
Dec 28, 2012 5:21 PM
Very informative and useful blog. Thanks for sharing.
Juergen L in response to Raju Prabhune on page 30
Dec 28, 2012 10:10 AM
This is certainly possible, e.g. for purchase orders, contracts and for bill of materials and many more
the F4 search help lists in the BAPI field lists all objects .
I plan to write a few more blogs regarding data migration, e.g. about advantages and disadvantages with
certain import methods, common errors, challenges in huge migration projects, SAP to SAP migration....
Hope I find time to do that before my next migration project goes into the busy phase.
Raju Prabhune
Dec 28, 2012 5:35 AM
Jurgan Sir,
I'm big fan of you for SAP MM.
Other than master data, transaction data also can be uploaded using BAPi?
Regards,