Setting Up Access Sequences for Price Determination

Objective

After completing this lesson, you will be able to set up access sequences to define the precise search strategy for valid condition records during sales document processing in SAP S/4HANA Cloud.

Introductory Video

Understanding and Designing Access Sequences

The Role of Access Sequences in Price Determination

In SAP S/4HANA Cloud's pricing, an Access Sequence is a critical component of the Condition Technique. Its primary role is to define a specific search strategy that the system uses to find valid Condition Records for a particular Condition Type (like a price, discount, or surcharge). When pricing is carried out for a sales document item, the system refers to the access sequence assigned to each relevant condition type to determine which condition tables to check, and in what order.

Effectively setting up access sequences allows you to implement sophisticated pricing logic. You can prioritize more specific criteria (e.g., a customer-specific material price) over more general ones (e.g., a general material price), ensuring the most appropriate price or discount is found and applied. This is fundamental to achieving flexible and accurate pricing that reflects diverse business agreements and strategies.

Anatomy of an Access Sequence

An access sequence is composed of one or more "accesses" (also known as access steps or search steps). Each access within the sequence points to a specific Condition Table.

  • Accesses (Steps): These are numbered (e.g., 10, 20, 30) and define the order in which the system will attempt to find a condition record. The system processes accesses in ascending numerical order.

  • Condition Table per Access: Each access specifies exactly one condition table. This table defines the key fields the system will use for that particular search step. For example, access 10 might point to a table with keys 'Customer/Material', while access 20 points to a table with only 'Material'.

  • Exclusive Indicator: A crucial setting for each access is the 'Exclusive' indicator. If this indicator is set for an access, and the system finds a valid condition record using the table in that access, it will stop searching further down the sequence for that particular condition type. This ensures that the first, most specific valid record found is used.

  • Requirements: Optionally, a requirement routine can be assigned to an access. This routine must be fulfilled for the system to even attempt that access. For example, an access might only be performed if the sales document is of a certain type.

  • Field Mapping/Sourcing (Implicit): The fields in the condition table specified in an access must be fillable from the data available in the sales document (e.g., customer number, material number from the sales order item). The system automatically attempts to source these values.

Diagram showing a box labeled Access Sequence AS01. Inside, there are rows: Access 10: Table 901 (Cust/Material) - Exclusive [X], Access 20: Table 905 (Material Group) - Exclusive [X], Access 30: Table 004 (Material) - Exclusive [X]. Arrows indicate the search flow from top to bottom.

Standard vs. Custom Access Sequences: SAP provides many standard access sequences. However, if your business requires a unique search strategy (e.g., using custom condition tables or a different order of standard tables), you will need to define a custom access sequence.

Considerations for Effective Access Sequence Design

Designing access sequences thoughtfully is key to correct and efficient pricing:

  • Order of Accesses: This is the most critical aspect. Place accesses that point to more specific condition tables (more key fields) before those pointing to more general tables. This ensures specific agreements override general ones.

  • Use of the Exclusive Indicator: For most price condition types (like base prices), you will almost always set the exclusive indicator for every access. Once a price is found, the search should stop. For discounts or surcharges that might be cumulative, you might not use the exclusive indicator on all accesses, but this is less common and requires careful design.

  • Relevance of Tables: Only include condition tables in an access sequence if they are truly relevant for the condition type. Unnecessary accesses can slightly impact performance, though modern systems are very efficient.

  • Reusability: If multiple condition types will use the exact same search strategy, you can assign the same access sequence to them. This promotes consistency and reduces redundant configuration.

  • Testing: Thoroughly test your access sequences by creating condition records for various tables in the sequence and checking if the system finds the correct record in different sales scenarios.

The Process of Defining Access Sequences

Defining new or modifying existing access sequences is a configuration task. In a modern 3-tier SAP S/4HANA Cloud landscape, creating new access sequences is typically managed as part of a project within SAP Central Business Configuration (CBC).

