-
ChatterFeed
-
1Best Answers
-
3Likes Received
-
0Likes Given
-
42Questions
-
74Replies
Can't send selectList value to controller via Javascript?
Hey all, I need to pass the set value of one of my selectList options back to a specific method in my controller. It isn't working and I can't find out why. Can someone glance at the code below and tell me what I'm missing here?
Controller
VF Page
Thanks ahead of time!
Controller
public class LogACaseController{ public Boolean aso {get;set;} public Boolean cd {get;set;} public Boolean ss {get;set;} private Id userId {get;set;} public String baseUrl {get;set;} public String selection {get;set;} public List<String> products = new List<String>(); /* * Get ContactId of logged-in User */ public PageReference getUserInfo(){ userId = UserInfo.getUserId(); getPermSets(userId); getBaseUrl(); return null; } /* * Get permission sets of logged-in User */ public void getPermSets(Id userId){ Id asoPsId = [SELECT Id FROM PermissionSet WHERE Name = 'ASO_Community' LIMIT 1].Id; Id ssPsId = [SELECT Id FROM PermissionSet WHERE Name = 'SS_Community' LIMIT 1].Id; Id cdPsId = [SELECT Id FROM PermissionSet WHERE Name = 'CD_Community' LIMIT 1].Id; List<PermissionSetAssignment> asoAssigneeIds = new List<PermissionSetAssignment>([SELECT AssigneeId FROM PermissionSetAssignment WHERE PermissionSetId =: asoPsId]); List<PermissionSetAssignment> ssAssigneeIds = new List<PermissionSetAssignment>([SELECT AssigneeId FROM PermissionSetAssignment WHERE PermissionSetId =: ssPsId]); List<PermissionSetAssignment> cdAssigneeIds = new List<PermissionSetAssignment>([SELECT AssigneeId FROM PermissionSetAssignment WHERE PermissionSetId =: cdPsId]); for(PermissionSetAssignment asoId : asoAssigneeIds){ if(asoId.AssigneeId == userId){ aso = true; } } for(PermissionSetAssignment ssId : ssAssigneeIds){ if(ssId.AssigneeId == userId){ ss = true; } } for(PermissionSetAssignment cdId : cdAssigneeIds){ if(cdId.AssigneeId == userId){ cd = true; } } } /* * Get product options */ public List<SelectOption> getOptions(){ List<SelectOption> options = new List<SelectOption>(); options.add(new SelectOption('none','--None--')); options.add(new SelectOption('aso','Advanced Sourcing Optimizer')); options.add(new SelectOption('cd','Contract Director')); options.add(new SelectOption('ss','eProcurement/SelectSite')); return options; } public List<String> getProducts() { return products; } public void setProducts(List<String> products) { this.products = products; } /* * Get pagereference based on user product selection */ public PageReference getCasePage(){ PageReference pr; RecordType asoRt = [SELECT Id FROM RecordType WHERE DeveloperName = 'ASO' LIMIT 1]; RecordType cdRt = [SELECT Id FROM RecordType WHERE DeveloperName = 'Contract_Director' LIMIT 1]; RecordType ssRt = [SELECT Id FROM RecordType WHERE DeveloperName = 'SelectSite_Support' LIMIT 1]; if(aso == true){ pr = new PageReference(baseUrl+'/support/500/e?retURL=%2Fsupport%2F500%2Fo&RecordType='+asoRt.Id+'&ent=Case'); } else if(cd == true){ pr = new PageReference(baseUrl+'/support/500/e?retURL=%2Fsupport%2F500%2Fo&RecordType='+cdRt.Id+'&ent=Case'); } else if(ss == true){ pr = new PageReference(baseUrl+'/support/500/e?retURL=%2Fsupport%2F500%2Fo&RecordType='+ssRt.Id+'&ent=Case'); } return pr; } /* * Get baseUrl */ public String getBaseUrl(){ baseUrl = Url.getSalesforceBaseUrl().toExternalForm(); return baseUrl; } }
VF Page
<apex:page controller="LogACaseController" tabStyle="Log_A_Case__tab" action="{!getUserInfo}"> <head> <script> function getCasePage(){ var selection = document.getElementById("{!$component.form.product}").value; alert(selection); getCasePageFunction(selection); } </script> </head> <body> <apex:form id="form"> <apex:actionFunction action="{!getCasePage}" id="getCasePage" name="getCasePageFunction"> <apex:param assignTo="{!selection}" id="selection" name="selection" value=""/> </apex:actionFunction> <br/><span style="font-size: 14px;font-weight: bold;">Select a product:</span> <apex:selectList id="product" value="{!products}" multiselect="false" size="1" onchange="return getCasePage();"> <apex:selectOptions value="{!options}"></apex:selectOptions> </apex:selectList> </apex:form> </body> </apex:page>
Thanks ahead of time!
-
- adrissel
- April 09, 2015
- Like
- 0
- Continue reading or reply
Community Builder Sucks?
I'm sorry, but I am having an amazingly difficult time doing what would seem to be an easy function in the Community Builder. I am using the "Napili" template, which is supposed to support case filing. However, when I am in the Builder, select the "Contact Support" page, click on the "Case Creation" element to the left, and enter "NewCase" into the "Signed-In User Case Action" box it gives me the following error:

And here is a screenshot showing we have an action called "NewCase":

