• Ramana123
  • NEWBIE
  • 60 Points
  • Member since 2020

  • Chatter
    Feed
  • 0
    Best Answers
  • 0
    Likes Received
  • 0
    Likes Given
  • 34
    Questions
  • 27
    Replies
Controller

var dataMap = component.get("v.values");  
      //  console.log(accountId) ;
        var accountList = [];       
        for ( var key in dataMap ) {
            accountList.push({key: key, value:dataMap[key]});
        }
        console.log(accountList) ;        
        var action = component.get("c.updateSortOrder");
        // console.log(accountList) ;
        action.setParams({
            "updateTasksMap":accountList
        });  



AuraEnabled
    Public static void updateSortOrder(Map<string, List<Task__c>> updateTasksMap){ 
        System.debug(updateTasksMap.keyset()) ;
        

I am Passing Values From VF page to Componnet , I want to dsiplay toaster message But it is showing the above Error :

VF Page : 

<apex:page standardController="Account" extensions="ListViewButtonController" recordSetVar="accs" >
    <apex:includeLightning /> 
    <script type="text/javascript">      
    var jsAccounts= new Array();
    <apex:repeat value="{!idsList}" var="accId">
        jsAccounts.push('{!accId}');
    </apex:repeat>   
    $Lightning.use("c:SampleApp", function() {
        $Lightning.createComponent("c:MyListComponent", 
                                   { "accountId" :jsAccounts},                                       
                                  );
                                   });   
        
        </script>
</apex:page>

Component :  

<aura:component implements="flexipage:availableForAllPageTypes,force:appHostable" access="global" controller="LighteningComponentControllerList">
    <aura:attribute name="listofAccounts" type="set" />
    <aura:attribute name="accountId" type="List" />
    <aura:handler name="init" value="{!this}" action="{!c.doInit}"/>
</aura:component>


Controller :
({
    doInit : function(component, event, helper) {
        var accountId = component.get("v.accountId");        
        var ids=new Array();
        for (var i= 0 ; i < accountId.length ; i++){
            ids.push(accountId[i]);
        }        
        var idListJSON=JSON.stringify(ids);        
        var action = component.get("c.updateStatus");
        action.setParams({
            "idsListValues":idListJSON
        });   
        action.setCallback(this, function(actionResult) {
            var state = actionResult.getState();            
            if(state === "SUCCESS") {               
                var toastEvent = $A.get("e.force:showToast");
                toastEvent.setParams({
                    "title": "Succés",
                    "message": "helloo",
                    "type": "success"
                });
                toastEvent.fire(); 
            }                       
        });
        $A.enqueueAction(action);       
    }
})

 

How to pass RecordIds to listofAccounts in Component From Vf Page

VF PAGE : 
<apex:page standardController="Account" extensions="ListViewButtonController" recordSetVar="accs" >
</apex:page>

Controller : 
global class ListViewButtonController {
    List<SObject> selectedSobjects;
    Set<Id> recordIds;
    public String accIds;    
    global String evRespone { get; set; }    
    global ListViewButtonController(ApexPages.StandardController controller) {}    
    global ListViewButtonController(ApexPages.StandardSetController controller) {
        evRespone = '';
        selectedSobjects = controller.getSelected();
        recordIds = new Set<Id>();
        for(SObject singleRec : selectedSobjects) {
            recordIds.add(singleRec.Id);
        }
        System.debug(recordIds) ;
    }   
}

Component : 
<aura:component implements="lightning:isUrlAddressable">
    <aura:attribute name="listofAccounts" type="set" />
    
</aura:component>
 
In Debug logs the count is incrementing but in the record the count is not incrementing 

public class DuplicateLeadExceptionHelper {
    public static void leadException(List<Lead> leadList){
        integer count=0;
        List<Lead> updateRecords = new List<Lead>();
        Map<String,Lead> existingRecords = new Map<String,Lead>();
        for (Lead rec : [select LastName,Email,DuplicateRecordsExceptionCount__c 
                         from Lead]) {
                             existingRecords.put(rec.LastName,rec);
                         }
        System.debug('//'+existingRecords.keyset());
        for(Lead leadRec : leadList){
            if(Trigger.isbefore && Trigger.isInsert){
                if(existingRecords.containskey(leadRec.LastName)){
                    leadRec.addError('Error! Duplicate Email Field, already this LastName exists in Name');
                    Lead countrec= existingRecords.get(leadRec.LastName);
                    if(countrec.DuplicateRecordsExceptionCount__c==null)
                        countrec.DuplicateRecordsExceptionCount__c=1;
                    else
                        countrec.DuplicateRecordsExceptionCount__c=countrec.DuplicateRecordsExceptionCount__c+1;
                    updateRecords.add(countrec); 
                }
            }
        }
        system.debug('///'+updateRecords);
        update updateRecords;
    }
}

The Highlighted lines Getting array index out of bound exception
and hoe to update map last line 


public class CampaignAccountHelper {
    public void updateAndInsertOpportunity(List<CampaignAccount__c> campaignList)
    {
        List<CampaignAccount__c> records = new List<CampaignAccount__c>();    
        Map<Id,List<Opportunity>> mapList = new Map<Id,List<Opportunity>>();
        List<Opportunity> newOpp = new List<Opportunity>();
        For(Account acc :[SELECT id,(SELECT id,Name,CampaignCount__c FROM Opportunities)FROM Account]){
            mapList.put(acc.Id,acc.Opportunities);
        }        
        System.debug('aaaaaaaaaaaaaa'+mapList);
        for(CampaignAccount__c camp :campaignList){
            if(camp.Account__c != NULL){
                records.add(camp); 
            }
        }     
        Integer i = 0;
        System.debug('bbbbbbbbbbbb'+records); 
        if(mapList.size() > 0)
        {
        for(CampaignAccount__c acc : records){  
         
            if(mapList.containskey(acc.Account__c) && acc.Name == mapList.get(acc.Account__c)[i].Name)
            {
              mapList.get(acc.Account__c)[i].CampaignCount__c = mapList.get(acc.Account__c)[i].CampaignCount__c + 1 ; 
            }
           i = i+1; 
        }
        }
       update mapList.values();
    }
}

 
global class Updating_MembershipSalesLines1 implements Schedulable {
    global void execute(SchedulableContext ctx) {
    
     Map<String,List<membership_sales_lines__c>> lineRelatedRecords = new Map<String,List<membership_sales_lines__c>>();       
     List<membership_sales_lines__c> memberShipRecords = [Select Id,Name,Payment_status__c,Ledger_entry_no__c from membership_sales_lines__c where Payment_status__c !='Paid'];
     for(membership_sales_lines__c sales : memberShipRecords) {
            String salesOrder = sales.Name;
            List<membership_sales_lines__c> accOppList = lineRelatedRecords.get(salesOrder);
            
            if(accOppList == null) {
                lineRelatedRecords.put(salesOrder,new List<membership_sales_lines__c>{sales});
            } else {
                lineRelatedRecords.get(salesOrder).add(sales);
            }
        }        
            List<membership_sales_lines__c> paidStatusRecords = new List<membership_sales_lines__c>();
            paidStatusRecords = [select Id,Name,Payment_status__c,Ledger_entry_no__c from membership_sales_lines__c where Payment_status__c = 'Paid'];
            
            for(membership_sales_lines__c  obj : paidStatusRecords)
            {
                if(lineRelatedRecords.containsKey(obj.Name))
              {
                       obj.Payment_status__c = lineRelatedRecords.get(obj.Name).Payment_status__c ;
              }
            }  
 
I have four fields account,contact,phone and email on visualforce page. when I search the account name which exists in the data base then  those email , phone and contact should update to that account. If not found then create a new account with the following fields.

apex Class


public class CreatingandupdatingaccountcontactRecords {
    public string accountName {get;set;}
    public string contactName {get;set;}
    public string emailId     {get;set;} 
    public string phoneNumber {get;set;}   
    List<Account> accountList   = new List<Account>(); 
    List<Account> upsertAccount = new List<Account>();
    List<Contact> contactList   = new List<Contact>();
    List<Contact> upsertContact = new List<Contact>();
    public void checkAccountsandcontacts() {
        accountList = [select Name from Account where Name =:accountName];
        if(accountList.size() > 0) {
            for(Account  a : accountList ) {
                if(a.Name == accountName) {
                    a.Emai_id__c =emailId;
                    a.Phone = phoneNumber; 
                    upsertAccount.add(a);
                }
            }  
        }  
        if(accountList.size() < 0){ 
            Account newAccount = new Account();
            newAccount.Name = accountName;
            newAccount.Emai_id__c = emailId;
            newAccount.Phone = phoneNumber;
            upsertAccount.add(newAccount);
        } 
        upsert upsertAccount;
        contactList =[select LastName from contact where LastName =:contactName];
        if(contactList.size() > 0) {
            for(contact con : contactList) {
                if(con.LastName == contactName ) { 
                    con.Email = EmailId;  
                    con.Phone = phoneNumber;
                    for(Account a1 : accountList) {
                    con.AccountId = a1.Id;
                    }
                    upsertContact.add(con); 
                } 
            }
        }
        else{
            contact newcontact = new contact();
            newcontact.lastName = contactName;
            newcontact.phone = phonenumber;
            newcontact.Email = EmailId;
            for(Account acc:upsertAccount) {
                newcontact.AccountId = acc.Id;
            }
            upsertContact.add(newcontact);   
        }
        upsert upsertContact;  

        if(accountList.size() > 0){
        ApexPages.addmessage(new ApexPages.message(ApexPages.severity.info, 'Your record is updated successfully')); 
        }
        if(accountList.size() < 0){
          ApexPages.addmessage(new ApexPages.message(ApexPages.severity.info, 'Your record is created successfully'));  
        }
    }  
}

TestClass : 


@istest
public class contactAccountcreationpage_TC {
    public static testmethod void duplicateEmailerrormessage() {
        String accountName = 'testing account';
        Account acc = new Account();
        acc.Name = 'testing account';
        acc.Emai_id__c = 'dinesh@gmail.com';
        acc.Phone = '842631791';
        insert acc;
        
        Account acc1 = new Account();
        acc1.Name = 'testing account';
        acc1.Emai_id__c = 'dinesh@gmail.com';
        acc1.Phone = '842631791';
        insert acc1;
        
        Contact con = new contact();
        con.LastName = 'vini';
        con.AccountId = acc.Id;
        insert con;
        
        CreatingandupdatingaccountcontactRecords obj = new CreatingandupdatingaccountcontactRecords();
        obj.checkAccountsandcontacts();        
    }
}

 
How to make it work Rerender

Class


public class AccountRelatedContactsWithCheckBox {
   public List<AccountRelatedContactWrapper> consList {get;set;}
   public List<Contact> selectedConList {get;set;}
    public AccountRelatedContactsWithCheckBox(ApexPages.StandardController stdController)
    {
        if(consList == null) {
            consList = new list<AccountRelatedContactWrapper>();
            selectedConList = new list<Contact>();
            for(contact a:[select id,LastName,AccountId from contact where AccountId = : ApexPages.currentPage().getParameters().get('id')]) 
            {
                consList.add(new AccountRelatedContactWrapper(a));
            }            
        }
        System.debug('aaaaaaaaaa'+consList);
    }          
    public void deleteSelectedRecords()
    {               
         for(AccountRelatedContactWrapper wrapobj:consList){
            if(wrapobj.selected==true) {   
            selectedConList.add(wrapobj.con);              
            } 
        }         
        delete selectedConList;
        if(selectedConList.size() > 0) {
        ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Info,'Record Deleted successfully'));
          }
    }        
    public void updateSelectedRecords()
    {       
       for(AccountRelatedContactWrapper wrapobj:consList){
            if(wrapobj.selected==true) {   
            selectedConList.add(wrapobj.con);              
            } 
        } 
        upsert selectedConList;
        if(selectedConList.size() > 0)
        {
        ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Info,'Record updated successfully'));
        }
    }    
    public void creatingNewRecord()
    {    
    // Creates a new wrapper that will display a new entry on the page.
    AccountRelatedContactWrapper wrapper = new AccountRelatedContactWrapper(new contact());
    // Creates a record in memory for user input.
    wrapper.con = new Contact(
    AccountId = ApexPages.currentPage().getParameters().get('id')
    );
    // Adds the wrapper to the list of wrappers
    consList.add(wrapper);
}       
    public class AccountRelatedContactWrapper
    {
       public Contact con {get;set;}
       public Boolean selected {get;set;}        
       public AccountRelatedContactWrapper(Contact con1)
        {
            con = con1;  
            selected = false;
        }
    }
}


