+ Start a Discussion
Jonny SimmoJonny Simmo 
Hello there,

Interested in peoples thoughts on whether it is essential for a company with Salesforce to always have a Salesforce dedicated team.

My company have recently disbanded thier Salesforce team and placed the members in various project teams, the theory being that each project team will have a Salesforce skill set. However, it does leave the question open of who is responsible for managing and monitoring the Saleforce application as a whole?

Anybody had a similar experience?
Any thoughts?

Best Answer chosen by Jonny Simmo
Hi Jonny,

Interesting Question !!!

To answer your question, it depends on the Projects you are handling and the clients for whom you are working for.

With a dedicated team in place:
  • Deliverables can be quick
  • Responsibilities can be clearly defined.
  • Trust and the confidence of the client on the team increases.
Most of the time resources ramp down happens , but disbanding a salesforce team all together is kind of a rare phenomenon.

Again as i said it all depends on the project and Clients.


When talking to another developer today we came across a question that we can't find the answer to so I was hoping someone here knew the answer.  I know that you can create a visualforce page with more than one extension.  My questions are:

1. Why would you use more than one?

2. If you have more that one in what order does visualforce look for your method?

3. What happens if you have a method with the same name on different extensions?

Best Answer chosen by Admin (Salesforce Developers) 



  1. You want to extend a controller with different types of behaviour already implemented in separate Apex classes. Instead of creating one big class you extend them separately keeping it simple and easy to maintain
  2. left to right
  3. leftmost overrides

Read more here -> http://www.salesforce.com/us/developer/docs/pages/Content/pages_controller_extension.htm


HTH / Niklas

Marek Smerak (TH)Marek Smerak (TH) 
I've got an error from last challange in "Developer Console Basics":

"Challenge Not yet complete... here's what's wrong: 
Could not find the contact's name in the debug log. Be sure to run a query for your record, and to write your contact's name to the debug log using the System.debug() method."

But I'm sure that debog log include the correct lastname, first name as requested and use SOSL.

Does anyone else have the same issue?

Best Answer chosen by Marek Smerak (TH)
I've found the solution... 

It seems releated to older dev orgs where you execute the anonymous apex. I've created a new Trailhead Playground, inserted the contact and executed the same anonymous apex. Running the validation to this new playground was positve and I've got the badge!
Lokesh KumarLokesh Kumar 
Can somebody please help me out here how to measure based on the sum of # instead of a count of rows or sum of the amount because on my case # is not appearing on the creating lens window Thanks in advance. PFB more details.

User-added image
Best Answer chosen by Lokesh Kumar
Chris DuarteChris Duarte
Issue resolved. Please sign up for a new Wave Developer Edition to complete the challenges. You can find the Wave Developer Edition signup in this unit: https://trailhead.salesforce.com/modules/wave_analytics_basics/units/wave_start_surfing_the_wave under the topic: Try Wave Analytics with a Developer Edition org

Again, my apologies for this issue.
Albert BarbieriAlbert Barbieri 
I am unable to validate the challenge for "Implement the Flow with Visualforce" in the new "Build an Account Reassignment Wizard" module.

I keep getting the error message "Challenge Not yet complete... here's what's wrong: Couldn't find two users in your org with a 'Salesforce' license. Check the instructions".

The instructions say to give one user a Salesforce license and the second user a Salesforce Platform license. I tried to give the second user a Salesforce license, but there is only one free Salesforce license as the environment only comes with two and one is automatically assigned to the created administrator account.

Can anyone tell me how I can resolve this issue?
Best Answer chosen by Albert Barbieri
John Stevens MVPJohn Stevens MVP
I have been able to get this to work but I'm not happy about it :)

My steps:
Create an unmanaged package, add the flow, and upload
Signup for a new developer org
Install the unmanged package
Activate the flow
Recreate the VF page, VF tab and add the two users in the new dev org.
Run the verification against the new org - it should pass.
Michael Markel JrMichael Markel Jr 
I have tried the recommendations from other posts on this topic. I have created a couple of new DEs to try this out in. I set up the permissions correctly for my account. I added the fields and attachments to be encrypted but when I go into a contact or case the fields are not encrypted. I double-checked to make sure that the System Administrator does not have View Encrypted Data checked and all permission sets assigned to my user also don't have that option checked but the fields are still not encrypted and the trailhead is not validating, I keep getting the error 'The contact mobile phone field does not appear to be encrypted.' I also tried adding new contacts and cases and editing existing ones but still not encrypted.
Best Answer chosen by Michael Markel Jr
Gustavo TandeciarzGustavo Tandeciarz
Hello everyone, I'm getting confused on this module for the mobile section... the directions state to build the lens as follows:
  • Dataset: DTC Opportunity
  • Add Group: Opportunity Owner
  • Change Measure: Count of Rows to Sum of Amount
  • Sort by: Dsc (Descending)
  • Filter by: Industry Equals Engineering
  • Filter by: Won Equals True
  • Chart Type: Horizontal Bar
  • Lens Name: Top Engineering Sales
  • App: My Exploration
I have my criteria setup as follows:

User-added image
User-added imageUser-added imageUser-added imageUser-added image

I am just not sure where I am going wrong!  I've tried deleting it and reconstructing it, but every time I get the error "Challenge Not yet complete... here's what's wrong: The 'Top Engineering Sales' lens does not appear to have the correct query. Please check the requirements and ensure everything is setup correctly."

