Learn how to configure and use SAP master contract referencing requirements and copy rules to optimize the administration of customer contracts in SAP sales and distribution (SD). Discover how to resolve some related customer contract issues.
Key Concept
The SAP master contract functionality makes it possible for the values in certain defined fields in an upper-level contract (master contract) to be copied into lower-level customer contracts assigned to the master contract. The copying of values from certain fields in the master contract to lower-level customer contracts is based on defined referencing requirement fields assigned for the master contract from some SAP sales and distribution (SD) tables. It is used in grouping contracts for effective administration that can help organizations get better contract visibility, enhance transaction integrity and monitoring of contract performance, save cost, and reduce risk (because poor contract administration can lead to significant loss of revenue and serious legal penalties). The SAP customer contract is under Sales Outline Agreements, which is part of the Sales sub-module of the SD module.
Organizations use contracts to keep long-term sales relationships with their customers and sustain consistent patronage of their products and services. This makes a contract a vital part of a business. The efficient management of it can eliminate inconsistencies in delivering contract terms, inadequate visibility of contract performance, and disputes with customers due to wrong execution of a contract because of poor data integrity and other issues. In the SAP sales and distribution (SD) module, some functionality has been provided to improve administration of customer contracts. One example is the use of a master contract to optimize the creation and administration of a group of relevant contracts (such as quantity, value, and service contracts).
With the functionalities of the referencing requirement fields and copy rules, the use of master contract functionality enhances data consistency, transaction integrity, and visibility of customer contracts. This leads to better contract performance and saves organizations the cost of poor contract execution. This is relevant especially for organizations that transact with a large volume of sensitive contracts. The SAP system uses standard application logic to determine how data is copied from the master contract to assigned customer contracts (lower-level contracts).
Note
Referencing requirement fields are contract document type fields assigned in a referencing requirement procedure to enable the copy functionality of copying or referencing the contract document type field’s values from the master contract to the lower-level customer contracts.
I explain how to configure the referencing requirements for a master contract and how I resolved some implementation issues I encountered.
How a Master Contract in SD Can Optimize the Administration of Contracts with a Business Scenario
The core of most business relationships with customers is based on contracts; it is a major factor for a company’s competitive advantage. On average, about 75 percent of business transactions and relationships are based on contractual agreements, and therefore, it is a critical business practice to ensure optimal administration of contracts in an organization. As stated earlier, SAP has provided functionalities to help organizations manage their customer contracts. The concept of using a master contract is one of them. A master contract in SD is used as a higher-level contract to administer a group of lower-level customer contracts simultaneously, whereby data maintained in the master contract is automatically copied uniformly into the assigned lower-level customer contracts.
Here are some reasons why I usually recommend a master contract for organizations with a largenumber of customer contracts:
- Better organization: Customer contracts are grouped under a master contract based on defined criteria by an organization. This grouping facilitates the effort to identify and locate customer contracts because each master contract has a description and an overview list of all lower-level customer contracts linked to it. The master contract also enables the uniform update of a group of contracts with ease.
- Better visibility: With the master contract overview list of all linked lower-level contracts, a contract administrator can easily see the performance of all assigned lower-level contracts because their validity dates are visible and the contract details can be accessed directly from the master contract.
- Data integrity: With the referencing requirement fields and copy rules, sensitive data can be maintained at the master contract (single point of entry) and enforced on all assigned lower-level contracts so that users cannot make changes to such data in the lower-level contracts.
- Save cost: The cost of resolving customer disputes and the cost of wrongly executing a contract and fines can be largely reduced by using the SAP master contract.
- Reduce risk: The risk of losing unsatisfied customers and the risk of legal issues due to breach of contract can also be greatly reduced.
A Business Scenario
A manufacturing company that thrives in building long-term relationships with customers in different market and customer segments of its business has experienced difficulties effectively administering its customers’ contracts. The company experienced challenges such as not being able to make its staff comply with a uniform contract start date and end date rule, inconsistent terms of payment, inadequate monitoring of contracts because of poor contract visibility, difficulty in effecting changes among contracts, in particular customer segments, frequent disputes with customers over inconsistent contract execution, and several court cases caused by staff negligence.
This manufacturing company had up to 17,000 active contracts to be uploaded to its SAP system during the SAP implementation. Therefore, I recommended the use of the SAP master contract as a solution provided in the SAP system to help this organization change its ineffective contract administration. I also recommended that a well-trained, experienced contract administration team be given the authorization to create master contracts, manage them, and administer monitoring of lower-level customer contracts to maintain professionalism and best practices in contract execution. This solution using the master contract functionalities has enhanced the effectiveness of contract administration in the manufacturing company.
Currently, when a customer contract needs to be created, it is compulsorily linked to a master contract depending on the sales area. The contract administrators monitor and review contract activities on a monthly basis. Customer disputes have been reduced, and customer contracts have been efficiently administered.
How to Configure the Contract Referencing Requirement Fields from Some SD Tables
The referencing requirement field is the functionality that controls how the values of a master contract field are copied into assigned lower contracts. It determines which fields need to be checked and how the checking should be done.
Whenever I am implementing an SAP master contract, I consider certain parameters before defining the referencing requirement for an SAP user:
- What possible business scenarios are the lower-level contracts expected to fulfill?
- What are the expected durations of the lower-level contracts?
- Will contract data be relevant?
- Will a billing plan be required?
- Are the lower-level contracts going to be customer specific?
The prerequisites to configuring the referencing requirement fields for a master contract are:
- A master contract sales document type must exist or have been defined (the SAP default master contract is GK).
- The lower-level contract document types must have been defined.
Before I go ahead to show how to configure the referencing requirement fields, let me list the SD tables from which the referencing fields are picked. The referencing requirement fields are used to determine which fields’ values are copied or checked for consistency between the master contract and the lower-level contracts. The referencing requirement fields are categorized into the following tables in the SAP system:
- Header Data table (VBAK): This table includes fields such as Sales Organization, Distribution Channel, and Division.
- Business Data table (VBKD): This table includes fields such as Terms of Payment Key, Incoterms, and Exchange rate for FI postings.
- Contract Data table (VEDA): This table includes fields such as Validity period of contract, Unit of validity period of contract, and Contract start date.
- Billing Plan table (FPLA): This table includes fields such as Rule for Origin of Next Billing/Invoice Date and Billing/Invoice Creation in Advance.
- Partner table (VBPA): This table includes fields such as Customer Number 1, Country Key, and Partner Function.
To see the fields of these tables, go to the SAP ABAP Dictionary. To go to the SAP ABAP Dictionary use transaction code SE11 or follow SAP menu path Tools > ABAP Workbench > Development > ABAP Dictionary. When you click ABAP Dictionary, the system displays the ABAP Dictionary: Initial Screen (
Figure 1).
Figure 1
Enter the name of a table in the ABAP Dictionary initial screen
Enter the name of the table you want to display in the Database table field (e.g., VBAK) and click the Display button. This action displays the fields included in that table. For example, the Header Data table VBAK has the fields displayed in
Figure 2.
Figure 2
Fields in the Sales Document Header Data (VBAK)
Another functionality of the master contract referencing requirement is the copy rule. The copy rule is a control feature that determines how the referencing requirement fields are to be copied from the master contract to the lower-level contracts. There are three rules:
- A – Check for agreement: This copy rule when set for a field checks that the field of the lower-level contract has an identical value with that of the master contract; otherwise, the master contract link is deleted.
- B – Always copy: This copy rule is set for a field so that its value is copied from the master contract to the lower-level contracts. Users cannot make changes to such values in the lower-level contracts.
- C – Copy only if agrees: If this copy rule is set for a field in a master contract, any change in the field value is proposed in the lower-level contracts as the default value, but users can overwrite the proposed value of the field in the lower-level contracts. The value of the field is only copied if the field in the master contract and the lower-level contracts were the same value before the changes were made in the master contract.
Here is an excerpt of a typical requirement I have implemented for a client. The task was to apply consistent values to the following fields across their customer contracts for all customers in sales area xxxx/xx/xx:
- Payment terms
- Customer group
- Price group
- Price list
- Delivery block for Quality Inspection
- Payment Method
- Contract Start rule
- End date rule
It was also required that users not be able to make changes to the values of these fields in the lower-level contracts.
To implement this master contract scenario, I had to first assign the required contract document types to be used for the lower-level customer contracts to the master contract document type (GK). Then, I identified the tables and fields relevant for this requirement and defined the referencing requirement fields. I also assigned a copy rule that would restrict users from making changes in the lower-level customer contracts and set the Change in Master Contract Notification Messaging so that users receive a message notifying them of changes done to the required fields in the master contract when updating the lower-level contracts.
Following the above steps, I show how the SAP master contract referencing requirement fields are configured.
First, you assign the lower-level customer contracts ZZ and DD document types to the master contract GK document type. To do so use transaction code VORB or follow SAP IMG menu path Sales and Distribution > Sales > Sales Documents > Contracts > Master Contract > Define Referencing Requirements > Define Reference Sales Document Types.
Click Define Reference Sales Document Types to go to the Define Reference Sales Document Types Overview screen (
Figure 3).
Figure 3
The overview screen for Define Reference Sales Document Types
Click the New Entries button or click the copy icon

to assign the lower-level customer contracts ZZ and DD document types to the master contract GK document type. The lower-level customer contracts ZZ and DD document types are selected from the drop-down list of defined customer contract document types. The master contract is then assigned in the Source column.
Figure 4 shows the assigned contract document types.
Figure 4
Newly assigned referencing sales document types
After the assignment, click the save icon (not shown) to save the defined referencing sales document types. Now identify the required SD tables for the required fields in the above requirement using a table like the one in
Table 1.
SD tables
|
Table description |
Referencing field |
Field description |
VBAK |
Sales document: header data |
LIFSK |
Delivery block for quality inspection |
VBAK |
Sales document: header data |
VKORG |
Sales organization |
VBAK |
Sales document: header data |
VTWEG |
Distribution channel |
VBAK |
Sales document: header data |
SPART |
Division |
VBKD |
Sales document: business data |
ZTERM |
Payment terms |
VBKD |
Sales document: business data |
KONDA |
Price group (customer) |
VBKD |
Sales document: business data |
PLTYP |
Price list type |
VBKD |
Sales document: business data |
KDGRP |
Customer group |
VBKD |
Sales document: business data |
ZLSCH |
Payment method |
VEDA |
Contract data |
VBEGREG |
Contract start date rule |
VEDA |
Contract data |
VENDREG |
Contract end date rule |
Table 1
SD database tables for master contract referencing requirement fields
Now that I have showed you how to map out the required tables and fields relevant for defining the referencing procedure, I explain how to configure the referencing procedure.
To define a new referencing procedure for a master contract, use transaction code VORS or follow SAP IMG menu path Sales and Distribution > Sales > Sales Documents > Contracts > Master Contract > Define Referencing Requirements > Define Referencing Procedures. Click Define Referencing Procedures to create or edit a referencing procedure. This action displays the Change View “Procedures”: Overview screen (
Figure 5).
Figure 5
Overview of defined referencing procedures
Click the New Entries button or click the copy icon to define a new procedure (the procedure contains several referencing fields). In the next screen, input the new reference procedure ZSD and enter a description (Retail Master Contract Ref Procedure) as shown in
Figure 6. Click the enter icon (not shown) or press the Enter key on the keyboard.
Figure 6
Define referencing procedure ZSD
After you define the new reference procedure, click the back icon (not shown). This action takes you back to the Change View “Procedures”: Overview screen. To set up the referencing requirement fields, select the procedure that you just defined and double-click the Fields folder in the left pane (
Figure 7).
Figure 7
Overview of the referencing procedures with the newly defined procedure ZSD
In the next screen, populate the fields in the Table and Field name columns with the names listed in
Table 1. In the Copy r … (copy rules) column, assign copy rules to the fields. In the Message column, select the check boxes to fulfill the requirement of ensuring that the users are notified about any changes of the fields in the master contract when they want to edit any assigned lower-level contract (
Figure 8).
Figure 8
Define the required fields in referencing procedure ZSD
Finally, click the save icon (not shown) to save the configuration.
How to Set Up the Relevant Settings in the Master Contract and Customer Contract Document Types
It is important to check certain fields in the contract document types (the Billing and Contract section) based on a business scenario or requirements to ensure that relevant fields are assigned the right values.
To check or edit a contract document type, use transaction code VOV8 or follow SAP IMG menu path Sales and Distribution > Sales > Sales Documents > Sales Document Header > Define Sales Document Types. Click Define Sales Document Types. In the screen that opens (not shown), select a contract document type and click the details icon