page

<apex:page standardController="Account" extensions="AccountRelatedContactsWithCheckBox" id="page1">
    <apex:form title="Titles">
        <apex:pageblock title="Account Related Contacts">          
              <apex:pageMessages id="message"></apex:pageMessages>
                <apex:pageBlockTable value="{!consList}" var="conWrap" title="All Contacts" summary="Account Related Contacts">
                   <apex:column >                        
                       <apex:inputCheckbox value="{!conWrap.selected}"/>
                   </apex:column>
                   <apex:column headerValue="First Name">
                       <apex:inputField value="{!conWrap.con.LastName}"/>
                   </apex:column>
             </apex:pageBlockTable>      
       </apex:pageblock>    
       <apex:commandButton value="Delete Selected Records" action="{!deleteSelectedRecords}" reRender="page1" title="select the checkbox and click the button"/>
       <apex:commandButton value="Create Records" action="{!creatingNewRecord}" title="select the checkbox and click the button"/> 
       <apex:commandButton value="Save selected Records" action="{!updateSelectedRecords}" title="select the checkbox and click the button"/>
   </apex:form>
</apex:page>





 
I have given all required field values but still throwing that error


@isTest
private class UpdatingAccountRelatedContactsCount_Test {    
 static Testmethod void accountRelatedContacts()
    {
    List<Contact> conList =  new List<Contact>();
    Account Acc = New Account();
    Acc.Name = 'Sai';
    insert Acc;    
           
    Contact con = new Contact();
    con.LastName = 'Test1';
    con.AccountId = Acc.Id;
    con.Sum__c = 100;
    conList.add(con);       
        
    Contact con1 = new Contact();
    con.LastName = 'Test2';
    con1.AccountId = Acc.Id;
    con1.Sum__c = 200;
    conList.add(con1);            
    insert conList;
        
    System.debug('aaaaaaaaaaaaaaa'+conList);
   // delete con1;    
    Test.StartTest();           
    TriggerHelperClass obj = new TriggerHelperClass();
    update conList;
    Test.StopTest();
    }
}
 
 Highlighed part is not covering in the test class--- Helper class 