The general (high-level) process involves:

  1. Analyzing the requirement for a specific search strategy for a condition type.
  2. Identifying the condition tables (standard or custom) that need to be included in this search strategy and their desired order of access.
  3. Accessing the relevant configuration activity (SSCUI) for defining access sequences within your CBC project (e.g., often found under path General Business DataPrice ManagementSales PricingSettings for Pricing in SalesSet Access Sequences).
  4. Creating a new access sequence (giving it an ID and description) or modifying an existing one.
  5. For the new access sequence, adding accesses (steps). For each access, you specify:
    • The access number (determining sequence).
    • The condition table to be searched in this step.
    • Whether the access is exclusive.
    • Optionally, any requirement routine.
  6. Saving the access sequence definition.
  7. This new or modified access sequence, once defined and confirmed in CBC, will be deployed to your S/4HANA Cloud development system and then transported through the landscape.
  8. Finally, the access sequence must be assigned to the relevant condition type(s) in the condition type configuration.
A conceptual mockup of a configuration screen for an Access Sequence. It shows fields for Access Sequence ID and Description. Below is a table with columns: Access No., Condition Table, Description, Exclusive. Example rows show Access 10 pointing to Table 305 (Cust./Material Price) with Exclusive checked, and Access 20 pointing to Table 004 (Material Price) with Exclusive checked.

Summarizing Access Sequence Configuration

Key Takeaways for Access Sequences

  • Access Sequences define the prioritized search strategy (which tables to check in which order) for finding condition records for a condition type.
  • They consist of one or more accesses (steps), each pointing to a specific Condition Table.
  • The Exclusive Indicator per access is crucial; if set, a successful search at that access stops further searching for that condition type.
  • The order of accesses is vital: typically from most specific criteria to most general.
  • New access sequences are usually defined in SAP Central Business Configuration (CBC) during project implementations.
  • Access sequences are assigned to condition types to link them to the search strategy.

Best Practices for Access Sequence Management

  • Plan Carefully: Design your search strategies based on clear business rules for price, discount, and surcharge specificity.

  • Prioritize Correctly: Ensure that tables with more specific key combinations are accessed before tables with more general key combinations.

  • Use Exclusivity Wisely: For price conditions, ensure the exclusive flag is set appropriately to prevent multiple prices from being found. For other conditions like some surcharges, non-exclusive accesses might be needed if accumulation is desired (though this is less common).

  • Re-use Standard Where Possible: SAP provides many standard access sequences. Evaluate if these can be used before creating new custom ones.

  • Test Thoroughly: After configuring an access sequence and assigning it to a condition type, test with various scenarios and data combinations to confirm it retrieves the correct condition records.

  • Document: Clearly document the logic and structure of your custom access sequences.

Designing an Access Sequence for a Discount Condition Type (Conceptual Exercise)

Exercise Objective

This exercise will guide you through the thought process of designing a custom Access Sequence in SAP S/4HANA Cloud. You will apply your understanding of how access sequences control the search for condition records based on a specific business scenario.

Your company wants to implement a specific material discount using the condition type DM01 (Material Discount). The business requirement for this discount is as follows:

  • The system must first search for a discount specifically defined for a combination of Customer Group and Material within the relevant Sales Organization.

  • If no such specific discount is found, the system should then search for a more general discount applicable only to the Material within the relevant Sales Organization.

You have been informed that the following custom condition tables (or similar standard ones) are available or can be created:

  • Table 910 (Example): Key fields = Sales Organization / Customer Group / Material Number

  • Table 911 (Example): Key fields = Sales Organization / Material Number

Prerequisites

You have completed the lesson "Setting Up Access Sequences for Price Determination" and grasp its purpose, structure (accesses, tables, exclusive indicator), and key design considerations.

You understand that an access sequence must be assigned to a condition type to be effective.

You are aware that new access sequences are typically defined in SAP Central Business Configuration (CBC) during project implementations.

