| Harlex Consulting Services Ltd - | | | | BMMH1-BSTFE Fixed lot |
| Migrating Material Master into SAP | | | | size -Not always used – depends |
| 1 Overview | | | | on Lot Size |
| 1. 1.1 Introduction | | | | BMMH1-MABST Maximum stock |
| This document is intended as a simple guide in how | | | | level |
| to overcome the common problems in migrating | | | | BMMH1-BESKZ Procurement type-If |
| Material Master into SAP. | | | | specified must exist in customizing |
| For a one-time conversion into SAP, we favour using | | | | BMMH1-SOBSL Special Procurement |
| the LSMW tool. It allows you to leverage the full | | | | -If specified must exist in customizing |
| power of ABAP while using standard SAP processing | | | | BMMH1-LGPRO Production Storage |
| functions, yet it does a lot of the file management | | | | Location-If specified must exist in customizing |
| and processing work automatically. However, even | | | | BMMH1-LGFSB Storage Location for External |
| within LSMW there are a number of possible | | | | Procurement-If specified must exist in customizing |
| methods for migrating Materials. | | | | BMMH1-EISBE Safety Stock |
| This document will discuss loading Materials using the | | | | Accounting data |
| standard load program RMDATIND with a brief | | | | BMMH1-BKLAS Valuation Class-If |
| mention of other methods. | | | | specified must exist in customizing |
| 1. 1.2 Load methods | | | | BMMH1-STPRS Standard Price |
| 1. 1.2.1 Standard load program RMDATIND | | | | BMMH1-PEINH Price Unit |
| This is the approach I favour for the migration of the | | | | BMMH1-VPRSV Price Control |
| Material Master into SAP. | | | | Costing data |
| The standard load program is not perfect but it is | | | | BMMH1-PRCTR Profit Centre-If specified must exist in |
| flexible and you do not have to be one hundred per | | | | customizing |
| cent accurate with the population of fields, i.e. in BDC | | | | BMMH1-LOSGR Costing Lot Size |
| a populated field that is not available in the current | | | | BMMH1-NCOST Do Not Cost |
| screen will cause a message to be raised, in | | | | Foreign Trade data |
| RMDATIND we can specify the level at which to | | | | BMMH1-STAWN Commodity |
| report errors and so are able to ‘skip’ these | | | | Code-If specified must exist in customizing |
| messages. | | | | BMMH1-HERKL Country of Origin-If specified must |
| It is a powerful and flexible program, and it is | | | | exist in customizing |
| relatively simple to use. If you are unsure in certain | | | | BMMH1-HERKR Region of Origin-If |
| situations (eg. a material with multiple plants and sales | | | | specified must exist in customizing |
| organisations) as to how to manipulate your load file | | | | Tax data |
| in LSMW into the load format for RMDATIND, you | | | | BMMH2-ALAND Tax Country-If |
| can manually create a test material in your | | | | specified must exist in customizing |
| development system and then run program | | | | BMMH2-TATY1 Tax type for |
| RMDATGEN on that material to view a sample file. | | | | Country (upto 9)-If specified must exist in |
| The fact that you can run the load step in test mode | | | | customizing |
| before creating any data is also a major advantage. | | | | BMMH2-TAXM1 Tax Class for Tax Type-If specified |
| 1. 1.2.2 BDC recording of transaction MM01 | | | | must exist in customizing |
| This solution is only suitable for a very basic upload. If | | | | Description data |
| for example you are only creating the basic data or if | | | | BMMH5-SPRAS Language of |
| you want to go further, limit the recording to one | | | | Description-This must be in internal format, e.g. |
| material type as screen sequences can and usually do | | | | ‘D’ for German |
| change between material types and this will cause | | | | BMMH5-MAKTX Short Description- |
| problems in your BDC session. A BDC recording for | | | | BMMH5- SPRAS_ISO Language in ISO |
| MM02 (Change) can be a quick way of updating one | | | | code-Specify this as an alternative to SPRAS |
| or two fields for existing materials but again be | | | | Alternate Unit of Measure data |
| aware of the different screen sequences that may | | | | BMMH6-MEINH Alternate Unit of |
| appear. | | | | Measure-This must be in internal format |
| 1. 1.2.3 BAPI – object type BUS1001006 | | | | BMMH6-UMREN Numerator-For |
| As always, the BAPI is a flexible and powerful tool | | | | standard measurements these MUST be specified as |
| though often not particularly intuitive. Using LSMW | | | | per SAP. |
| you could load materials using the Standard Material | | | | BMMH6-UMREZ Denominator-For |
| business object. This uses ALE message type | | | | standard measurements these MUST be specified as |
| MATMAS_BAPI and BAPI function | | | | per SAP. |
| BAPI_MATERIAL_SAVEDATA. We favour the | | | | Long Texts |
| standard load program RMDATIND as it is fast (direct | | | | BMMH7-TDID Text ID |
| upload) and simple to use, and also because it can be | | | | ‘GRUN’ = Basic text |
| run in test mode. | | | | ‘BEST’ = Purchasing text |
| 1. 1.3 Assumptions | | | | ‘0001’ = Sales text |
| This document assumes a working knowledge of | | | | ‘PRUE’ = Inspection text |
| LSMW, and at least some basic understanding of the | | | | ‘IVER’ = Internal comment |
| structure of Material data in SAP. | | | | ‘LTXT’ = Material memo |
| 2 The Basics | | | | BMMH7-TDSPRAS Language key |
| 1. 2.1 Data structures | | | | BMMH7-TDLINE Text line |
| There are multiple structures in the Material Master | | | | BMMH7-TDSPRASISO Language in ISO code |
| load program RMDATIND, below are listed those | | | | Specify this as an alternative to SPRAS |
| commonly used: | | | | 1. 2.3 Modifying the standard structures |
| 1. 2.1.1 BMM00 | | | | It is possible to upload customer specific fields with |
| This structure is mandatory and contains the key | | | | RMDATIND. You will need to create/modify the |
| information used in creating a Material. | | | | structures, usually ZMMH1 and CI_MMH1, if additional |
| 1. 2.1.2 BMMH1 | | | | fields have been added to a SAP table or the field(s) |
| This structure is mandatory and contains most of the | | | | you require are not currently available in RMDATIND. |
| remaining data needed to create a Material, e.g. | | | | For full details please see OSS note 44410. |
| Description, Basic Unit of Measure, Legacy Material | | | | 3 Common Problems |
| Number, plus Purchasing data, Plant data etc. | | | | 1. 3.1 Legacy Material Number |
| 1. 2.1.3 BMMH2 | | | | It is crucial when migrating Materials into SAP that a |
| This structure is used when more than one tax | | | | reference to the Legacy number be stored. |
| country is required for Sales. | | | | It is important both for business and technical |
| 1. 2.1.4 BMMH5 | | | | reasons; business users will initially want to be able to |
| This structure is used when the material short | | | | find materials based on the legacy code, it is the one |
| description is required in more than one language. | | | | they know; technical users will need the link such that |
| 1. 2.1.5 BMMH6 | | | | subsequent objects can be successfully loaded, e.g. |
| This structure is used to populate alternate units of | | | | open purchase orders, Inventory load. |
| measure as required by the business, e.g. Purchasing | | | | The intended and normally used field for this purpose |
| buy a product in Cases but Sales sell in Pieces, these | | | | is BISMT but note that some materials are duplicates |
| conversion factors between the different units need | | | | of one another and this cannot be handled solely by |
| to be captured here. | | | | using BISMT. |
| 1. 2.1.6 BMMH7 | | | | As mentioned it will be necessary to retrieve the |
| This structure is used to populate long texts for the | | | | SAP material for not only subsequent objects but |
| material, e.g. Sales text, Purchasing text, Long | | | | also to ensure duplicate materials are not created |
| Description, etc. | | | | within SAP. It is therefore recommended to create a |
| 1. 2.2 Important fields | | | | routine that can be called by all the required |
| Structure Field Field | | | | programs; we suggest GET_SAP_MATNR. |
| Name Details | | | | 1. 3.2 Duplicate Materials |
| Key Fields | | | | The existence of duplicate master data is often a |
| BMM00-MATNR Material Number-Can be either | | | | problem when migrating data from legacy systems. It |
| Internal or External | | | | will normally be required to setup a simple translation |
| BMM00-MTART Material Type-Mandatory | | | | table in LSMW to handle duplicate material master |
| BMM00-MBRSH Industry | | | | records. |
| Sector-Mandatory | | | | This translation will need to be accessed in the above |
| BMM00-WERKS Plant | | | | mentioned GET_SAP_MATNR routine to ensure the |
| BMM00-LGORT Storage Location | | | | correct SAP material number is returned. |
| BMM00-VKORG Sales Organisation | | | | 1. 3.3 Alpha conversion |
| BMM00-VTWEG Sales Distribution | | | | When loading materials (or any object) it is good |
| Channel | | | | practice to validate customised fields and the master |
| BMM00-TCODE SAP transaction-MM01 for creation, | | | | data itself. To this end you should always be aware |
| MM02 for Change | | | | of the format of the data as stored within the |
| Basic Data | | | | database, e.g. It is possible to pass ‘123456’ |
| BMMH1-MAKTX Short | | | | as the MATNR but to check if that material all ready |
| Description-Mandatory field | | | | exists you will need to pass it as 18 characters with |
| BMMH1-MEINS Base Unit of | | | | the leading zeroes as this is how it is stored in the |
| Measure-Mandatory field | | | | database tables. |
| BMMH1-MATKL Material Group-Usually mandatory | | | | 1. 3.4 Taxes |
| BMMH1-BISMT Legacy | | | | In multi-country organisations it can often be the |
| Material-Usually mandatory for migration | | | | case that Taxes are required for multiple countries. |
| BMMH1-MTPOS_MARA General Item Category Group | | | | The way to determine which countries is to call |
| BMMH1-PRDHA General Product | | | | function STEUERTAB_IDENTIFY. You will still need to |
| Hierarchy- | | | | know which Tax Class to use for each Tax type. |
| Purchasing Data | | | | 1. 3.5 Multiple Plants |
| BMMH1-EKGRP Purchasing Group | | | | It is normal for a material to exist in more than one |
| BMMH1-PLIFZ Planned delivery | | | | plant and a common error is to try to re-populate the |
| time-Also appears in MRP | | | | sales data at the same time, which results in a |
| BMMH1-WEBAZ GR processing time | | | | message that can be mis-leading. When creating a |
| BMMH1-BSTME Purchasing Unit of | | | | material in more than one plant for which both plants |
| Measure (Only if purchasing unit <> base unit) | | | | exist in the same sales area reset BMM00-VKORG |
| Sales data | | | | and BMM00-VTWEG to the ‘NODATA’ flag, |
| BMMH1-SPART Division-Also appears in Basic Data | | | | default ‘/’. |
| BMMH1-VRKME Sales Unit of | | | | 1. 3.6 Units of Measure |
| Measure-Only used if Material sold in a unit different | | | | You should only specify the BMMH1 alternate units, |
| to the base unit | | | | e.g. Purchasing unit, Issuing Unit, if they differ from |
| BMMH1-DWERK Delivering plant | | | | the base unit otherwise an error will be flagged. Once |
| BMMH1-KTGRM Account | | | | an alternate is specified structure BMMH6 must be |
| Assignment Group | | | | created for each alternate. |
| BMMH1-KONDM Material Pricing | | | | N.B. the values specifies in UMREN and UMREZ must |
| Group-If specified must exist in customizing | | | | be accurate, no automatic correction takes place in |
| BMMH1-PRODH Sales Area Product | | | | direct-input mode unlike online mode. |
| Hierarchy-If specified must exist in customizing | | | | 1. 3.7 Background Load |
| BMMH1-MTPOS Item Category | | | | For high volume loads it is usual to submit the load in |
| Group-If specified must exist in customizing | | | | background. To do this it is required to setup a job |
| BMMH1-VERSG Material Statistics | | | | via BMV0 and submit via the same transaction. A |
| Group-If specified must exist in customizing | | | | typical error comes during the production load as |
| BMMH1-MTVFP Availability | | | | multiple processors are usually present and the job is |
| Check-Also in MRP. If specified must exist in | | | | routed to the ‘background’ processor but |
| customizing | | | | the input file for RMDATIND has been created on |
| MRP data | | | | the ‘dialog’ processor; the key is to either |
| BMMH1-DISPO MRP Controller-If | | | | specify the ‘dialog’ processor on which the |
| specified must exist in customizing | | | | file is converted at the job submit phase or perform |
| BMMH1-DISMM MRP Type-If | | | | the import and convert phases on the |
| specified must exist in customizing | | | | ‘background’ processor. |
| BMMH1-DISLS Lot size-If | | | | 4 Footnote |
| specified must exist in customizing | | | | This guide should be viewed as a starting point for |
| BMMH1-BSTMI Minimum lot | | | | discussions and is not intended as an exhaustive |
| size-Not always used – depends on Lot Size | | | | examination of the various methods available. There |
| BMMH1-BSTMA Maximum lot | | | | will inevitably be circumstances specific to individual |
| size -Not always used – depends on | | | | situations that cannot be covered here. |
| Lot Size | | | | |