public  class  TriggerHelperClass {
   public Set <Id> accountIds = new Set <Id>();
   public List <Account> lstAccountsToUpdate = new List<Account>();
    // for insertion and deletion
   public void insertAndUndelete(List<Contact> newAcc)
       {
         for(Contact con:newAcc)
              {
                 accountIds.add(con.accountID);
             }
        this.updatingContactsCount();
    }   
    // for delete operation
   public void deleteOperation(List<Contact> newAcc)
      {
           for(Contact con:newAcc)
                {
                   accountIds.add(con.accountID);
             } 
         this.updatingContactsCount();
      }              

    public void updateOperation(List<Contact> newAcc,Map<Id,Contact>oldMap)
       {
           for(Contact con : newAcc)
               {
                      if(con.AccountId != null)
                           {
                              if(oldMap.get(con.Id).AccountId != con.AccountId)
                                  {
                                    accountIds.add(con.AccountId);     
                               }
                          } 
                     accountIds.add(oldMap.get(con.Id).AccountId);    
               }     
           this.updatingContactsCount();
       }          

    Public void updatingContactsCount()
        {
           for(Account acc:[SELECT Id,Name,Count_Contacts__c,Total_Sum__c,(Select Id,Sum__c from Contacts) from Account where Id IN: accountIds])
                   {
                       acc.Count_Contacts__c = acc.Contacts.size();
                     acc.Total_Sum__c = 0;  
                     for(Contact con : acc.Contacts)
                         {
                            if(con.Sum__c != NULL)
                               {
                                   acc.Total_Sum__c = acc.Total_Sum__c + con.Sum__c;  
                             }   
                       }
                     lstAccountsToUpdate.add(acc);
                      }   
         UPDATE lstAccountsToUpdate;    
      }
}




test class


@isTest
private class UpdatingAccountRelatedContactsCount_Test {
   
 static Testmethod void accountRelatedContacts()
    {
    List<Contact> conList =  new List<Contact>();
    Account Acc = New Account();
    Acc.Name = 'srikanth';
    insert Acc;    
           
    Contact con = new Contact();
    con.LastName = 'Test';
    con.AccountId = Acc.Id;
    con.Sum__c = 100;
    conList.add(con);       
        
    Contact con1 = new Contact();
    con.LastName = 'Test1';
    con1.AccountId = Acc.Id;
    con1.Sum__c = 100;
    conList.add(con1);       
     
    insert conList;
    delete con1;      
    Test.StartTest();
    TriggerHelperClass obj = new TriggerHelperClass(); 
    
    update conList ;
    undelete con1;
    Test.StopTest();
   
    }
}
 
How to cover that email sending in salesforce ...?



apex class 

public class NewWrapperClass {
    public List<wrapperTask> wrapperTaskList {get;set;}
   // public List<Challenge__c> existingRecords {get;set;}
    public List<challenge__c> selectedRecords {get;set;}
    public List<challenge__c> selectedRecords1 {get;set;}

    public NewWrapperClass()    
    {
         wrapperTaskList = new List<wrapperTask>();
     //   existingRecords = [SELECT Phone__c, Name,OwnerId FROM Challenge__c WHERE Account__c = NULL];
        
        for(Challenge__c c : [SELECT Name,Phone__c,OwnerId,Account__c FROM Challenge__c WHERE Account__c = NULL]) 
          {
             wrapperTaskList.add(new wrapperTask(c));
          }
   }
    public void processedRecords() 
        {
            selectedRecords = new List<challenge__c>();
            selectedRecords1 = new List<challenge__c>();
            for (wrapperTask obj : wrapperTaskList)
                {
                    if(obj.selected == true) 
                        {
                         obj.chg.Account__c = ApexPages.currentPage().getParameters().get('id');
                         selectedRecords.add(obj.chg);

                         }
                   // selectedRecords.add(obj.chg);
                }            
    update selectedRecords;         
 //existingRecords = [SELECT Phone__c, Name,OwnerId FROM Challenge__c WHERE Account__c =: ApexPages.currentPage().getParameters().get('id')];

}
public void sendEmail()
    
