-
ChatterFeed
-
1Best Answers
-
0Likes Received
-
0Likes Given
-
0Questions
-
8Replies
- Ab
- November 06, 2015
- Like
- 0
im updating child to parent fields using trigger.but am getting this error Error Error: Compile Error: Initial term of field expression must be a concrete SObject: List<College__c> at line 15 column 5
trigger Practise2 on Student__c (after insert,After update)
{
Set<id> ids=new set<id>();
for(Student__c stud1:trigger.new)
{
ids.add(stud1.id);
}
list<Student__c> stud2=[select id,name,Status_from_Parent__c,College__r.id,College__r.Status__c from Student__c where id in:ids];
list<College__c> lst=new list<College__c>();
for (Student__c std3:stud2)
{
for(list<College__C> clg:std3.College__r)
{
clg.Status__c=std3.Status_from_Parent__c;
lst.add(clg);
}
}
update lst;
}
{
Set<id> ids=new set<id>();
for(Student__c stud1:trigger.new)
{
ids.add(stud1.id);
}
list<Student__c> stud2=[select id,name,Status_from_Parent__c,College__r.id,College__r.Status__c from Student__c where id in:ids];
list<College__c> lst=new list<College__c>();
for (Student__c std3:stud2)
{
for(list<College__C> clg:std3.College__r)
{
clg.Status__c=std3.Status_from_Parent__c;
lst.add(clg);
}
}
update lst;
}
- Sreenath Reddy
- February 24, 2016
- Like
- 0
System.LimitException: Too many SOQL queries: while running a test code
Can any one help me on this error :
I'm running the test class in developer console for the trigger named as :CreateSubscriptionopptyclone ,but i get the error for the other trigger ...and i have not used the owd concept in trigger or test class.Any suggestion plz
I'm running the test class in developer console for the trigger named as :CreateSubscriptionopptyclone ,but i get the error for the other trigger ...and i have not used the owd concept in trigger or test class.Any suggestion plz
System.LimitException: Too many SOQL queries: 101 Trigger.thankYouNoteMail: line 52, column 1 This is other trigger and line 52 is : OrgWideEmailAddress[] owea = [select Id from OrgWideEmailAddress where Address = 'customercare@enterprisedb.com'];Test Classes :
@isTest public class TestCreateSubscriptionOpptyClone { static testMethod void TestCreateSubscription() { //Create Account Account acc1 = new Account(); acc1.Name='Testing SubscriptionClone'; acc1.BillingStreet='Banjara hills'; acc1.BillingCity='Hyd'; acc1.BillingState='TS'; acc1.BillingPostalCode = '500084'; acc1.BillingCountry = 'India'; acc1.Phone = '100'; acc1.Industry = 'Banking'; acc1.Type = 'Paid'; acc1.Customer_Type__c = 'Customer'; acc1.Customer_List__c = true; insert acc1 ; //Create Contact contact cc = new contact(); cc.FirstName ='Test Contact Subscription'; cc.LastName ='Opptyclone'; cc.Role__c='Subscription Administrator'; cc.AccountId=acc1.Id; insert cc; //Create Opportunity Opportunity opty = new Opportunity(); opty.Name = 'Test SubscriptionOppty'; opty.StageName ='Proposal/Price Quote'; opty.Probability =60; opty.LeadSource = 'Subscription Renewal'; opty.CloseDate = System.Today(); opty.Type = 'Existing Customer'; opty.Assigned_Sales_Engineer__c = null; opty.Payment_Type__c = 'Order Form'; opty.Update_Complete__c = true; opty.Partner__c = 'None'; opty.Anchor__c='Non Anchor'; opty.AccountId = acc1.Id; opty.StageName = 'Closed Won'; insert opty; //Create Opportunity Contact Role list<OpportunityContactRole> opptyConRolelist1 = new list<OpportunityContactRole>(); OpportunityContactRole opptyConRole = new OpportunityContactRole(); opptyConRole.ContactId = cc.Id; opptyConRole.OpportunityId = opty.Id; opptyConRole.IsPrimary = false; opptyConRole.Role = 'Subscription Administrator'; opptyConRolelist1.add(opptyConRole); insert opptyConRolelist1; opty.UPDATE_COMPLETE__c = false; opty.Contracts_Processed__c = false; opty.Contain_Renewable_Subscription__c=false; opty.StageName ='Stage4 :Proposal Delivery'; opty.Closed_Won__c =false; opty.Activate_Notification_to_Finance__c=false; opty.Stage_won_lost_set__c=false; opty.ForecastCategoryName ='Pipeline'; //opty.Parent_Opportunity__c=opty.Id; update opty; //Add oppty line items string stdpdId = '01s500000001e6k'; //Create OpportunityLineitem List<OpportunityLineItem> ooliList = new List<OpportunityLineItem>(); //Create Product product2 p2 = new product2(); p2.Name ='Postgres Plus Enterprise Edition Unicores'; p2.Product_Name1__C='Product - Subscription'; p2.Product_Group__c='PPAS'; p2.IsActive = true; p2.Description='Postgres Plus Enterprise Edition Unicores'; insert p2; //Create PriceBookEntry PricebookEntry pbey = new PricebookEntry(); pbey.Product2ID=p2.id; pbey.Pricebook2ID=stdpdId; pbey.UnitPrice=50; pbey.isActive=true; insert pbey; Opportunitylineitem ooli = new Opportunitylineitem(); ooli.OpportunityId = opty.Id; ooli.PricebookEntryId = pbey.Id; ooli.Quantity =4; //ooli.Product_Code__c='PREE-UCC-001'; //ooli.Unit_of_Measure__c='Unicore'; ooli.Start_Date__c = System.today(); ooli.End_Date__c = System.today() + 100; ooli.Type_of_Contract__c='None'; ooli.Term__c =12; ooli.Type_Of_Product__c='Single Year Subscription'; ooli.Type_of_ARR__c= 'New Addition ARR'; ooli.TotalPrice=1750; ooliList.add(ooli); insert ooliList; opty.UPDATE_COMPLETE__c = true; update opty; opty.UPDATE_COMPLETE__c = false; opty.Contracts_Processed__c = false; update opty; //Create Product product2 pr2 = new product2(); pr2.Name ='Postgres Plus Standard Edition Unicores'; pr2.Product_Name1__C='Product - Subscription'; pr2.Product_Group__c='PPAS'; pr2.IsActive = true; pr2.Description='Postgres Plus Standard Edition Unicores'; insert pr2; //Create PriceBookEntry PricebookEntry pbety = new PricebookEntry(); pbety.Product2ID=pr2.id; pbety.Pricebook2ID=stdpdId; pbety.UnitPrice=50; pbety.isActive=true; insert pbety; /*Opportunitylineitem ooli1 = new Opportunitylineitem(); ooli1.OpportunityId = opty.Id; ooli1.PricebookEntryId = pbety.Id; ooli1.Quantity =4; //ooli.Product_Code__c='PREE-UCC-001'; //ooli.Unit_of_Measure__c='Unicore'; ooli1.Start_Date__c = System.today(); ooli1.End_Date__c = System.today() + 100; ooli1.Type_of_Contract__c='None'; ooli1.Term__c =12; ooli1.Type_Of_Product__c='Single Year Subscription'; ooli1.Type_of_ARR__c= 'New Addition ARR'; ooli1.TotalPrice=1750; ooliList.add(ooli1); insert ooliList;*/ opty.UPDATE_COMPLETE__c = true; update opty; opty.UPDATE_COMPLETE__c = false; opty.Contracts_Processed__c = false; update opty; //update contact roles - to test the subscription product type for(OpportunityContactRole r1: opptyConRolelist1) { r1.Role = 'Subscription Administrator'; } update opptyConRolelist1; opty.UPDATE_COMPLETE__c = true; update opty; opty.UPDATE_COMPLETE__c = false; opty.Contracts_Processed__c = true; update opty; opty.UPDATE_COMPLETE__c = true; update opty; } }Trigger :
trigger CreateSubscriptionOpptyClone on Opportunity (after update) { if(!AvoidRecursiveCloning.hasAlreadyCreatedClone()) { List<Opportunity> closedWonOpportunities = new List<Opportunity>(); Map<Id, Opportunity> oppMap = new Map<Id, Opportunity>(); List<Id> closedLostOpportunities = new List<Id>(); List<Id> allOpportunities = new List<Id>(); for(Opportunity opp: Trigger.new) { ////Get Opportunity which have been Closed Won/// if(opp.StageName == 'Closed Won' && Trigger.oldMap.get(opp.Id).StageName != 'Closed Won') { closedWonOpportunities.add(opp); oppMap.put(opp.Id, opp); } ///////Get Opportunity which have been Closed Lost/////////// if(opp.StageName == 'Closed Lost' && Trigger.oldMap.get(opp.Id).StageName != 'Closed Lost') { closedLostOpportunities.add(opp.Id); } /////If any of the 4 fields changes if(opp.StageName != Trigger.oldMap.get(opp.Id).StageName || opp.Probability != Trigger.oldMap.get(opp.Id).Probability || opp.OwnerId != Trigger.oldMap.get(opp.Id).OwnerId || opp.Comments__c != Trigger.oldMap.get(opp.Id).Comments__c) { allOpportunities.add(opp.Id); } } ///Creating subscription clone if(closedWonOpportunities.size() > 0) { //Get all Opportunity Line Items List<OpportunityLineItem> oppProdList = [Select Id,Orig_Total_Price__c,Parent_Opportunity_Product_Id__c, Original_Amount__c, Original_ARR__c, Original_In_Year_Billing__c, Actual_Renewal_Date__c, OpportunityId, SortOrder, PricebookEntryId, Quantity, Discount, UnitPrice, ListPrice, ServiceDate, HasRevenueSchedule, HasQuantitySchedule, Description, HasSchedule, Attendee_Email__c, Start_Date__c, End_Date__c, Term__c, Overall_Value__c, Description__c, Attendee_Name__c, Attendee_Phone__c, Number_of_Contacts__c, Term_Days__c, Venue__c, Product_Name__c, Service_Type__c, ARR_Impacts__c, Annual_Recurring_Revenue__c, Product_Segmentation__c, Product_Categories__c, Product_Bucket__c, ARR2__c, Test_Number__c, Transfer_Price__c, Total_Transfer_price__c, No_ARR__c, Price_Per_Socket_Per_Annum__c, In_Year_Billing__c, Type_Of_Product__c, Annual_Contract_Value__c, T_E__c, Type_of_Contract__c, Total_Days_Sold__c, No_of_Seats_Delivered__c, No_of_Days_Delivered__c, No_of_Seats_Pending__c, No_of_Days_Pending__c, Special_Deals__c, Notes__c, of_Discount__c, Delivered_By__c, Delivery_Dates__c, Trainer_Name__c, Average_Revenue_per_day__c, Requires_Services_Head_Approval__c, Multi_year_Sub_extension_contract__c FROM OpportunityLineItem where OpportunityId in: closedWonOpportunities AND No_ARR__c = false AND Service_Type__c = 'Product - Subscription' AND ARR_Impacts__c =: 'Yes']; //Get all Opportunity Contact Roles List<OpportunityContactRole> oppContactRoleList = [Select Id,ContactId ,Contact.ContactType__c,IsPrimary ,OpportunityId,Role from OpportunityContactRole where OpportunityId in : closedWonOpportunities]; ////////////Creating Opp - Opp Contact Role Map//////////// Map<Id,List<OpportunityContactRole>> oppContactRoleMap = new Map<Id,List<OpportunityContactRole>>(); List<OpportunityContactRole> tmpOCR; for(OpportunityContactRole ocr : oppContactRoleList) { if(oppContactRoleMap.containsKey(ocr.OpportunityId)) { tmpOCR = oppContactRoleMap.get(ocr.OpportunityId); tmpOCR.add(ocr); } else { tmpOCR = new List<OpportunityContactRole>(); tmpOCR.add(ocr); oppContactRoleMap.put(ocr.OpportunityId, tmpOCR); } } /////////////////////////////////////////////////////////// Map<string,List<OpportunityLineItem>> oppProductMapEndDate = new Map<string,List<OpportunityLineItem>>(); List<OpportunityWrapper> owList = new List<OpportunityWrapper>(); /////////Creating Opportunity Wrapper List//////// List<OpportunityLineItem> tmpList; for(OpportunityLineItem oli: oppProdList) { string key = oli.OpportunityId + '~' + String.valueOf(oli.End_Date__c); if(oppProductMapEndDate.containsKey(key)) { tmpList = oppProductMapEndDate.get(key); tmpList.add(oli); } else { //Create Opportunity Wrapper OpportunityWrapper ow = new OpportunityWrapper(); ow.opp = oppMap.get(oli.OpportunityId); ow.endDate = oli.End_Date__c; owList.add(ow); tmpList = new List<OpportunityLineItem>(); tmpList.add(oli); oppProductMapEndDate.put(key, tmpList); } } /////////////////////////////////////////////////////////// List<Opportunity> newOpportunities = new List<Opportunity>(); List<OpportunityLineItem> newOpportunityLineItems = new List<OpportunityLineItem>(); Map<string, List<OpportunityLineItem>> newOLIMap = new Map<string, List<OpportunityLineItem>>(); List<OpportunityContactRole> newOpportunityContactRoles = new List<OpportunityContactRole>(); Map<string, List<OpportunityContactRole>> newContactRolesMap = new Map<string, List<OpportunityContactRole>>(); ////Create Opportunity/Opporunity Line Items/Opportunity Contact Role Clone/// System.debug('oppProductMapEndDate::' + oppProductMapEndDate); System.debug('owList::' + owList); for(OpportunityWrapper ow: owList) { Opportunity opp = ow.opp; Opportunity newOpp = opp.clone(false, true, false, false); newOpp.StageName = 'Stage 4: Proposal Delivery'; newOpp.Probability = 60; newOpp.LeadSource = 'Subscription Renewal'; newOpp.CloseDate = ow.endDate.addDays(1); newOpp.Type = 'Existing Customer'; ///Added by MK - 29 July 2015/// newOpp.Assigned_Sales_Engineer__c = null; string nameStr = opp.Name; /*if(nameStr.indexOf('-Renewal') > -1) { string substr = nameStr.substring(nameStr.indexOf('-Renewal'), nameStr.length()); nameStr = nameStr.remove(substr); } newOpp.Name = nameStr + '-Renewal ' + String.valueOf(ow.endDate.Year());*/ if(nameStr.startsWith('Renewal (')) { string substr = nameStr.substring(0, nameStr.indexOf(' - ') + 3); //plus 3 for ' - ' nameStr = nameStr.remove(substr); } newOpp.Name = 'Renewal (' + String.valueOf(ow.endDate.Year()) + ') - ' + nameStr; integer nameLength = newOpp.Name.length(); if(nameLength > 120) Trigger.new[0].addError('The Renewal Opportunity Name exceeds the maximum length of 120. Please trim the Opportunity Name to create the Renewal Opportunity.'); newOpp.Parent_Opportunity__c = opp.Id; newOpp.Contain_Renewable_Subscription__c = true; newOpp.Update_Complete__c = false; newOpp.Contracts_Processed__c = false; newOpp.Closed_Won__c = false; newOpp.Activate_Notification_to_Finance__c = false; newOpp.Stage_won_lost_set__c = false; newOpp.ForecastCategoryName = 'Pipeline'; string key = opp.Id + '~' + String.valueOf(ow.endDate); string key1 = opp.Id + '~' + String.valueOf(newOpp.CloseDate); double inYearBillingAmount = 0; if(oppProductMapEndDate.containsKey(key)) { List<OpportunityLineItem> tmp1; //Create Opportunity Line Item Clone//// for(OpportunityLineItem oli: oppProductMapEndDate.get(key)) { OpportunityLineItem newOli = oli.clone(false, true, false, false); newOli.Start_Date__c = oli.End_Date__c.addDays(1); newOli.End_Date__c = oli.End_Date__c.addMonths(12); /*newOli.Term__c = 12; newOli.UnitPrice = oli.UnitPrice/(oli.Term__c/12); newOli.In_Year_Billing__c = oli.In_Year_Billing__c/(oli.Term__c/12); */ newOli.Term__c = oli.Term__c; newOli.UnitPrice = oli.UnitPrice; newOli.In_Year_Billing__c = oli.In_Year_Billing__c; newOli.Parent_Opportunity_Product_Id__c = oli.Id; newOli.Original_Amount__c = oli.Orig_Total_Price__c; newOli.Original_ARR__c = oli.Annual_Recurring_Revenue__c; newOli.Original_In_Year_Billing__c = oli.In_Year_Billing__c; newOli.Actual_Renewal_Date__c = oli.End_Date__c.addDays(1); inYearBillingAmount = inYearBillingAmount + newOli.In_Year_Billing__c; if(newOLIMap.containsKey(key1)) { tmp1 = newOLIMap.get(key1); tmp1.add(newOli); } else { tmp1 = new List<OpportunityLineItem>(); tmp1.add(newOli); newOLIMap.put(key1,tmp1); } } } newOpp.X1st_3_months_Invoice__c = inYearBillingAmount; newOpportunities.add(newOpp); ///Creating Contact Roles//// if(oppContactRoleMap.containsKey(opp.Id)) { List<OpportunityContactRole> oppContactRoles = oppContactRoleMap.get(opp.Id); List<OpportunityContactRole> tmp2; //Create Opportunity Contact Role Clone//// for(OpportunityContactRole ocr: oppContactRoles) { OpportunityContactRole newOCR = ocr.clone(false, true, false, false); if(newContactRolesMap.containsKey(key1)) { tmp2 = newContactRolesMap.get(key1); tmp2.add(newOCR); } else { tmp2 = new List<OpportunityContactRole>(); tmp2.add(newOCR); newContactRolesMap.put(key1,tmp2); } } } } /////////////////////////////////////////////////////////// System.debug('newOpportunities::' + newOpportunities); try { if(newOpportunities.size() > 0) insert newOpportunities; //Updating Oppotunity Id in Opportunity Product for(Opportunity o:newOpportunities) { string key = o.Parent_Opportunity__c + '~' + String.valueOf(o.CloseDate); if(newOLIMap.containsKey(key)) { List<OpportunityLineItem> nOliList = newOLIMap.get(key); for(OpportunityLineItem nOli: nOliList) { nOli.OpportunityId = o.Id; newOpportunityLineItems.add(nOli); } } if(newContactRolesMap.containsKey(key)) { List<OpportunityContactRole> nOCRList = newContactRolesMap.get(key); for(OpportunityContactRole nOCR: nOCRList) { nOCR.OpportunityId = o.Id; newOpportunityContactRoles.add(nOCR); } } } if(newOpportunityLineItems.size() > 0) insert newOpportunityLineItems; if(newOpportunityContactRoles.size() > 0) insert newOpportunityContactRoles; ////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////Update Parent Contract with Renewal Opporunity Info///////////////////////////////////////////////// if(newOpportunityLineItems.size() > 0) { List<OpportunityLineItem> oliAll = [Select Id,Parent_Opportunity_Product_Id__c,Opportunity.StageName,Opportunity.Probability, Opportunity.OwnerId,Opportunity.Comments__c,In_Year_Billing__c,Type_Of_Product__c, Annual_Contract_Value__c from OpportunityLineItem where Id in: newOpportunityLineItems]; updateParentContract(oliAll); } ////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////Update Parent Account by tagging the Product Groups of the Opportunity Line Items////////////////// //Update Accounts updateParentAccount(closedWonOpportunities); ////////////////////////////////////////////////////////////////////////////////////////////////////// } catch(Exception e) { System.debug('ERROR::' + e.getMessage()); } } ///////////////////Updating Parent Contract with Lost Info/////////////////////// if(closedLostOpportunities.size() > 0) { ////Get Opportunity Products for lost Opportunities//// List<OpportunityLineItem> oppProdListLost = [Select Id,Parent_Opportunity_Product_Id__c, OpportunityId, Opportunity.Reason_Lost__c FROM OpportunityLineItem where OpportunityId in: closedLostOpportunities]; Set<Id> parentOLIIds = new Set<Id>(); Map<Id,string> parentOliMap = new Map<Id,string>(); ////Get Parent Opportunity Product Ids//// for(OpportunityLineItem oli: oppProdListLost) { if(oli.Parent_Opportunity_Product_Id__c != null && oli.Parent_Opportunity_Product_Id__c != '') { parentOLIIds.add(oli.Parent_Opportunity_Product_Id__c); parentOliMap.put(oli.Parent_Opportunity_Product_Id__c,oli.Opportunity.Reason_Lost__c); } } ////Get Contracts where Opportunity Product Id matches the Parent Opportunity Product Ids//// List<Contract> parentContracts = [Select Id, Opportunity_Product_Id__c, Renewal_Status__c, Adjusted_Comments__c from Contract where Opportunity_Product_Id__c in: parentOLIIds]; ////Update Renewal Status and Reason lost for these Contracts//// for(Contract c : parentContracts) { c.Renewal_Status__c = 'Renewal Lost'; if(c.Opportunity_Product_Id__c != null && c.Opportunity_Product_Id__c != '' && parentOliMap.containsKey(c.Opportunity_Product_Id__c)) { c.Adjusted_Comments__c = parentOliMap.get(c.Opportunity_Product_Id__c); } } try { update parentContracts; } catch(Exception e) { Trigger.new[0].addError(e.getMessage()); } } //////////////////If Opportunity is modified then the parent contract should get updated//////////// if(allOpportunities.size() > 0) { List<OpportunityLineItem> oliAll = [Select Id,Parent_Opportunity_Product_Id__c,Opportunity.StageName,Opportunity.Probability, Opportunity.OwnerId,Opportunity.Comments__c,In_Year_Billing__c,Type_Of_Product__c, Annual_Contract_Value__c from OpportunityLineItem where OpportunityId in: allOpportunities]; updateParentContract(oliAll); } /////////////////////////////////////////////////////////////////////////////////////////////////////// AvoidRecursiveCloning.setAlreadyCreatedClone(); } void updateParentContract(List<OpportunityLineItem> oliList) { List<ID> oliParentId = new List<ID>(); Map<Id,OpportunityLineItem> parentOliMap = new Map<Id,OpportunityLineItem>(); for(OpportunityLineItem oli: oliList) { if(oli.Parent_Opportunity_Product_Id__c != null && oli.Parent_Opportunity_Product_Id__c != '') { oliParentId.add(oli.Parent_Opportunity_Product_Id__c); parentOliMap.put(oli.Parent_Opportunity_Product_Id__c,oli); } } List<Contract> parentContracts = [Select Id, Opportunity_Product_Id__c, Renewal_Status__c, Adjusted_Comments__c, Stage__c, Probability__c, Notes__c, Owner__c,Contracts_In_Year_Billing__c,Type_Of_Product__c, Annual_Contract_Value__c from Contract where Opportunity_Product_Id__c in: oliParentId]; for(Contract c : parentContracts) { if(c.Opportunity_Product_Id__c != null && c.Opportunity_Product_Id__c != '' && parentOliMap.containsKey(c.Opportunity_Product_Id__c)) { OpportunityLineItem oli = parentOliMap.get(c.Opportunity_Product_Id__c); c.Stage__c = oli.Opportunity.StageName; c.Probability__c = oli.Opportunity.Probability; c.Owner__c = oli.Opportunity.OwnerId; c.Notes__c = oli.Opportunity.Comments__c; c.Type_Of_Product__c = oli.Type_Of_Product__c; c.Annual_Contract_Value__c = oli.Annual_Contract_Value__c; c.Contracts_In_Year_Billing__c = oli.In_Year_Billing__c; } } try { update parentContracts; } catch(Exception e) { Trigger.new[0].addError(e.getMessage()); } } //Method - Update Parent Account void updateParentAccount(List<Opportunity> optyList) { List<Account> accsToUpdate = new List<Account>(); Account[] accList = new Account[]{}; Map<ID,Set<String>> aIdToUniqueProductSetMap = new Map<ID,Set<String>> (); List<String> impactedOpps = new List<String>(); for(Opportunity io : optyList){ impactedOpps.add(io.Id); } System.debug('#####closed won opps inside updateParent:'+impactedOpps.size() ); //Go through each impacted Oppo and collect a unique set of Product names from all OLI for (Opportunity o : [select id, accountId, (select id, PricebookEntry.Product2.Name, PricebookEntry.Product2.Product_Group__c from OpportunityLineItems) from Opportunity where id IN :impactedOpps] ) { Set<String> productsInOppoSet = new Set<String> (); // reset the set for this Oppo for (OpportunityLineItem olip : o.opportunityLineItems) { if(olip.PricebookEntry.Product2.Product_Group__c != null && olip.PricebookEntry.Product2.Product_Group__c != '') productsInOppoSet.add(olip.PricebookEntry.Product2.Product_Group__c); } // With the unique set, add it into our Map associating each account to its unique product set if(aIdToUniqueProductSetMap.containsKey(o.accountId)) { Set<String> uniqueProdSet = aIdToUniqueProductSetMap.get(o.accountId); // add this Oppo's unique set to whatever we have so far uniqueProdSet.addAll(productsInOppoSet); aIdToUniqueProductSetMap.put(o.accountId,uniqueProdSet); // put it back in the Map } else aIdToUniqueProductSetMap.put(o.accountId,productsInOppoSet); // first Oppo for this Account; simply do a put } // displays all keys System.debug('####all keys in the map: ' + aIdToUniqueProductSetMap.keySet()); // displays all values System.debug('####a all values in the map (as a List): ' + aIdToUniqueProductSetMap.values()); accList = [Select id,SteelEye__c, Jump_Start_Subscription__c,PEM__c, xDB__c, PPAS__c, PPCD__c,PPSP__c,PGSQL__c, PPAS_Developer_Sub__c, PPSP_Developer_Sub__c, PGSQL_Developer_Sub__c, RDBA__c, Services__c, Training__c from Account WHERE Id in :aIdToUniqueProductSetMap.keySet()]; System.debug('accList::' +accList); //For each account in the list for(Account acc : accList){ Set<String> prodGroupSet = aIdToUniqueProductSetMap.get(acc.Id); system.debug('prodGroupSet:' +prodGroupSet); for(String groupName : prodGroupSet){ if(groupName.contains('PEM')) acc.PEM__c = true; if(groupName.contains('xDB')) acc.xDB__c = true; if(groupName.contains('PPAS')) acc.PPAS__c = true; if(groupName.contains('PPCD')) acc.PPCD__c = true; if(groupName.contains('PPSP')) acc.PPSP__c = true; if(groupName.contains('PGSQL')) acc.PGSQL__c = true; if(groupName.contains('PPAS_Developer_Sub')) acc.PPAS_Developer_Sub__c = true; if(groupName.contains('PPSP_Developer_Sub')) acc.PPSP_Developer_Sub__c = true; if(groupName.contains('PGSQL_Developer_Sub')) acc.PGSQL_Developer_Sub__c = true; if(groupName.contains('RDBA')) acc.RDBA__c = true; if(groupName.contains('Services')) acc.Services__c = true; if(groupName.contains('Training')) acc.Training__c = true; if(groupName.contains('SteelEye')) acc.SteelEye__c = true; if(groupName.contains('Jump_Start_Subscription')) acc.Jump_Start_Subscription__c = true; } //add accounts to be updated to the list accsToUpdate.add(acc); } try { //update accounts if (accsToUpdate != null && !accsToUpdate.isEmpty()) Database.update(accsToUpdate); } catch(Exception e) { Trigger.new[0].addError(e.getMessage()); } } public class OpportunityWrapper { public Date endDate{get;set;} public Opportunity opp {get;set;} } }Any help very much appreciated.
- SalesforceCrm AccountCRM
- February 23, 2016
- Like
- 0
I want to write Test class
I want to write Test class for belowclass
public class Contactpage{ public Contactpage(ApexPages.StandardController controller) { } public List<contactDemoMailSentwrap> ConsoleWrapperList4{get;set;} public List<contactDemoMailSentwrap> getperformcallout4(){ ConsoleWrapperList4 = new List<contactDemoMailSentwrap>(); HttpRequest req = new HttpRequest(); HttpResponse res = new HttpResponse(); Http http = new Http(); req.setEndpoint('https://www.demomail.net/sf/api/ContactDemoMailSent?Email=twilms@verisign.con&NameSpace=Demos%20On%20Demand%20Report'); req.setMethod('GET'); req.setTimeout(10000); res = http.send(req); //System.assert(false,res.getBody()+'-----'); if(res.getstatusCode() == 200 && res.getbody() != null){ String replaceIllegal= res.getbody().replaceAll('\n','').replaceAll('\r',''); ConsoleWrapperList4=(List<contactDemoMailSentwrap>)System.JSON.deserialize(replaceIllegal,List<contactDemoMailSentwrap>.class); } return consolewrapperlist4; } }
- rupesh ranjan
- February 23, 2016
- Like
- 0
Update custom field based on related list filed value
Hi,
I have two object.
1.Employee Master
2.Sp Master.
SP master is a related list with Employee master.So i want if SP Master one field Active__c =true then on check box should get checked in Employee master.How to do that.Please help.
I have two object.
1.Employee Master
2.Sp Master.
SP master is a related list with Employee master.So i want if SP Master one field Active__c =true then on check box should get checked in Employee master.How to do that.Please help.
- Supriyo Ghosh 5
- February 23, 2016
- Like
- 0
GIVING ERROR unknown variable ShippingPostalCode ?
i am doing trailhead triggers challenge ,i have completed first challange successfully but in second challenge everything is fine still giving error unknown variable ShippingPostalCode.
- shaharyar khan
- February 23, 2016
- Like
- 0
Issue with coding on browser (Specific to Chrome and IE11)
With recent spring release I am unable to code using chrome or IE browser, whenever I try to open either the visualforce page or apex code window over the browser, the browser gets hang and unable to do so. To perform the development activity i have to user the eclipse, which is ok, however what has happened with the browser coding ability? is there a way to avoid this? check the screenshot.
- Rituparn Shinde
- February 23, 2016
- Like
- 0
- Ab
- November 06, 2015
- Like
- 0