to edit it. This action displays the screen in
Figure 9.
Figure 9
Maintain elements for the master contract document type
Master contract document type: In the Contract section (
Figure 9), ensure that the following elements are properly maintained:
- Group Ref. Procedure (group referencing procedure): In this field, assign the defined referencing procedure (for my example, it is ZSD). This field determines the fields relevant for copying rules from the master contract to the lower-level customer contracts (this can be changed in the master contract).
- Update low.lev.cont. (update lower-level contract): This check box must be selected in the master contract document type so that the lower-level contracts are updated when changes are made in the master contract.
Other elements that can be maintained based on the business requirement include the Billing plan type field, the Contract data allwd. (contract data allowed) check box, and the Contract profile field.
Lower-level customer contract document types: In the lower-level contracts, ensure that the following elements are properly maintained.
- Billing plan type: The billing plan type must be the same as the billing plan type in the master contract if the Billing plan referencing field is required. Figure 10 shows the Billing plan type 02, which represents periodic billing in the SAP standard setting.
- Contract data allwd (Contract data allowed): The contract data allowed check box value must match that of the master contract (Figure 10).
Figure 10
Maintain elements for the lower-level contract document type
These settings are based on the user’s business requirement. I have experienced several error issues during many tests of the master contract referencing requirement fields configuration at different clients’ sites based on their business scenarios. Therefore, it is important to check the contract document types based on the business scenario or requirements to ensure that relevant fields are assigned the right values.
Some of the error issues encountered are as follows:
In my first implementation of the SAP master contract, I encountered the following error issues:
“Contract data cannot be edited for document type xx.”
You receive this error message if the business scenario requires contract data (that means the Contract Data Referencing Requirement field is maintained), but the “No contract data allowed for order type” value is maintained for the Contract data allowed field in the lower-level contract document type.
To resolve this issue, go to the Contract data allwd. (Contract data allowed) check box and assign an X for Contract data allowed for order type in the Contract section of the lower-level customer contract document type.
To go to the Contract data allwd. (Contract data allowed) field use transaction code VOV8 or follow SAP IMG menu path Sales and Distribution > Sales > Sales Documents > Sales Document Header > Define Sales Document Types. Click Define Sales Document Types. In the screen the system displays (not shown), select the lower-level customer contract document type that you defined and click the details icon for the selected contract document type.
This action opens a screen (Change View “Maintain Sales Order Types”: Details) in which you can change the Contract data allwd. field value to X in the lower-level contract document type in the Contract section (
Figure 11). When you click the Contract data allwd. field, the system displays the list of values for the field (Blank – No contract data allowed for order type, X – Contract data allowed for order type, and Y – Like X, item contract data influenced by header). Select X, then press the Enter key on your keyboard or click the continue icon (the green check mark) to copy the selected value for the field.
Figure 11
Change the Contract data allowed value to X
After the selected value X has been copied for the Contract data allwd. field, click the save icon to save the change.
Another Business Scenario
In another client’s business scenario, a billing plan was required and the Billing plan referencing field was maintained in the referencing procedure.
When trying to assign a master contract to a lower-level customer contract during testing of the referencing requirement fields, I encountered this issue: Check Field: Next Billing Date. Reference from group master contract deleted (
Figure 12). This issue does not allow the lower-level contract to be linked with the master contract.
Figure 12
Issue message displayed on the copy rule screen
You encounter this issue when the Header Billing Plan field (PERIO - Rule for Origin of Next Billing/Invoice Date) is maintained in the referencing procedure with copy rule A and the lower-level contract has a different billing plan assigned in the document type in customizing. Copy rule A only accepts an identical field value between the master contract and the lower-level contracts.
To resolve this issue, go to the lower-level contract document type and assign the same billing plan that you entered in the master contract.
To assign a billing plan in a contract document type in customizing, use transaction code VOV8 or follow SAP IMG menu path Sales and Distribution > Sales > Sales Documents > Sales Document Header > Define Sales Document Types. Click Define Sales Document Types.
In the screen the system displays (not shown), select the lower-level customer contract document type and click the details icon for the selected contract document type. This action opens a screen in which you maintain the Billing plan type field value. In my case, I had to change the Billing plan type from 01 (Milestone Billing) to 02 (Periodic Billing) in the lower-level contract document type in the Billing section (
Figure 13). When you click the Billing plan type field, the system displays the list of available billing plans. Select 02 and then press the Enter key on your keyboard or click the continue icon to copy the selected value for the Billing plan type field.
Figure 13
Change the value of the Billing plan type field to 02 (periodic billing)
After the change, click the save icon to save the change.
How to Create the Master Contract and Link Lower-Level Contracts
In this section I walk you through how to create a master contract and link it to lower-level contracts.
Create the Master Contract
First, you create a master contract using the referencing procedure I defined in the example above (see
Figures 7 and
8).
To create a master contract use transaction code VA41 or follow SAP menu path Logistics > Sales and Distribution > Sales > Contract > Create. After you click Create, the system takes you to the Create Contract: Initial Screen (
Figure 14).
Figure 14
Enter values to create a master contract
In
Figure 14, enter values in the following fields (the values for my example are in parentheses):
- Contract Type (GK) Master Contract
- Sales Organization (1000)
- Distribution Channel (10)
- Division (00)
Click the enter icon after you have entered all these values.
When you click the enter icon, the system displays the Create Master Contract: Overview screen (
Figure 15). In this screen enter a description in the Master Contract field and a number for the customer in the Sold-to party field. For my example, I used 8822 (Hyper-Class) for the Sold-to Party number. (I selected Hyper-Class because this selection doesn’t have to be a real company name.) You also need to enter the Contract start date rule and Contract end date rule as part of the business requirements specified for the master contract referencing requirement fields.
Figure 15
Enter data for the master contract
Then enter values in other required fields in the Master Contract Header Data (Customer group, Price list, and Price group) in the Sales tab. Enter a value for the Delivery block for Quality Inspection in the Shipping tab. Enter payment terms in the Billing Document tab and a payment method in the Accounting tab.
Figure 16 shows the entries of Customer group (Trading companies), Price List (Retail Sellers), and Price group (Retail Sellers) in the Sales tab.
Figure 16
Sales Header Data view for the master contract
Figure 17 shows the entry of Delivery block for Quality Inspection (QM Block) in the Shipping tab.
Figure 17
Delivery Header Data view for the master contract
Figure 18 shows the entry of payment terms (0002) in the Billing Document tab.
Figure 18
Billing Header Data view for the master contract
Figure 19 shows the entry of Payment Method (Z) in the Accounting tab.
Figure 19
Accounting Header Data view for the master contract
After entering the required fields in each respective tab, click the save icon (not shown) to save the master contract. You then receive the following message: Master Contract 40000209 has been saved.
Create a Lower-Level Contract and Link It with the Master Contract
Now that the master contract has been created, I show you how to create a lower-level customer contract using ZZ customer contract document type (a quantity contract).
Note
The lower-level Customer contract must be in the same Sales Area with the Master Contract.
To create a lower-level customer contract and assign it to the master contract 40000209, use transaction code VA41 or follow SAP menu path Logistics > Sales and Distribution > Sales > Contract > Create. After you click Create, the system displays the Create Contract: Initial Screen (
Figure 20). In
Figure 20, enter the following values: Contract Type (ZZ), Sales Organization (1000), Distribution Channel (10), and Division (00). Click the enter icon (not shown).
Figure 20
The initial screen to create a contract
After you click the enter icon, the system displays the screen in
Figure 21 in which you enter the contract description and customer (8822) Hyper-Class. Enter the Contract start date rule 04 and Contract end date rule 08 as part of the business requirements specified for the master contract referencing requirement fields. Select the master contract number, and the master contract is successfully linked with this new lower-level customer contract. All the required fields are copied from the master contract to this new lower-level customer contract (
Figure 21).
Figure 21
Enter data for the lower-level contract
Check the contract header data under the Sales tab to confirm if the customer group, price list, and price group were copied into this new contract from the master contract.
Figure 22 shows that the required data was copied from the master contract to this new lower-level contract. Similarly, data in the Shipping, Billing Document, and Accounting tabs was copied and cannot be changed at the lower-level contract because the fields are using the copy rule B in the referencing procedure.
Figure 22
Sales Header Data view for the lower-level contract
In the Shipping tab, the Delivery block field is populated with the value QM Block by default. This value is copied from the master contract (
Figure 23).
Figure 23
Delivery Header Data view for the lower-level contract
In the Billing Document tab, the Terms of Payment field is populated with the value 0002 by default. This value is copied from the master contract (
Figure 24).
Figure 24
Billing Header Data view for the lower-level contract
Also in the Accounting tab, the Payment Method field is populated with the value Z by default. This value is copied from the master contract (
Figure 25).
Figure 25
Accounting Header Data view for the lower-level contract
After you click the save icon to save the contract, you receive the following message: Retail Contract (Qt) 40000210 has been saved.
The process of creating the above lower-level contract 40000210 is used to create another new lower-level contract with contract document type DD (a value contract) with document number 40000212.
Display of Master Contract Overview for All Assigned or Linked Lower-Level Contracts
In the master contract lower-level contract overview, every lower-level contract assigned to the master contract is displayed. This feature can be used to enhance contract visibility (contracts can be uniformly grouped under master contracts and can easily be located on the master contract lower-level contract overview list) and leads to better monitoring and evaluation of contract performance. (The lower-level contract overview list makes it visible to monitor validity periods, and each lower-level contract details can be accessed via the master contract to evaluate the performance of the contract, such as checking the already released value of a contract.) See
Figure 26.
Figure 26
Master contract overview list of assigned lower-level customer contracts
The lower-level contracts can be accessed via this overview by selecting a particular lower-level contract and clicking the display item details icon or clicking Goto > Lower level contract on the menu bar.
Let me share at this point how to resolve some more issues that may be encountered when you assign a lower-level customer contract to a master contract.
One copy rule issue I encountered when linking a lower-level contract to a master contract is Check field: Unit validity Period; Reference from group master contract deleted. This issue also does not allow the lower-level contract to be linked with the master contract (
Figure 27).
Figure 27
Inconsistent data issue screen for the unit validity period
You may encounter this error issue if the Unit validity period field is assigned in the Referencing Procedure fields with the copy rule A.
To resolve this issue, the Unit validity period in the Contract data of the lower-level contract document header should be maintained with the same value maintained in the master contract. Otherwise, the master contract link will be deleted (
Figure 28).
Figure 28
Contract Header Data view for a lower-level contract
Also, the Partner field issue is a common issue that may be encountered when linking a lower-level customer contract that has a different Sold-to-party (customer) from that which has been maintained in the master contract. I have encountered this error Check field: Customer [SP], Reference from group master contract deleted (
Figure 29).
Figure 29
Inconsistent customer issue screen
I resolved this issue by deleting the referencing fields for Partner functions. If the user’s business scenario requires that contracts with a different Sold-to-party (customer) be linked to a particular master contract, the referencing fields for Partner functions should not be maintained. That is because the Sold-to-party field only allows copy rule A, which has the condition to check for only identical data between the master contract and lower-level customer contracts.
The SAP master contract enhances effectiveness of contract administration. I recommend that the master contract field be made mandatory for contract document types that are required to be linked to a master contract. Always linking contracts to a master contract helps to enforce user compliance.
Patrick Imhen
Patrick Imhen is a business analyst and a certified SAP ERP consultant with proficient knowledge, skills, and experience in Materials Management (MM), Sales and Distribution (SD) and Plant Maintenance (PM) gathered from successful SAP implementations projects, support, training, business process analysis, modeling, unit testing, and integration testing. He has profound understanding of the supply chain process across industries and helps organizations cut the cost of operation and improve process optimization. He has more than 10 years’ experience in the business environment and six years’ experience in the SAP domain.
You may contact the author at
patrick.imhen@zocoderesources.com.
If you have comments about this article or publication, or would like to submit an article idea, please contact the
editor.