• sagar patil 13
  • NEWBIE
  • 0 Points
  • Member since 2016

  • Chatter
    Feed
  • 0
    Best Answers
  • 0
    Likes Received
  • 0
    Likes Given
  • 7
    Questions
  • 2
    Replies
I've created a contact detail page using napilli template.
I want such a functionality that when customer logs in, contact detail page should be appear as home page.
How can I do this?
Requirement:
Custom Object Name=CaseConfig__c
Fields of CaseConfig__c
1.Product(lookup)
2.SRType(lookup)

Name of CaseConfig__c should be automatically set by concatenating Names of product & SRType Object.
User will fill values of product & SrType only. value of Name Field of CaseConfig__c should be generated automatically.on insert or update
Standard lookup field of contact in case object returns null in before trigger, but If I add custom lookup of contact in contact then It return contact id in before trigger. But I want contact Id from standard lookup field in before trigger
Using a Sobject name(which will be String) I should able to access fields of that SObject.
An error has occurred while processing your request. The salesforce.com support team has been notified of the problem. If you believe you have additional information that may be of help in reproducing or correcting the error, please contact Salesforce Support. Please indicate the URL of the page you were requesting, any error id shown on this page as well as any other related information. We apologize for the inconvenience. 

Thank you again for your patience and assistance. And thanks for using salesforce.com!
Error ID: 1836710115-341721 (1204153959)



Above error is occurred while updating.
But Error has been gone when I inactive the trigger



Below is my trigger code
Helper class 
public class UpdateAction
{
    List<Case> newCaseListToUpdate;
    List<Case> oldCaseList;
    
    List<ID> productIdList;//List Collection for product obj.ID
    List<ID > srTypeIdList;//List Collection for srtype obj.ID
    List<ID> srSubTyeIdList;//List Collection for srsubtype obj.ID
    
    Map<String,Case_Configuration__c> caseConfigIdsWithCaseStage;
    Map<Case,ID> caseStepsOfcases;
    
    public UpdateAction(List<Case> newCaseListToUpdate,List<Case> oldCaseList)
    {
        this.newCaseListToUpdate=newCaseListToUpdate;
        this.oldCaseList=oldCaseList;
    }
    
    
    public Boolean isProductSRTypeOrSRSubTypeUpdated()
    {
        if(initUpdatedListOfProductSrTypeAndSRSubType()==true)
            return true;
        return false;
    }
    
    private Boolean initUpdatedListOfProductSrTypeAndSRSubType()
    {
        productIdList=new List<ID>();
        srTypeIdList=new List<ID>();
        srSubTyeIdList=new List<ID>();
        
        Boolean isNewDataFound=false;
        
        for(Integer i=0;i<newCaseListToUpdate.size();i++)
        {   
            Case newCase=newCaseListToUpdate[i];
            if(newCase.Product__c != oldCaseList[i].Product__c 
            || newCase.SR_Type__c != oldCaseList[i].SR_Type__c
            || newCase.SR_Sub_Type__c != oldCaseList[i].SR_Sub_Type__c) 
            {
                productIdList.add(newCase.Product__c );
                srTypeIdList.add(newCase.SR_Type__c );
                srSubTyeIdList.add(newCase.SR_Sub_Type__c );
                
                isNewDataFound=true;
            }
        }
        
        return isNewDataFound;
    }
    
    public void setCaseConfigAndCurrStage()
    {  
           // initCaseConfigMap();
       caseConfigIdsWithCaseStage=CaseConfigurationOperation.getCaseStageOfCaseConfig(productIdList,srTypeIdList,srSubTyeIdList);
       if(caseConfigIdsWithCaseStage!=null && caseConfigIdsWithCaseStage.size()>0)
       {
            for(Case cs:newCaseListToUpdate)
            {
                 //System.debug('insert keyyy='+key(cs));
                Case_Configuration__c caseConfig=caseConfigIdsWithCaseStage.get(CaseConfigurationOperation.caseKey(cs));
                if(caseConfig!=null)
                {
                    cs.Case_Configuration__c= caseConfig.Id;
                    cs.Current_Stage__c=caseConfig.Case_Steps__r[0].Case_Stage__c;
                }
            } 
        }
    }
    
