function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
SFDC ROCKSFDC ROCK 

iterate map in salesforce

 Method Snipet :
 
 Map<String,Decimal> typeAmonutMap= new Map<String,Decimal>();
                  for(items__c Item:LineItem){
                      if(typeAmonutMap.containsKey(Item.Type__c)){  
                           } 
                           
            typeAmonutMap.put(Item.Type__c,Item.Amount__c);
        system.debug('typeAmonutMap====' +typeAmonutMap);
==>  // getting  type=A     Amount=3
                         type=A      amount=4
                         type=B      Amount= 6                                                                            type=B       Amount=9
                         type=B      amount=3
                         type=C     amount=99
                                                                                           

I need to insert above record to the related object like below:

Record1 

type=A amount=7 (3+4)

Record2

Type=B  Amount=18 (6+9+3)        

Record3

Type=C amount=99

and so on.    

Please help me to complete the method.
Le NguyenLe Nguyen
Map<String,Decimal> typeAmonutMap= new Map<String,Decimal>();
for(items__c Item:LineItem){
         If(!typeAmonutMap.containsKey(Item.Type__c)){
                  typeAmonutMap.put(item.Type__c, item.Amount__c);
         }else{
                 Decimal vl = typeAmonutMap.get(item.Type__c);
                 vl += item.Amount__c;
                 typeAmonutMap.put(Item.Type__c,vl);
         }
}
SFDC ROCKSFDC ROCK
@Le Nguyen,
It is showing null point exception error
Attempt to de-reference a null object
Le NguyenLe Nguyen
@SFDC ROCK,
Please copy the whole code if you do not mind, and look at the debug log to see which line throwing the error.  You can just add checking your Type__c / Amount__c, one of these values got empty value.
Le NguyenLe Nguyen
// You can put a tempvalue to check if Amount__c is a null value then treat it as 0.

Map<String,Decimal> typeAmonutMap= new Map<String,Decimal>();
for(items__c Item:LineItem){
         Decimal tempvalue = item.Amount__c == null ? 0 : Item.Amount__c;
         If(!typeAmonutMap.containsKey(Item.Type__c)){
                 
                  typeAmonutMap.put(item.Type__c, tempvalue);
         }else{
                 Decimal vl = typeAmonutMap.get(item.Type__c);
                 vl += tempvalue;
                 typeAmonutMap.put(Item.Type__c,vl);
         }
}