update a related record value using Map and Apex class?

Example 1:
How to create and update existing contact records using map and apex class

global void execute(Database.BatchableContext BC, List<sObject> scope) {

List<Data_Feeds__c> feeds = (List<Data_Feeds__c>) scope;

Set<String> lastNames = new Set<String>();
for (Data_Feeds__c f : feeds) {

Map<String, Contact> contacts = new Map<String, Contact>();
for (Contact c : [
select Id, LastName
from Contact
where LastName in :lastNames
]) {
contacts.put(c.LastName, c);
for (Data_Feeds__c f : feeds) {
Contact c;
if (contacts.containsKey(f.Name)) {
c = contacts.get(f.Name);
} else {
c = new Contact(LastName = f.Name);
contacts.put(f.Name, c);
c.FirstName = f.First_Name__c;
c.AccountId = f.Primary_Account_ID__c;
c.AccContRole__c = f.Account_ID__c;
upsert contacts.values();

Example 2:
To update map values using the apex trigger and below is the example code

trigger IndustrytoAcctOpp on Customer_Product_Line_Item__c ( before insert, before update )
Map<String,String> imap = new Map<String,String>();

for ( Industry_Definition__c i :
[   SELECT  Id, Market_Segment__c, Strategic_Industry__c
FROM    Industry_Definition__c
imap.put( i.Market_Segment__c, i.Strategic_Industry__c );

Map<Id,Customer_Product_Line_Item__c> map_AccountID_CPLI =
new Map<Id,Customer_Product_Line_Item__c>();

for ( Customer_Product_Line_Item__c cpli : trigger.new )
cpli.Strategic_Industry__c = imap.get( cpli.Industry_Segment__c );
map_AccountID_CPLI.put( cpli.Account__c, cpli );

List<Account> list_AccountsToUpdate = new List<Account>();
for ( Account a :
[   SELECT  Id, Strategic_Industry__c
FROM    Account
WHERE   Id IN :map_AccountID_CPLI.keySet()
a.Strategic_Industry__c = map_AccountID_CPLI.get( a.Id ).Strategic_Industry__c;
list_AccountsToUpdate.add( a );
update list_AccountsToUpdate;

Written by 

I am Sakthivel Madesh, a certified Salesforce Advanced Developer & Administrator working on Salesforce Technology since 2011. I am currently working in Techforce Services as Sr. Salesforce Developer. I have worked on multiple technologies Like PHP, Java, Salesforce, I am very passionate about Salesforce and to earn 15x Salesforce Certification. I love Trailhead for learning Salesforce Skill and Become a Trailhead 5x Ranger too. I Love to Learn & Share my Salesforce knowledge to Salesforce Learners/Beginner using My Blog and Salesforce Community.

Leave a Reply

Your email address will not be published. Required fields are marked *