SAP Subscription Order Management allows the price information for its products to be maintained in so called "conditions". When a product is sold, a condition is determined, the price read from that condition, and applied to the product that is sold. The result amount is displayed in the quote or the order so that the customer is provided with the amount to pay.
When the order is processed and a contract is created out of it, SAP Convergent Charging calculates the fees due on a recurring basis. Naturally these recurring fees must use the same prices as were used to calculate the amount on the order or quote. Having to maintain and synchronize these prices manually would introduce not only significant manual efforts, but would also introduce the risk for human errors like typos during price maintenance.
SAP Subscription Order Management is able to send price information used for recurring fee components of subscription products to SAP Convergent Charging. This way it is ensured that whatever condition was used during order creation is also used to calculate the recurring fees in SAP Convergent Charging. But how exactly does this work? Let’s find out.
Required Steps in SAP Convergent Charging
In previous lessons, you have learned what price tables look like. An important aspect was the existence of the input column "price.key" in price tables. This column is important, as it contains the identifier of a condition replicated by SAP Subscription Order Management.
When the table is used to find the price to be used for a recurring fee, a value needs to be provided for the column "price.key". Otherwise, no entry can be found.
SAP Convergent Charging provides a dedicated data type "Price Key", that can be assigned to a parameter. Technically a "price.key" is nothing more than a string. The data type "Price Key" allows SAP Subscription Order Management to identify a parameter that it must provide with a special price key value. It can be used to tell them apart from other string parameters that serve other purposes.
To use price tables in a charge, the following two parameters must be added to it:
- A parameter of any name with the data type Mapping Table ID. This parameter will be used to determine the name of the price table to search for a price during runtime.
- A parameter of any name with the data type Price Key. This parameter will be used to tell which price condition is to be used for the recurring fee.
The following figure shows an example.

These parameters must be exposed by the charge plan and linked by the charge, so that SAP Subscription Order Management can provide values when a contract is created.

Note that the parameters are set to Mandatory as no meaningful default value can be provided.
In the price plan, the price table is checked with the mapping table comparator component. The two parameters added to the charge and chargeplan respectively, must be used in the following way:
- The parameter of type Mapping Table ID is used to select the table instance dynamically at runtime. Select the parameter as the value for the Mapping Table.
- The parameter of type Price Key provides and ID to select the condition replicated to the table. It is mapped to the rating context column name price.key.
The currency column contains the currency of the conditions replicated by SAP Subscription Order Management. In the following figure, the charge is a multicurrency charge. The rating context default property Currency Code contains the currency selection made for the contract. It allows the selection of the condition associated to the correct currency. Thus, the rating context default property Currency Code is mapped to the rating context column currency.

In the example given, the charge is not multiplied with the quantity value and with the price that was read from the price table. It is possible to do this, as it is supported by SAP Subscription Order Management. More complex calculations, however, can be implemented in the price plan of SAP Convergent Charging, but are then not necessarily supported by SAP Subscription Order Management. You need to make sure that all calculations executed on the price read from the price table are also supported by SAP Subscription Order Management! Otherwise, the prices are synchronized between both systems, and the calculated total amounts will deviate.
Let’s summarize all the steps necessary to implement price tables. The following graphic summarizes these steps.

- Create the mapping table class Price Table.
- Create a charge plan with a charge with a recurring rate and two parameters with the data types Mapping Table ID and Price Key.
- Create a subscription product as a configurable product with a product model.
- Create the conditions in SAP Subscription Order Management:
- Define condition types or variant key alias as SD condition.
- Define condition types to be replicated in the customizing.
- Create prices for recurring fees or variant prices.
- Assign a Condition Type or Variant Key Alias to the price key in Cross Catalog Mapping
- Replicate prices to CC using DRF Framework, so that the price tables in CC are created.
- Use the replicated conditions:
- Create subscription order / solution quotation using a product with recurring fees in SAP Convergent Charging.
- Optionally: Manually maintain a price.
- Release / accept and submit the order.
- The price table key is determined, or in case of a manual fee, the price table (entry) is created in SAP Convergent Charging.
- The price table key is assigned to the contract.
- The contract is distributed to SAP Convergent Charging.
- When the contract in SAP Convergent Charging is activated, the recurring fees can be determined via the assigned price table and price key in SAP Convergent Charging. The billable item will be created in SAP Convergent Invoicing.
Now that you know how to use price tables in theory, let’s see how this is done in a system. The following video shows how the price table mapping class is created in the SAP Convergent Charging core tool.