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
abu saleh khan 8abu saleh khan 8 

i want to update a field of my sobject. This value I am getting from lighting component page. Through client controller .value passed as a parameter to my server controller method. Value is passing but throwing nullpointer exceptioption.

Here is my code for password reset.

Component

<aura:component Controller="PasswordReset">
    <aura:attribute name="passstore" type="String"/>
    <lightning:input label="Enter New Password: " value="{!v.passstore}"/>
    <lightning:button label="Reset" onclick="{!c.change}"/>
</aura:component>


Client-Controller

({
    change : function(component, event, helper) {
    
        var clntvar = component.get("v.passstore");
        console.log('I am in first var: '+ clntvar);
        var srvrvar = component.get("c.resetmthd");
        console.log('m in second var: '+srvrvar);
        srvrvar.setParams({srvrparmtr : clntvar});
        
        console.log('Hi, I am srvr parameter '+ srvrvar);
        srvrvar.setCallback(this,function(response){
            
            var state = response.getState()
            console.log('m in callback: '+state)
            if(state === "SUCCESS"){
                
                alert("Email sent to mentioned emailid: " + response.getReturnValue);
    }
                          else if (state === "INCOMPLETE") {
                alert("I am in incomplete");
                // do something
            }
            else if (state === "ERROR") {
                var errors = response.getError();
                if (errors) {
                    if (errors[0] && errors[0].message) {
                        console.log("Error message: " + 
                                 errors[0].message);
                    }
                } else {
                    console.log("Unknown error");
                }
                     }
            
        });
        $A.enqueueAction(srvrvar);
    }   
})

server-controller

public class PasswordReset {
    
    @AuraEnabled
    public static void resetmthd(String srvrparmtr){        
        List<Employee__c> emplst = new List<Employee__c>();
        Employee__c empp = new Employee__c();
        System.debug('hi m server method parameter: '+ ApexPages.currentPage().getParameters().get('id'));
        empp = [SELECT id,Password__c FROM Employee__c WHERE id = :ApexPages.currentPage().getParameters().get('id')];        
        empp.password__c = srvrparmtr;
        emplst.add(empp);        
        try{
        update emplst;
         }
        Catch(Exception e){
           System.debug('M in server controller '+ emplst);
           System.debug('hi m server method parameter: '+ ApexPages.currentPage().getParameters().get('id'));   
        }   
    }
}
Raj VakatiRaj Vakati
This line is worng.. 

You dnt get id here insted
 
empp = [SELECT id,Password__c FROM Employee__c WHERE id = :ApexPages.currentPage().getParameters().get('id')];        
        empp.password__c = srvrparmtr;


Try this code
 
<aura:component Controller="PasswordReset" implements="flexipage:availableForRecordHome,force:hasRecordId,force:hasSObjectName" access="global" >
    <aura:attribute name="passstore" type="String"/>
    <lightning:input label="Enter New Password: " value="{!v.passstore}"/>
    <lightning:button label="Reset" onclick="{!c.change}"/>
</aura:component>
 
({
    change : function(component, event, helper) {
    
        var clntvar = component.get("v.passstore");
        console.log('I am in first var: '+ clntvar);
        var srvrvar = component.get("c.resetmthd");
        console.log('m in second var: '+srvrvar);
        srvrvar.setParams({srvrparmtr : clntvar ,recordId:component.get("v.recordId")});
        
        console.log('Hi, I am srvr parameter '+ srvrvar);
        srvrvar.setCallback(this,function(response){
            
            var state = response.getState()
            console.log('m in callback: '+state)
            if(state === "SUCCESS"){
                
                alert("Email sent to mentioned emailid: " + response.getReturnValue);
    }
                          else if (state === "INCOMPLETE") {
                alert("I am in incomplete");
                // do something
            }
            else if (state === "ERROR") {
                var errors = response.getError();
                if (errors) {
                    if (errors[0] && errors[0].message) {
                        console.log("Error message: " + 
                                 errors[0].message);
                    }
                } else {
                    console.log("Unknown error");
                }
                     }
            
        });
        $A.enqueueAction(srvrvar);
    }   
})
 
public class PasswordReset {
    
    @AuraEnabled
    public static void resetmthd(String srvrparmtr , String recordId){        
        List<Employee__c> emplst = new List<Employee__c>();
        Employee__c empp = new Employee__c();
       // System.debug('hi m server method parameter: '+ ApexPages.currentPage().getParameters().get('id'));
        empp = [SELECT id,Password__c FROM Employee__c WHERE id = :recordId];        
        empp.password__c = srvrparmtr;
        emplst.add(empp);        
        try{
        update emplst;
         }
        Catch(Exception e){
           System.debug('M in server controller '+ emplst);
           System.debug('hi m server method parameter: '+ ApexPages.currentPage().getParameters().get('id'));   
        }   
    }
}


 
abu saleh khan 8abu saleh khan 8
Still getting exceptionUser-added imageHere is the id I am passing through url..
Raj VakatiRaj Vakati
How you are calling this component .. you need to call from the lightningn record page or you need to set the attribute record id ..
abu saleh khan 8abu saleh khan 8
I want to set the Lightning record id.