Somebody please tell me that I am missing something super-simple here.
Thanks!
PS - Is it possible to customize which fields are included on the Case Creation page (i.e. can we use a form instead of a simple contact form)?
And here is a screenshot showing we have an action called "NewCase":
Somebody please tell me that I am missing something super-simple here.
Thanks!
PS - Is it possible to customize which fields are included on the Case Creation page (i.e. can we use a form instead of a simple contact form)?
-
- adrissel
- April 01, 2015
- Like
- 0
- Continue reading or reply
Get URL Parameters in Apex Trigger
Hey all. I am trying to write a custom trigger which requires information I have placed as parameters in the referring URL. Here is the code:
Trigger
Class
The result when saving a Case record is "Error: Invalid Data. Review all error messages below to correct your data. Apex trigger AddActivity caused an unexpected exception, contact your administrator: AddActivity: execution of BeforeInsert caused by: System.NullPointerException: Attempt to de-reference a null object: Class.AddActivity.getUrlInfo: line 5, column 1".
With every debug I do and attempt to pull URL parameters using URL methods, Site methods, whatever...none of them produce what I need. Here is an example of a URL I have:
Is there no way to do this with a Trigger?
Thanks!!
Trigger
trigger AddActivity on Case (before insert) { List<Case> cases = Trigger.new; Case c = cases[0]; AddActivity aa = new AddActivity(); Map<String,Id> urlInfo = aa.getUrlInfo(); system.debug('-------------------> urlInfo: '+urlInfo); }
Class
public class AddActivity{ public Map<String,Id> getUrlInfo(){ String origin = ApexPages.currentPage().getParameters().get('origin'); Id accId = ApexPages.currentPage().getParameters().get('def_account_id'); Map<String,Id> urlInfo = new Map<String,Id>{ 'origin' => origin, 'accId' => accId }; return urlInfo; } }
The result when saving a Case record is "Error: Invalid Data. Review all error messages below to correct your data. Apex trigger AddActivity caused an unexpected exception, contact your administrator: AddActivity: execution of BeforeInsert caused by: System.NullPointerException: Attempt to de-reference a null object: Class.AddActivity.getUrlInfo: line 5, column 1".
With every debug I do and attempt to pull URL parameters using URL methods, Site methods, whatever...none of them produce what I need. Here is an example of a URL I have:
https://cs24.salesforce.com/500/e?retURL=%2F500%2Fo&RecordType=01230000000n2BN&def_account_id=00130000003zgQYAAY&def_contact_id=003a000001mAJxpAAG&ent=Case&origin=Five9I need to be able to pull the "query" portion of it and parse the data from there (everything after the ?).
Is there no way to do this with a Trigger?
Thanks!!
-
- adrissel
- March 04, 2015
- Like
- 0
- Continue reading or reply
Home Page Sidebar Component
Hey all,
I want to implement a component in the sidebar of my home page for searching Contacts and Accounts. I have a VF page with an associated controller that I want to use for this component (the search functionality is built in there). However, I am experiencing an issue that I can't see how to fix. When the search criteria is entered and the search button clicked, the component in the sidebar is what is refreshed with the resulting data, not the main page.
How can I cause a sidebar component to refresh and display data on the main page?
Thanks!
Adam
I want to implement a component in the sidebar of my home page for searching Contacts and Accounts. I have a VF page with an associated controller that I want to use for this component (the search functionality is built in there). However, I am experiencing an issue that I can't see how to fix. When the search criteria is entered and the search button clicked, the component in the sidebar is what is refreshed with the resulting data, not the main page.
How can I cause a sidebar component to refresh and display data on the main page?
Thanks!
Adam
-
- adrissel
- February 27, 2015
- Like
- 0
- Continue reading or reply
Home Page Search Component
Hey all,
I want to implement a component in the sidebar of my home page for searching Contacts and Accounts. I have a VF page with an associated controller that I want to use for this component (the search functionality is built in there). However, I am experiencing an issue that I can't see how to fix. When the search criteria is entered and the search button clicked, the component in the sidebar is what is refreshed with the resulting data, not the main page.
How can I cause a sidebar component to refresh and display data on the main page?
Thanks!
Adam
I want to implement a component in the sidebar of my home page for searching Contacts and Accounts. I have a VF page with an associated controller that I want to use for this component (the search functionality is built in there). However, I am experiencing an issue that I can't see how to fix. When the search criteria is entered and the search button clicked, the component in the sidebar is what is refreshed with the resulting data, not the main page.
How can I cause a sidebar component to refresh and display data on the main page?
Thanks!
Adam
-
- adrissel
- February 25, 2015
- Like
- 0
- Continue reading or reply
Home Page Component - Redirect?
Hey all,
There are two functions I am attempting to perform, the first of which is the desired and the second of which is the "I'll settle for it" option.
Is it possible to:
(1) Create a custom home page component (sidebar) of some sort that invokes and posts data to a VF page in the MAIN BODY of the screen (i.e. it doesn't render it in the sidebar itself.)?
(2) Create a custom home page component (sidebar) that simply causes the ENTIRE PAGE to refresh (not just the component in the sidebar)?
Here is the code for an example of #2:
How can I accomplish this?
There are two functions I am attempting to perform, the first of which is the desired and the second of which is the "I'll settle for it" option.
Is it possible to:
(1) Create a custom home page component (sidebar) of some sort that invokes and posts data to a VF page in the MAIN BODY of the screen (i.e. it doesn't render it in the sidebar itself.)?
(2) Create a custom home page component (sidebar) that simply causes the ENTIRE PAGE to refresh (not just the component in the sidebar)?
Here is the code for an example of #2:
<apex:page standardController="User" extensions="Five9ScreenPop"> <script type="text/javascript"> function redirect(){ window.top.location.href("https://c.cs24.visual.force.com/apex/Five9_Select_Pop?ANI=9999999999"); return false; } </script> <apex:form id="searchForm"> <center><apex:commandButton value="Search Contacts & Accounts" action="redirect();"/></center> </apex:form> </apex:page>When this button is clicked the small little section of the home page component in the sidebar is what is redirected, not the entire page.
How can I accomplish this?
-
- adrissel
- February 20, 2015
- Like
- 0
- Continue reading or reply
SOSL Query for Contacts by Account Name
Hey all. I am trying to refine a search functionality I have developed. I want the search string the user enters to search ALL FIELDS to return as many relevant results as possible. However, I am expecting certain data to show that aren't. For example, I have an account with the Account Name of "Worldwide Acme Holdings". The user is entering the search string "acme". There are lots of Contacts associated with that account. However, the search results do not yield any of those contacts. Here is my query:
Am I doing something wrong here? Technically the field with the Account Name label in SF is an Id/Lookup field. Is that why? Any viable workarounds?
Thanks!
allAccsCons = [FIND :searchString IN FIELDS RETURNING Contact(Name,Id,AccountId,Email,Phone,Account.Name),Account(Id,Name,Type,BillingCity,BillingState,Industry)];It doesn't seem that the SOSL query is looking at the "Account.Name" value for the Contact sObject. The account results themselves do contain the Account mentioned above. But, I am wanting a contact list as well of all contacts who are part of that account.
Am I doing something wrong here? Technically the field with the Account Name label in SF is an Id/Lookup field. Is that why? Any viable workarounds?
Thanks!
-
- adrissel
- February 19, 2015
- Like
- 0
- Continue reading or reply
Setting baseUrl for Test Class
Hey all,
I am writing a test class and need to know how to set the baseUrl based on the following method in my controller:
"System.StringException: Starting position out of bounds: -5"
Test Class:
How do I set the baseUrl for my testing here? Do I need to pass a starting URL to the controller? How do I do that?
Thanks!
I am writing a test class and need to know how to set the baseUrl based on the following method in my controller:
public String getBaseUrl(){ vfUrl = Url.getSalesforceBaseUrl().toExternalForm(); Integer iIndex = vfUrl.indexOf('.visual'); instance = vfUrl.substring((iIndex-4),(iIndex)); baseUrl = 'https://'+instance+'.salesforce.com'; return baseUrl; }This method is built to convert the VF page url it begins with into the simple instance URL. However, when I run the following test class I get the error:
"System.StringException: Starting position out of bounds: -5"
Test Class:
@isTest private class Five9ScreenPopTest{ @isTest static void testFive9ScreenPop(){ CreateUser cu = new CreateUser(); User u = cu.createUser(); ApexPages.StandardController cont; System.RunAs(u){ String ani = '8005551212'; Test.setCurrentPage(pageRef); Five9ScreenPop f9sp = new Five9ScreenPop(cont); PageReference numCases = f9sp.NumCases(); } } }NumCases() is a method within the Five9ScreenPop class.
How do I set the baseUrl for my testing here? Do I need to pass a starting URL to the controller? How do I do that?
Thanks!
-
- adrissel
- February 03, 2015
- Like
- 0
- Continue reading or reply
SOQL Query for Contacts with no Accounts
Hey all,
I am trying to perform a SOQL query in my controller to pull all Contacts in my org that have no associated AccountId. Somehow some of my users, without access to the API, were able to create orphaned Contacts (Contacts without an Account selected upon creation). This is breaking some custom Apex/VF we have programmed because of various Exceptions including "de-reference null object", et al.
I tried searching the web for some answer to this, but couldn't come up with anything. When I perform the SOQL query it returns no information. As soon as I add an account to the Contact in question it pulls perfectly with the query.
Can anyone tell me if what I am trying to do is even possible? Is there a restriction with SOQL that only allows Contacts to be pulled IF they have an Account associated with them? Is there any viable workaround?
Thanks!
Adam
I am trying to perform a SOQL query in my controller to pull all Contacts in my org that have no associated AccountId. Somehow some of my users, without access to the API, were able to create orphaned Contacts (Contacts without an Account selected upon creation). This is breaking some custom Apex/VF we have programmed because of various Exceptions including "de-reference null object", et al.
I tried searching the web for some answer to this, but couldn't come up with anything. When I perform the SOQL query it returns no information. As soon as I add an account to the Contact in question it pulls perfectly with the query.
Can anyone tell me if what I am trying to do is even possible? Is there a restriction with SOQL that only allows Contacts to be pulled IF they have an Account associated with them? Is there any viable workaround?
Thanks!
Adam
-
- adrissel
- February 03, 2015
- Like
- 0
- Continue reading or reply
apex:commandLink not working per documentation - HELP!!
I have the following VF code:
When I load my VF page nothing happens. No redirect, no nothing.
What am I doing wrong here?
Thanks!!
<apex:page controller="Five9ScreenPop"> <head></head> <body> <apex:form> <apex:commandLink name="link" action="{!NewCase}" /> </apex:form> </body> </apex:page>Controller:
public with sharing class Five9ScreenPop{ public PageReference NewCase(){ PageReference pr = new PageReference('http://www.google.com'); pr.setRedirect(true); return pr; } }The SF documentation on <apex:commandLink> says "A link that executes an action defined by a controller, and then either refreshes the current page, or navigates to a different page based on the PageReference variable that is returned by the action." (http://www.salesforce.com/docs/developer/pages/Content/pages_compref_commandLink.htm)
When I load my VF page nothing happens. No redirect, no nothing.
What am I doing wrong here?
Thanks!!
-
- adrissel
- January 29, 2015
- Like
- 0
- Continue reading or reply
Conditional Statements in VF Email Template not working
Hello,
I have the following code in my VF Email Template:
I have also tried the following:
I have read other articles that say to include an exclamation point in front of the "IF", but when I do that I get the following error:
Any help?
I have the following code in my VF Email Template:
<apex:outputText rendered="{IF(!relatedTo.RecordTypeId = '012a00000018Ens')}">{!relatedTo.id}</apex:outputText>The relatedTo type here is "Case". The goal here is to have the VF Email Template send to an external Contact when an agent makes a new public comment on the Case. The above format does absolutely nothing when I do verify merge field tests.
I have also tried the following:
<div style="{IF(!relatedTo.RecordTypeId = '012a00000018Ens')},'display:block;','display:none;'">{!relatedTo.id}</div>Again, nothing.
I have read other articles that say to include an exclamation point in front of the "IF", but when I do that I get the following error:
Error: Incorrect parameter type for function 'not()'. Expected Boolean, received TextI really need to get this to work asap.
Any help?
-
- adrissel
- January 19, 2015
- Like
- 0
- Continue reading or reply
Urgent help! - Case Assignment Notifications Aren't Being Triggered
We are using Apex and VF for a Case Creation page for our customers on the community. In the code we have the following, per Salesforce's documentation:
These notifications are extremely important to our case-handling procedures here. When I create test cases directly in Salesforce and use the assignment rules the notifications work perfectly. Only cases file on the customer community prevent this.
Can anyone explain why this isn't working and help me with a fix?
Thanks!!!
Database.DMLOptions dmo = new Database.DMLOptions(); dmo.assignmentRuleHeader.useDefaultRule= true; dmo.EmailHeader.triggerAutoResponseEmail = true; dmo.EmailHeader.triggerOtherEmail = true; dmo.EmailHeader.triggerUserEmail = true; curCase.setOptions(dmo);This works PERFECTLY as far as the case assignment rules go. However, on most of the rules we have there are also automated notifications that are supposed to be sent immediately upon assignment to that queue/individual. For some reason, only with cases filed via the VF page, these notifications aren't sent. The cases are assigned properly, but no notifications.
These notifications are extremely important to our case-handling procedures here. When I create test cases directly in Salesforce and use the assignment rules the notifications work perfectly. Only cases file on the customer community prevent this.
Can anyone explain why this isn't working and help me with a fix?
Thanks!!!
-
- adrissel
- November 21, 2014
- Like
- 1
- Continue reading or reply
View Email on apex:detail Case Page
I have a visualforce page that I am using the <apex:detail> functionality on for the Case Object. Everything displays very nicely, including the list of any emails sent to/from the case. One problem, the Subject lines that are supposed to be linked to the actual email itself don't work. Here is an example of what one looks like:

When I click on that link it does absolutely nothing. When I hover over the link the following is displayed in the browser:
Can someone help me with this? I need our customers to have the ability to see the content of the emails associated with the case.
Thanks!!
When I click on that link it does absolutely nothing. When I hover over the link the following is displayed in the browser:
javascript:srcUp(%27%2Fss%2F02s190000004il2%3Fisdtp%3Dvw%27);Whatever this link is it does not point to the case email itself.
Can someone help me with this? I need our customers to have the ability to see the content of the emails associated with the case.
Thanks!!
-
- adrissel
- November 20, 2014
- Like
- 0
- Continue reading or reply
Set pathPrefix for Test Classes
I have classes that perform different functions based on what the path prefix is for the site the user is logged into. I am trying to write a test class to cover all the code for these various scenarios. But, no matter what I try I cannot SET the pathPrefix to a certain value to allow the test class to cover all the code.
Can someone tell me if this is possible and if so, how to do it?
Thanks!!
Can someone tell me if this is possible and if so, how to do it?
Thanks!!
-
- adrissel
- November 18, 2014
- Like
- 0
- Continue reading or reply
Reference index of list
I need to be able to reference the index of a certain value in Visualforce, not the label. Here is an example:
In the example above there is usually a label of the object for "Name" that would get pulled in. However, I had to build a custom list in my controller which doesn't have labels for each index value. I need something like:
Nothing I try is working. How can I just call the index place of the value in the list instead of calling it by a label?
Thanks!
<apex:pageBlockTable value="{!allData}" var="d" id="theTable"> <apex:column > <apex:facet name="header">Contact Name</apex:facet> <apex:outputText value="{!d.Name}"/> </apex:column> <apex:pageBlockTable
In the example above there is usually a label of the object for "Name" that would get pulled in. However, I had to build a custom list in my controller which doesn't have labels for each index value. I need something like:
<apex:pageBlockTable value="{!allData}" var="d" id="theTable"> <apex:column > <apex:facet name="header">Contact Name</apex:facet> <apex:outputText value="{!d.[index#]}"/> </apex:column> <apex:pageBlockTable
Nothing I try is working. How can I just call the index place of the value in the list instead of calling it by a label?
Thanks!
-
- adrissel
- November 13, 2014
- Like
- 0
- Continue reading or reply
Duplicate "Ideas" functionality in Visualforce
I have a customer-facing community. Each page of the community is made up of custom VF code. I would like to add a tab on my home page for "Ideas" that, when clicked, basically has the exact same appearance and functionality of the default "Ideas" tab in Salesforce. Here is a screenshot of what I want to see:

I want the same functionality...promote...demote...comment...etc.
Is this possible? Can I basically duplicate this functionality in VF?
Thanks,
Adam
I want the same functionality...promote...demote...comment...etc.
Is this possible? Can I basically duplicate this functionality in VF?
Thanks,
Adam
-
- adrissel
- October 30, 2014
- Like
- 0
- Continue reading or reply
Ideas Visualforce Page instructions confusing!!!
I am trying to create a VF page that is essentially identical to the standard Salesforce Ideas page (Zones, tabs, et al). To get started I am trying to follow the instructions for this laid out here: http://www.salesforce.com/us/developer/docs/pages/index.htm (search for Ideas).
There the following VF code is listed:
When I attempt to use this I get the error:
I am totally confused!!! Do I need a separate VF page named "listPage" (I tried a blank page with that name and it still threw the same error).
(1) Can I even create a VF page that is a duplicate (or as close as possible) to the Standard Ideas page?
(2) How can I do that?
Thanks!!!
There the following VF code is listed:
<!-- page named listPage --> <apex:page standardController="Idea" extensions="MyIdeaListExtension" recordSetVar="ideaSetVar"> <apex:pageBlock > <ideas:listOutputLink sort="recent" page="listPage">Recent Ideas </ideas:listOutputLink> | <ideas:listOutputLink sort="top" page="listPage">Top Ideas </ideas:listOutputLink> | <ideas:listOutputLink sort="popular" page="listPage">Popular Ideas </ideas:listOutputLink> | <ideas:listOutputLink sort="comments" page="listPage">Recent Comments </ideas:listOutputLink> </apex:pageBlock> <apex:pageBlock > <apex:dataList value="{!modifiedIdeas}" var="ideadata"> <ideas:detailoutputlink ideaId="{!ideadata.id}" page="viewPage"> {!ideadata.title}</ideas:detailoutputlink> </apex:dataList> </apex:pageBlock> </apex:page>
When I attempt to use this I get the error:
Error: Unknown page listPage referenced by attribute page in <ideas:listOutputLink> in listPage at line 3 column 61
I am totally confused!!! Do I need a separate VF page named "listPage" (I tried a blank page with that name and it still threw the same error).
(1) Can I even create a VF page that is a duplicate (or as close as possible) to the Standard Ideas page?
(2) How can I do that?
Thanks!!!
-
- adrissel
- October 27, 2014
- Like
- 0
- Continue reading or reply
Ideas Visualforce Page instructions confusing!!!
I am trying to create a VF page that is essentially identical to the standard Salesforce Ideas page (Zones, tabs, et al). To get started I am trying to follow the instructions for this laid out here: http://www.salesforce.com/us/developer/docs/pages/index.htm (search for Ideas).
There the following VF code is listed:
(1) Can I even create a VF page that is a duplicate (or as close as possible) to the Standard Ideas page?
(2) How can I do that?
Thanks!!!
There the following VF code is listed:
<!-- page named listPage --> <apex:page standardController="Idea" extensions="MyIdeaListExtension" recordSetVar="ideaSetVar"> <apex:pageBlock > <ideas:listOutputLink sort="recent" page="listPage">Recent Ideas </ideas:listOutputLink> | <ideas:listOutputLink sort="top" page="listPage">Top Ideas </ideas:listOutputLink> | <ideas:listOutputLink sort="popular" page="listPage">Popular Ideas </ideas:listOutputLink> | <ideas:listOutputLink sort="comments" page="listPage">Recent Comments </ideas:listOutputLink> </apex:pageBlock> <apex:pageBlock > <apex:dataList value="{!modifiedIdeas}" var="ideadata"> <ideas:detailoutputlink ideaId="{!ideadata.id}" page="viewPage"> {!ideadata.title}</ideas:detailoutputlink> </apex:dataList> </apex:pageBlock> </apex:page>When I attempt to use this I get the error:
Error: Unknown page listPage referenced by attribute page in <ideas:listOutputLink> in listPage at line 3 column 61I am totally confused!!! Do I need a separate VF page named "listPage" (I tried a blank page with that name and it still threw the same error).
(1) Can I even create a VF page that is a duplicate (or as close as possible) to the Standard Ideas page?
(2) How can I do that?
Thanks!!!
-
- adrissel
- October 22, 2014
- Like
- 0
- Continue reading or reply
Test class just not working!
I have a VF page I created for users to quickly create common Cases. It has a controller for the actual Case-creation portion, et al. I am trying to write a test class to get code coverage and for some reason it is just failing over and over. No matter what modifications I have attempted I get the exact same error. Here are the relevant code snippets with my question following:
VF Page:
Controller:
Test Class:
The following error is what is returned in the Apex Test Execution:
Long story short, despite the fact that the "acc" and "con" variables are being passed correctly in the test class to the "createCase()" function, the query I am pulling for the Account in the controller isn't finding any data. (It returns data just fine when the EXACT SAME data is entered on the actual VF page).
Please help.
Thanks!!
VF Page:
<apex:page standardcontroller="Case" extensions="SIMSQuickCreate"> <script type="text/javascript"> function createCase(cancel) { var supplier = document.getElementById('{!$Component.form.block.section1.supplierInput}').value; var acc = document.getElementById('{!$Component.form.block.section1.accInput}').value; var conPerson = document.getElementById('{!$Component.form.block.section1.conPersonInput}').value; var con = document.getElementById('{!$Component.form.block.section1.conInput}').value; var conPersonPhone = document.getElementById('{!$Component.form.block.section1.conPersonPhoneInput}').value; var conPersonEmail = document.getElementById('{!$Component.form.block.section1.conPersonEmailInput}').value; var sub = document.getElementById('{!$Component.form.block.section2.subInput}').value; var descr = document.getElementById('{!$Component.form.block.section2.descrInput}').value; var cat = document.getElementById('{!$Component.form.block.section3.catInput}').value; var subCat = document.getElementById('{!$Component.form.block.section3.subCatInput}').value; if(cancel == 1) { cancelFunction(); } else { if (supplier.toUpperCase() != 'UNKNOWN' && (conPerson == '' || conPersonPhone == '' || conPersonEmail == '')) { alert("Known Suppliers require a Contact Person, Contact Person Phone, and Contact Person Email. If the Supplier is unknown please enter 'Unknown'."); } else { createFunction(supplier,acc,conPerson,con,conPersonPhone,conPersonEmail,sub,descr,cat,subCat); } } return false; } </script> <apex:form id="form"> <apex:actionFunction name="createFunction" action="{!createCase}" rerender="form"> <apex:param id="supplier" assignTo="{!supplier}" name="supplier" value="" /> <apex:param id="acc" assignTo="{!acc}" name="acc" value="" /> <apex:param id="conPerson" assignTo="{!conPerson}" name="conPerson" value="" /> <apex:param id="con" assignTo="{!con}" name="con" value="" /> <apex:param id="conPersonPhone" assignTo="{!conPersonPhone}" name="conPersonPhone" value="" /> <apex:param id="conPersonEmail" assignTo="{!conPersonEmail}" name="conPersonEmail" value="" /> <apex:param id="sub" assignTo="{!sub}" name="sub" value="" /> <apex:param id="descr" assignTo="{!descr}" name="descr" value="" /> <apex:param id="cat" assignTo="{!cat}" name="cat" value="" /> <apex:param id="subCat" assignTo="{!subCat}" name="subCat" value="" /> </apex:actionFunction> <apex:actionFunction name="cancelFunction" action="{!cancelCreate}" immediate="true"/> <apex:pageBlock id="block" title="SIMS Quick Create" mode="edit"> <center><apex:commandButton value="Create" onclick="return createCase();"/><apex:commandButton value="Cancel" onclick="return createCase(1);"/></center> <apex:pageBlockSection id="section1" title="Supplier Information" columns="2"> <apex:inputField id="supplierInput" value="{!Case.Supplier__c}"/> <apex:inputField id="accInput" value="{!Case.AccountId}" required="true"/> <apex:inputField id="conPersonInput" value="{!Case.Contact_Person__c}"/> <apex:inputField id="conInput" value="{!Case.ContactId}" required="true"/> <apex:inputField id="conPersonPhoneInput" value="{!Case.Contact_Person_Phone__c}"/> <apex:pageBlockSectionItem /> <apex:inputField id="conPersonEmailInput" value="{!Case.Contact_Person_Email__c}"/> <apex:pageBlockSectionItem /> </apex:pageBlockSection> <apex:pageBlockSection id="section2" title="Email-To-Case Information"> <apex:inputField id="subInput" value="{!Case.Subject}" required="true"/> <apex:pageBlockSectionItem /> <apex:inputField id="descrInput" value="{!Case.Description}"/> </apex:pageBlockSection> <apex:pageBlockSection id="section3" title="SIMS Detail"> <apex:inputField id="catInput" value="{!Case.SIMS_Category__c}" required="true"/> <apex:pageBlockSectionItem /> <apex:inputField id="subCatInput" value="{!Case.SIMS_Sub_category__c}" required="true"/> </apex:pageBlockSection> <center><apex:commandButton value="Create" onclick="return createCase();"/><apex:commandButton value="Cancel" onclick="return createCase(1);"/></center> </apex:pageBlock> </apex:form> </apex:page>
Controller:
public with sharing class SIMSQuickCreate{ Apexpages.StandardController setCon; // SET VARIABLES public String supplier {get; set;} public String acc {get; set;} public String conPerson {get; set;} public String con {get; set;} public String conPersonPhone {get; set;} public String conPersonEmail {get; set;} public String sub {get; set;} public String descr {get; set;} public String cat {get; set;} public String subCat {get; set;} // CREATE NEW CASE VARIABLE public Case c = new Case(); // INSTANTIATE CONTROLLER public SIMSQuickCreate(Apexpages.StandardController controller) { setCon = controller; } public Pagereference createCase(){ system.debug('--------------------------------------------------------------> Here is the value: '+acc+' '+con); // GET ACCOUNTID FROM ACCOUNT NAME ENTERED List<Account> accList = new List<Account>{[SELECT Name,Id FROM Account WHERE Name =: acc]}; Id accId = accList[0].Id; // GET CONTACTID FROM CONTACT NAME ENTERED List<Contact> conList = new List<Contact>{[SELECT Id FROM Contact WHERE Name =: con]}; Id conId = conList[0].Id; // SET DEFAULT FIELD VALUES c.Status = 'Active in Support'; c.Origin = 'Phone'; c.Site_Outage__c = 'No'; c.Severity_Level__c = 'Severity 4'; c.Plan_Sent__c = date.today(); c.Date_Issue_Originated__c = date.today(); c.Product__c = 'Total Supplier Manager'; c.SIMS_Root__c = 'Question/Training'; c.Reported_by__c = 'No'; // SET FIELD VALUES FROM USER INPUT c.AccountId = accId; c.ContactId = conId; c.Supplier__c = supplier; c.Contact_Person__c = conPerson; c.Contact_Person_Phone__c = conPersonPhone; c.Contact_Person_Email__c = conPersonEmail; c.Subject = sub; c.Description = descr; c.SIMS_Category__c = cat; c.SIMS_Sub_category__c = subCat; // INSERT NEWLY CREATED CASE insert c; // SET CASE ID FOR REDIRECT URL Id caseId = c.Id; Pagereference casePage = new Pagereference('/'+caseId); casePage.setRedirect(true); return casePage; } public Pagereference cancelCreate(){ return new Pagereference('/'+Case.getSObjectType().getDescribe().getKeyPrefix()+'?fcf='+ApexPages.currentPage().getParameters().get('retUrl')); } }
Test Class:
@isTest private class SIMSQuickCreateTest { static testMethod void testSIMSQuickCreate() { // GET System Administrator PROFILE FOR TESTING Profile pro = [SELECT Id FROM Profile WHERE Name = 'System Administrator' LIMIT 1]; PageReference pageRef = Page.SIMS_Quick_Create; List<Case> caseList = new List<Case>(); // CREATE TEST USER FOR TESTING User u = new User( alias = 'u2', email = 'test@test.com', emailencodingkey = 'UTF-8', FirstName = 'test', lastname='U', languagelocalekey = 'en_US', localesidkey = 'en_US', profileid = pro.Id, timezonesidkey = 'America/Los_Angeles', CommunityNickname = 'u2', isActive = true, username = 'testSciquest@test.com' ); insert u; System.RunAs(u){ Apexpages.StandardController controller; SIMSQuickCreate sqc = new SIMSQuickCreate(controller); String acc = 'Generic Supplier'; String con = 'Supplier Issue'; sqc.createCase(); sqc.cancelCreate(); } } }
The following error is what is returned in the Apex Test Execution:
Error Message: System.QueryException: List has no rows for assignment to SObject Stack Trace: Class.SIMSQuickCreate.createCase: line 38, column 1 Class.SIMSQuickCreateTest.testSIMSQuickCreate: line 58, column 1
Long story short, despite the fact that the "acc" and "con" variables are being passed correctly in the test class to the "createCase()" function, the query I am pulling for the Account in the controller isn't finding any data. (It returns data just fine when the EXACT SAME data is entered on the actual VF page).
Please help.
Thanks!!
-
- adrissel
- October 07, 2014
- Like
- 0
- Continue reading or reply
Dataloader.io giving strange error on delete call...anyone seen this?!
I am getting the below error when trying to delete records using dataloader.io. The file is only a list of EmailMessage Ids. Any ideas what this could be?
expected name start and not < (position: TEXT seen ...<id xsi:nil="true"/><success>false</<... @1:32972)
-
- adrissel
- September 23, 2014
- Like
- 0
- Continue reading or reply
Urgent help! - Case Assignment Notifications Aren't Being Triggered
We are using Apex and VF for a Case Creation page for our customers on the community. In the code we have the following, per Salesforce's documentation:
These notifications are extremely important to our case-handling procedures here. When I create test cases directly in Salesforce and use the assignment rules the notifications work perfectly. Only cases file on the customer community prevent this.
Can anyone explain why this isn't working and help me with a fix?
Thanks!!!
Database.DMLOptions dmo = new Database.DMLOptions(); dmo.assignmentRuleHeader.useDefaultRule= true; dmo.EmailHeader.triggerAutoResponseEmail = true; dmo.EmailHeader.triggerOtherEmail = true; dmo.EmailHeader.triggerUserEmail = true; curCase.setOptions(dmo);This works PERFECTLY as far as the case assignment rules go. However, on most of the rules we have there are also automated notifications that are supposed to be sent immediately upon assignment to that queue/individual. For some reason, only with cases filed via the VF page, these notifications aren't sent. The cases are assigned properly, but no notifications.
These notifications are extremely important to our case-handling procedures here. When I create test cases directly in Salesforce and use the assignment rules the notifications work perfectly. Only cases file on the customer community prevent this.
Can anyone explain why this isn't working and help me with a fix?
Thanks!!!
-
- adrissel
- November 21, 2014
- Like
- 1
- Continue reading or reply
Can't access variable in method
My question is of a specific and general nature. First the specific aspect. I have the following code in my controller:
Ignoring other aspects of the code that may be missing (I didn't paste the entire controller) why in the world is it giving me a Compile Error for both the "setRootCat" and "prefix" variables saying that they "don't exist"? Both variables are declared public. Shouldn't I be able to access them later in the controller?
The general aspect of my question is why Apex doesn't allow simple usage of a variable across various functions in a class. PHP, Java, Javascript...they all allow this, but declaring and using variables in various Apex methods in a class seems very cumbersome. Maybe I'm missing something simple?
Thanks ahead of time!
public class ListVisableCategories { // INSTANTIATE CONTROLLER public ListVisableCategories(){} // SET VARIABLES public Set<String> setRootCat{get;set;} public String prefix = Site.getPathPrefix(); // DESCRIBE VISABLE CATEGORIES public static List<String> describeVisibleCategories(Map<String, String> mLabelCat, Map<String, List<String>> mCatStructure, Map<String, String> mParentCategory){ if (prefix == '/xyz') { Set<String> setRootCat = new Set<String>{'Buyer_Articles'}; } else if (prefix == '/abc') { Set<String> setRootCat = new Set<String>{'All'}; } List<String> listVisableCategories = new List<String>(); ........ // IF APPLICABLE, GATHER ALL CHILD CATEGORIES if(setRootCat.contains(dc.getName())){ for(DataCategory dcChild : dc.getChildCategories()){ listVisableCategories.add(dcChild.getName()); } } else{ listVisableCategories.add(dc.getName()); } } return listVisableCategories; } }
Ignoring other aspects of the code that may be missing (I didn't paste the entire controller) why in the world is it giving me a Compile Error for both the "setRootCat" and "prefix" variables saying that they "don't exist"? Both variables are declared public. Shouldn't I be able to access them later in the controller?
The general aspect of my question is why Apex doesn't allow simple usage of a variable across various functions in a class. PHP, Java, Javascript...they all allow this, but declaring and using variables in various Apex methods in a class seems very cumbersome. Maybe I'm missing something simple?
Thanks ahead of time!
-
- adrissel
- August 08, 2014
- Like
- 1
- Continue reading or reply
Custom button validation and passing selected records
I have placed a custom button on a Case List view. The button, when clicked, needs to validate whether any case records were actually selected. That part is done simply with a Javascript OnClick button with the following code:
The problem is that when validation passes (i.e. it goes to the MyPage visualforce page) the selected records aren't passed along. Here is my VF page thus far:
I have searched the internet for hours on everything I could think of and couldn't find anything to help me.
Can anyone out there offer a solution?
THANKS!!
{!REQUIRESCRIPT ("/soap/ajax/13.0/connection.js")} var selected = {!GETRECORDIDS($ObjectType.Case)}; if (selected[0] == null) { alert("Please select at least one Case.") } else { window.location = 'apex/MyPage'; }
The problem is that when validation passes (i.e. it goes to the MyPage visualforce page) the selected records aren't passed along. Here is my VF page thus far:
<apex:page standardController="Case" recordSetVar="cases"> <apex:form > <apex:pageBlock title="MyPage" mode="edit"> <apex:pageBlockButtons > <apex:commandButton action="{!save}" value="MyButton"/> </apex:pageBlockButtons> <apex:pageBlockSection title="Information" columns="2"> <apex:inputCheckBox value="{!case.test__c}" selected="true" required="true"/> <apex:pageBlockSectionItem /> <apex:inputField value="{!case.test2__c}" showDatePicker="true" required="true"/> <apex:inputField value="{!case.test3__c}" showDatePicker="true" required="true"/> </apex:pageBlockSection> <apex:pageBlockSection title="Selected Cases"> <apex:pageBlockTable value="{!selected}" var="case"> <apex:column value="{!case.casenumber}"/> <apex:column value="{!case.subject}"/> <apex:column value="{!case.status}"/> </apex:pageBlockTable> </apex:pageBlockSection> </apex:pageBlock> </apex:form> </apex:page>The goal is to have the custom button on the List view validate whether records are checked, then when validation passes have those records displayed in the block table on the VF page. I can get one or the other to work, but not both at the same time. If I change the button to go directly to the VF page, the selected records appear perfectly, but no validation occurs (i.e. it allows redirect when no records are selected). If I have the button set to the Javascript code it validates the records but doesn't display the selected records on the VF page.
I have searched the internet for hours on everything I could think of and couldn't find anything to help me.
Can anyone out there offer a solution?
THANKS!!
-
- adrissel
- June 25, 2014
- Like
- 1
- Continue reading or reply
Can't send selectList value to controller via Javascript?
Hey all, I need to pass the set value of one of my selectList options back to a specific method in my controller. It isn't working and I can't find out why. Can someone glance at the code below and tell me what I'm missing here?
Controller
VF Page
Thanks ahead of time!
Controller
public class LogACaseController{ public Boolean aso {get;set;} public Boolean cd {get;set;} public Boolean ss {get;set;} private Id userId {get;set;} public String baseUrl {get;set;} public String selection {get;set;} public List<String> products = new List<String>(); /* * Get ContactId of logged-in User */ public PageReference getUserInfo(){ userId = UserInfo.getUserId(); getPermSets(userId); getBaseUrl(); return null; } /* * Get permission sets of logged-in User */ public void getPermSets(Id userId){ Id asoPsId = [SELECT Id FROM PermissionSet WHERE Name = 'ASO_Community' LIMIT 1].Id; Id ssPsId = [SELECT Id FROM PermissionSet WHERE Name = 'SS_Community' LIMIT 1].Id; Id cdPsId = [SELECT Id FROM PermissionSet WHERE Name = 'CD_Community' LIMIT 1].Id; List<PermissionSetAssignment> asoAssigneeIds = new List<PermissionSetAssignment>([SELECT AssigneeId FROM PermissionSetAssignment WHERE PermissionSetId =: asoPsId]); List<PermissionSetAssignment> ssAssigneeIds = new List<PermissionSetAssignment>([SELECT AssigneeId FROM PermissionSetAssignment WHERE PermissionSetId =: ssPsId]); List<PermissionSetAssignment> cdAssigneeIds = new List<PermissionSetAssignment>([SELECT AssigneeId FROM PermissionSetAssignment WHERE PermissionSetId =: cdPsId]); for(PermissionSetAssignment asoId : asoAssigneeIds){ if(asoId.AssigneeId == userId){ aso = true; } } for(PermissionSetAssignment ssId : ssAssigneeIds){ if(ssId.AssigneeId == userId){ ss = true; } } for(PermissionSetAssignment cdId : cdAssigneeIds){ if(cdId.AssigneeId == userId){ cd = true; } } } /* * Get product options */ public List<SelectOption> getOptions(){ List<SelectOption> options = new List<SelectOption>(); options.add(new SelectOption('none','--None--')); options.add(new SelectOption('aso','Advanced Sourcing Optimizer')); options.add(new SelectOption('cd','Contract Director')); options.add(new SelectOption('ss','eProcurement/SelectSite')); return options; } public List<String> getProducts() { return products; } public void setProducts(List<String> products) { this.products = products; } /* * Get pagereference based on user product selection */ public PageReference getCasePage(){ PageReference pr; RecordType asoRt = [SELECT Id FROM RecordType WHERE DeveloperName = 'ASO' LIMIT 1]; RecordType cdRt = [SELECT Id FROM RecordType WHERE DeveloperName = 'Contract_Director' LIMIT 1]; RecordType ssRt = [SELECT Id FROM RecordType WHERE DeveloperName = 'SelectSite_Support' LIMIT 1]; if(aso == true){ pr = new PageReference(baseUrl+'/support/500/e?retURL=%2Fsupport%2F500%2Fo&RecordType='+asoRt.Id+'&ent=Case'); } else if(cd == true){ pr = new PageReference(baseUrl+'/support/500/e?retURL=%2Fsupport%2F500%2Fo&RecordType='+cdRt.Id+'&ent=Case'); } else if(ss == true){ pr = new PageReference(baseUrl+'/support/500/e?retURL=%2Fsupport%2F500%2Fo&RecordType='+ssRt.Id+'&ent=Case'); } return pr; } /* * Get baseUrl */ public String getBaseUrl(){ baseUrl = Url.getSalesforceBaseUrl().toExternalForm(); return baseUrl; } }
VF Page
<apex:page controller="LogACaseController" tabStyle="Log_A_Case__tab" action="{!getUserInfo}"> <head> <script> function getCasePage(){ var selection = document.getElementById("{!$component.form.product}").value; alert(selection); getCasePageFunction(selection); } </script> </head> <body> <apex:form id="form"> <apex:actionFunction action="{!getCasePage}" id="getCasePage" name="getCasePageFunction"> <apex:param assignTo="{!selection}" id="selection" name="selection" value=""/> </apex:actionFunction> <br/><span style="font-size: 14px;font-weight: bold;">Select a product:</span> <apex:selectList id="product" value="{!products}" multiselect="false" size="1" onchange="return getCasePage();"> <apex:selectOptions value="{!options}"></apex:selectOptions> </apex:selectList> </apex:form> </body> </apex:page>
Thanks ahead of time!
- adrissel
- April 09, 2015
- Like
- 0
- Continue reading or reply
Home Page Sidebar Component
Hey all,
I want to implement a component in the sidebar of my home page for searching Contacts and Accounts. I have a VF page with an associated controller that I want to use for this component (the search functionality is built in there). However, I am experiencing an issue that I can't see how to fix. When the search criteria is entered and the search button clicked, the component in the sidebar is what is refreshed with the resulting data, not the main page.
How can I cause a sidebar component to refresh and display data on the main page?
Thanks!
Adam
I want to implement a component in the sidebar of my home page for searching Contacts and Accounts. I have a VF page with an associated controller that I want to use for this component (the search functionality is built in there). However, I am experiencing an issue that I can't see how to fix. When the search criteria is entered and the search button clicked, the component in the sidebar is what is refreshed with the resulting data, not the main page.
How can I cause a sidebar component to refresh and display data on the main page?
Thanks!
Adam
- adrissel
- February 27, 2015
- Like
- 0
- Continue reading or reply
Home Page Search Component
Hey all,
I want to implement a component in the sidebar of my home page for searching Contacts and Accounts. I have a VF page with an associated controller that I want to use for this component (the search functionality is built in there). However, I am experiencing an issue that I can't see how to fix. When the search criteria is entered and the search button clicked, the component in the sidebar is what is refreshed with the resulting data, not the main page.
How can I cause a sidebar component to refresh and display data on the main page?
Thanks!
Adam
I want to implement a component in the sidebar of my home page for searching Contacts and Accounts. I have a VF page with an associated controller that I want to use for this component (the search functionality is built in there). However, I am experiencing an issue that I can't see how to fix. When the search criteria is entered and the search button clicked, the component in the sidebar is what is refreshed with the resulting data, not the main page.
How can I cause a sidebar component to refresh and display data on the main page?
Thanks!
Adam
- adrissel
- February 25, 2015
- Like
- 0
- Continue reading or reply
SOSL Query for Contacts by Account Name
Hey all. I am trying to refine a search functionality I have developed. I want the search string the user enters to search ALL FIELDS to return as many relevant results as possible. However, I am expecting certain data to show that aren't. For example, I have an account with the Account Name of "Worldwide Acme Holdings". The user is entering the search string "acme". There are lots of Contacts associated with that account. However, the search results do not yield any of those contacts. Here is my query:
Am I doing something wrong here? Technically the field with the Account Name label in SF is an Id/Lookup field. Is that why? Any viable workarounds?
Thanks!
allAccsCons = [FIND :searchString IN FIELDS RETURNING Contact(Name,Id,AccountId,Email,Phone,Account.Name),Account(Id,Name,Type,BillingCity,BillingState,Industry)];It doesn't seem that the SOSL query is looking at the "Account.Name" value for the Contact sObject. The account results themselves do contain the Account mentioned above. But, I am wanting a contact list as well of all contacts who are part of that account.
Am I doing something wrong here? Technically the field with the Account Name label in SF is an Id/Lookup field. Is that why? Any viable workarounds?
Thanks!
- adrissel
- February 19, 2015
- Like
- 0
- Continue reading or reply
Setting baseUrl for Test Class
Hey all,
I am writing a test class and need to know how to set the baseUrl based on the following method in my controller:
"System.StringException: Starting position out of bounds: -5"
Test Class:
How do I set the baseUrl for my testing here? Do I need to pass a starting URL to the controller? How do I do that?
Thanks!
I am writing a test class and need to know how to set the baseUrl based on the following method in my controller:
public String getBaseUrl(){ vfUrl = Url.getSalesforceBaseUrl().toExternalForm(); Integer iIndex = vfUrl.indexOf('.visual'); instance = vfUrl.substring((iIndex-4),(iIndex)); baseUrl = 'https://'+instance+'.salesforce.com'; return baseUrl; }This method is built to convert the VF page url it begins with into the simple instance URL. However, when I run the following test class I get the error:
"System.StringException: Starting position out of bounds: -5"
Test Class:
@isTest private class Five9ScreenPopTest{ @isTest static void testFive9ScreenPop(){ CreateUser cu = new CreateUser(); User u = cu.createUser(); ApexPages.StandardController cont; System.RunAs(u){ String ani = '8005551212'; Test.setCurrentPage(pageRef); Five9ScreenPop f9sp = new Five9ScreenPop(cont); PageReference numCases = f9sp.NumCases(); } } }NumCases() is a method within the Five9ScreenPop class.
How do I set the baseUrl for my testing here? Do I need to pass a starting URL to the controller? How do I do that?
Thanks!
- adrissel
- February 03, 2015
- Like
- 0
- Continue reading or reply
SOQL Query for Contacts with no Accounts
Hey all,
I am trying to perform a SOQL query in my controller to pull all Contacts in my org that have no associated AccountId. Somehow some of my users, without access to the API, were able to create orphaned Contacts (Contacts without an Account selected upon creation). This is breaking some custom Apex/VF we have programmed because of various Exceptions including "de-reference null object", et al.
I tried searching the web for some answer to this, but couldn't come up with anything. When I perform the SOQL query it returns no information. As soon as I add an account to the Contact in question it pulls perfectly with the query.
Can anyone tell me if what I am trying to do is even possible? Is there a restriction with SOQL that only allows Contacts to be pulled IF they have an Account associated with them? Is there any viable workaround?
Thanks!
Adam
I am trying to perform a SOQL query in my controller to pull all Contacts in my org that have no associated AccountId. Somehow some of my users, without access to the API, were able to create orphaned Contacts (Contacts without an Account selected upon creation). This is breaking some custom Apex/VF we have programmed because of various Exceptions including "de-reference null object", et al.
I tried searching the web for some answer to this, but couldn't come up with anything. When I perform the SOQL query it returns no information. As soon as I add an account to the Contact in question it pulls perfectly with the query.
Can anyone tell me if what I am trying to do is even possible? Is there a restriction with SOQL that only allows Contacts to be pulled IF they have an Account associated with them? Is there any viable workaround?
Thanks!
Adam
- adrissel
- February 03, 2015
- Like
- 0
- Continue reading or reply
apex:commandLink not working per documentation - HELP!!
I have the following VF code:
When I load my VF page nothing happens. No redirect, no nothing.
What am I doing wrong here?
Thanks!!
<apex:page controller="Five9ScreenPop"> <head></head> <body> <apex:form> <apex:commandLink name="link" action="{!NewCase}" /> </apex:form> </body> </apex:page>Controller:
public with sharing class Five9ScreenPop{ public PageReference NewCase(){ PageReference pr = new PageReference('http://www.google.com'); pr.setRedirect(true); return pr; } }The SF documentation on <apex:commandLink> says "A link that executes an action defined by a controller, and then either refreshes the current page, or navigates to a different page based on the PageReference variable that is returned by the action." (http://www.salesforce.com/docs/developer/pages/Content/pages_compref_commandLink.htm)
When I load my VF page nothing happens. No redirect, no nothing.
What am I doing wrong here?
Thanks!!
- adrissel
- January 29, 2015
- Like
- 0
- Continue reading or reply
Urgent help! - Case Assignment Notifications Aren't Being Triggered
We are using Apex and VF for a Case Creation page for our customers on the community. In the code we have the following, per Salesforce's documentation:
These notifications are extremely important to our case-handling procedures here. When I create test cases directly in Salesforce and use the assignment rules the notifications work perfectly. Only cases file on the customer community prevent this.
Can anyone explain why this isn't working and help me with a fix?
Thanks!!!
Database.DMLOptions dmo = new Database.DMLOptions(); dmo.assignmentRuleHeader.useDefaultRule= true; dmo.EmailHeader.triggerAutoResponseEmail = true; dmo.EmailHeader.triggerOtherEmail = true; dmo.EmailHeader.triggerUserEmail = true; curCase.setOptions(dmo);This works PERFECTLY as far as the case assignment rules go. However, on most of the rules we have there are also automated notifications that are supposed to be sent immediately upon assignment to that queue/individual. For some reason, only with cases filed via the VF page, these notifications aren't sent. The cases are assigned properly, but no notifications.
These notifications are extremely important to our case-handling procedures here. When I create test cases directly in Salesforce and use the assignment rules the notifications work perfectly. Only cases file on the customer community prevent this.
Can anyone explain why this isn't working and help me with a fix?
Thanks!!!
- adrissel
- November 21, 2014
- Like
- 1
- Continue reading or reply
Reference index of list
I need to be able to reference the index of a certain value in Visualforce, not the label. Here is an example:
In the example above there is usually a label of the object for "Name" that would get pulled in. However, I had to build a custom list in my controller which doesn't have labels for each index value. I need something like:
Nothing I try is working. How can I just call the index place of the value in the list instead of calling it by a label?
Thanks!
<apex:pageBlockTable value="{!allData}" var="d" id="theTable"> <apex:column > <apex:facet name="header">Contact Name</apex:facet> <apex:outputText value="{!d.Name}"/> </apex:column> <apex:pageBlockTable
In the example above there is usually a label of the object for "Name" that would get pulled in. However, I had to build a custom list in my controller which doesn't have labels for each index value. I need something like:
<apex:pageBlockTable value="{!allData}" var="d" id="theTable"> <apex:column > <apex:facet name="header">Contact Name</apex:facet> <apex:outputText value="{!d.[index#]}"/> </apex:column> <apex:pageBlockTable
Nothing I try is working. How can I just call the index place of the value in the list instead of calling it by a label?
Thanks!
- adrissel
- November 13, 2014
- Like
- 0
- Continue reading or reply
File Attachment in Knowledge Articles
I would like to pull the URL for the File Attachment in my Knowledge Article, is this possible? In my article type i created a data Type for File Attachment called TestImage, but unfortunately I'm unable to figure out to retrieve this URL.
I am implemententing a custom Visualforce page for Knowledge. Any assistance would be appreciated. Thanks
I am implemententing a custom Visualforce page for Knowledge. Any assistance would be appreciated. Thanks
- ericmonte
- December 26, 2013
- Like
- 0
- Continue reading or reply