Wednesday 29 June 2016

Can you update lookups using workflows?


    This will have to be done with coding.  Workflow Rules can't process unrelated records.  And, Workflow Rule Field Updates can't dynamically set Lookup() field values.

Monday 27 June 2016

State Validation Rule

The US State contains 2 Letters. 

1. Create a Text field and the set values as "2"
2. To write a below validation rule  

OR( ISNUMBER( State__c ), OR(CONTAINS(State__c , "!"),CONTAINS(State__c , "@"),CONTAINS(State__c , "#"),CONTAINS(State__c , "$"),CONTAINS(State__c , "$"),CONTAINS(State__c , "%"),CONTAINS(State__c , "^"),CONTAINS(State__c , "&"),CONTAINS(State__c , "*")))

Tuesday 14 June 2016

Roll Up Summary using Trigger


trigger sumofLPT on loan__Loan_Payment_Transaction__c (after insert, after update, after delete) {
    List<loan__Loan_Account__c> llaList = new List<loan__Loan_Account__c>();
  
    Set<ID> setlpt =  new Set<ID>();
  
    for(loan__Loan_Payment_Transaction__c lpt: trigger.new)
    {
        setlpt.add(lpt.id);
    }
    Decimal sum1;
    Decimal sum2;
    Decimal sum3;
    Decimal sum4;
    for(loan__Loan_Account__c loan: [select name, (select name, loan__Cleared__c, loan__Rejected__c, loan__Rejection_Reason__c, loan__Reversed__c, loan__Reversal_Reason__c, loan__Transaction_Amount__c FROM loan__Loan_Payment_Transactions__r)
    FROM loan__Loan_Account__c ])
    {
      
        sum1 = 0;
        sum2 = 0;
        sum3 = 0;
        sum4 = 0;
        for(loan__Loan_Payment_Transaction__c lpt1:loan.loan__Loan_Payment_Transactions__r){
        if(lpt1.loan__Rejected__c == true){   
            sum1 += lpt1.loan__Transaction_Amount__c;
            loan.Rejected_Transaction_Amount__c = sum1;
            System.debug('!!!!!!!!!!!!!sum1'+sum1);
            System.debug('@@@@@@@@@@@@@loan.Rejected_Transaction_Amount__c'+loan.Rejected_Transaction_Amount__c);
          
           }
            /*else
            {
                for(loan__Loan_Payment_Transaction__c lpt2: Trigger.old){
                if((Trigger.isUpdate || Trigger.isDelete) && lpt1.loan__Rejected__c == true){
                loan__Loan_Payment_Transaction__c lpt1old = Trigger.oldMap.get(lpt1.Id);
                }
               }
            }*/
         if(lpt1.loan__Reversed__c == true){
            sum2 += lpt1.loan__Transaction_Amount__c;
            loan.Reversed_Transaction_Amount__c = sum2;
            System.debug('!!!!!!!!!!!!!sum2'+sum2);
            System.debug('@@@@@@@@@@@@@loan.Reversed_Transaction_Amount__c'+loan.Reversed_Transaction_Amount__c);
            }
         if(lpt1.loan__Cleared__c == true){
            sum3 += lpt1.loan__Transaction_Amount__c;
            loan.Cleared_Transaction_Amount__c = sum3;
            System.debug('!!!!!!!!!!!!!sum3'+sum3);
            System.debug('@@@@@@@@@@@@@loan.Cleared_Transaction_Amount__c'+loan.Cleared_Transaction_Amount__c);
            }
            if(lpt1.loan__Cleared__c == false && lpt1.loan__Reversed__c == false && lpt1.loan__Rejected__c == false){
            sum4 += lpt1.loan__Transaction_Amount__c;
            loan.Uncleared_Transaction_Amount__c = sum4;
             System.debug('!!!!!!!!!!!!!sum4'+sum4);
            System.debug('@@@@@@@@@@@@@loan.Uncleared_Transaction_Amount__c'+loan.Uncleared_Transaction_Amount__c);
            }
        
        }
        llaList.add(loan);
    }
    update llaList;
  
}

Batch Apex

1. What are transaction limits in apex? Total number of SOQL queries issued1 - 100 Total number of records retrieved by SOQL queries - 50...