   {
        String subject='Test Subject';
        String body='Test Body';
       List<Messaging.SingleEmailMessage> listmails = new List<Messaging.SingleEmailMessage>();
        for(Account acc :[SELECT Owner.Email FROM Account WHERE Id=:ApexPages.currentPage().getParameters().get('id')])
            
        {
            Messaging.SingleEmailMessage email = new Messaging.SingleEmailMessage();
            List<String> sendTo = new List<String>();
            sendTo.add(acc.Owner.Email );
            email.setToAddresses(sendTo);
            email.setSubject(subject);
            email.setPlainTextBody(body);
            listMails.add(email);
        }
            Messaging.sendEmail(listMails);
        
         ApexPages.addmessage(new ApexPages.message(ApexPages.severity.CONFIRM,'Mail has been sent Successfully'));  
    }
public class wrapperTask 
{
    public challenge__c chg {get;set;}
    public Boolean selected {get;set;}
    public wrapperTask(challenge__c c) 
    {
    chg = c;
    selected=false;
    }
}

}


test class 
@isTest
Private Class NewWrapperClass_Test
{
      static Testmethod void WrapperExampleUnitTest()
    {
         challenge__c Acc= new challenge__c();
        Acc.name='TestAccount';
        Acc.Account__c =NULL;
        insert Acc;

        challenge__c Acc1= new challenge__c();
            Acc1.name='TestAccount1';
           insert Acc1;        
        Test.StartTest();
            NewWrapperClass obj = new NewWrapperClass();
            
            for(NewWrapperClass.wrapperTask wrp : obj.wrapperTaskList )
            {
                wrp.selected = true;
            }
            obj.processedRecords();
          obj.sendEmail();
      Test.StopTest();

    }
}


Thanks in advance

 
what the wrong this code it is showing the above error please help in this 


global class LeadDays7 implements Database.Batchable<SObject>{
    List<Lead> listRecords = new List<Lead>();
    
    global Database.QueryLocator start(Database.BatchableContext BC)
    {
        String query = 'Select Id,Name,Email,CheckBox__c,Leadage__c From Lead Where Leadage__c > 7 LIMIT 10 ';
        return Database.getQueryLocator(query);
    }
     
     global void execute(Database.BatchableContext BC, List<Lead> scope){
           System.debug('aaaaaaaaaaaaaaaaaaaa'+scope);
        
                     for(Lead leads : scope)
                    {
               if(leads.Email != NULL)
               {
                   leads.CheckBox__c = TRUE;
               }
            listRecords.add(leads);          
        }
         update listRecords;
     

        List<String> emailList = new List<String>();
        System.debug('aaaaaaaaaaaaaaaaaaaa'+scope);
        for(Lead ld: scope) {
            if(ld.Email != NULL) {
                emailList.add(ld.Email);
            }
        }
        System.debug('bbbbbbbbbbbbbbbbbbbbb'+emailList);
         Messaging.SingleEmailMessage email = new Messaging.SingleEmailMessage();
            email.setToAddresses(emailList);
            email.setSaveAsActivity(false);
            email.setSubject('Age is 7 days');
            email.setPlainTextBody('Batch Update for Opportunity Close Date has been completed');
            Messaging.sendEmail(new Messaging.SingleEmailMessage[] {email});
            
     }    
    global void finish(Database.BatchableContext BC){
 
}
}
controller

public class searchClass
{
    public List<Contact> contacts { get; set; }
    public String name { get; set; }
    
    public searchClass()
{
contacts = new List<Contact>();
}
    public pageReference searchcontacts()
    {
        contacts = [select Id
                    ,Name 
                    from Contact
                    where Name = :name];
        
        if(contacts.size() == 0) {    
               ApexPages.Message myMsg = new ApexPages.Message(ApexPages.Severity.ERROR,'Error: Invalid Input.');
                ApexPages.addMessage(myMsg);
            //ApexPages.addMessage(new ApexPages.message(ApexPages.Severity.ERROR,'No Records Found'));
                  }
        if(contacts.size() == 1) 
        {
            for(Contact con :contacts ){
// In this This section my problem not redirecting

                PageReference pageRef = new PageReference('con.Id');       
            
     
        return pageRef;
            }
        }
        return null;

        }       
        
}


page 



<apex:page controller="searchClass">
    <apex:form >
        <apex:pageMessages />
        <apex:pageBlock >
            <apex:pageBlockSection id="contact-table" columns="1">
                <apex:pageBlockSectionItem >
                    <apex:outputLabel value="Name"/>
                    <apex:inputText value="{!name}" />
                </apex:pageBlockSectionItem>          
                <apex:commandButton value="Search" action="{!searchcontacts}" reRender="contact-table" >
                </apex:commandButton>
                <apex:pageBlockTable value="{!contacts}" var="c" >
                    <apex:column >
                        <apex:outputlink value="/{!c.Id}"> {!c.Name}</apex:outputlink>
                    </apex:column>                 
                </apex:pageBlockTable>
                
            </apex:pageBlockSection>
        </apex:pageBlock>
    </apex:form>
</apex:page>




 
In the Second If-condition i am confued how to write the code can anyone help me in this how to write the code .

I am getting Account servicing records which are linked to account



