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 |
---|---|---|---|---|
40 | 120 | 280 | 480 | 320 |
80 | 0 | 0 | 640 | 0 |
91 | 15 | 5 | 450 | 0 |
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 Type | Number of OLI | #General Attribute Per Product/OLI | #Picklist Per Product/OLI |
---|---|---|---|
Small Bundle (5 to 10 LI) | 5 | 30 | 20 |
0 | 50 | ||
45 | 30 | ||
10 | 30 | 20 | |
0 | 50 | ||
45 | 30 | ||
Medium Bundle (15 to 20 LI) | 15 | 30 | 20 |
0 | 50 | ||
20 | 15 | 10 | |
15 | 15 | ||
30 | 20 | ||
Large Bundle (40 to 80) | 40 | 10 | 10 |
15 | 10 | ||
20 | 10 | ||
80-100 | 5 | 5 | |
10 | 10 |
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 Name | Maximum Lineitems Supported |
---|---|
Get List of Products | ~5K Product in 1 Price List |
Get Cart Items | 160 |
Add Items to Cart | 650 |
Asset to Order (assetToOrder) | 525 |
Get Cart Summary | 650 |
Run Pricing for Items to Cart | 650 |
Submit Order / Checkout Items in Cart | 470 |
Delete Cart Items(deleteCartItems) | 120 |
Delete Cart Items(deleteCartItems)- Multi Delete | 230 |
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 API | Sample Input Request | PLE Records |
---|---|---|
getCartsProducts with no extra input parameters | /services/apexrest/{NAMESPACE}/v2/cpq/carts/{CART_ID}/products | First 10,000 records |
getCartsProducts with the filters parameter on Product2 related fields | /services/apexrest/{NAMESPACE}/v2/cpq/carts/{CART_ID}/products?filters=Product2.ProductCode | First 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=Code1 | First 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.