Access Sequence & Condition Table in SAP MM (V/05, M/03)

โšก Smart Summary

Access Sequence and Condition Table in SAP decide where a price is searched for. The sequence lists accesses in priority order, each pointing at a condition table whose key fields identify the condition record.

  • ๐Ÿ”Ž Core Purpose: An access sequence is the search strategy a condition type follows to find a valid price.
  • ๐Ÿชœ Exclusive Accesses: Searching stops at the first access that returns a record, so sequence order defines priority.
  • ๐Ÿงฉ Condition Table: Each access points at a table whose key fields form the combination being searched.
  • ๐Ÿšฆ Requirements: A requirement routine such as 35 skips an access entirely when its precondition is not met.
  • ๐Ÿ› ๏ธ Field Attributes: Special value source, Init, Atyp, and Priority control how each key field behaves during the access.
  • ๐Ÿ†• Creating Tables: M/03 creates a purchasing condition table, optionally copied from an existing one, and it must be generated.
  • ๐Ÿ“š Reuse First: SAP ships a large catalogue of tables, so new ones are rarely necessary.

Access sequence and condition table in SAP MM

What is an Access Sequence and Condition Table?

A condition type such as PB00 describes what kind of value a gross price is. It does not know where to find one. That is the job of the access sequence attached to it.

Two objects work together:

  • Condition table. A table whose key fields define one combination for which a price can be maintained, for example vendor plus material plus plant. Table 18 is the material info record combination used in the example below.
  • Access sequence. An ordered list of accesses, each pointing at one condition table. SAP tries them from the top and stops at the first that returns a record.

The order therefore expresses business priority. A price negotiated in a contract should beat a general info record price, so the contract access sits above it. Reversing the two would silently overwrite negotiated terms with a standard rate, which is why access sequence maintenance deserves care.

The chain is completed by the calculation schema, which decides in what order the condition types are applied once each has found its value.

Define Access Sequence

To define and maintain access sequences, you need to follow a few simple steps.

Step 1) Go to SPRO > Materials management > Purchasing > Conditions > Define price determination process > Define access sequences.

As shown below, you will find a dialog structure of Access sequences, Accesses and Fields.

  1. Choose the Access sequence you want to maintain (PB01 gross price).
  2. Double click the Accesses folder in the dialog structure.

Define Access Sequence

Step 2) In the next step you define access methods for the access sequence. You can see that several access methods are present for one sequence.

Every one of them is exclusive. It means that if a record is found in first access (Contract item), meaning that if the system finds a condition available from the Contract item, it will not search further, and that value will be used. If not, system will follow the other accesses in order to find appropriate entry.

You can also set a requirement for an access method to be used. For example, there is a requirement 35 assigned to access 10, which uses condition table 17 – Material Info Record (Plant-Specific).

Define Access Sequence

A requirement for access number 10 is 35 – Plant info record. If there is no plant info record for the combination of the values in table 17, access 10 will not be used at all.

Define Access Sequence

Step 3)

  1. Select the access you want to modify.
  2. Choose the lowest level folder in dialog structure – Fields.

Define Access Sequence

Step 4)

  1. You can see we are located on the details screen for access sequence PB01, access 20 and table 18.
  2. The key fields of a condition table used in the condition access are showed here.

Condition table consists of condition fields which have certain attributes assigned to them. When the system tries to access a condition record it uses these attributes.

Define Access Sequence

  • Special value source โ€“ this field contains a value to be used as default while accessing (e.g. using a fixed info record category for the access sequence)
  • Init โ€“ if this box is checked system will allow initial value for this field while accessing the condition table. If not system will not process the condition table lookup.
  • Atyp โ€“ processing type in access. You can specify if the field is relevant for condition access if it is part of a free or fixed key type. Default is left blank (fixed key type).
  • Priority โ€“ priority of a field (characteristic), it can be set from 01 to 99. Most of the time this field is left blank.

Define condition tables

Now, when we know what is a condition table, what it is used for, we can see where a condition table can be defined, and what option we have while creating it.

As you have seen in the previous topic, we have used table 18 โ€“ Material Info Record in our example.

Let’s see where and how it is defined.

Displaying an existing condition table

Step 1)

  1. Execute the transaction code V/05 and on the initial screen enter our table number – 18.
  2. In the section 2, you can see our table definition, table number, description, and two options that can be selected. First means use of the validity period (always recommended) and the other is a check for release status of the record. If checked, only released info records will be taken into account while searching for the condition.
  3. Here is the list of fields you have already seen in the Define access sequence topic.

You can see how the table is defined for later use in customizing the access sequence.