public class Account_Related_Account_Servicing {
    List<Account_Servicing__c> Accountservicing_records = new List<Account_Servicing__c>();   
    Map<Id,Map<Id,List<Account_Servicing__c>>> Account_RelatedRecords = new Map<Id,Map<Id,List<Account_Servicing__c>>>();
    Map<Id,List<Account_Servicing__c>> listrecords = new Map<Id,List<Account_Servicing__c>>();
    Public void Account_Linked_Account_Servicing_Records()
        {
              Accountservicing_records = [select Id,Account__r.Id,Name from Account_Servicing__c where Account__c != Null ]; 
            for(Account_Servicing__c abc:Accountservicing_records)
                 {
                     if(listrecords.containsKey(abc.Id) )
                         {
                                 listrecords.get(abc.Id).add(abc);
                         }
                     else
                         {
                                listrecords.put(abc.Id,new List<Account_Servicing__c>{abc}) ;
                        }
                     
                     
         //   In this how to write the code        
                    if(Account_RelatedRecords.containsKey(Account__r.Id) )
                         {
                                 Account_RelatedRecords.get(Account__r.Id).add(abc);
                         }
                    else
                         {
                                Account_RelatedRecords.put(Account__r.Id,Map<Id,List<Account_Servicing__c>>) ;
                        }                     
                    
                     

                           }
            System.debug(Account_RelatedRecords);
            
           
          }    
}
when open the visualforce page using the second user ,then throw an error message (stored second user id in custom label) , but it is not coming 
 
apex class :

public class Differentiating_Vfpages_Based_on_User
{
    List<ApexPage> vfPageId {get;set;}
    public String Userid {get;set;}
    public  Differentiating_Vfpages_Based_on_User()
    {
             Userid = UserInfo.getUserId();        
             if(Userid == System.Label.UserId )
                 
                   {
                   ApexPages.addmessage(new ApexPages.message(ApexPages.severity.WARNING,'You have no access'));
                   }  
        
        System.debug(System.Label.UserId);
    }   
}


apex page


<apex:page controller ="Differentiating_Vfpages_Based_on_User">
    <apex:form>
    <apex:pageblock>
        
    </apex:pageblock>
    </apex:form>
</apex:page>
My code


<apex:page StandardController="Account" >
<apex:form >
<apex:pageBlock >
<apex:pageBlockSection >
<apex:inputField value="{! account.name }"/>

<apex:inputField value="{! account.label__c}"/>
<apex:inputField value="{! account.Rating}"/>
  <apex:inputField value="{! account.check_box__c}" />
   
 <apex:outputText value="{!$Label.Error_when_checkbox_is_disabled}" rendered="{!if(account.check_box__c = 'TRUE',true,false)}" />

</apex:pageBlockSection>
</apex:pageBlock>

<apex:commandButton value="save" action="{!save}"/>
</apex:form>

</apex:page>


 
global class Account_Add_Opportunities implements Database.Batchable<sObject>{
    
    List<Account> conlist = new List<Account>();
        
    List<Opportunity> updateList = new List<Opportunity>();
    
    
    global Account_Add_Opportunities (){
        // Batch Constructor
    }
    // Start Methode
    global Database.QueryLocator start(Database.BatchableContext BC){
        
        return Database.getQueryLocator([SELECT id,Name,CloseDate,Type from Opportunity WHERE Type = 'New Business' AND StageName = 'New Opportunity' ]); 
        
    }
    // Execute Logic
    global void execute(Database.BatchableContext BC, List<Opportunity>scope){
            conlist  = [SELECT Id,Name,BillingAddress from Account where Name = 'Closed Lost Opportunities'];
 
             System.debug('aaaaaaaaaaaaa'+conlist);    
        for(Opportunity opp :scope )
        {   
            opp.StageName = 'Closed Lost' ;
               for (Account acct :conlist)
               { 
                            opp.AccountID = acct.Id;


            
            }
            
            updateList.add(opp);
            
        }
        
                update updateList ;
 

        }
    
    global void finish(Database.BatchableContext BC){
        // Logic to  be Executed at finish
    }
}
i wrote below code can anyone help me in this plzz., it is  ot working


global class Live_Date_Batch_Class implements Database.Batchable<sObject>{
            
            public List<Contact> conList {get;set;}
    
    global Live_Date_Batch_Class()
        {
           
        }
        global Database.QueryLocator start(Database.BatchableContext BC)
        {
            string query = 'select id,LastName from Contact WHERE Live_Date__c = TODAY';
            System.debug('aaaaaaaaaaaaaaaaaaaaaaaa'+query) ; 
            return Database.getQueryLocator(query);
        }
       global void execute(Database.BatchableContext BC, List<Contact>scope)
       {
            Set<Id> convertedIdSet = new Set<Id>();
            List<messaging.SingleEmailMessage>  emails = new List<messaging.SingleEmailMessage>();
            for(Contact contact : scope) 
       {
            convertedIdSet.add(contact.Id);
       }    
       
                   for(Contact contact : scope) 
       {
            conList = ([SELECT FirstName, LastName, Email, Phone, Account.Id
                        FROM Contact 
                        WHERE Id IN :convertedIdSet] );
  
       }    

           String userName = UserInfo.getUserName();

            User activeUser = [Select Email From User where Username = : userName limit 1];

            String userEmail = activeUser.Email;
           
           
       System.debug('bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb'+convertedIdSet) ; 
       Messaging.SingleEmailMessage email = new Messaging.SingleEmailMessage();
       email.setToAddresses(new String[] {userEmail});
       email.setSubject('+convertedIdSet+'); 
       email.setPlainTextBody('details');
       emails.add(email);
       String body = 'Contact Details : ' +conList+ ' ';
       Messaging.sendEmail(emails);    
       }
            
       global void finish(Database.BatchableContext BC){
       }
    }
Controller

var dataMap = component.get("v.values");  
      //  console.log(accountId) ;
        var accountList = [];       
        for ( var key in dataMap ) {
            accountList.push({key: key, value:dataMap[key]});
        }
        console.log(accountList) ;        
        var action = component.get("c.updateSortOrder");
        // console.log(accountList) ;
        action.setParams({
            "updateTasksMap":accountList
        });  



