You need to sign in to do that
Don't have an account?
Ritu Ghosh 13
Null pointer exception while referencing server side controller in lightning component due to which I am getting error "An internal server error has occurred Error ID: 694637652-163917 (119852647)"
While I am trying to Save data in Server side below error is captured:
An internal server error has occurred
Error ID: 694637652-163917 (119852647)
On checking logs there is null pointer exception and I can see regForm instance is holding "NULL" value.
Below is the component and controller code:
Component Code
<aura:component controller="admtest__.SaveRegistrationFormDetails" implements="force:appHostable,flexipage:availableForAllPageTypes,flexipage:availableForRecordHome,force:hasRecordId,forceCommunity:availableForAllPageTypes,force:lightningQuickAction"
access="global" >
<aura:attribute name="abc" type="String"/>
<aura:attribute name="Name" type="String" default="" />
<aura:attribute name="ParentName" type="String" default="" />
<aura:attribute name="StandardOrClass" type="String" default="" />
<aura:attribute name="NumberOfStudyHours" type="String[]"
default=" , Less than an hour ,In between 1 to 4,
In between 4 to 8, More than 8 hours" />
<aura:attribute name="UsersResponse1" type="String" default=""/>
<aura:attribute name="MobileNumber" type="Integer" default="" />
<aura:attribute name="RegisteredCourseBefore" type="Boolean" default="false" />
<aura:attribute name="InterestedInOnlineCourse" type="Boolean" />
<aura:attribute name="CheckBoxvalue" type="Boolean" default="false"/>
<aura:attribute name="PageHeading" type="String" default="Registration form for Students"/>
<aura:attribute name="EducationalDetailList" type="List" default="[]"/>
<aura:attribute name="RegForm" type="admtest__Registration_Form__c" default="{'sobjectType' : 'admtest__Registration_Form__c'}" />
<br/><br/>
<div class="slds-page-header">
<div class="slds-align_absolute-center" style="height: 5rem;">
<div class="slds-text-heading--large">
<div class="slds-m-*_large">
{!v.PageHeading}
</div>
</div>
</div>
</div>
<div class="slds-size--5-of-8">
<lightning:input label="Enter your Name" name="StudentName" value="{!v.RegForm.Name}"/>
<br/>
<lightning:input label="Enter you Parents name" name="parent" value="{!v.RegForm.admtest__Parent_Name__c}"/>
<br/>
<lightning:input label="Enter your Class " name="StandardOrClass" value="{!v.RegForm.admtest__Which_Class__c}"/>
<br/>
<lightning:select name="numofStudyHrs" label="How many hours do you Study"
value="{!v.RegForm.admtest__Study_Hours__c}">
<aura:iteration items="{!v.NumberOfStudyHours}" var="hrs">
<option value="{!hrs}" text="{!hrs}"/>
</aura:iteration>
</lightning:select>
<br/>
<lightning:input name="MobileNumber" label="Phone Number" type="telephone" value="{!v.RegForm.admtest__Mobile_Number__c}"/>
<br/>
<aura:iteration items="{!v.EducationalDetailList}" var="item" indexVar="index">
<c:Add_Educational_Details EducationalDetailListInnerComponent="{!v.EducationalDetailList}" IndexNo="{!index}"/>
</aura:iteration>
<lightning:button iconName="utility:add" variant="border-filled" label="Add Educational Details" onclick="{!c.addDetails}"></lightning:button>
<br/>
<lightning:input type="checkbox" label="Are you available on weekends for Class" name="coursecheckbox" />
<br/>
<lightning:input aura:id="checkBox" type="checkbox" onchange="{!c.onCheckChange}" label="Are you interested in online course?" name="onlinechk"/>
<aura:if isTrue="{!v.CheckBoxvalue}">
<i>Happy Learning!</i>
</aura:if>
<br/>
<lightning:button type="Submitt" onclick="{!c.doSubmit}">Submitt</lightning:button>
</div>
</aura:component>
Controller Code:
({
doSubmit : function(cmp, evt, hlpr) {
//call an apex function to store data in reg form
//pass regform as paramamer which you have mentioned in attribute
var RegForm = cmp.get("v.RegForm");
var action = cmp.get("c.SaveRegistrationDetail");
//set the paramamter value
action.setParams({ regForm : RegForm });
//set the callback function
action.setCallback(this, function(response) {
var state = response.getState();
if (state === "SUCCESS") {
alert("From Server: " + response.getReturnValue());
console.log("From Server:" + response.getReturnValue());
}
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 adds the server-side action to the queue.
}
});
$A.enqueueAction(action);
},
onCheckChange: function(cmp,evt,hlpr) {
console.log("this is from controller Function");
//function defined in helper section;
hlpr.onClickCheckBoxHelper(cmp,event);
},
addDetails: function(cmp,evt,hlpr){
console.log("Add educational Details");
var currentEducationalDetailList = cmp.get("v.EducationalDetailList");
var currentSize= parseInt((currentEducationalDetailList.length));
var newSize= parseInt((currentSize.length)+1);
currentEducationalDetailList.push(newSize);
cmp.set("v.EducationalDetailList",currentEducationalDetailList);
}
})
Apex Class:
public class SaveRegistrationFormDetails{
@AuraEnabled
public static id SaveRegistrationDetail(admtest__Registration_Form__c regForm ){
// DML operation to save RegForm Details
insert regForm;
return regForm.id;
}
}
Are there ant issue with the namespace syntax that I am using ?
It will be helpful if someone can guide me with this issue.
Thanks,
Ritu Ghosh
An internal server error has occurred
Error ID: 694637652-163917 (119852647)
On checking logs there is null pointer exception and I can see regForm instance is holding "NULL" value.
Below is the component and controller code:
Component Code
<aura:component controller="admtest__.SaveRegistrationFormDetails" implements="force:appHostable,flexipage:availableForAllPageTypes,flexipage:availableForRecordHome,force:hasRecordId,forceCommunity:availableForAllPageTypes,force:lightningQuickAction"
access="global" >
<aura:attribute name="abc" type="String"/>
<aura:attribute name="Name" type="String" default="" />
<aura:attribute name="ParentName" type="String" default="" />
<aura:attribute name="StandardOrClass" type="String" default="" />
<aura:attribute name="NumberOfStudyHours" type="String[]"
default=" , Less than an hour ,In between 1 to 4,
In between 4 to 8, More than 8 hours" />
<aura:attribute name="UsersResponse1" type="String" default=""/>
<aura:attribute name="MobileNumber" type="Integer" default="" />
<aura:attribute name="RegisteredCourseBefore" type="Boolean" default="false" />
<aura:attribute name="InterestedInOnlineCourse" type="Boolean" />
<aura:attribute name="CheckBoxvalue" type="Boolean" default="false"/>
<aura:attribute name="PageHeading" type="String" default="Registration form for Students"/>
<aura:attribute name="EducationalDetailList" type="List" default="[]"/>
<aura:attribute name="RegForm" type="admtest__Registration_Form__c" default="{'sobjectType' : 'admtest__Registration_Form__c'}" />
<br/><br/>
<div class="slds-page-header">
<div class="slds-align_absolute-center" style="height: 5rem;">
<div class="slds-text-heading--large">
<div class="slds-m-*_large">
{!v.PageHeading}
</div>
</div>
</div>
</div>
<div class="slds-size--5-of-8">
<lightning:input label="Enter your Name" name="StudentName" value="{!v.RegForm.Name}"/>
<br/>
<lightning:input label="Enter you Parents name" name="parent" value="{!v.RegForm.admtest__Parent_Name__c}"/>
<br/>
<lightning:input label="Enter your Class " name="StandardOrClass" value="{!v.RegForm.admtest__Which_Class__c}"/>
<br/>
<lightning:select name="numofStudyHrs" label="How many hours do you Study"
value="{!v.RegForm.admtest__Study_Hours__c}">
<aura:iteration items="{!v.NumberOfStudyHours}" var="hrs">
<option value="{!hrs}" text="{!hrs}"/>
</aura:iteration>
</lightning:select>
<br/>
<lightning:input name="MobileNumber" label="Phone Number" type="telephone" value="{!v.RegForm.admtest__Mobile_Number__c}"/>
<br/>
<aura:iteration items="{!v.EducationalDetailList}" var="item" indexVar="index">
<c:Add_Educational_Details EducationalDetailListInnerComponent="{!v.EducationalDetailList}" IndexNo="{!index}"/>
</aura:iteration>
<lightning:button iconName="utility:add" variant="border-filled" label="Add Educational Details" onclick="{!c.addDetails}"></lightning:button>
<br/>
<lightning:input type="checkbox" label="Are you available on weekends for Class" name="coursecheckbox" />
<br/>
<lightning:input aura:id="checkBox" type="checkbox" onchange="{!c.onCheckChange}" label="Are you interested in online course?" name="onlinechk"/>
<aura:if isTrue="{!v.CheckBoxvalue}">
<i>Happy Learning!</i>
</aura:if>
<br/>
<lightning:button type="Submitt" onclick="{!c.doSubmit}">Submitt</lightning:button>
</div>
</aura:component>
Controller Code:
({
doSubmit : function(cmp, evt, hlpr) {
//call an apex function to store data in reg form
//pass regform as paramamer which you have mentioned in attribute
var RegForm = cmp.get("v.RegForm");
var action = cmp.get("c.SaveRegistrationDetail");
//set the paramamter value
action.setParams({ regForm : RegForm });
//set the callback function
action.setCallback(this, function(response) {
var state = response.getState();
if (state === "SUCCESS") {
alert("From Server: " + response.getReturnValue());
console.log("From Server:" + response.getReturnValue());
}
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 adds the server-side action to the queue.
}
});
$A.enqueueAction(action);
},
onCheckChange: function(cmp,evt,hlpr) {
console.log("this is from controller Function");
//function defined in helper section;
hlpr.onClickCheckBoxHelper(cmp,event);
},
addDetails: function(cmp,evt,hlpr){
console.log("Add educational Details");
var currentEducationalDetailList = cmp.get("v.EducationalDetailList");
var currentSize= parseInt((currentEducationalDetailList.length));
var newSize= parseInt((currentSize.length)+1);
currentEducationalDetailList.push(newSize);
cmp.set("v.EducationalDetailList",currentEducationalDetailList);
}
})
Apex Class:
public class SaveRegistrationFormDetails{
@AuraEnabled
public static id SaveRegistrationDetail(admtest__Registration_Form__c regForm ){
// DML operation to save RegForm Details
insert regForm;
return regForm.id;
}
}
Are there ant issue with the namespace syntax that I am using ?
It will be helpful if someone can guide me with this issue.
Thanks,
Ritu Ghosh
Is there a special reason for you to use the below; For aura:attribute sobject types, use like below; https://developer.salesforce.com/docs/atlas.en-us.lightning.meta/lightning/ref_attr_types_object_salesforce.htm
You can use the example found in the below URL to solve your issue;
https://developer.salesforce.com/docs/atlas.en-us.lightning.meta/lightning/apex_records_save.htm
Hope the above solution helps.
When I am trying below :
<aura:attribute name="RegForm" type="admtest__Registration_Form__c" />
getting below error :
This page has an error. You might just need to refresh it. Error in $A.getCallback() [Cannot read property 'Name' of null] Failing descriptor: {lightning:input}
Input value that I have mentioned is as below:
<lightning:input label="Enter your Name" name="StudentName" value="{!v.RegForm.Name}"/>
<br/>
There is some issue with callBack .It will be very helpful if you can guide me further.
Thanks,
Ritu Ghosh
Can you try the below?
Use the below aura:attribute that you used earlier in your code like since it is special reason.. Replace below with
When I tried it with <force:inputField> I am getting below
Name is not available now.
When I went through lightning component docs below is mentioned.
Over here Data is available from SOQL query but in my case I am trying to enter new data and currently there are no records in db.It is an insert operation .
In registration form directly I am getting next field and that is Parent's name ( which is incorporated with lightning:input tag) hence facing same error again
This page has an error. You might just need to refresh it. Error in $A.getCallback() [Cannot read property 'admtest__Parent_Name__c' of null] Failing descriptor: {lightning:input}
How should I proceed now...
Thanks,
Ritu Ghosh