Symptom
After running order generation (csordtelcoa.API_V1.generateOrdersFromOpportunities), certain Product Configuration records have their cssdm__solution_association__c field cleared (set to null). The order data is only partially generated. This affects a subset of PCs on specific baskets while other baskets process correctly.
Cause
Product Configurations with csordtelcoa__Ignore_For_Order_Decomposition__c = true will have their cssdm__solution_association__c field deliberately cleared by the managed package during post-order-generation processing.
This occurs when the post-order-generation observers call cssmgnt.API_1.linkSubscriptions() (typically via a custom batch class). The linkSubscriptions method processes PCs and explicitly clears the solution association on any PC flagged with Ignore_For_Order_Decomposition__c = true.
This is by-design behavior in the managed package, not a bug or data corruption.
Resolution
Step 1: Check the Ignore flag on affected PCs
Query the affected PCs to verify whether Ignore_For_Order_Decomposition__c is set:
SELECT Id, Name, csordtelcoa__Ignore_For_Order_Decomposition__c,
cssdm__solution_association__c
FROM cscfga__Product_Configuration__c
WHERE cscfga__Product_Basket__c = '<BASKET_ID>'
Step 2: Determine if the flag was intentionally set
Review your implementation to understand why certain PCs have csordtelcoa__Ignore_For_Order_Decomposition__c = true. This flag is typically set on PCs that should not participate in order decomposition (e.g., informational configurations, placeholder records, or configurations handled by a separate process).
Step 3: If the flag is incorrect, remove it
If the PCs should participate in order generation and retain their solution association, set csordtelcoa__Ignore_For_Order_Decomposition__c = false on the affected records before re-running order generation.
Step 4: If the flag is intentional
If the flag is intentionally set but you need to retain the solution association, you will need to implement custom logic to re-populate cssdm__solution_association__c after order generation completes, as the managed package will always clear it for ignored PCs.
Additional Notes
- The solution association is cleared as part of the
linkSubscriptionscall, not during the initial order generation itself - If you restore the
cssdm__solution_association__cfrom data snapshots after it has been cleared, it will be cleared again on the next order generation run unless you remove theIgnore_For_Order_Decomposition__cflag - Review your post-order-generation observer chain to understand the full sequence of operations and where
linkSubscriptionsis called
Priyanka Bhotika
Comments