AuraEnabled
    Public static void updateSortOrder(Map<string, List<Task__c>> updateTasksMap){ 
        System.debug(updateTasksMap.keyset()) ;
        

I am Passing Values From VF page to Componnet , I want to dsiplay toaster message But it is showing the above Error :

VF Page : 

<apex:page standardController="Account" extensions="ListViewButtonController" recordSetVar="accs" >
    <apex:includeLightning /> 
    <script type="text/javascript">      
    var jsAccounts= new Array();
    <apex:repeat value="{!idsList}" var="accId">
        jsAccounts.push('{!accId}');
    </apex:repeat>   
    $Lightning.use("c:SampleApp", function() {
        $Lightning.createComponent("c:MyListComponent", 
                                   { "accountId" :jsAccounts},                                       
                                  );
                                   });   
        
        </script>
</apex:page>

Component :  

<aura:component implements="flexipage:availableForAllPageTypes,force:appHostable" access="global" controller="LighteningComponentControllerList">
    <aura:attribute name="listofAccounts" type="set" />
    <aura:attribute name="accountId" type="List" />
    <aura:handler name="init" value="{!this}" action="{!c.doInit}"/>
</aura:component>


Controller :
({
    doInit : function(component, event, helper) {
        var accountId = component.get("v.accountId");        
        var ids=new Array();
        for (var i= 0 ; i < accountId.length ; i++){
            ids.push(accountId[i]);
        }        
        var idListJSON=JSON.stringify(ids);        
        var action = component.get("c.updateStatus");
        action.setParams({
            "idsListValues":idListJSON
        });   
        action.setCallback(this, function(actionResult) {
            var state = actionResult.getState();            
            if(state === "SUCCESS") {               
                var toastEvent = $A.get("e.force:showToast");
                toastEvent.setParams({
                    "title": "Succés",
                    "message": "helloo",
                    "type": "success"
                });
                toastEvent.fire(); 
            }                       
        });
        $A.enqueueAction(action);       
    }
})

 

global class Updating_MembershipSalesLines1 implements Schedulable {
    global void execute(SchedulableContext ctx) {
    
     Map<String,List<membership_sales_lines__c>> lineRelatedRecords = new Map<String,List<membership_sales_lines__c>>();       
     List<membership_sales_lines__c> memberShipRecords = [Select Id,Name,Payment_status__c,Ledger_entry_no__c from membership_sales_lines__c where Payment_status__c !='Paid'];
     for(membership_sales_lines__c sales : memberShipRecords) {
            String salesOrder = sales.Name;
            List<membership_sales_lines__c> accOppList = lineRelatedRecords.get(salesOrder);
            
            if(accOppList == null) {
                lineRelatedRecords.put(salesOrder,new List<membership_sales_lines__c>{sales});
            } else {
                lineRelatedRecords.get(salesOrder).add(sales);
            }
        }        
            List<membership_sales_lines__c> paidStatusRecords = new List<membership_sales_lines__c>();
            paidStatusRecords = [select Id,Name,Payment_status__c,Ledger_entry_no__c from membership_sales_lines__c where Payment_status__c = 'Paid'];
            
            for(membership_sales_lines__c  obj : paidStatusRecords)
            {
                if(lineRelatedRecords.containsKey(obj.Name))
              {
                       obj.Payment_status__c = lineRelatedRecords.get(obj.Name).Payment_status__c ;
              }
            }  
 
I have four fields account,contact,phone and email on visualforce page. when I search the account name which exists in the data base then  those email , phone and contact should update to that account. If not found then create a new account with the following fields.

apex Class


public class CreatingandupdatingaccountcontactRecords {
    public string accountName {get;set;}
    public string contactName {get;set;}
    public string emailId     {get;set;} 
    public string phoneNumber {get;set;}   
    List<Account> accountList   = new List<Account>(); 
    List<Account> upsertAccount = new List<Account>();
    List<Contact> contactList   = new List<Contact>();
    List<Contact> upsertContact = new List<Contact>();
    public void checkAccountsandcontacts() {
        accountList = [select Name from Account where Name =:accountName];
        if(accountList.size() > 0) {
            for(Account  a : accountList ) {
                if(a.Name == accountName) {
                    a.Emai_id__c =emailId;
                    a.Phone = phoneNumber; 
                    upsertAccount.add(a);
                }
            }  
        }  
        if(accountList.size() < 0){ 
            Account newAccount = new Account();
            newAccount.Name = accountName;
            newAccount.Emai_id__c = emailId;
            newAccount.Phone = phoneNumber;
            upsertAccount.add(newAccount);
        } 
        upsert upsertAccount;
        contactList =[select LastName from contact where LastName =:contactName];
        if(contactList.size() > 0) {
            for(contact con : contactList) {
                if(con.LastName == contactName ) { 
                    con.Email = EmailId;  
                    con.Phone = phoneNumber;
                    for(Account a1 : accountList) {
                    con.AccountId = a1.Id;
                    }
                    upsertContact.add(con); 
                } 
            }
        }
        else{
            contact newcontact = new contact();
            newcontact.lastName = contactName;
            newcontact.phone = phonenumber;
            newcontact.Email = EmailId;
            for(Account acc:upsertAccount) {
                newcontact.AccountId = acc.Id;
            }
            upsertContact.add(newcontact);   
        }
        upsert upsertContact;  

        if(accountList.size() > 0){
        ApexPages.addmessage(new ApexPages.message(ApexPages.severity.info, 'Your record is updated successfully')); 
        }
        if(accountList.size() < 0){
          ApexPages.addmessage(new ApexPages.message(ApexPages.severity.info, 'Your record is created successfully'));  
        }
    }  
}

TestClass : 


@istest
public class contactAccountcreationpage_TC {
    public static testmethod void duplicateEmailerrormessage() {
        String accountName = 'testing account';
        Account acc = new Account();
        acc.Name = 'testing account';
        acc.Emai_id__c = 'dinesh@gmail.com';
        acc.Phone = '842631791';
        insert acc;
        
        Account acc1 = new Account();
        acc1.Name = 'testing account';
        acc1.Emai_id__c = 'dinesh@gmail.com';
        acc1.Phone = '842631791';
        insert acc1;
        
        Contact con = new contact();
        con.LastName = 'vini';
        con.AccountId = acc.Id;
        insert con;
        
        CreatingandupdatingaccountcontactRecords obj = new CreatingandupdatingaccountcontactRecords();
        obj.checkAccountsandcontacts();        
    }
}

 
How to make it work Rerender

Class


public class AccountRelatedContactsWithCheckBox {
   public List<AccountRelatedContactWrapper> consList {get;set;}
   public List<Contact> selectedConList {get;set;}
    public AccountRelatedContactsWithCheckBox(ApexPages.StandardController stdController)
    {
        if(consList == null) {
            consList = new list<AccountRelatedContactWrapper>();
            selectedConList = new list<Contact>();
            for(contact a:[select id,LastName,AccountId from contact where AccountId = : ApexPages.currentPage().getParameters().get('id')]) 
            {
                consList.add(new AccountRelatedContactWrapper(a));
            }            
        }
        System.debug('aaaaaaaaaa'+consList);
    }          
    public void deleteSelectedRecords()
    {               
         for(AccountRelatedContactWrapper wrapobj:consList){
            if(wrapobj.selected==true) {   
            selectedConList.add(wrapobj.con);              
            } 
        }         
        delete selectedConList;
        if(selectedConList.size() > 0) {
        ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Info,'Record Deleted successfully'));
          }
    }        
    public void updateSelectedRecords()
    {       
       for(AccountRelatedContactWrapper wrapobj:consList){
            if(wrapobj.selected==true) {   
            selectedConList.add(wrapobj.con);              
            } 
        } 
        upsert selectedConList;
        if(selectedConList.size() > 0)
        {
        ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Info,'Record updated successfully'));
        }
    }    
    public void creatingNewRecord()
    {    
    // Creates a new wrapper that will display a new entry on the page.
    AccountRelatedContactWrapper wrapper = new AccountRelatedContactWrapper(new contact());
    // Creates a record in memory for user input.
    wrapper.con = new Contact(
    AccountId = ApexPages.currentPage().getParameters().get('id')
    );
    // Adds the wrapper to the list of wrappers
    consList.add(wrapper);
}       
    public class AccountRelatedContactWrapper
    {
       public Contact con {get;set;}
       public Boolean selected {get;set;}        
       public AccountRelatedContactWrapper(Contact con1)
        {
            con = con1;  
            selected = false;
        }
    }
}


