Communications, Media, and Energy Application Constraints

You can configure your Communications, Media, and Energy (CME) applications to remain within the operating limits or constraints of each application. Adhering to the corresponding application constraints ensures optimal performance of the CME platform.

The limits outlined in this topic are not hard limits. Salesforce tests Industries CPQ with larger bundle sizes to ensure the service can handle unexpected spikes smoothly. However, factors such as your product model, the number of pricing, compatibility, and configuration rules, promotions, system load, performance, and other issues may prevent reaching these limits. The limits provided are intended as a reference when modeling products and are not a guarantee that these limits will be achievable in all situations.

A Calculation Procedure is a series of calculations performed on matrix lookups and user-defined variables and constants. A calculation matrix is a table that looks up information using multiple input dimensions and returns the corresponding output value. The Business Rules Engine simplifies determining eligibility or qualification and lets you automate complex decision-making to find solutions faster. The key components of Business Rules Engine are expression sets and lookup tables. Decision matrices and decision tables together constitute lookup tables.

Calculation Procedures and Calculation Matrices are not supported in Omnistudio Standard Runtime.

For optimum system performance use up to 500k records for the matrix rows for Calculation Procedures and Business Rule Engine. But, Business Rule Engine can support up to 1000k records. It is recommended to use Business Rule Engine as it provides better performance and scalability compared to Calculation Procedures.

You can migrate Calculation Procedures and Calculation Matrices to the Business Rules Engine. For more information, see Calculation Matrix and Procedure Migration to Business Rules Engine.

For optimum performance, ensure that total bundle size is less than 60. A bundle size is determined by a combination of the number of line items, the depth of items, and the number of attributes per line item. Here's table that provides an example configurations of the bundle.

  • Number of bundle: 1
  • Depth: 3 child items
  • Total number of rules and total number of attributes are equally dustributed between OLIs.

API Call: Add Item to Cart

Bundle Size
( Number of OLI)
Total Number of Rules
- Product configuration Rule
Total Number of Rules
- Advance Rule
Total Number of Attributes
- General
Total Number of Attributes
- Picklist
40120280480320
80006400
911554500

Here's table that provides an example configurations of the bundle.

  • Number of bundle: 1
  • Depth: 3 child items
  • Rule: Product configuration rule 1 per line item.
  • For optimum performance
    • The number of attributes per bundle for smaller bundle must be less than 30.
    • Picklist ratio (no. of picklists/no. of attributes) ideally must be less than 40%.
    • Maximum depth (max values in a picklist) ideally must be less than 10.

API Call: Add Item to Cart

Bundle TypeNumber
of
OLI
#General Attribute Per Product/OLI#Picklist Per Product/OLI
Small Bundle
(5 to 10 LI)
53020
050
4530
103020
050
4530
Medium Bundle
(15 to 20 LI)
153020
050
201510
1515
3020
Large Bundle
(40 to 80)
401010
1510
2010
80-10055
1010

Industries CPQ's Cart-based APIs enable users of client applications to explore and purchase products and services. To understand the limits of specific Industries CPQ's Cart-based APIs consider the following example data shape configurations.

  • Bundle: 20 line items
  • Depth: 3 child items (6 bundles x 3 child items each)
  • Attribute: 10 (5 General + 5 Picklist)
  • Rule: 1 product configuration rule per line item

For the data shape mentioned above, following table lists the upper end of the limit of line items supported for the respective transaction.

Transaction NameMaximum Lineitems Supported
Get List of Products~5K Product in 1 Price List
Get Cart Items160
Add Items to Cart650
Asset to Order (assetToOrder)525
Get Cart Summary650
Run Pricing for Items to Cart650
Submit Order / Checkout Items in Cart470
Delete Cart Items(deleteCartItems)120
Delete Cart Items(deleteCartItems)- Multi Delete230

The Cart APIs and The Standard Cart APIs sections above illustrate examples of acceptable bundle sizes within the guardrails for the out-of-the-box Cart APIs and Standard Cart APIs. However, if you are looking to develop custom journeys using Industries CPQ's Cart-based APIs, it is crucial to identify all the APIs you will be using and consider the lowest supported values from the table above. For instance, while the Add Items to Cart API supports up to 160 line items, the Get Cart Items function supports only 160 line items. Therefore, you should design your approach based on the lower value to ensure compatibility and performance.

Classic CPQ APIs restrict SOQL queries on the PriceListEntry__c object to fetch a maximum of 10,000 records. If there are over 10,000 PriceListEntry__c records in a PriceList, querying/filtering is permitted solely on the Product2 related fields.

CPQ APISample Input RequestPLE Records
getCartsProducts with no extra input parameters/services/apexrest/{NAMESPACE}/v2/cpq/carts/{CART_ID}/productsFirst 10,000 records
getCartsProducts with the filters parameter on Product2 related fields/services/apexrest/{NAMESPACE}/v2/cpq/carts/{CART_ID}/products?filters=Product2.ProductCodeFirst 10,000 records matching the filters parameter
getCartsProducts with the query and searchBy parameters on Product2 related fields/services/apexrest/{NAMESPACE}/v2/cpq/carts/{CART_ID}/products?searchBy=Product2.ProductCode&query=Code1First 10,000 records matching the query parameters

It is recommended to have less than 50K Catalog Product Relationship for running the compiled jobs.

For more information on CME application constraints, see Salesforce Industries CME Application Constraints.