Steps

  1. Propose a suitable 4-character ID and a descriptive name for a new custom Access Sequence that will fulfill the search strategy described in the Context section.

    Remember that custom objects in SAP start with 'Z'. The description should clearly convey the access sequence's purpose or search logic.

    1. For the ID, propose a 4-character alphanumeric key starting with 'Z'. For example, ZMD1.

      Using 'Z' denotes it as a custom object. 'MD1' could intuitively link to 'Material Discount 1' or relate to condition type DM01.

    2. For the description, propose a clear text. For example, "MatDisc: CustGrp/Mat then Mat".

      This description concisely explains the search priority: first Customer Group/Material, then just Material.

  2. Define the individual accesses (search steps) required within your proposed Access Sequence ZMD1. For each access, specify the access number (determining search order), the condition table to be used, and whether the 'Exclusive' indicator should be activated.

    The scenario requires checking the most specific criteria first (Customer Group/Material) before checking the more general criteria (Material). The 'Exclusive' indicator is key to stopping the search once a valid record is found.

    1. Define the first access in the sequence, for example, as Access No. 10.

      Access numbers are typically in increments of 10 to allow for future insertions if needed.

    2. For Access No. 10, assign Condition Table 910 (Keys: Sales Organization / Customer Group / Material Number).

      This step will make the system search for a record matching the specific combination of Sales Organization, Customer Group, and Material Number.

    3. For Access No. 10, set the 'Exclusive' indicator to active (checked).

      This ensures that if a condition record is found using Table 910, the system will use that record for condition type DM01 and will not proceed to check subsequent accesses in this sequence for DM01.

    4. Define the second access in the sequence, for example, as Access No. 20.

    5. For Access No. 20, assign Condition Table 911 (Keys: Sales Organization / Material Number).

      This step, being second, will only be executed if no valid record was found through Access No. 10. It searches for a more general discount based only on Sales Organization and Material Number.

    6. For Access No. 20, also set the 'Exclusive' indicator to active (checked).

      If no record was found in Access 10, but one is found using Table 911, the system will use that record and stop the search for condition type DM01.

  3. Explain the reasoning behind the order of the accesses (Table 910 before Table 911) and the decision to use the 'Exclusive' indicator for both accesses in this specific discount scenario.

    This step is about articulating the design choices for the search strategy.

    1. The primary reason for placing Access 10 (using Table 910: Sales Org / Customer Group / Material) before Access 20 (using Table 911: Sales Org / Material) is the principle of specificity.

      Businesses usually want the most specific rule to apply. A discount for a specific customer group and material is more specific than a discount for just the material.

    2. By checking the more specific Table 910 first, the system ensures that if such a targeted discount exists, it will be found and applied.

    3. The 'Exclusive' indicator is set for both accesses because, for a particular discount condition type like DM01, you generally want only one rate or value to be determined and applied per sales document item. Once the system finds the first valid record based on the prioritized search, it should not continue looking for (and potentially applying) other, less specific records for the same DM01 condition type.

  4. Once your new Access Sequence ZMD1 is defined and saved (e.g., in SAP Central Business Configuration and deployed to S/4HANA Cloud), what is the immediate next configuration step required to enable its use for the material discount condition type DM01?

    Defining an access sequence is one part; making it active for a condition type is another.

    1. After the Access Sequence ZMD1 has been successfully created and is available in the target configuration environment, the immediate next step is to assign this access sequence (ZMD1) to the specific condition type (DM01) that should use this search strategy.

    2. This assignment is performed within the detailed configuration settings of the condition type DM01. You would use the relevant SSCUI (e.g., "Set Condition Types for Pricing" in CBC or the "Implementation Activities" app) to edit DM01 and specify ZMD1 in its 'Access sequence' field.

      Without this assignment, the condition type DM01 will not know to use the search logic defined in ZMD1, and it may not find any condition records or may use a different, incorrect search strategy if one was previously assigned.

Result

By completing this exercise, you have outlined the design for a new custom Access Sequence (ZMD1) tailored to a specific business requirement. You have determined the necessary accesses, the order of condition tables, the use of the exclusive indicator, and identified the subsequent step of assigning this access sequence to the relevant condition type (DM01).

This thought process is fundamental to setting up precise and effective price determination strategies in SAP S/4HANA Cloud.