    /*--    private void initCaseConfigMap()
    {
        try
        {
            caseConfigIdsWithCaseStage=new Map<String,Case_Configuration__c>();
            for(Case_Configuration__c caseConfig :
                                             [select Id,Product__r.Id,SR_Sub_Type__r.Id,SR_Type__r.Id,(select Case_Stage__c from Case_Steps__r where Name='001')
                                             from Case_Configuration__c 
                                             where Product__r.Id  In :productIdList and SR_Sub_Type__r.Id  In :srSubTyeIdList
                                             and SR_Type__r.Id In :srTypeIdList])
            {
                //System.debug(caseConfig.Product__r);
                if(isKeyNull(caseConfig)==false)
                    caseConfigIdsWithCaseStage.put(key(caseConfig),caseConfig);
            }
                                                     
        }
        catch(DMLException e)
        {    
            System.debug(e);
        }
    }
    
    private Boolean isKeyNull(Case_Configuration__c caseConfig)
    {
        if(caseConfig.Product__r.Id==null && caseConfig.SR_Type__r.Id==null && caseConfig.SR_Sub_Type__r.Id==null)
        {
            return true;
        }
        return false;
    }
    
    private static String key(Case cs) 
    {
         return cs.Product__c + '|' + cs.SR_Type__c + '|' + cs.SR_Sub_Type__c ;
    }

    private static String key(Case_Configuration__c caseConfig) 
    {
        return caseConfig.Product__r.Id + '|' + caseConfig.SR_Type__r.Id + '|' + caseConfig.SR_Sub_Type__r.Id ;
    }
        --*/
    
    public void updateSteps()
    {
        if(isCurrStepUpdated()==true)
        {
             
             System.debug('current step is updated');                                        
            Map<ID,case_step__c> currentCaseStepList=new  Map<ID,case_step__c>(
                                            [select ID,Next_Step__r.Id,Next_Step__r.Case_Stage__c
                                             from Case_Step__c 
                                             where Id In :caseStepsOfcases.values()]);
                                              System.debug('currentCaseStepList obj created'); 
                                              
                                              
            if(currentCaseStepList!=null && currentCaseStepList.size()>0)    
            {
                for(Case caseToUpdate:caseStepsOfcases.keySet())
                {
                    caseToUpdate.Previous_Status__c =caseToUpdate.Current_Status__c;
                    Case_Step__c currCaseStep=currentCaseStepList.get(caseToUpdate.Current_Step__c);
                    
                    if(currCaseStep!=null)
                    {
                        ID nextStepId=currCaseStep.Next_Step__r.Id;
                
                        if(nextStepId!=null)
                        {
                            caseToUpdate.Current_Stage__c=currCaseStep.Next_Step__r.Case_Stage__c;
                        }
                        else
                        {
                            System.debug('no next found at line 150');
                        }
                        
                        caseToUpdate.Current_Step__c=null;
                    }
                    else
                    {
                        System.debug('currCaseStep found null at 157');
                    }
                }
            }
            else
            {
                System.debug('currentCaseStepList fount null empty at 158');
            }
           
        }
        
    }
    
    private Boolean isCurrStepUpdated()
    {
        Boolean currStepUpdated=false;
        caseStepsOfcases=new Map<Case,ID>();
        for(Integer i=0;i<newCaseListToUpdate.size();i++)
        {   
            Case newCase=newCaseListToUpdate[i];
            if(newCase.Current_Step__c != oldCaseList[i].Current_Step__c) 
            {
                caseStepsOfcases.put(newCase,newCase.Current_Step__c);
                currStepUpdated=true;
            }
        }
        
        return currStepUpdated;
    }
}


