Advertisement
Guest User

Delete product and dependencies

a guest
Apr 24th, 2019
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.87 KB | None | 0 0
  1. Product2 productToDeleteId = 'INSERT YOUR PRODUCT ID HERE';
  2.  
  3. //get long id
  4. Id productToDeleteIdLong = [Select Id from Product2 where id = :productToDeleteId].id
  5.  
  6. //delete related Orders
  7. List<AggregateResult> lOrderToDelete = new List<AggregateResult>();
  8. List<String> los = new List<String>();
  9. List<Order> lo;
  10.  
  11.  
  12. lOrderToDelete = [Select orderId from orderitem where Product2.id = :productToDeleteIdLong GROUP BY orderId];
  13.  
  14. for(AggregateResult ori:lOrderToDelete){
  15.     los.add((String)ori.get('OrderId'));
  16. }
  17. lo = [select id,status from order where id in:los];
  18.  
  19. for(order oToDelete:lo){
  20.     oToDelete.status = 'Draft';
  21. }
  22.  
  23. update lo;
  24. delete lo;
  25.  
  26.  
  27. //related assets
  28. delete [Select id from asset where Product2.id = :productToDeleteIdLong];
  29.  
  30.  
  31.  
  32. //PricebookEntry
  33. delete [Select Id from PricebookEntry where Product2.id = :productToDeleteIdLong];
  34.  
  35.  
  36. //AttributeAssignment__c
  37. delete [Select Id from vlocity_cmt__AttributeAssignment__c where vlocity_cmt__objectid__c = :productToDeleteIdLong];
  38.  
  39. //ProductChildItem__c
  40. delete [Select Id from vlocity_cmt__ProductChildItem__c where vlocity_cmt__parentproductid__c = :productToDeleteIdLong];
  41.  
  42.  
  43. //OverrideDefinition__c and vlocity_cmt__CompiledAttributeOverride__c
  44.  
  45. Id cao = [Select vlocity_cmt__CompiledAttributeOverrideId__c from vlocity_cmt__OverrideDefinition__c where vlocity_cmt__ProductId__c = :productToDeleteIdLong].Id;
  46.  
  47. delete [Select vlocity_cmt__CompiledAttributeOverrideId__c from vlocity_cmt__CompiledAttributeOverride__c where id = :cao];
  48.  
  49.  
  50. delete [Select Id from vlocity_cmt__OverrideDefinition__c where vlocity_cmt__ProductId__c = :productToDeleteIdLong];
  51.  
  52.  
  53.  
  54. //ProductConfigurationProcedure__c
  55.  
  56. delete [Select Id from vlocity_cmt__ProductConfigurationProcedure__c where vlocity_cmt__ProductId__c = :productToDeleteIdLong];
  57.  
  58.  
  59. //ProductRelationship__c
  60. delete [Select Id from vlocity_cmt__ProductRelationship__c where vlocity_cmt__Product2Id__c = :productToDeleteIdLong or vlocity_cmt__RelatedProductId__c =:productToDeleteIdLong or  vlocity_cmt__RelatedProductFilterId__c = :productToDeleteIdLong];
  61.  
  62.  
  63. //ProductEligibility__c
  64.  
  65. delete [Select Id from vlocity_cmt__ProductEligibility__c where vlocity_cmt__Product2Id__c = :productToDeleteIdLong];
  66.  
  67.  
  68. //ProductAvailability__c
  69. delete [Select Id from vlocity_cmt__ProductAvailability__c where vlocity_cmt__Product2Id__c = :productToDeleteIdLong];
  70.  
  71.  
  72. //RuleAssignment__c
  73. delete [Select Id from vlocity_cmt__RuleAssignment__c where vlocity_cmt__ObjectId__c = :productToDeleteIdLong];
  74.  
  75. for(vlocity_cmt__PriceListEntry__c ple : [Select Id from vlocity_cmt__PriceListEntry__c where vlocity_cmt__ProductId__c = :productToDeleteIdLong]){
  76.       [Select Id from vlocity_cmt__RuleAssignment__c where vlocity_cmt__ObjectId__c = :ple.id];
  77. }
  78.  
  79.  
  80. //PriceListEntry__c
  81. delete [Select Id from vlocity_cmt__PriceListEntry__c where vlocity_cmt__ProductId__c = :productToDeleteIdLong];
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement