I recently had an opportunity to reacquaint myself with material substitutions in SAP — also known as SAP Material Determination. This is a standard function within the Sales & Distribution module which allows for one material to be substituted for another under certain circumstances. In this article, I’ll provide a brief overview of the functionality, how it can be configured and the master data the supports it. Read on for more.
Overview
Situations may exist in which you need to substitute the material entered on a Sales Order item for a different material number. You may wish to decommission a material number in favor of a new one, or swap one product for one of a different grade. Whatever the use case, Material Determination is for you.
Here is a quick rundown of the basic functionality…
- SAP can execute a material substitution automatically, or a user selection from a list.
- The substituted material can directly replace the Material entered, or can be inserted as a sub-line beneath the original line.
- A warning can be issued on-screen to notify the user that a substitution has taken place along with the reason code from the condition record.
- An option exists to retain the Material Entered on system-generated Output/Forms.
How does it work? Using SAP Material Determination, you can define the terms under which the substitutions are to take place. These terms exist in the form of Conditions using SAP’s Condition Technique — Condition Tables (key combinations), Access Sequences, Procedures, etc. Condition records are created for those key combinations containing the required header fields for the record. Individual items can be maintained with the pairs of materials — Material Entered and Material Substitution. If you double-click the line, you access a screen where you can maintain additional substitution materials for cases where you want users to select from a list.
SAP Material Determination Configuration
The configuration for Material Determination is quite simple. There are three components you will need to focus on:
- Maintain Prerequisites for Material Determination
This is the Condition setup. It’s fairly standard if you’re familiar with other condition-based objects like pricing our output determination. You can:- Manage fields available in the field catalog
- Group fields together into condition tables to match the required key combinations
- Assign condition tables to access sequences
- Create Determination condition types with assigned access sequences
- Assign condition types to a Procedure
- Assign Procedures To Sales Document Types
You can choose to assign a Procedure to a Sales Document Type. Only one procedure is allowed per doc type. - Define Substitution Reasons
These reasons are assigned on the Condition Record and control most of the functionality described above. I will tackle this configuration in greater detail in the section below.
SAP Material Determination Reasons
The Determination Reasons drive the core functionality for material determination. I want to break down this configuration in greater detail. Let’s look at each configuration element:
- Substitution Reason
This is a 4 character alphanumeric code representing a specific reason. This code is maintained on the Condition Record and is visible on the Sales Order Line Item — along with the ‘Material Entered’ — after a substitution is made. - Description
This is a brief text description of the reason code. This text is actually quite important as it is displayed in the warning message if it is activated. See ‘Warning’ below. - Entry
This option will allow for the ‘Material Entered’ (the original material number used on the line item) to be used in place of the substituted material on certain standard system-generated forms. You would select this option if, for example, you wanted the Order Acknowledgement to show the customer-provided number making the substitution hidden from the customer. - Warning
Select this option if you want a warning message to appear on the bottom of the screen to notify a user that a substitution has been made. The message indicates that [material X] is replacing [material Y] along with the text description of the reason code maintained on the condition record. - Strategy
In this field you choose whether the substitution is made automatically or whether a list is presented to the user for selection. A third option allows for a list selection without ATP. - Outcome
Indicates whether the system will directly replace the material on the line item, or if a sub-item will be created. A third option allows for the sub-item, “but only when creating the item in Sales”. - Substitution Category
For Service scenarios only, an “A” in this field allows for equipment to be substituted by a service product.
That’s about it for the Reason configuration. Once your reasons are established, it’s time to use them in Condition creation.
SAP Material Determination Master Data Records
Creating the substitution records is fairly straightforward. There are four transactions which facilitate the maintenance of condition records:
- VB11 Create
- VB14 Create with Template
- VB12 Change
- VB13 Display
As in Pricing Condition maintenance, the first step to creating records is to navigate to VB11 and input your condition type. If multiple key combinations exist, you will be prompted to select one. The next screen will prompt you to finish maintaining any missing condition header details — Sales Org, Customer, whatever you key combination contains. Validity periods are available to enable and disable conditions during a specific date range. Finally, maintain the pair of materials — Material Entered, and substitution Material — and select your reason code. If you’re going with an Automatic substitution, you can save your record. If you wish to present a list of options for a user to select, you can double-click your item and maintain additional alternatives. A Unit of Measure (UoM) field is available in the event that a specific UoM is needed place of the default.
Once your record is saved (and prerequisite configuration is enabled), your substitution is activated in the system. Here is an example of my new Substitution record in action:
Wrap-up
This is a fairly straightforward system function that is easily set up and implemented quickly. Yet, it meets a requirement that is fairly common across a range of industries and use cases. Let me know what you think: How are you planning to use Material Determination in your system? Let me know in the comments. Thanks for reading.
Genial, documento rico em detalhe e especificação, muito obrigado por partilhar seu conhecimento.
Thank you, Igor, for the kind words. I’m glad you found some value in my work.
Genial
VB13 can show which substitutions have been specified for a particular material. Is there a way to find out which materials are pointing to a particular substitution? A reverse-lookup?
Hi, Kevin. Interesting question. I’m unaware of a standard transaction that allows you to do that. Personally, I’d dive into the database tables to get that info.