Any help would be appreciated!
Best Answer chosen by S.Turbojet
Folks, here's an update: The challenge for Explore Insights on the Go is still not working. The validation code behind the challenge is faulty. Really sorry about that. We're going to fix it sometime next week, we hope. In the mean time, here's a workaround so you don't have to wait for the fix: create the lens for the challenge on your computer instead of your phone. I know, I know, it's sacrilege to suggest that for a mobile unit -- but we want you to earn your badge. You definitely deserve it after the trouble you went through with this challenge.

When we release the update next week, you'll be required to use the mobile app to create the lens to pass the challenge. For now, create that same lens on desktop and you should be good to go. Here's what it looks like. Don't forget to sort!

User-added image

Thank you so much for your patience. My apologies for the poor experience. Pro Tip: Wave mobile app uses compact form for its queries, which is ever-so-slightly different from desktop. Lesson learned. :) Also, if you haven't already noticed, we just released five new Analytics modules this week -- including dashboard navigation, data integration, dashboard designer, Wave admin, and a new product called Smart Data Discovery!

I'm just learning, so please bear with me.  I'm making a case-merge application.  The user selects cases to be merged and presses a list button.  This launches a VF page that displays the selected cases in an apex:pageBlockTable.


I would now like to add a number of summary columns to this table.  The summary columns show how many emails, tasks, attachments, etc.. each of the cases to be merged has.


In my VF page I have:


<apex:pageBlockTable value="{!SelectedCases}" var="item">

  <apex:column value="{!item.CaseNumber}"/>

  <apex:column value="{!item.Subject}"/>




In my class I have:


public Case[] getSelectedCases() {

  Set<Id> selectedCaseIds = new Set<Id>();

  for (SObject c : setCon.getSelected()) {



  SObject[] items = [SELECT c.Id, c.CaseNumber, c.Subject, c.Contact.Name, c.Account.Name, 

    c.CreatedDate, c.Origin, c.LastModifiedDate FROM Case c WHERE Id IN :selectedCaseIds];

  return items;




I now would like to add a number columns to my table that are the results of queries like:

SELECT count() FROM CaseComment cc WHERE cc.ParentId = EACH CASE ID IN THE ABOVE SET;


so my ultimate display shows


<apex:pageBlockTable value="{!SelectedCases}" var="item">

  <apex:column value="{!item.CaseNumber}"/>

  <apex:column value="{!item.Subject}"/>

  <apex:column value="{!item.CountOfCaseComments}" />



How do I make a 'custom' object that will be rendered in the pageBlockTable where I can add attributes from various sources?




Best Answer chosen by Admin (Salesforce Developers) 

You can't pass parameters back from the page to getters I'm afraid.


If it were me, I'd create a custom class that contains the case sobject and any associated total information.  Rather than returning a list of cases, your getter would construct a list of instances of the custom class. Then change the column output in the VF page to pull the appropriate data.


E.g. if your custom class contains a getCase() method to retrieve the case info, and a getTotal to retrieve the total, you'd have something like:



<apex:pageBlockTable value="{!SelectedCases}" var="item">
  <apex:column value="{!item.case.Subject}"/>
  <apex:column headerValue="Contact Name" value="{!item.case.Contact.Name}"/>
  <apex:column value="{!item.total}"/>



supriya Goresupriya Gore 
<aura:component implements="force:appHostable" controller="FetchRegistrations" >
    <aura:attribute name="reg" type="Registration__c[]"/>
    <ui:button label="Get Registrations" press="{!c.myAction}"/>
    <aura:iteration var="r" items="{!v.reg}" >

   myAction : function(component, event, helper) {
        var action = component.get("c.getAllregistrations");
        action.setCallback(this, function(response){
            var name = response.getState();
            if (name === "SUCCESS") {
                component.set("v.reg", response.getReturnValue());

global with sharing class FetchRegistrations {
    public static List<Registration__c> getAllregistrations()
     List<Registration__c> reg=new LIST<Registration__c>();  
        reg=[select id,name,Email__c from Registration__c];
        return reg;
    public Registration__c getSelectedregistrations(Id id)
      Registration__c  reg=[select id,name,Email__c from Registration__c where id=:id];
        return reg;
Best Answer chosen by supriya Gore
Prajyot KerkarPrajyot Kerkar
Change {!r.name} to {!r.Name} as javascript is case-sensitive name & Name are different

Hi all, 

I'm learning triggers in salesforce and want some advice on understanding how to write a trigger for below scenario. what is the approach?
There are two objects Object1_c(Parent) and Object__c(child) having look-up relationship.

Object__c has record types namely  "A" and "B".
Object__c has a field (currency) --> Myamount__c
Object__c has 2 picklislts --> Picklist_a__c and Pciklist_b__c
object1__c has a field(curreny_ --> amount__c


when amount__c(on Object1__c) is blank or null, and if record type is either A||B and Picklst_a__c and picklist__b is selected then Myamount__c should be required show be the error.

Thanks in advance.
Best Answer chosen by Begginer
rajat Maheshwari 6rajat Maheshwari 6
trigger ObjectTrigger on ObjectPar__c(before update)
     Set<Id> st_ParentId = new set<id>();

for(ObjectPar__c obj : Trigger.new)

List<ObjectCh__c> lst_objCh = new List<ObjectCh__c>([Select id,lookupField from ObjectCh__c where lookupField IN:st_ParentId]);

if(lst_objCh!=null && lst_objCh.size()>0)

for(ObjectPar__c obj : Trigger.new)
        if(obj.Picklist_a__c!=null && obj.Picklist_b__c!=null && obj.Picklist_b__c=='Checked' && (obj.RecordTypeId==IdCorrespondingtoA || obj.RecordTypeId==IdCorrespondingtoB))

                     obj.addError('My Name is Error');


As per your scenario, when picklist b have value "Checked" and having child records related to that then trigger will fire to display error message , otherwise, No error will come.