page

<apex:page standardController="Account" extensions="AccountRelatedContactsWithCheckBox" id="page1">
    <apex:form title="Titles">
        <apex:pageblock title="Account Related Contacts">          
              <apex:pageMessages id="message"></apex:pageMessages>
                <apex:pageBlockTable value="{!consList}" var="conWrap" title="All Contacts" summary="Account Related Contacts">
                   <apex:column >                        
                       <apex:inputCheckbox value="{!conWrap.selected}"/>
                   </apex:column>
                   <apex:column headerValue="First Name">
                       <apex:inputField value="{!conWrap.con.LastName}"/>
                   </apex:column>
             </apex:pageBlockTable>      
       </apex:pageblock>    
       <apex:commandButton value="Delete Selected Records" action="{!deleteSelectedRecords}" reRender="page1" title="select the checkbox and click the button"/>
       <apex:commandButton value="Create Records" action="{!creatingNewRecord}" title="select the checkbox and click the button"/> 
       <apex:commandButton value="Save selected Records" action="{!updateSelectedRecords}" title="select the checkbox and click the button"/>
   </apex:form>
</apex:page>





 
I have given all required field values but still throwing that error


@isTest
private class UpdatingAccountRelatedContactsCount_Test {    
 static Testmethod void accountRelatedContacts()
    {
    List<Contact> conList =  new List<Contact>();
    Account Acc = New Account();
    Acc.Name = 'Sai';
    insert Acc;    
           
    Contact con = new Contact();
    con.LastName = 'Test1';
    con.AccountId = Acc.Id;
    con.Sum__c = 100;
    conList.add(con);       
        
    Contact con1 = new Contact();
    con.LastName = 'Test2';
    con1.AccountId = Acc.Id;
    con1.Sum__c = 200;
    conList.add(con1);            
    insert conList;
        
    System.debug('aaaaaaaaaaaaaaa'+conList);
   // delete con1;    
    Test.StartTest();           
    TriggerHelperClass obj = new TriggerHelperClass();
    update conList;
    Test.StopTest();
    }
}
 
 Highlighed part is not covering in the test class--- Helper class 

public  class  TriggerHelperClass {
   public Set <Id> accountIds = new Set <Id>();
   public List <Account> lstAccountsToUpdate = new List<Account>();
    // for insertion and deletion
   public void insertAndUndelete(List<Contact> newAcc)
       {
         for(Contact con:newAcc)
              {
                 accountIds.add(con.accountID);
             }
        this.updatingContactsCount();
    }   
    // for delete operation
   public void deleteOperation(List<Contact> newAcc)
      {
           for(Contact con:newAcc)
                {
                   accountIds.add(con.accountID);
             } 
         this.updatingContactsCount();
      }              

    public void updateOperation(List<Contact> newAcc,Map<Id,Contact>oldMap)
       {
           for(Contact con : newAcc)
               {
                      if(con.AccountId != null)
                           {
                              if(oldMap.get(con.Id).AccountId != con.AccountId)
                                  {
                                    accountIds.add(con.AccountId);     
                               }
                          } 
                     accountIds.add(oldMap.get(con.Id).AccountId);    
               }     
           this.updatingContactsCount();
       }          

    Public void updatingContactsCount()
        {
           for(Account acc:[SELECT Id,Name,Count_Contacts__c,Total_Sum__c,(Select Id,Sum__c from Contacts) from Account where Id IN: accountIds])
                   {
                       acc.Count_Contacts__c = acc.Contacts.size();
                     acc.Total_Sum__c = 0;  
                     for(Contact con : acc.Contacts)
                         {
                            if(con.Sum__c != NULL)
                               {
                                   acc.Total_Sum__c = acc.Total_Sum__c + con.Sum__c;  
                             }   
                       }
                     lstAccountsToUpdate.add(acc);
                      }   
         UPDATE lstAccountsToUpdate;    
      }
}




test class


@isTest
private class UpdatingAccountRelatedContactsCount_Test {
   
