0% found this document useful (0 votes)
83 views8 pages

Account-Contact Trigger Examples

TRIGGER SOLVED PROBLEM FOR SALESFORCE

Uploaded by

glvibes98
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
83 views8 pages

Account-Contact Trigger Examples

TRIGGER SOLVED PROBLEM FOR SALESFORCE

Uploaded by

glvibes98
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 8

ListofSolvedTriggerExample:-

1.)UpdateChildObjectbasedonParentObjectfield.

triggerupdaetContacttypeonAccount(afterupdate){

Set<ID>accIds=newSet<Id>();
List<Contact>updateCon=newList<Contact>();

for(AccountaccObj:TRigger.new)
{
accIds.add(accObj.Id);
}

List<Contact>conLIst=newList<Contact>([SelectID,contact_type__c, account.account_type__c from


ContactwhereAccountIDIN:accIds]);

for(ContactconObj:conList)
{
conObj.Contact_Type__c=conObj.account.Account_Type__c; updateCon.add(conObj);
}

updateupdateCon;

2.)updateafieldonparentObjectbasedonchildobject.

triggerupdateAccountTypeonContact(Afterinsert,afterupdate){ Set<Id>accIds=newSet<Id>();

for(Contactcon:Trigger.new)
{
accIds.add(con.accountId);
}

Map<ID,account>accMap=newMap<ID,account>([SelectID,Account_type__cfromaccount
whereIDIN:accIds]);

for(ContactconObj:Trigger.new)
{
accMap.get(conObj.AccountId).Account_Type__c=conObj.Contact_Type__c;
}
updateaccMap.values();

3.)CreateaTaskRelatedtoaccount&Sobjects.
triggerInsertMyTaskonAccount(afterinsert){
List<Task>insertTask=newList<Task>();

for(Accountacc:Trigger.new)
{
Tasktsk=newTask(); tsk.Subject='Test';
tsk.whatID=acc.id; tsk.status='completed';

insertTask.add(tsk);
}
insertinsertTask;
}

4.)UpdateafieldonsameObject.

triggerIndustryonAccount(beforeinsert,beforeupdate){

for(AccountAcct:trigger.new) Acct.Industry='Banking';

5.)SendEmailwhenChidrecordfieldwillupdatebasedonParentcreteria.

triggerupdateContactEmailonAccount(afterupdate){

Set<ID>accIds=newSet<Id>();
List<contact>conUp=newList<contact>();

For(Accountacc:Trigger.new)
{
if(acc.Rating=='Hot') accIds.add(acc.Id);
}

List<contact>conList=newList<Contact>([SelectId,Email,accountIdfromContactwhere
AccountIDIN:accIds]); for(Contactcon:ConList)
{
con.Email='[email protected]'; conUp.add(con);
}
updateconUp;

Messaging.SingleEmailMessagemail=newMessaging.SingleEmailMessage();

String[]toAddresses=newString[]{'[email protected]'};

mail.setToAddresses(toAddresses); mail.Subject='UpdateContact';
mail.PlainTextBody='YourContacthasbeenUpdated';
Messaging.sendEmail(newMessaging.SingleEmailMessage[]{mail});
}

6.)SendEmailwhenParentrecrodfieldwillupdatebasedonthecilderecord.
triggerupdateAccountTypeonContact(Afterinsert,afterupdate){ Set<Id>accIds=newSet<Id>();

for(Contactcon:Trigger.new)
{
accIds.add(con.accountId);
}

Map<ID,account>accMap=newMap<ID,account>([SelectID,Account_type__cfromaccount
whereIDIN:accIds]);

for(ContactconObj:Trigger.new)
{
accMap.get(conObj.AccountId).Account_Type__c=conObj.Contact_Type__c;
}

updateaccMap.values();

Messaging.SingleEmailMessagemail=newMessaging.SingleEmailMessage();

String[]toAddresses=newString[]{'[email protected]'};

mail.setToAddresses(toAddresses); mail.Subject='UpdateContact';
mail.PlainTextBody='YourAccounthasbeenUpdated';

Messaging.sendEmail(newMessaging.SingleEmailMessage[]{mail});

7.)CreateRollupSummaryonparent(Lookuprelatelship)

triggerrollUpSummaryofContactonContact(afterinsert,afterupdate,afterdelete,after
undelete)
{
Set<Id>accIds=newSet<Id>();
List<Account>accUp=newList<Account>();
if(Trigger.isInsert||Trigger.isupdate||Trigger.isundelete)
{
for(Contactcon:trigger.new)
{
accIds.add(con.accountId);
}
}

if(Trigger.isDelete)
{
for(Contactcon:trigger.Old)
{
accIds.add(con.accountId);
}
}
List<account>accList=newList<account>([SelectId,Number_of_Contacts__c,(SelectID
fromContacts)fromAccountwhereIDIN:accIds]);

for(accountacc:accList)
{
acc.Number_of_Contacts__c=acc.Contacts.size(); accUp.add(acc);
}

updateaccUp;
}

8.)UpdateacountObjectfieldbasedonthetask. triggerupdaetAccountCheckonTask(AfterInsert,AfterUpdate){

Set<ID>accIds=newSet<ID>();
List<Account>updateAcc=newList<account>();

StringstrPr=Account.SobjectType.getDescribe().getKeyPrefix();

for(Tasktsk:Trigger.new)
{
StringStr=tsk.WhatID; if(Str!=null&&str.StartsWith(strPr))
accIds.add(str);
}

/*for(tasktskObj:Trigger.new)
{
if(tskObj.Status=='Completed')
accIDs.add(tskObj.WhatID);
}*/

//NewStepsforthis

List<account>accList=newList<account>([SelectID,Premium_Account__c fromaccount
WhereIDIN:accIDs]);

for(AccountaccObj:accList)
{
accObj.Premium_Account__c=True; updateAcc.add(accObj);
}

updateupdateAcc;

}
9.)UpdateGrandParentfieldbasedontheGrandChildactivity.

triggerupdateAccBySalesonTask(afterinsert,afterupdate)
{
StringstrSalesKey=Sales_Forecast__c.sObjectType.getDescribe().getKeyPrefix();
Set<Id>tskWhatIds=newSet<ID>();
Set<Id>oppIds=newSet<Id>();
List<Opportunity>oppUp=newList<Opportunity>();

for(tasktsk:Trigger.new)
{
StringstrSales=tsk.WhatID;
if(strSales!=null&&strSales.startsWith(strSalesKey))
{
tskWhatIds.add(tsk.WhatID);
}
}

List<Sales_Forecast__c> salesList = new List<Sales_Forecast__c>([Select Id,


Opportunity__cfromSales_Forecast__cWhereIDIN:tskWhatIds]);

for(Sales_Forecast__csalesObj:salesList)
{
if(salesObj.Opportunity__c!=null) oppIds.add(salesObj.Opportunity__c);

List<Opportunity>oppList=newList<Opportunity>([SelectId,Name,TYpefrom
OpportunityWHereIDIN:oppIds]);

for(OpportunityOpp:oppList)
{
Opp.Type='NewCustomer'; oppUp.add(opp);
}

updateoppUp;

10.)CreateValidationruleonsameObject.

triggerValidateTaskonTask(beforeinsert,beforeupdate)
{
for(tasktsk:Trigger.new)
{
if(tsk.Type==null) tsk.addError('PleaseFillType');
}

11.)CreatevalidationruleonChildobjectbasedontheParentObject.
triggerOppValidateonOpportunity(beforeinsert,beforeupdate)
{
for(OpportunityOpp:Trigger.new)
{
if(opp.AccountId!=null&&opp.Account.Premium_Account__c!=True)
opp.addError('Youcannotsaveopp');
}
}

12.)CrateValidaionruleonTaskbasedontheparentobject. SameasAbove

13.)CreateFeedItem&commentbasedontheaccount/Sobject.

triggerInsertFeedItemwithCommentsonContact(afterinsert,afterupdate)
{
List<FeedItem>fItemInsert=newList<FeedItem>();
List<FeedComment>commentsInsert=newList<FeedComment>();

For(Contactcon:trigger.new)
{
FeedItemfItem=newFeedItem();

fItem.ParentID=con.ID;
fItem.Body='NewContacthasbeenCreated'; fItemInsert.add(fItem);

}
insertfItemInsert;

For(FeedItemFd:fItemInsert)
{

FeedCommentcomments=newFeedComment();

comments.FeedItemId=fd.Id; comments.CommentBody='Thanks';

commentsInsert.add(comments);
}

insertcommentsInsert;

14.)CreatetaskrealtedtochildobjectbasedontheParentObject.

triggerinsertTaskandCaseonAccount(afterinsert){

List<Case>insertCS=newList<Case>();
List<Task>inserttsk=newList<Task>();

for(Accountacc:trigger.new)
{
Casecs=newCase();

cs.Subject='Test'+acc.Name;
cs.accountID=acc.Id; cs.Status='Open';
cs.Origin='Phone';
insertCS.add(cs);
}

insertinsertCS;

for(CasecsObj:insertCS)
{
tasktsk=newtask(); tsk.Subject='TestTask';
tsk.Status='Open'; tsk.Priority='Normal';
tsk.whatId=csObj.ID;

insertTsk.add(tsk);
}
insertinsertTsk;
}

15.)Recordcannotdelete.

triggerNotdeletecontactonContact(beforedelete){

for(Contactcon:Trigger.Old)
{
if(con.Phone==null) con.addError('Youcannotdelete');

16.)UpdateTaskbasedonParentobject.

triggerupdateTaskBasedonCaseonAccount(afterinsert,afterupdate){

Set<Id>accIds=newSet<Id>();
Set<Id>caseIds=newSet<Id>(); List<Task>updateTsk=newList<Task>();

for(AccountaccObj:Trigger.new)
{
if(accObj.NumberofLocations__c==0) accIds.add(accObj.Id);
} List<Case>csList=[SelectId,accountID,SubjectfromCasewhereaccountIdIn:accIds
ANDSubject='TestInsertCase&Task'LIMIT1];

for(CasecsObj:csList)
{
if(csObj.Subject=='TestInsertCase&Task') caseIds.add(csObj.Id);
}

List<Task>tskList=[SelectID,StatusfromtaskwherewhatIdIN:caseIdsANDStatus=
'Open'];

for(TasktskObj:tskList)
{
tskObj.Status='Completed';
updatetsk.add(tskObj);
}

updateupdatetsk;

You might also like