SAP Sourcing

8 Posts authored by: Markus Frieske

Implement Service Master in SAP Sourcing / CLM Including Integration with SAP ERP


While most companies have a good overview of their direct spending, and have processes in place to drive efficiency and compliance, they tend to lack the same oversight for indirect spending. Depending on the industry, services can account for less than 50% and up to 90% (financial sector) of indirect spending. It also depends on the industry and how important it is to have the ability to structure services including support of a service master. In a SAP ERP system SAP External Service Management (MM-SRV) is an application component of SAP MM (Material Management) which supports the complete cycle of purchase requisition, order placement, acceptance of services, contract management as well as the invoice verification process.

While SAP Sourcing/CLM provides integration with SAP MM, it has less support for services. SAP Sourcing/CLM 9.0 allows to distinguish between materials and services, but it lacks support of a service master. While this is an item in the SAP Sourcing/CLM backlog bucket, it is currently not available. However, I will present one possible solution that will allow customers to solve this gap without too much overhead. Note that there are some limitations and restrictions to this workaround. These will be addressed later in this post.


Create Service Master in Sourcing

Here, we’ll use the existing material master in SAP Sourcing as the service master. To distinguish between the material and service master, add an extension field Is_Service of type Boolean.


Sourcing Service Master.jpg

Generally, the IDoc MATMAS05 is used to send materials from SAP ERP through PI to SAP Sourcing. The same kind of IDoc for services is called SRVMAS01. To enable the transfer of a service master to PI,you must perform the same  configuration tasks that were done for materials, like adding SRVMAS to the Distribution Model (transaction BD64), Partner Profile (WE20), and so on. Next, adjust the PI configuration to create the Operation Mappings, Message Mappings, Service Interface, etc. similar to how it is for the ERP Material to ES Material, and making sure the extension field Is_Service is set to TRUE for the service master.


Use Service Master in Documents

Although adding a service master to a document might already work, some additional work is required to improve usability. First, start by changing the default value of the Add Material button to Add Material/Service. Search for the Localized Resource and enter the text at the field Value Override. When a user clicks Add Material/Service in an RFx or Master Agreement, the standard queries can be adjusted so that they do not show data where Is_Service is TRUE. Additionally, create a new query called All Services (add further queries as required for your specific business needs) for our services master. Do not forget to assign the new query to the Query Group for material selection.


Adjust add material button text.jpg


adjust query to include All Services.jpg

SAP Sourcing distinguishes between materials and services; for example different price conditions are selected similar like in SAP ERP. Through scripting it is possible to change the item type from Material to Service in the case where a service master is added. Afterwards the application will automatically display the service price condition(s) instead of the typical PB00 condition for materials. Lastly, change (in page customization) the label from * Material to * Service in the item details.


Add service master item final with highlighting.jpg


Enable Integration with SAP ERP

SAP ERP handles services differently than materials. In the item overview, there is only an item of type D (“D” for the German word for Service: Dienstleistung) with a description and an optional plant. You can configure the unit of measure for this item. The default setting is 1 AU (Activity Unit). The price is calculated from the service item(s). Each item (of type D) can have one or many services underneath it, which can have a service master or a free text description, quantity with uom, and a price (one or multiple price conditions).

This concept allows you to group items together, for example the same kind of services could be part of multiple items, but with different prices depending if it is during normal operational hours, or during the night or weekend.


ERP OA item overview.jpg

ERP OA service items.jpg


The ERP interface itself already supports a service master (used for the SAP SRM to ERP integration). The Line Item Group concept in SAP Sourcing can be used for grouping of services, which might not be ideal from a usability point of view, but requires only limited changes. As the line item group description(s) is not by default part of the XML message sent to PI, some additional work is required to get this information to PI and then map the data accordingly to create the follow-on document in SAP ERP. Note that information about the service master data ID gets mapped in PI to ensure the SAP ERP Outline Agreement has this information as well.



Things to Consider

As mentioned earlier, this solution has some limitations. For example it is designed on top of SAP Sourcing/CLM 9.0, because only this release provides an Item Type to distinguish between Material and Service. Release 9 is currently in “Ramp-up” mode and expected to be generally available in October 2012. It is already available for OnDemand customers).

Using the existing (Sourcing) Material Master for the Service Master could be a limitation, but it reduces the effort. In case additional data is required the material master might require further extension fields.


