Symptom
When opening a basket for a change order, the system displays:
Basket contains archived Solutions. Do you want to upgrade them?
The basket fails to load even if the user accepts the upgrade prompt.
Cause
A Solution Definition (SD) linked to the basket has its End Date set in the past but does not have a current version configured. The system treats solutions referencing an expired SD as archived and attempts to upgrade them, but the upgrade fails because there is no target version to upgrade to.
Additionally, if the Solution Definition's End Date was updated directly in the UI without updating the last modified timestamp in the cssmgnt SM Options custom settings, the cached data may not reflect the change.
Resolution
Step 1: Identify the expired Solution Definition
Check which Solution Definition is causing the upgrade prompt by examining the basket's solutions and their linked SDs:
SELECT Id, Name, csord__End_Date__c,
csord__Current_Version__c
FROM csord__Solution_Definition__c
WHERE Id IN (
SELECT csord__Solution_Definition__c
FROM csord__Solution__c
WHERE cssdm__Product_Basket__c = '<BASKET_ID>'
)
Look for SDs where csord__End_Date__c is in the past and csord__Current_Version__c is null.
Step 2: Fix the Solution Definition data
Either:
- Update the End Date to a valid future date if the SD is still active
- Set a Current Version on the SD if one exists
Step 3: Update the SM Options cache timestamp
After modifying the Solution Definition in the UI, update the last modified timestamp in the SM Options custom settings to invalidate the cache:
- Go to Setup > Custom Settings > SM Options (
cssmgnt__SM_Options__c) - Update the Last Modified Timestamp field to the current timestamp
Without this step, the Solution Management service will continue using cached data and will not pick up the SD changes.
Step 4: Reload the basket
Close and reopen the basket. It should now load without the archived solutions prompt.
Additional Notes
- The SM Options cache timestamp must be updated whenever Solution Definition records are modified directly in the Salesforce UI. Changes made through the CloudSense APIs automatically update the cache
- If multiple SDs are affected, fix all of them before attempting to reload the basket
- This issue commonly occurs after data migrations or manual data corrections that update SD End Dates without going through the standard CS workflow
Priyanka Bhotika
Comments