Start a conversation

Order Generation Clears Solution Association on Product Configurations Marked as Ignored

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 linkSubscriptions call, not during the initial order generation itself
  • If you restore the cssdm__solution_association__c from data snapshots after it has been cleared, it will be cleared again on the next order generation run unless you remove the Ignore_For_Order_Decomposition__c flag
  • Review your post-order-generation observer chain to understand the full sequence of operations and where linkSubscriptions is called
Choose files or drag and drop files
Was this article helpful?
Yes
No
  1. Priyanka Bhotika

  2. Posted

Comments