The following practice questions are for Salesforce developers who are new to salesforce and wish to solve some basic programming questions. Write a trigger
1. On Account create a default contact every time an account is created. What is Trigger
Click here to learn more
list<contact> con = new list<contact>();
for(Account acc : trigger.new){
contact c = new contact();
c.LastName = acc.Name;
c.AccountID = acc.ID;
con.add(c);
}
insert con;
}
2. Bulkify the above trigger to manage multiple record insertion. Trigger Bulkify
Click here to learn more
list<contact> con = new list<contact>();
for(Account acc : trigger.new){
contact c = new contact();
c.LastName = acc.Name;
c.AccountID = acc.ID;
con.add(c);
}
insert con;
}
3. On Opportunity to not let the user insert Opportunities with pass closed Date with following Message “Please enter a future Closed Date”. This can also be implemented by a validation rule but we want a Trigger to be written
Click here to learn more
for(opportunity opp : trigger.new) {
if(opp.Closedate<=Date.Today()){
opp.adderror(‘please eneter a future closed date’);
}
}
}
4. On Product to setup default Pricebook entry in the “Standard Pricebook” as 1$. Product Schema Diagram
Click here to learn more
list<PricebookEntry> pblist = new list<PricebookEntry>();
Pricebook2 pb=[Select id FROM Pricebook2 WHERE IsStandard=true];
for(Product2 pro:trigger.new){
PriceBookEntry pbe=new PriceBookEntry();
pbe.pricebook2id = pb.id;
pbe.Unitprice=1;
pbe.Product2Id=pro.id;
pblist.add(pbe);
} insert pblist;
}
5. On Contact to update the Account Name field with contact Last Name, concatenated in the end. Example If “Tata” Account gets a contact “Ratan” created then Account Name field will be updated as “TataRatan”.
Click here to learn more
List<Account> accountlist=new List<Account>();
if(trigger.isInsert){
for(Contact con:[select Accountid,Account.Name,LastName from Contact WHERE Id
IN:trigger.new]){
if(con.Account.Name!=null){
con.Account.Name+=con.LastName;
accountlist.add(con.Account);
}
}
}else if(trigger.isDelete){
for(Contact con : [select AccountId, Account.Name, LastName from Contact WHERE Id IN:
trigger.old]){
system.debug(‘** contact –‘+con + ‘ *** Account –‘ + con.AccountId + ‘ *** Account Name — ‘+
con.Account.Name);
con.Account.Name = con.Account.Name.replace(con.LastName,”);
accountlist.add(con.Account);
}
}
system.debug(‘*** ‘ +accountlist);
update accountlist;
}
6. Update the above trigger to delete the Last Name from the Account Company field when a Contact is deleted without deleting the other Last name. Example If “TataRatanNori” Account already have “Ratan” and “Nori” as its contacts and then contact “Ratan” gets deleted then Account Name field will be updated as “TataNori”.
Click here to learn more
List<Account> accountlist=new List<Account>();
if(trigger.isInsert){
for(Contact con:[select Accountid,Account.Name,LastName from Contact WHERE Id
IN:trigger.new]){
if(con.Account.Name!=null){
con.Account.Name+=con.LastName;
accountlist.add(con.Account);
}
}
}else if(trigger.isDelete){
for(Contact con : [select AccountId, Account.Name, LastName from Contact WHERE Id IN:
trigger.old]){
system.debug(‘** contact –‘+con + ‘ *** Account –‘ + con.AccountId + ‘ *** Account Name — ‘+
con.Account.Name);
con.Account.Name = con.Account.Name.replace(con.LastName,”);
accountlist.add(con.Account);
}
}
system.debug(‘*** ‘ +accountlist);
update accountlist;
}
7. On Opportunity to alert the user when an Opportunity is being closed with no Opportunity line items in it.
Click here to learn more
for(Opportunity opp : [Select Id,StageName, (Select Id FROM OpportunityLineItems) FROM
Opportunity WHERE Id IN :Trigger.new])
{
if(opp.StageName == ‘Closed Won’ || opp.StageName == ‘CLosed Lost’ &&
opp.OpportunityLineItems.size() == 0 ){
trigger.newmap.get(opp.id).adderror(‘There is no opportunity Line Item ‘);
}
}
}
September 7, 2015
Dear Sir,
Great sir, There is No Other words…….
June 7, 2018
Thanks sir.