Define Condition Tables

V/05 transaction is used for displaying a condition table.

V/04 transaction is used for changing a condition table.

V/03 transaction is used for creating a condition table.

Creating a new condition table

Now you can define a new condition table if it is required, in order to use it in the access sequence definition. Most of the time new condition tables are not required, because SAP delivers a large catalogue of predefined tables.

Step 1)

  1. Enter t-code M/03 and execute it.
  2. Choose your new table number (must be unused, e.g. 818).
  3. If you want to copy an existing table into your new table, you can select the source table here. This is useful if your table is similar to another existing table, and needs only a simple change to fulfill the requirements.

Define Condition Tables

Step 2) On the next screen, you can do all of the settings for a condition table, and generate it.

  1. Click this button if you want to edit the description.
  2. Choose if your table should check validity periods and release statuses.
  3. List of current fields. You can select any field you want to remove (by single clicking it) and choose the remove icon (List icon with a red minus sign).
  4. You can add fields from field catalog by double clicking them.
  5. You need to generate the table in order for it to be used by pricing functions.

Define Condition Tables

You can also use right click to delete or add a field to your table, as well as to navigate the Field catalog on the right side of the screen. Not all of the fields can be shown in a single page of field catalog.

After successful creation, you will be prompted to create a change request and afterwards, you will be presented a log screen like you can see on the following screen.

Define Condition Tables

You have successfully generated a condition table, let’s see if we can see it in the access sequence maintenance screens.

Define Condition Tables

It’s there, so now we can create an access using this table. We will not cover this in detail as it is an extremely straight forward process.

On the accesses node of our access sequence, choose New entries button. You can create an access like in the below screen for testing purposes.

Define Condition Tables

Fields should also be assigned to our access PB01 โ€“ 96 in order for it to work properly.

Condition Table Transaction Codes: MM and SD

The transaction codes above deserve a note, because two parallel families exist and using the wrong one is a frequent source of confusion. The steps above use V/05 to display and M/03 to create, which reflects how many consultants actually work, but the families are not interchangeable.

Action Materials Management Sales and Distribution
Create condition table M/03 V/03
Change condition table M/04 V/04
Display condition table M/05 V/05
Access sequence maintenance M/07 V/07
Condition type maintenance M/06 V/06

The M family belongs to purchasing and the V family to sales. Both read the same underlying table definitions, which is why V/05 will display a purchasing table, but always create in the family that matches the application so the field catalogue offered is the correct one. Sales side pricing is covered in the SAP SD training course.

โš ๏ธ Warning: A new condition table is unusable until it is generated. Saving the definition alone creates no database table, and the access sequence will simply not offer it. Always complete the generation step and check the log.

How Condition Records Are Found at Runtime

Configuration only makes sense once the runtime behaviour is clear. When a purchase order item is priced, SAP performs the following sequence for every condition type in the schema.

  1. Read the access sequence. The condition type names one sequence. A condition type without a sequence, such as PBXX, is skipped entirely and can only be entered by hand.
  2. Evaluate the requirement. Each access can carry a requirement routine. Requirement 35 in the example checks whether a plant specific info record exists. A failed requirement skips that access without any database read.
  3. Build the key. The key fields of the condition table are filled from the document. Vendor, material, plant, and purchasing organisation are taken from the order header and item.
  4. Read the condition table. If a record exists for that exact key and is valid on the pricing date, the value is taken and the search stops. This is what exclusive means.
  5. Fall through on no hit. If nothing is found, the next access is tried. When every access fails the condition simply carries no value, which on a mandatory condition raises an error.

This behaviour explains two common symptoms. A price that is stubbornly wrong usually means a higher access is matching a record nobody remembered, and the Analysis button on the item conditions screen names the access that won. A price that never appears usually means every access failed, most often because the purchase info record validity period has expired. The determination of the whole schema is covered in defining schema groups.

FAQs

Yes, decisively. Accesses are exclusive, so the first one that finds a record wins and the rest are never read. The sequence therefore encodes which price source outranks another.

Rarely. SAP delivers a large catalogue covering most key combinations. Build one only when the required combination of fields genuinely does not exist, and always generate it afterwards.

AI reads the pricing analysis log and explains in plain language which access matched, which were skipped by a requirement, and which found no record, turning a cryptic trace into a diagnosis.

Yes. Counting how often each access actually returns a record across posted documents shows which ones never fire, so unused accesses can be retired and pricing runs faster.

It tests a precondition before the access runs. Requirement 35 checks for a plant specific info record; if none exists the access is skipped entirely rather than searched and failed.

Summarize this post with: