You need to sign in to do that
Don't have an account?

Apex trigger to update field value needs code review
Here's a trigger that I've written to update the Site Name of the Contact record to "http://" + subdomain__c + ".com" if it meets the following conditions that the contact record type is "Billing Administrator" and the subdomain__c field has changed in the site_usage object. Pleaset let me know if you see any problems with this code. Thank you!
===
trigger SiteNameUpdate on Site_Usage__c (after update) {
// Turn DB off.
CRMfusionDBR101.DB_Globals.triggersDisabled = true;
System.debug('########## Entering SiteNameUpdate');
List<Site_Usage__c> siteList = new List<Site_Usage__c>();
Map<double, string> subdomain = new Map<double, string>();
for ( Site_Usage__c site:Trigger.new) {
Site_Usage__c oldSite = Trigger.oldMap.get(site.ID);
// subdomain was updated
if (site.Subdomain__c != oldSite.Subdomain__c) {
subdomain.put(site.site_id__c, site.Subdomain__c);
}
}
if ( subdomain.size() > 0 ) {
// Get a list of contacts where the record type is Billing Administrator
// that have the same site_id's
List<Contact> contactList = [select ID, Site__c, site_id__c, User_Role__c from Contact where site_id__c IN :subdomain.keySet()];
// Update all site names of contact with the same site name as the site_usage subdomain
for (Contact acc:contactList) {
if ( subdomain.containsKey(acc.site_id__c)) && ( contactList.get(acc.User_Role__c) == "Billing Administrator") {
acc.Site__c = subdomain.get('http://' + site.Subdomain__c + ".com") ;
}
}
update contactList;
} // end of "if flag"
System.debug('########## Exiting SiteNameUpdate');
// Turn DB back on.
CRMfusionDBR101.DB_Globals.triggersDisabled = false;
}