 static Testmethod void accountRelatedContacts()
    {
    List<Contact> conList =  new List<Contact>();
    Account Acc = New Account();
    Acc.Name = 'srikanth';
    insert Acc;    
           
    Contact con = new Contact();
    con.LastName = 'Test';
    con.AccountId = Acc.Id;
    con.Sum__c = 100;
    conList.add(con);       
        
    Contact con1 = new Contact();
    con.LastName = 'Test1';
    con1.AccountId = Acc.Id;
    con1.Sum__c = 100;
    conList.add(con1);       
     
    insert conList;
    delete con1;      
    Test.StartTest();
    TriggerHelperClass obj = new TriggerHelperClass(); 
    
    update conList ;
    undelete con1;
    Test.StopTest();
   
    }
}
 
what the wrong this code it is showing the above error please help in this 


global class LeadDays7 implements Database.Batchable<SObject>{
    List<Lead> listRecords = new List<Lead>();
    
    global Database.QueryLocator start(Database.BatchableContext BC)
    {
        String query = 'Select Id,Name,Email,CheckBox__c,Leadage__c From Lead Where Leadage__c > 7 LIMIT 10 ';
        return Database.getQueryLocator(query);
    }
     
     global void execute(Database.BatchableContext BC, List<Lead> scope){
           System.debug('aaaaaaaaaaaaaaaaaaaa'+scope);
        
                     for(Lead leads : scope)
                    {
               if(leads.Email != NULL)
               {
                   leads.CheckBox__c = TRUE;
               }
            listRecords.add(leads);          
        }
         update listRecords;
     

        List<String> emailList = new List<String>();
        System.debug('aaaaaaaaaaaaaaaaaaaa'+scope);
        for(Lead ld: scope) {
            if(ld.Email != NULL) {
                emailList.add(ld.Email);
            }
        }
        System.debug('bbbbbbbbbbbbbbbbbbbbb'+emailList);
         Messaging.SingleEmailMessage email = new Messaging.SingleEmailMessage();
            email.setToAddresses(emailList);
            email.setSaveAsActivity(false);
            email.setSubject('Age is 7 days');
            email.setPlainTextBody('Batch Update for Opportunity Close Date has been completed');
            Messaging.sendEmail(new Messaging.SingleEmailMessage[] {email});
            
     }    
    global void finish(Database.BatchableContext BC){
 
}
}
In the Second If-condition i am confued how to write the code can anyone help me in this how to write the code .

I am getting Account servicing records which are linked to account



public class Account_Related_Account_Servicing {
    List<Account_Servicing__c> Accountservicing_records = new List<Account_Servicing__c>();   
    Map<Id,Map<Id,List<Account_Servicing__c>>> Account_RelatedRecords = new Map<Id,Map<Id,List<Account_Servicing__c>>>();
    Map<Id,List<Account_Servicing__c>> listrecords = new Map<Id,List<Account_Servicing__c>>();
    Public void Account_Linked_Account_Servicing_Records()
        {
              Accountservicing_records = [select Id,Account__r.Id,Name from Account_Servicing__c where Account__c != Null ]; 
            for(Account_Servicing__c abc:Accountservicing_records)
                 {
                     if(listrecords.containsKey(abc.Id) )
                         {
                                 listrecords.get(abc.Id).add(abc);
                         }
                     else
                         {
                                listrecords.put(abc.Id,new List<Account_Servicing__c>{abc}) ;
                        }
                     
                     
         //   In this how to write the code        
                    if(Account_RelatedRecords.containsKey(Account__r.Id) )
                         {
                                 Account_RelatedRecords.get(Account__r.Id).add(abc);
                         }
                    else
                         {
                                Account_RelatedRecords.put(Account__r.Id,Map<Id,List<Account_Servicing__c>>) ;
                        }                     
                    
                     

                           }
            System.debug(Account_RelatedRecords);
            
           
          }    
}
My code


<apex:page StandardController="Account" >
<apex:form >
<apex:pageBlock >
<apex:pageBlockSection >
<apex:inputField value="{! account.name }"/>

<apex:inputField value="{! account.label__c}"/>
<apex:inputField value="{! account.Rating}"/>
  <apex:inputField value="{! account.check_box__c}" />
   
 <apex:outputText value="{!$Label.Error_when_checkbox_is_disabled}" rendered="{!if(account.check_box__c = 'TRUE',true,false)}" />

</apex:pageBlockSection>
</apex:pageBlock>

<apex:commandButton value="save" action="{!save}"/>
</apex:form>

</apex:page>


 
global class Account_Add_Opportunities implements Database.Batchable<sObject>{
    
    List<Account> conlist = new List<Account>();
        
    List<Opportunity> updateList = new List<Opportunity>();
    
    
    global Account_Add_Opportunities (){
        // Batch Constructor
    }
    // Start Methode
    global Database.QueryLocator start(Database.BatchableContext BC){
        
        return Database.getQueryLocator([SELECT id,Name,CloseDate,Type from Opportunity WHERE Type = 'New Business' AND StageName = 'New Opportunity' ]); 
        
    }
    // Execute Logic
    global void execute(Database.BatchableContext BC, List<Opportunity>scope){
            conlist  = [SELECT Id,Name,BillingAddress from Account where Name = 'Closed Lost Opportunities'];
 
             System.debug('aaaaaaaaaaaaa'+conlist);    
        for(Opportunity opp :scope )
        {   
            opp.StageName = 'Closed Lost' ;
               for (Account acct :conlist)
               { 
                            opp.AccountID = acct.Id;


            
            }
            
            updateList.add(opp);
            
        }
        
                update updateList ;
 

        }
    
    global void finish(Database.BatchableContext BC){
        // Logic to  be Executed at finish
    }
}
code 
public class AddPrimaryContact implements Queueable {
    
    private Contact s;
    private String State;
    
    public AddPrimaryContact(Contact s, String State) {
        this.s = s;
        this.state = State;
    }
    public void execute(QueueableContext context) {
                   List<Account> ListAccount = [SELECT ID, Name ,(Select id,FirstName,LastName from contacts ) FROM ACCOUNT WHERE BillingState = :state LIMIT 200];
             List<contact> con = new List<Contact>();
          for(Account acc: ListAccount)
          {
          
          Contact cont = s.clone(false,false,false,false);

               cont.AccountId =  acc.id;

                 con.add( cont );
          
          }
        insert con;
   
    }
}







what to wrire here in anonymous block ..?

AddPrimaryContact obi = new AddPrimaryContact(s,usa);

Database.executeBatch(obj);