Services themselves in ERP have no associated plant; only the item (item type D) with the description can have a plant. On the other hand, in SAP Sourcing each item can have a plant which can be confusing for end users. For example, in the case multiple service items that are used in a single line item group that have their own individual plants, which one should be used? This requires some end user training to use only the same plant within a line item group for services.


Lastly, I think it is important to have the right resource(s) available to implement this as detailed knowledge of several areas like SAP ERP, PI, Sourcing and scripting is required. Please let me know what you think about this concept. Have you already done an implementation of service master in a lower release? Feel free to add some comments or contact me directly at

The user who sends an SAP ERP RFQ to SAP Sourcing is not always the owner of the RFx document. The owner can also be the user who created the RFx template. This template (or templates might have been created by an administrator, who by default becomes the owner of all documents that use this template (see my other post, “How to choose which RFx template in SAP Sourcing should be used?”). Of course, it is possible to add other users and groups as owner, but wouldn’t it be easier if the user who maintains the SAP ERP RFQ is also the owner of the Sourcing RFx document? While this is certainly an item in the SAP Sourcing/CLM backlog bucket, it is currently not available. However, I will present one possible workaround (I am sure there are other ways this can be done).


The idea is simple: make sure that the user ID is sent from SAP ERP through PI to SAP Sourcing, and then run a script which replaces the RFx owner with the user ID from ERP. One prerequisite for this approach is that the users are in sync between SAP ERP and SAP Sourcing (that is, the user IDs in both systems should be identical, otherwise the script needs to be adjusted accordingly). Another prerequisite is that the users have the required permission.


Another approach you could take (and skip any work in SAP ERP and SAP PI) is to create (user) groups in SAP Sourcing with the same ID as your Purchasing Groups. Then, run a script similar to the one described above to add this group as collaborators of the RFx document (note that it is not possible to change the owner of a RFx document to a (user) group, thus the owner might be a generic user).


Let’s start in SAP Sourcing by adding an extension field which retrieves the SAP ERP RFQ user ID.

  1. Go to Setup and click at Extension Definition.
  2. Select RFx and change to Edit mode.
  3. Add an extension field of type String with an internal name like RFQUSER etc.
  4. Save, and go back to Setup.
  5. Go to Integrated Document Configuration and open the IDC for ERP.
  6. Go to Excluded/Included Attribute List and click at rfx.RFXDoc (in Edit mode) and scroll down to where you should find the Included Extensions.


Make sure that the newly created field RFQUSER is selected to ensure that it is part of the generated XML file. Additionally, make sure (in Page Customization) that this field is read-only so that other users cannot change this field.


IDC included Extensions.jpg


Now, we can add the script that we discussed earlier.

  1. Go to Script Definition and create a new document.
  2. Select Document Lifecycle Event and enter data similar to the shown in the figure below.
  3. Set the class to RFx. You might want to select a specific Document Type, but this depends on your system configuration as different RFx templates with different document types can be configured.
  4. Copy/enter the script at the end of this post. Note that the script is only an example, and you might want to adjust it depending on your requirements!

Create a new Script Definition in Sourcing.jpg


Before SAP PI mapping occurs, we need to make sure that the user ID is part of the IDoc. The data in the RFQ document is transformed into the IDoc ORDERS05. This IDoc (by default) will not contain the user name or user ID. However, the segment E1EDL37 has a field called ERMAN (Name of Person who created the Object) which can be used for this purpose. For example, use a user exit to populate this field with sy-uname.


In SAP PI, do the following:

  1. Open the Enterprise Services Builder, select the PI Content (for example, E-Sourcing SRM Java Server OP 9.0), expand Data Types,and double-click DT_RFx_Header_Fields.
  2. Change to Edit mode and insert a new element.
  3. Enter the name RFQuser same like the extension field which we created before in Sourcing.
  4. Save and activate the changes.
  5. Then, navigate to Message Mappings and double-click at MM_ORDERS05_To_RFx.
  6. Edit the message mapping by expanding the segment E1EDl37 and clicking ERNAM.
  7. In the list on the right side, select the new field RFQUSER.
  8. Connect it as shown in the figure below.
  9. Save and activate the mapping.


PI mapping.jpg



Sample script:

// This script will set the document owner to the value of a string extension field RFQUSER.

// It generates an error if the value of the name is not found in the user account data.

uaName = doc.getExtensionField("RFQUSER").get();

if (hasValue(uaName))

{    // See if this string is a valid user account

    userAccountHome = IBeanHomeLocator.lookup(session, doc.getDocumentOwnerUserReference());

    userAccountBean = userAccountHome.findByName(uaName);

        // Throw an error if the name is invalid

    if (!hasValue(userAccountBean))


        throw doc.createApplicationException("RFQUSER", "invalid name");




        // Set the owner in the RFx


                // Clear the name to avoid this code from being executed again




SAP Sourcing Wave 9 provides a new feature that it is possible to choose which RFx template should be used for ERP RFQ documents. For this purpose a new field (TEMPLATE_EXTERNAL_ID) was introduced. Depending on the setup and/or organization customers will have different requirements how this should be configured, e.g. each purchasing organization or group might have their own template versus others might want to their end users to make this decision. Customers can either implement a new field in the SAP RFQ (e.g. having a dropdown/search help to select the right template) or make use of the existing fields. Further it is possible to implement some logic in background if this should not be decided by end users. Below I am providing some possibilities how this could be done with no or only minor changes on ERP side.



Configuration on SAP Sourcing


First of all at least one, but most likely multiple RFx template needs to be created. It is important that the RFx document type is integrated as otherwise it would not be possible to create a follow-on document in ERP like an outline agreement or a purchase order. The required configuration is very easy, simply go to the Setup and under the section Integration click at Integrated Document Configuration. There should be already one or multiple entries, select the IDC used for the ERP document integration. Under Document Templates simply add an entry for each RFx template. The dropdown box under Template Name is filtered and only shows ERP integrated RFx templates to avoid issues (in case a non-integrated template would be selected it would not be possible to publish the award to ERP). The field External ID contains the value which will be send from ERP to SAP Sourcing.


IDC RFx template ID.jpg


How is an ERP PR/RFQ transferred to SAP Sourcing?


The ERP RFQ is used that items from multiple Purchase Requisitions can be combined into a single sourcing event. The ERP system will create an IDoc ORDERS05 and send it to SAP PI (make sure that the vendor is entered which is maintained for the SAP Sourcing integration (ERP IMG Integration with Other Components ->SAP Sourcing  -> Make Settings for Integration with SAP Sourcing). PI generates an XML message which gets copied to the FTP server and a Scheduled Task in SAP Sourcing will import this file and create an RFx event.



ERP Request For Quotation (RFQ)


The ERP RFQ has several fields on header level which could be used to contain the value for the field TEMPLATE_EXTERNAL_ID. Depending on the setup of ERP there might be different RFQ Types which could be used to determine the ERP. Other possibilities are the field Collective Number is a free text field (up to 10 characters) which is as well by default transferred via the IDoc to PI. Further the reference fields could be used as they are also send to PI.


RFQ header_2.jpg


The transaction WE02 “IDoc List” in ERP can be used to verify which data is part of the IDoc ORDERS05. Transaction WE30 provides a more technical view  of IDocs.


Changes on SAP PI


You can use the transaction SXMB_MONI to verify which data arrived in SAP PI. For example expand the Inbound Message -> Payloads and double-click at MainDocument. At the different segments you can find the data which was entered in the RFQ document. Write down the segment as it will make it easier to find the field in PI to do the required mapping!


XML message in PI_01.jpg

XML message in PI_02.jpg


PI mapping


In PI start the Integration Builder (tx. SXMB_IFR) and click at Enterprise Services Builder. Select the used PI content like E-Sourcing SRM Java Server OP, navigate to Message Mappings as shown below and double-click MM_ORDERS05_To_RFx. Make sure you are in Change mode! Now expand the segment which contains the field you want to map like E1EDK01 and double-click for example at BSART. The right side contains the RFx mapping where you need to find the field TEMPLATE_EXTERNAL_ID. Last but not least connect the fields, save and activate the changes.


required PI mapping2.jpg

For some other fields like the field Collective Number it might be more complex as the note is used more than once that you have to add an IF-statement to make sure that the right data is copied over to the field Template_External_ID.


required PI mapping complex.jpg

There are a few things which can make the integration between SAP Sourcing and SAP ERP more stable, most of them will also be valid for the integration between SAP Sourcing and SAP SRM (planned to be released with SAP Sourcing Wave 9 in 2012). That the master data between the two systems should be synchronized might be obviously, but… Initially some master data could not be extracted from ERP and it was manual work. Please also read my blog Extracting ERP Master data for SAP Sourcinga as it provides an update about new extraction of master data like unit of measure, Incoterms etc.



The workbook which gets imported during the installation has many master data like currencies and unit of measure; in case you have an ERP system I would reduce the data of the workbook and use the ERP extraction reports.


Unit of measure (UOM)

I recommend using the report BBP_ES_CUSTOMIZINGDATA_EXT_CSV to extract the unit categories (called dimensions in SAP ERP) and the related text for unit categories. SAP Sourcing does not have a XML importer for this master data object, but as unit categories are not visible for end users just import it in a single language (just to avoid issues the easiest might be do it in English). There might be still an issue that with the unit category ‘no dimension’, I will update this blog when an OSS note is available to fix it. For the ISO codes for unit of measure and UOM itself please use the standard report BBP_ES_CUSTOMIZINGDATA_EXTRACT and extract it in all languages you plan to use in SAP Sourcing.

In case you do a new installation of SAP Sourcing: how many different unit of measure will you really need? An ERP system often has much more than 200 UOM and it might be difficult to judge which of them are required, but the user will for free text items have a long dropdown list with them that it would improve the usability for all users to reduce it. Import all ISO codes, but (manually) remove the unit of measure from the XML before importing it into SAP Sourcing. This might work easier if not many UOM via the workbook have been imported.



Similar like for unit of measure it might be worth to check which currencies are required. ISO codes for currency and currency itself can be extracted for multiple languages using the standard report BBP_ES_CUSTOMIZINGDATA_EXTRACT, just edit the XML before importing it into SAP Sourcing in case you would like to reduce the number of available currencies in SAP Sourcing.


Materials and suppliers

You plan to start standalone with SAP Sourcing or SAP CLM, but use the integration features in a later phase? Or there is only limited knowledge about PI that you postpone the installation and configuration of PI? But what about materials and/or suppliers, create them manually? You can use the report BBP_ES_MASTERDATA_EXTRACT in ERP to do an initial extraction of materials and as well suppliers. Same like other master data the XML files can be imported into SAP Sourcing without using PI.


SAP Sourcing RFx and BOM

SAP Sourcing provides a feature called BOM – Bill of Materials – for RFx events, but not in agreements or auctions. A BOM in ERP is different as well. A BOM can contain furthers BOMs and materials, when creating a follow-on document like a master agreement or an outline agreement in ERP the BOM gets replaced with the materials which could be confusing and might not always works. If BOMs are available is controlled by the security profile of a rule, e.g. navigate to the purchaser role, tab Access Rights and set all events for Bill of Materials to Not Set. Afterwards (you might need to log off and on again) you will not be able to add a BOM to a RFx nor have it at the Enterprise Sourcing menu.


BOM Security profile

BOM Security profile

Enterprise Sourcing menu with Bill of Materials (BOM)

Enterprise Sourcing menu with Bill of Materials (BOM)



Synchronize the document number of your master agreements with your ERP outline agreements

In ERP you configure an internal and external number range (which contains only numbers). In short ERP will use the internal number range if no number is passed and try to use the external number range whenever a number is passed. But what does it mean – “it will try”? ERP will check if that number fits into the external number range, if yes it creates the document, otherwise it will do nothing (=not create the document).

SAP CLM should always transfer the Master Agreement ID always to your ERP system, but as this ID often contains characters it would fail. A recently correction in ERP will do a quick check if the number from SAP CLM fits into the external number range. If successful it will either pass this number or not that ERP will take the internal number range.


Analyze the data which arrives in ERP

SAP Sourcing is working standalone and you followed all steps of the configuration guide “Integration of SAP ERP and SAP Sourcing”, but the contract or Purchase Order gets not created in ERP – does this sound familiar to you? Or a document gets created, but some data is incomplete? Or you added some custom fields and would like to know if all data arrives correctly in SAP ERP? If this sounds familiar I hope you are aware of the transaction BBP_ES_Analyze in your SAP ERP system. For example you can check via transaction SE91 if it exists in your system.

ERP transaction BBP_ES_Analyze

ERP transaction BBP_ES_Analyze

When you start the transaction you have to search for some data which was transferred from SAP Sourcing / SAP CLM to your SAP ERP system, e.g. search by date. Enter data which should be part of the field Memory ID, in case a Purchase Order should be created it will start with PO, for an outline agreement with OA etc.

ERP transaction BBP_ES_Analyze – search for RFC data

ERP transaction BBP_ES_Analyze – search for RFC data


When you found the right record just click the Execute icon or press F8. The next screen will look similar like the screenshot below; at the header you should find your data, by clicking at the different tables (under Table parameters) you can check the data which arrived in ERP.

In case you find your data here you can be sure that the integration itself is alright, e.g. PI is configured correctly! If you cannot find it you need to logon to your SAP PI system and execute for example transaction SMBX_MONI and search there for your data.

Not always the messages which you see in SAP CLM e.g. when publishing a Master Agreement to ERP are self-explaining, thus getting all messages might give you a much better understanding what is going on, e.g. is the data correct or are you simply using the wrong company code or similar. The nice thing with the transaction BBP_ES_Analyze is that you do not have to be a developer to get some useful information. You can check which data arrived and when you execute it you will get all information, warning and as well error messages which occurred when the data was initially sent to your ERP system.

ERP transaction BBP_ES_Analyze – result details

ERP transaction BBP_ES_Analyze – result details



Further related blogs:

How to configure Price Conditions in SAP Sourcing

How to configure Price Conditions in SAP Sourcing (Part II)

Using Price Conditions in SAP Sourcing

Extracting ERP Master data for SAP Sourcing


You have configured your SAP Sourcing system and are ready to go, but have thousands of materials, vendors and other master data in your ERP backend? Why not simply load all this master data into your SAP Sourcing system? There is no need to set up SAP NetWeaver Process Integration (SAP PI) for now, no need to discuss all the required network settings to make sure it is secured! It works independently if it on premise, on demand or hosted! You might have everything you need already in your SAP ERP system; otherwise, you simply apply some OSS notes and are ready to go (SAP Note 1609987 – “overview of extension of ERP extraction report for Sourcing” provides a good overview of all related SAP Notes).

You might already be familiar with the report BBP_ES_CUSTOMIZINGDATA_EXTRACT which allows extracting the following data

-       Company codes

-       Payment terms

-       Material group (product category)

-       Plant

-       Price conditions/condition types

-       Purchasing organizations

-       Purchasing groups

 (Price conditions are supported from SAP Sourcing Wave 8 release onwards)


This report generates an XML file that can also extract data in multiple languages, so it is not required to create multiple files for different languages.

SAP has extended this report following customer feedback, and additionally the following master data can be extracted into an XML file:

-       ERP regions

-       Incoterms

-       Vendor account groups

ERP extraction report

ERP extraction report


In addition, because there is no XML importer in SAP Sourcing yet for certain objects, a new report (BBP_ES_CUSTOMIZINGDATA_EXT_CSV) is available which

generates a simple CSV file for the following data:

-       Unit of measure ISO codes

-       Unit of measure categories texts (language dependent)

-       Unit of measure categories

-       Unit of measure

-       ISO codes for currency

-       Currency


The first cell of the CSV file for UOM texts contains #DataType[common.localized_resource], when importing this kind of CSV files you have to manually import it as object type =  Localized Resource and unit categories as Value List Value, e.g. use the preview feature to check if all data was recognized successfully.



Last but not least another report (BBP_ES_MASTERDATA_EXTRACT) has been created for extracting materials and vendors and importing them into SAP Sourcing (to be released via OSS note within the next weeks!). This was already possible, but required a configured PI system. To speed up the process and projects SAP provides this new report via the SAP note 1601150 - Material and vendor data extraction into xml file that every customer can load data as quickly and easily into SAP Sourcing as possible. This report has several selection criteria because not all materials and/or suppliers should get loaded and this should provide some flexibility.


Material and vendor extraction report

Importing XML files into SAP Sourcing

It is quite convenient to import an XML file into SAP Sourcing, just click Setup, navigate to the System Administration tab and you will find the link Import data in the Import and Export Tools area.


Some dependencies are obvious, but not all. Let me try to provide an overview, hopefully missing not too many. When a contract or an RFx award should be published to an SAP ERP system there is a check that each used unit of measure (UOM) and the currency has an ISO Code, thus when creating or importing a new currency or UOM first the ISO codes should be imported. Always import the ISO Codes first and afterwards import the UOM and/or currency file itself. Do not forget to import the Unit of measure categories texts and Unit of measure categories itself before trying to import the unit of measure.

Each vendor in ERP is assigned to a vendor account group and could also have a region assigned. First import the account groups and (ERP) regions; otherwise, the import of suppliers could fail. A vendor record in ERP could also have a payment term and/or Incoterm. Similarly for a material that contains information about plants, the plant itself has a relationship to a company code and purchasing organization. Furthermore a plant can have a region assigned and thus the regions must be imported first.

I would suggest first importing simple master data like payment terms, ERP regions or Incoterms, but even a region contains a country which should be imported into SAP Sourcing via the standard workbook import, otherwise first the country needs to be created! Next you can import the ISO codes followed by currency and UOM. Afterwards, import company codes, plants, purchasing organizations and groups.


Further Tip

The generated XML file can be saved to a local folder or directly onto the server. If the folder on the server is setup to be imported automatically, the XML files get automatically imported and no further manual steps are necessary. Alternatively you could create a batch job in ERP (using Tx.SM37) for the different reports and different variants.

SAP provides some categories for the different master data objects at because some data will change more frequently than others. I believe it is difficult to provide a general guideline on how often such a batch job should be scheduled; some customers will add or change a payment term or a plant more frequently than others. While it makes sense for some customers to plan this batch job bi-weekly or once per month, others might run it once per quarter or even less.


I am sure some of you have created their own report to extract certain data or perhaps you would like further data to be extracted – please share your experience or questions! I will keep updating this blog depending on your feedback.

This is the continuation of the first part where I focused on what kind of price conditions attributes. This edition, part 2, focusses on the configuration.

Price Condition in doc types

Price conditions are supported within integrated documents; please make sure that the system property is_sapint_installed is set to TRUE. Before using conditions within an RFx or Agreement (master or sub agreement) conditions needs to be assigned to a doc type. One or many conditions can be assigned to a doc type, but at least one condition of type Prices should be assigned as this is required in ERP to create a purchase order or an outline agreement.

 Price Conditions assigned to an RFx document type


Price conditions assigned to an RFx document type

The purpose of this configuration step is to reduce the number of available price conditions within a document which is similar to a calculation schema in ERP. When creating an outline agreement in ERP a user needs to enter first a vendor, purchasing organization and group (among others). With this information the system determines the correct pricing schema, thus when navigating to enter price information the user will only be able to select conditions valid for that schema. The doc type in SAP Sourcing tries to mirros an ERP calculation schema. If this is not possible or if generic conditions are used, there is a fall-back strategy using a mapping table in ERP. It is important to understand that when publishing a Master Agreement to ERP only the values of a condition (e.g. price 98.76 USD), but not the configuration of it. Thus it is important that the condition IDs between SAP Sourcing and ERP are in sync - or correctly mapped. The ERP mapping table allows that for example a SAP Sourcing condition ID PBXX will be mapped to the ERP condition PB99 etc. and all calculations in ERP will use the ID PB99. This mapping can be configured at the ERP IMG ‘Integration with Other SAP Components SAP Sourcing Assign Condition Types’.

Map SAP Sourcing price condition to ERP condition type

   Map SAP Sourcing price condition to ERP condition type

Users from different purchasing departments might use different types and thus different conditions. By having different document types in SAP Sourcing the system can be configured that users only see conditions which are relevant for them. When creating a marketing contract different conditions will be used compared to a 3rd Party contract etc. For example a total of 30 conditions are created in the system, but only six conditions are assigned to the document type ‘Marketing’. A user creating a document using this doc type ‘Marketing’ can select only up to these six conditions, but not more.


How do Price Conditions flow from an RFx to a Master Agreement and/or ERP?

For the configuration of price conditions and document types it is important to understand how the data is transferred from document to document, for example from an RFx award to a master agreement. In an RFx three price conditions PB00 (Gross Price), RB00 (Rebate) and FR00 (Freight) are used. These  conditions are valid for all (material) line items and suppliers can respond to them. From the RFx award a master agreement (the MA document type has the conditions PB00, RB00 and FR11) should be created. In this example only the data for PB00 and RB00 will be successfully transferred from the award to the MA, as the condition for the freight FR00 does not exist in the MA doc type.

Price conditions are not supported within auctions, in case an auction gets created from an RFx only the price (condition of with condition class = Prices) is transferred to the auction and the same from an auction to a master agreement.

On the other hand when transferring an RFx award or MA to ERP the earlier mentioned mapping table can be used to allow that for example the data of condition FR00 in SAP Sourcing will be transferred to FR11 in ERP.


Pricing Structures/Pricing Models

SAP Sourcing has the pricing structures Unit Price, Unit Price Components and Tiered Pricing, further Formula Pricing within RFx. This provides a lot of flexibility to the users, but with the introduction of price conditions there is an overlap between the different models. For example using the Unit Price structure together with multiple Price Conditions is kind of the same like Unit Price Components (UPC), on the other hand price conditions allow using scales which is similar to Tiered Pricing. When publishing a Master Agreement using UPC only the sum of all components will be transferred to ERP versus with the Unit Price structure using price conditions all information will be transferred. It is recommended to use the Unit Price Model for integrated documents and there are some restrictions within RFx that for example with Tiered Pricing and Unit Price Components supports only a single price condition.

 The different Pricing Models in SAP Sourcing

The two-part series about SAP Sourcing price conditions,“How to configure Price Conditions in SAP Sourcing (from Wave 8 onwards)” focused on the kinds of price conditions attributes, and how to configure them. This edition, focuses on working with price conditions in RFx and master agreement documents. Please note that these features are available starting with SAP Sourcing OnDemand Wave 8. Price conditions are only available within integrated RFx and agreements.

Assuming that price conditions in SAP Sourcing have been created and are assigned to RFx and/or master agreement document types it is worth checking the price conditions, which are used for the sourcing process and if the field Description is maintained. This field is much longer than the name field, and can be used for a more detailed explanation of the purpose of the condition. Other fields/columns such as Condition ID or Name can be hidden using page customization.

RFx Response with multiple Price Conditions 
RFx Response with multiple Price Conditions

When creating an RFx (or for master agreement), the valid price conditions for the document can be selected on the document setup page. The table pre-sorted by item type (materials first) and the first line shows the gross price (condition class = Prices). Further it displays the main attributes of a condition. A new column Is Required (only in RFx) is added. If the checkbox is checked for one or multiple conditions the system will show an error message if an RFx response does not have a valid entry. The entry must be valid for each line item.

Choose valid Price Conditions for a RFx

Choose valid Price Conditions for an RFx document

Selected price conditions on header level are displayed on the Integration tab for  buyers (RFx) or on the Questions tab (sell-side for the RFx Response). The buyer can check the selected conditions on the item level for the item details. If the specific item is of item type Material or Service only the relevant conditions are displayed. For example the conditions PB00 (Gross Price) and RB00 (Rebate) for materials and PRS (Gross Price) for services have been selected. At the item details of a service item only the condition PRS is displayed, for a material item the conditions PB00 and RB00 are displayed.

For an RFx event with multiple price conditions, it might get quite complex, and it might be difficult to make a decision which response to award. To support this decision process, price conditions can be used within a line item formula and can be combined with Supplier Entered Attributes. I suggest reading the blog “Complex Pricing using Formula Based Pricing in RFx or Auction in SAP Sourcing” by RFx expert Mahesh Jeswani (SAP Sourcing Product Management) which focuses on Formula Pricing, but also provides useful information about creating formulas in general.

Line Item Formulas can be created on the Line Item Setup (a button is available on the Line Items tab). Make sure that the RFx document type you are using has Formula Pricing enabled! It is possible to decide for each formula if suppliers are able to see the formula result. If you create several line item groups, you can assign formulas to specific (line item) groups.

RFx Line Item Formulas

RFx Line Item Formulas

If the RFx event uses more than one Incoterm each price condition will be available for each Incoterm. For example, let's assume that the Free On Board (FOB) & Delivered Duty Paid (DDP) Incoterms and the PB00 (Gross Price), RB00 (Rebate) and FR00 (Freight) price conditions have been assigned to an RFx event. The dropdown box for price conditions will contain six values such as PB00(DDP), PB00(FOB) and so on.

An example of a formula calculating a net price could be PB00(FOB) + RB00(FOB) + FR00(FOB) where all conditions have the Quantity calculation type . The formula automatically subtracts the RB00  condition if the Impact on Price attribute is maintained as Price reducing. If the rebate uses the Fixed amount calculation type the formula can be changed as follows:

PB00(FOB) + (RB00(FOB)/quantity) + FR00(FOB).

 Create an RFx Line Item Formula with price conditions

Creating an RFx Line Item Formula with price conditions 

This blog will start with a short overview about Price Conditions (or Condition Types as they are called in ERP) and their attributes in SAP Sourcing. The required configuration steps will be explained in a second blog. Please note that these features are available starting with SAP Sourcing OnDemand Wave 8.

Price Conditions are an important part of a SAP ERP system to determine a price in a Purchase Order item. In MM a Purchase Order is linked to a calculation schema which includes the conditions to calculate costs, prices, period-end rebates, and taxes. This concept is referred in the Sales and Distribution (SD) area as a pricing procedure (= a framework of steps used to calculate or determine something). Different schemas can be defined to distinguish between various purchasing organizations and suppliers.

Calculation schemas in ERP

Overview of calculation schemas in ERP
example of a calculation schema
ERP calculation schema

In the calculation schema will be specified which condition types are to be taken into account and in which sequence. For example when creating a contract the ERP system automatically determines which is the correct calculation schema and which price conditions can be used. When a purchase order gets created with reference to a contract the conditions are copied to calculate the accurate price. Please check here for further details about ‘Conditions and Price Determination (MM-PUR-VM)’.

Condition types/Price conditions within an ERP contract

Condition types/Price conditions within an ERP contract

To integrate ERP conditions with SAP Sourcing the standard report BBP_ES_CUSTOMIZINGDATA_EXTRACT in ERP has been extended to allow as well the extraction of condition types for Purchasing. The generated XML file can be imported into SAP Sourcing to ensure that all conditions with the correct attributes are created. Even as a replicated Condition can be maintained in SAP Sourcing manually, it is recommended not to do so to avoid issues with the document integration with ERP.


Price Condition attributes in SAP Sourcing in detail

Experienced ERP users will have an easy understanding of Price Conditions as SAP Sourcing is using similar terms and icons. To reduce the complexity only a subset of the available features of ERP Condition types are used in SAP Sourcing. A condition in SAP Sourcing has as well a 4-character ID and a name; further an optional field description to explain the purpose of a condition for suppliers responding to an RFx.

SAP Sourcing Wave 8 supports free text service items and thus needs to distinguish between material and service items using the attribute Item Type. The Condition Class can have the values ‘Prices’ and ‘Discount or Surcharges’ which are used to determine the net price of a Purchase Order.

Maintain a price condition in SAP Sourcing Wave 8

Maintain a price condition in SAP Sourcing Wave 8

The attribute ‘Condition Applies to’ determines if a condition will be available on header or item level or both. An example for a header condition is that for all items a 2% Discount should be provided. The field ‘Impact on Price’ clarifies if a condition of type ‘Discount of Surcharge’ is reducing or increasing the net price (for conditions of type ‘Prices’ is has no meaning) which is required for calculating of a net price. It is planned to use this information in future for calculations within the SAP Sourcing RFx process.

SAP Sourcing supports 3 different Calculation Types: Fixed amount, Percentage and Quantity. The basic type is ‘Quantity’ which will be often used for a price. Conditions with ‘Fixed amount’ could be used on header level for a discount or surcharge or on item level for an amount which is independent of the item quantity, for example for the costs required to adjust a machine to produce a specific material. Conditions with type ‘Percentage’ could be used for a % discount which could be combined with the next attribute ‘Scale Base’. SAP Sourcing allows a Quantity scale on item and a Value scale on header level. An example for a value scale is that starting from a value of 10.000 Euro a discount of 2% is negotiated, which increases to 3% from 50.000 Euro etc.

The attribute ‘Scale Type’ is used to distinguish between a ‘Base-scale’ (From-Scale) and a ‘To-scale’. By selecting ‘Can be maintained in condition record’ the user can make that decision within the document. With a ‘Base-scale’ users can decide that from a specific quantity (on item level) or a specific value (header level) the price will change.

For example when ordering laptops the price is 599 Euro, but when ordering more than 20 laptops the price gets reduced to 580 Euro and further to 570 Euro ordering more than 50 laptops. This corresponds to a ‘From-scale’ starting with 1 and a price of 599, etc. Here a screenshot how it looks like within a SAP Sourcing Master Agreement:

Maintaining a scale

Maintaing a scale

Last but not least the attribute ‘Scale Check‘ can be used to ensure that scale values are Ascending or Descending.

To reduce issues when transferring an RFx Award or a Master Agreement to ERP several validations have been created. For example a condition of type Prices cannot be assigned to Header (level) or use the Calculation type Percentage. Within a document only one condition of type Price can be used (but many conditions of type Discount or Surcharges). Further validations will be introduced with SAP Sourcing Wave 9.


This topic will be continued at another blog explaining the configuration steps.


Filter Blog

By author:
By date:
By tag: