Refresh Platform Cache

This job copies product hierarchy data to the platform cache and rebuilds the product attribute cache.

Run the Product Hierarchy Maintenance job before running Refresh Platform Cache in order for changes in product bundles to be reflected in your implementation.

Applies to

Winter '19 and later releases

Apex Name

ProductHierarchyBatchProcessor

ProductAttributesBatchProcessor

Where to Run This Job

CMT Administration tab

Risks of Running This Job

HIGH RISK

Can cause orders to fail in a live production environment.

Because this job includes price books that Vlocity doesn't use, it can take longer to complete if you have more price books. The time for completing this job run can vary. You can exclude non-Vlocity price books by running the following code:

  1. From Setup, click Developer Console.

  2. From the Debug menu, click Open Execute Anonymous Window.

  3. Enter the appropriate code, and click Execute.

  4. Enter the price book ID.

Map<String, Object> input = new Map<String, Object>{'methodName' => 'refreshPriceBook', 'priceBookId' => 'price book ID'};

vlocity_cmt.TelcoAdminConsoleController controllerClass = new vlocity_cmt.TelcoAdminConsoleController();

controllerClass.setParameters(JSON.serialize(input));

controllerClass.invokeMethod();

When Not to Run This Job

Avoid running this job in a production environment outside of scheduled downtimes because of the risks.

You can run this job in a production environment during off-peak hours or planned downtime. This job can take a long time to run, as noted in the Risks of Running This Job section. When a production environment is in use and this job is run, order capture might have inconsistent results.

When to Run This Job

After changing product bundles, product cardinality, or filterable attributes in Vlocity Product Console.

More Information

If you see the error message "Too many query rows: 50001" when you run this job, go to Vlocity CMT Administration > CPQ Configuration Setup, and set CacheEnabled to False. By default, this custom setting is set to True. The issue appears when the number of entries in a pricebook exceeds certain limits.

The Refresh Pricebook job runs on all products of an active price book. It doesn’t filter Salesforce Industries products.

The Refresh Pricebook job calls two jobs to:

  • Copy the product hierarchies in the data store to the org cache in the platform cache for every product bundle.

  • Copy filterable product attributes to the sObject cache that stores filterable attributes.

If the Refresh Pricebook job can’t refresh one of the price books, the job moves to the next price book. It notifies you if refreshing any of the price books fails.

Starting in the Winter '18 release, this job (formerly Refresh Pricebook) is available in the Maintenance Jobs list in the CMT Administration screen.

You can use the following Apex method to programmatically run the Product Hierarchy Maintenance, Clear Managed Platform Cache, and Refresh Platform Cache jobs in sequence:

CMTAdminJobService.startProductHierarchyMaintenanceJob(pricebookId)

To run these jobs on all price books, substitute null for the price book ID.

If you see the Too many DML rows: nnnn error message, increase the value of the PriceBookRefreshBatchSizeCPQ Configuration Settings Reference configuration setting to eliminate it next time you run this job.

You can configure the ProductAttributesBatchProcessorSize and ProductHierarchyBatchProcessorSizeCPQ Configuration Settings Reference configuration settings to avoid exceeding Salesforce governor limits.