You need to sign in to do that
Don't have an account?
SFDC New learner
Need help on lightning component
Hi All,
I am trying to get all the cases and related email that is recently sent to the customer.
I am able to display all the casenumbers, but not the last email sent.
Below is my code.
public class CaseRelatedListApex {
@AuraEnabled
public static List<Case> getObject(Id sessId){
LIST< session__c > objsessList = new LIST< session__c >();
LIST< Case > objCaseList = new LIST< Case >();
if(sessId!=null)
{
objCaseList =[select id,session_ID__c,CaseNumber from case where session_ID__c =:sessId limit 4];
}
return objCaseList;
}
@AuraEnabled
public Static List<Datetime> getmessagedt(List<Case> objCaseList){
// Case objCase = new Case ();
List<DateTime> dt = new List<DateTime>();
if(objCaseList.size()>0)
{
for(Case objCase :[select id,session_ID__c,CaseNumber,(select id,MessageDate from EmailMessages where incoming = False order by MessageDate desc limit 1) MessageDt from case where ID = :objCaseList ]){
for(EmailMessage e : objCase.EmailMessages){
dt.add(e.MessageDate);
}
}
}
return dt;
}
}
Component:
<aura:component controller = "CaseRelatedListApex" implements="force:appHostable,flexipage:availableForAllPageTypes,home:availableForDesktop,force:hasRecordId,forceCommunity:availableForAllPageTypes,force:lightningQuickAction">
<aura:attribute name="sessId" type="String"/>
<aura:attribute name="cases" type="Case[]"/>
<aura:attribute name="caseId" type="Id"/>
<aura:attribute name ="cas" type="Case"/>
<aura:attribute name="LastEmail" type="Datetime"/>
<aura:handler name="init" value="{!this}" action="{!c.check}" />
<aura:attribute name="totalCases" type="String"/>
<form class="slds-form_horizontal" role ="list">
<article class="slds-card">
<div class="slds-card__header slds-grid" >
<header class="slds-media slds-media--center slds-has-flexi-truncate">
<div class="slds-media__figure">
<lightning:icon iconName="standard:case" size ="small" alternativeText="Case" />
</div>
<div class="slds-media__body slds-truncate">
<h2> <b> <span class="slds-text-heading--small">Cases ({!v.totalCases}) </span> </b></h2>
</div>
</header>
</div>
<table style ="margin-left :10px;">
<thead>
<tr >
<th scope="col" style ="font-weight:normal" >
<h1> <span >Case Number:</span></h1>
</th>
<th scope="col" style ="font-weight:normal">
<h1> <span >Last Email:</span></h1>
</th>
</tr>
</thead><br/>
<tbody>
<aura:iteration items="{!v.cases}" var="ocas">
<tr class="slds-text-title" style ="font-size: .8125rem" >
<!--<td style =" color: rgb(22, 50, 92); text-decoration: dotted underline;">-->
<td>
<a href="#" data-recId="{!ocas.Id}" onclick="{!c.handleClick}">{!ocas.CaseNumber}</a>
</td>
<!--</td>-->
<td>
{!v.LastEmail}
</td>
</tr>
</aura:iteration>
</tbody>
</table><br/>
</article>
</form>
</aura:component>
Helper:
({
getCases : function(Component,event,helper) {
var action= Component.get("c.getObject");
var sessId = Component.get("v.recordId");
action.setParams({
"sessId" :sessId
});
action.setCallback(this,function(response){
var state=response.getState();
if (Component.isValid() && state === "SUCCESS") {
//alert('Cases');
Component.set("v.cases",response.getReturnValue());
var caseCount = Component.get("v.cases").length;
Component.set("v.totalCases",caseCount);
console.log("caseCount "+caseCount);
var action1 = component.get("c.getmessagedt");
var cas = Componenet.get("v.cases");
action1.setParams({
"objCaseList":cas
});
action1.setCallback(this,function(response){
var state=response.getState();
if (Component.isValid() && state === "SUCCESS") {
//alert('Cases');
Component.set("v.LastEmail",response.getReturnValue());
}
});
$A.enqueueAction(action1);
}
});
$A.enqueueAction(action);
},
navigateTorecordDetails :function(Component,event,helper){
console.log('@@@ MovetoDetailPage method calls');
var idstr = event.target.getAttribute("data-recId")
console.log('@@@ CaseId ==> ' + idstr);
var navEvt = $A.get("e.force:navigateToSObject");
if(navEvt!=undefined){
navEvt.setParams({
"recordId": idstr
});
navEvt.fire();
}
$A.enqueueAction(action);
}
})
getting error as "This page has an error. You might just need to refresh it. Error in $A.getCallback() [component is not defined] Callback failed: apex://CaseRelatedListApex/ACTION$getObject"
Please help me to fix the error.
Thanks,
Sirisha
I am trying to get all the cases and related email that is recently sent to the customer.
I am able to display all the casenumbers, but not the last email sent.
Below is my code.
public class CaseRelatedListApex {
@AuraEnabled
public static List<Case> getObject(Id sessId){
LIST< session__c > objsessList = new LIST< session__c >();
LIST< Case > objCaseList = new LIST< Case >();
if(sessId!=null)
{
objCaseList =[select id,session_ID__c,CaseNumber from case where session_ID__c =:sessId limit 4];
}
return objCaseList;
}
@AuraEnabled
public Static List<Datetime> getmessagedt(List<Case> objCaseList){
// Case objCase = new Case ();
List<DateTime> dt = new List<DateTime>();
if(objCaseList.size()>0)
{
for(Case objCase :[select id,session_ID__c,CaseNumber,(select id,MessageDate from EmailMessages where incoming = False order by MessageDate desc limit 1) MessageDt from case where ID = :objCaseList ]){
for(EmailMessage e : objCase.EmailMessages){
dt.add(e.MessageDate);
}
}
}
return dt;
}
}
Component:
<aura:component controller = "CaseRelatedListApex" implements="force:appHostable,flexipage:availableForAllPageTypes,home:availableForDesktop,force:hasRecordId,forceCommunity:availableForAllPageTypes,force:lightningQuickAction">
<aura:attribute name="sessId" type="String"/>
<aura:attribute name="cases" type="Case[]"/>
<aura:attribute name="caseId" type="Id"/>
<aura:attribute name ="cas" type="Case"/>
<aura:attribute name="LastEmail" type="Datetime"/>
<aura:handler name="init" value="{!this}" action="{!c.check}" />
<aura:attribute name="totalCases" type="String"/>
<form class="slds-form_horizontal" role ="list">
<article class="slds-card">
<div class="slds-card__header slds-grid" >
<header class="slds-media slds-media--center slds-has-flexi-truncate">
<div class="slds-media__figure">
<lightning:icon iconName="standard:case" size ="small" alternativeText="Case" />
</div>
<div class="slds-media__body slds-truncate">
<h2> <b> <span class="slds-text-heading--small">Cases ({!v.totalCases}) </span> </b></h2>
</div>
</header>
</div>
<table style ="margin-left :10px;">
<thead>
<tr >
<th scope="col" style ="font-weight:normal" >
<h1> <span >Case Number:</span></h1>
</th>
<th scope="col" style ="font-weight:normal">
<h1> <span >Last Email:</span></h1>
</th>
</tr>
</thead><br/>
<tbody>
<aura:iteration items="{!v.cases}" var="ocas">
<tr class="slds-text-title" style ="font-size: .8125rem" >
<!--<td style =" color: rgb(22, 50, 92); text-decoration: dotted underline;">-->
<td>
<a href="#" data-recId="{!ocas.Id}" onclick="{!c.handleClick}">{!ocas.CaseNumber}</a>
</td>
<!--</td>-->
<td>
{!v.LastEmail}
</td>
</tr>
</aura:iteration>
</tbody>
</table><br/>
</article>
</form>
</aura:component>
Helper:
({
getCases : function(Component,event,helper) {
var action= Component.get("c.getObject");
var sessId = Component.get("v.recordId");
action.setParams({
"sessId" :sessId
});
action.setCallback(this,function(response){
var state=response.getState();
if (Component.isValid() && state === "SUCCESS") {
//alert('Cases');
Component.set("v.cases",response.getReturnValue());
var caseCount = Component.get("v.cases").length;
Component.set("v.totalCases",caseCount);
console.log("caseCount "+caseCount);
var action1 = component.get("c.getmessagedt");
var cas = Componenet.get("v.cases");
action1.setParams({
"objCaseList":cas
});
action1.setCallback(this,function(response){
var state=response.getState();
if (Component.isValid() && state === "SUCCESS") {
//alert('Cases');
Component.set("v.LastEmail",response.getReturnValue());
}
});
$A.enqueueAction(action1);
}
});
$A.enqueueAction(action);
},
navigateTorecordDetails :function(Component,event,helper){
console.log('@@@ MovetoDetailPage method calls');
var idstr = event.target.getAttribute("data-recId")
console.log('@@@ CaseId ==> ' + idstr);
var navEvt = $A.get("e.force:navigateToSObject");
if(navEvt!=undefined){
navEvt.setParams({
"recordId": idstr
});
navEvt.fire();
}
$A.enqueueAction(action);
}
})
getting error as "This page has an error. You might just need to refresh it. Error in $A.getCallback() [component is not defined] Callback failed: apex://CaseRelatedListApex/ACTION$getObject"
Please help me to fix the error.
Thanks,
Sirisha
Try this code
I changed the code but still getting error as "Unable to find action 'getmessagedt' on the controller of c:CaseRelatedListComponent"
This error shows that you have not defined the method within apex code.
I see that you have referred the class 'CaseRelatedListApex' in your component and you are calling 'getmessagedt' method from the component [var action1 = component.get("c.getmessagedt")].
Check if this method ''getmessagedt'' is available in the apex code.