Below is my trigger
trigger testCase on Case(before insert,before update)
{
    if(Trigger.isBefore)
    {
        if(Trigger.Isinsert )
        {
            new InsertAction(Trigger.new).setCaseConfigAndCurrStage();
        }//end of if
        
        if(Trigger.isupdate)
        {
            UpdateAction updateAct=new UpdateAction(Trigger.new,Trigger.old);
            
            if(updateAct.isProductSRTypeOrSRSubTypeUpdated()==true)
            {
                System.debug('updating config and curr stage');
                updateAct.setCaseConfigAndCurrStage();
            }
            updateAct.updateSteps();
            System.debug('trigger executed');
            
        
        }
       
    }//End of ISbefore.
}//end of trigg
please help me with that one.
i am trying to post my code 
An error has occurred while processing your request. The salesforce.com support team has been notified of the problem. If you believe you have additional information that may be of help in reproducing or correcting the error, please contact Salesforce Support. Please indicate the URL of the page you were requesting, any error id shown on this page as well as any other related information. We apologize for the inconvenience. 

Thank you again for your patience and assistance. And thanks for using salesforce.com!
Error ID: 1836710115-341721 (1204153959)



Above error is occurred while updating.
But Error has been gone when I inactive the trigger



Below is my trigger code
Helper class 
public class UpdateAction
{
    List<Case> newCaseListToUpdate;
    List<Case> oldCaseList;
    
    List<ID> productIdList;//List Collection for product obj.ID
    List<ID > srTypeIdList;//List Collection for srtype obj.ID
    List<ID> srSubTyeIdList;//List Collection for srsubtype obj.ID
    
    Map<String,Case_Configuration__c> caseConfigIdsWithCaseStage;
    Map<Case,ID> caseStepsOfcases;
    
    public UpdateAction(List<Case> newCaseListToUpdate,List<Case> oldCaseList)
    {
        this.newCaseListToUpdate=newCaseListToUpdate;
        this.oldCaseList=oldCaseList;
    }
    
    
    public Boolean isProductSRTypeOrSRSubTypeUpdated()
    {
        if(initUpdatedListOfProductSrTypeAndSRSubType()==true)
            return true;
        return false;
    }
    
    private Boolean initUpdatedListOfProductSrTypeAndSRSubType()
    {
        productIdList=new List<ID>();
        srTypeIdList=new List<ID>();
        srSubTyeIdList=new List<ID>();
        
        Boolean isNewDataFound=false;
        
        for(Integer i=0;i<newCaseListToUpdate.size();i++)
        {   
            Case newCase=newCaseListToUpdate[i];
            if(newCase.Product__c != oldCaseList[i].Product__c 
            || newCase.SR_Type__c != oldCaseList[i].SR_Type__c
            || newCase.SR_Sub_Type__c != oldCaseList[i].SR_Sub_Type__c) 
            {
                productIdList.add(newCase.Product__c );
                srTypeIdList.add(newCase.SR_Type__c );
                srSubTyeIdList.add(newCase.SR_Sub_Type__c );
                
                isNewDataFound=true;
            }
        }
        
        return isNewDataFound;
    }
    
    public void setCaseConfigAndCurrStage()
    {  
           // initCaseConfigMap();
       caseConfigIdsWithCaseStage=CaseConfigurationOperation.getCaseStageOfCaseConfig(productIdList,srTypeIdList,srSubTyeIdList);
       if(caseConfigIdsWithCaseStage!=null && caseConfigIdsWithCaseStage.size()>0)
       {
            for(Case cs:newCaseListToUpdate)
            {
                 //System.debug('insert keyyy='+key(cs));
                Case_Configuration__c caseConfig=caseConfigIdsWithCaseStage.get(CaseConfigurationOperation.caseKey(cs));
                if(caseConfig!=null)
                {
                    cs.Case_Configuration__c= caseConfig.Id;
                    cs.Current_Stage__c=caseConfig.Case_Steps__r[0].Case_Stage__c;
                }
            } 
        }
    }
    
