You need to sign in to do that
Don't have an account?
Showing all the related activity :
I would like to show all the open tasks across the Org based upon the Email ID. The below VF & Class is giving me the results of all the task irrespetive of Email ID. Can someone help me to fix the code here :
Class :
public class ActivitySearchController {
Public List<Task> TaskList{get;set;}
String currentEmail ;
public ActivitySearchController(ApexPages.StandardController controller) {
currentEmail = ApexPages.CurrentPage().getparameters().get('Email');
TaskList = [Select subject,id, who.Email, Type, Who.Type, whoID, priority, status, ActivityDate
FROM Task WHERE who.Email=:currentEmail AND Status = 'Open'];
if(TaskList.size() == 0)
{
Apexpages.addMessage(new ApexPages.Message(ApexPages.Severity.INFO,''+'No Tasks to Display'));
}
}
}
VF:
<apex:page standardController="Lead" extensions="ActivitySearchController" >
<apex:form >
<apex:pageBlock id="pb">
<apex:pageMessages ></apex:pageMessages>
<apex:pageBlockTable value="{!TaskList}" var="d">
<apex:column headerValue="Record ID">
<apex:outputField value="{!d.id}">
</apex:outputField> </apex:column>
<apex:column headerValue="Subject">
<apex:outputField value="{!d.subject}">
</apex:outputField> </apex:column>
<apex:column headerValue="Type">
<apex:outputField value="{!d.Type}">
</apex:outputField> </apex:column>
<apex:column headerValue="Status">
<apex:outputField value="{!d.Status}">
</apex:outputField> </apex:column>
</apex:pageBlockTable>
</apex:pageBlock>
</apex:form>
</apex:page>
Class :
public class ActivitySearchController {
Public List<Task> TaskList{get;set;}
String currentEmail ;
public ActivitySearchController(ApexPages.StandardController controller) {
currentEmail = ApexPages.CurrentPage().getparameters().get('Email');
TaskList = [Select subject,id, who.Email, Type, Who.Type, whoID, priority, status, ActivityDate
FROM Task WHERE who.Email=:currentEmail AND Status = 'Open'];
if(TaskList.size() == 0)
{
Apexpages.addMessage(new ApexPages.Message(ApexPages.Severity.INFO,''+'No Tasks to Display'));
}
}
}
VF:
<apex:page standardController="Lead" extensions="ActivitySearchController" >
<apex:form >
<apex:pageBlock id="pb">
<apex:pageMessages ></apex:pageMessages>
<apex:pageBlockTable value="{!TaskList}" var="d">
<apex:column headerValue="Record ID">
<apex:outputField value="{!d.id}">
</apex:outputField> </apex:column>
<apex:column headerValue="Subject">
<apex:outputField value="{!d.subject}">
</apex:outputField> </apex:column>
<apex:column headerValue="Type">
<apex:outputField value="{!d.Type}">
</apex:outputField> </apex:column>
<apex:column headerValue="Status">
<apex:outputField value="{!d.Status}">
</apex:outputField> </apex:column>
</apex:pageBlockTable>
</apex:pageBlock>
</apex:form>
</apex:page>
I trust you are doing very well.
The WhoId and WhatId fields on Task are Polymorphic (https://developer.salesforce.com/blogs/tech-pubs/2012/09/soql-polymorphism-or-how-i-learned-to-love-the-polymorphic-relationship.html), means they can point to multiple target objects. You can't query relationships through them like you can for normally-related objects. Ask Salesforce Support to enable "Polymorphic SOQL" in your organization, then you'll be able to determine whether it's Lead or Contact.
Please refer to the below link with a similar discussion which might help you further with the above issue.
https://stackoverflow.com/questions/14692742/how-to-get-email-from-task-object-record-using-soql
I hope it helps you.
Kindly let me know if it helps you and close your query by marking it as solved so that it can help others in future.
Thanks and Regards,
Khan Anas