    /*--    private void initCaseConfigMap()
    {
        try
        {
            caseConfigIdsWithCaseStage=new Map<String,Case_Configuration__c>();
            for(Case_Configuration__c caseConfig :
                                             [select Id,Product__r.Id,SR_Sub_Type__r.Id,SR_Type__r.Id,(select Case_Stage__c from Case_Steps__r where Name='001')
                                             from Case_Configuration__c 
                                             where Product__r.Id  In :productIdList and SR_Sub_Type__r.Id  In :srSubTyeIdList
                                             and SR_Type__r.Id In :srTypeIdList])
            {
                //System.debug(caseConfig.Product__r);
                if(isKeyNull(caseConfig)==false)
                    caseConfigIdsWithCaseStage.put(key(caseConfig),caseConfig);
            }
                                                     
        }
        catch(DMLException e)
        {    
            System.debug(e);
        }
    }
    
    private Boolean isKeyNull(Case_Configuration__c caseConfig)
    {
        if(caseConfig.Product__r.Id==null && caseConfig.SR_Type__r.Id==null && caseConfig.SR_Sub_Type__r.Id==null)
        {
            return true;
        }
        return false;
    }
    
    private static String key(Case cs) 
    {
         return cs.Product__c + '|' + cs.SR_Type__c + '|' + cs.SR_Sub_Type__c ;
    }

    private static String key(Case_Configuration__c caseConfig) 
    {
        return caseConfig.Product__r.Id + '|' + caseConfig.SR_Type__r.Id + '|' + caseConfig.SR_Sub_Type__r.Id ;
    }
        --*/
    
    public void updateSteps()
    {
        if(isCurrStepUpdated()==true)
        {
             
             System.debug('current step is updated');                                        
            Map<ID,case_step__c> currentCaseStepList=new  Map<ID,case_step__c>(
                                            [select ID,Next_Step__r.Id,Next_Step__r.Case_Stage__c
                                             from Case_Step__c 
                                             where Id In :caseStepsOfcases.values()]);
                                              System.debug('currentCaseStepList obj created'); 
                                              
                                              
            if(currentCaseStepList!=null && currentCaseStepList.size()>0)    
            {
                for(Case caseToUpdate:caseStepsOfcases.keySet())
                {
                    caseToUpdate.Previous_Status__c =caseToUpdate.Current_Status__c;
                    Case_Step__c currCaseStep=currentCaseStepList.get(caseToUpdate.Current_Step__c);
                    
                    if(currCaseStep!=null)
                    {
                        ID nextStepId=currCaseStep.Next_Step__r.Id;
                
                        if(nextStepId!=null)
                        {
                            caseToUpdate.Current_Stage__c=currCaseStep.Next_Step__r.Case_Stage__c;
                        }
                        else
                        {
                            System.debug('no next found at line 150');
                        }
                        
                        caseToUpdate.Current_Step__c=null;
                    }
                    else
                    {
                        System.debug('currCaseStep found null at 157');
                    }
                }
            }
            else
            {
                System.debug('currentCaseStepList fount null empty at 158');
            }
           
        }
        
    }
    
    private Boolean isCurrStepUpdated()
    {
        Boolean currStepUpdated=false;
        caseStepsOfcases=new Map<Case,ID>();
        for(Integer i=0;i<newCaseListToUpdate.size();i++)
        {   
            Case newCase=newCaseListToUpdate[i];
            if(newCase.Current_Step__c != oldCaseList[i].Current_Step__c) 
            {
                caseStepsOfcases.put(newCase,newCase.Current_Step__c);
                currStepUpdated=true;
            }
        }
        
        return currStepUpdated;
    }
}


Below is my trigger
trigger testCase on Case(before insert,before update)
{
    if(Trigger.isBefore)
    {
        if(Trigger.Isinsert )
        {
            new InsertAction(Trigger.new).setCaseConfigAndCurrStage();
        }//end of if
        
        if(Trigger.isupdate)
        {
            UpdateAction updateAct=new UpdateAction(Trigger.new,Trigger.old);
            
            if(updateAct.isProductSRTypeOrSRSubTypeUpdated()==true)
            {
                System.debug('updating config and curr stage');
                updateAct.setCaseConfigAndCurrStage();
            }
            updateAct.updateSteps();
            System.debug('trigger executed');
            
        
        }
       
    }//End of ISbefore.
}//end of trigg