Ask Search:
Katherine SimpsonKatherine Simpson 
I have created a validation rule using a VLOOKUP to enfore uniqueness on a Name field of a custom object:

VLOOKUP($ObjectType.Promotion__c.Fields.Id, $ObjectType.Promotion__c.Fields.Name, Name) <> Id

When I create a new record the validation rule works correctly ie. If Name is Unique, validation rule does not trigger.  If Name is not unique Validation Rule is triggered.

ISSUE - When i update an existing record with a unique Name, the validation rule is triggered.
How can I fix this in my formula?
Best Answer chosen by Miglena (Salesforce.com) 
Katherine SimpsonKatherine Simpson
I've found the answer with the following formula:

and(
    Name = VLOOKUP
       ($ObjectType.Promotion__c.Fields.Name , $ObjectType.Promotion__c.Fields.Name, Name ),

    not(
     Id=VLOOKUP
         ($ObjectType.Promotion__c.Fields.Id , $ObjectType.Promotion__c.Fields.Name, Name )))
Ed YoungbloodEd Youngblood 
Does anyone know if salesforce is eventually going to force the switch to lightning experience? If so when? 
Best Answer chosen by Ed Youngblood
John MitchellJohn Mitchell
This is a LONG way out, if at all. Lightning is still in it's infancy. It will be many years before Classic is ever sunsetted, if that happens at all.
Tiago CarmonaTiago Carmona 
Recently, quick actions started to give this submission error. Any advice?Quick action error
Best Answer chosen by Tiago Carmona
Nandini GangadharNandini Gangadhar
Hi Tiago,

We will not have access to the exact error messages for the error ID's generated. You will have to reach out to Salesforce Support regarding this so that they will help you regarding exact error message if that can be corrected at your end, if not, they will provide you work-arounds if those cannot be fixed.

Hope this helps.

Thank you.!
Jeff McKinnisJeff McKinnis 

Can you use logical functions in combination with a custom URL  in a custom button?  I would like for the formula to evaluate whether or not a field is blank and utilize one custom URL if it is and another if not.  The URLs work by themselves, but fail when I try to combine them with the logical functions.

 

{!

IF(ISBLANK(Account.Parent),

 

"/001/e?acc3={!Account.Name}&CF00N40000002GuGT={!Account.Name}&
RecordType=01240000000M4W4&ent=Account",

 

"/001/e?acc3={!Account.Name}&CF00N40000002GuGT={!Account.Parent}&
RecordType=01240000000M4W4&ent=Account")

}

Best Answer chosen by Moderator (salesforce.com) 
Marco (werewolf) CasalainaMarco (werewolf) Casalaina
No, you can't use functions from the formula language in custom button XML.  If you want, you can make a formula field of type URL and have the button emit that field.  Then your formula logic would be in the field. 

Alternately, you can write Javascript in the button, like

if ('{!Account.Parent}'=='') {
   ...do something...
} else {
   ...do something else...
}

If this answer worked for you, please mark it as the best answer.  Thanks!
Chris MilnerChris Milner 
I am attempting to work through the Trailhead project "Build an Einstein Bot", specifically the section on "Add Prebuilt Dialogs and Customize the Options Menu" unit where it wants me to activate and preview the bot. There is a section that says "If you see the Agent Offline status, try again and wait. This could take a minute." Their screenshot shows 15 minutes. I am now well past that at the 30 minute mark and it is still showing the Agent Offline. Any assistance here would be great.
Best Answer chosen by Chris Milner
Chris MilnerChris Milner
Derp....Ghostery doesn't like Salesforce Live Agent and was blocking the connection even in preview mode. Hopefully this hopes anyone else who runs into the same issue.
Erin YamaokaErin Yamaoka 
I am trying to insert records into a Big Object using data loader. My probability field is of data type Number with Length=3 and Decimal Places=4. My upload is failing across the board due to this field, the error message is "Invalid Number" and then lists examples like 98.4 or 58.2. I checked the spreadsheet there aren't any weird leading or trailing values - I have no idea why this is failing. The file is encoded in UT8.

Start of CSV: Poverty Line Identifier,PPI Result,PPI Table ID,PPI Table Line,Poverty Line Name,Probability,ID
$1.25/day/2005 PPP_BurkinaFaso_2003,PPIR-0000027338,178,PPIL-00009620,$1.25/jour/2005 PPP_BurkinaFaso_2003,48.8,SPA-57712
200% of National_Ghana_2006,PPIR-0000027863,222,PPIL-00010548,Legacy 200% of National_Ghana_2012,89.1,SPA-650178

Any ideas?
Best Answer chosen by Erin Yamaoka
Erin YamaokaErin Yamaoka
Just got off with Salesforce Support and there's an issue with uploading into Big Object number fields. The work around is to go to Settings in Data loan and check the "Bulk API" option. Works perfectly now. The CSR informed me that they're working on documentation for this.
Brad HoldenBrad Holden 
Ok I am sorry for being a complete newbie... I have spent the last year grappling with some very minor Salesforce development (on a part-time basis) for a small non-profit. I have learned a lot, but still have only placed a very tiny scratch on the surface! 
So now our Self-Signed Certificate is apparently expiring and I have NO IDEA what that means. Any googling of this quickly gets into going-over-my-head territory. Can someone please explain what I have to do and what is in danger of happening if I don't do it? Here's the message:

You have one or more certificates in your Salesforce org Tin Roof Global 00D6100000084nr that will expire soon. Review the list below and visit Certificate and Key Management from Setup to make an update.

I have gone to Certificate and Key Management and have downloaded the .crt file but am really unsure what I am supposed to do with it!

Thanks in adavance
Best Answer chosen by Brad Holden
LBK .LBK .
Hey Brad,

There are few places where a sefl-signed certificate could be used.

1. Identify Provider - If you are using SFDC as IDP for Single Sign On. You can find it under Setup >> Administer >> Security Controls >> Identity Provider.

2. Single Sign-On Settings - If you are using SFDC as Consumer for Single Sign On. You can find it under Setup >> Administer >> Security Controls >> Single Sign-On Settings.

If your certificate is used in one of the above places, it is quite intuitive to edit this screen and replace the certificate.

3. Installed Packages / Connected Apps.
Some of the third party apps could use your Self-Signed Certificates (Environment Hub is an example).
You can look at them in Setup >> Build >> Installed Packages
I suggest you go through them one at time and find out if they use your certificate.

Connected Apps will be same procedure as above. But you will find the connected apps under Setup >> Manage Apps >> Connected Apps.

Hope this helps.
 
Claudine SauvetreClaudine Sauvetre 
Hi, a little (or a lot of) help please.

I have 2 custom objects:
- Parent_Opportunity_Product__c (let's call it 'POP' to simplify)
- Attendance_Calendar__c

I would like to roll up the count of Attendance_Calendar__c for each POP object. The POP object is where the rollup result should appear. I have created a number field in the POP object for that purpose, called No_Attendees__c. 

The lookup field on the Attendance_Calendar__c object for the POP object is Parent_Opportunity_Product_HIDDEN_c.

The count (i.e. the No_Attendees__c) field is an integer and should update on insert, update and delete of Attendance_Calendar__c. 

Could you help me with the Apex trigger blurb please? I am new to Apex. A starting point would be useful.

Thank you!
Best Answer chosen by Claudine Sauvetre
Steven NsubugaSteven Nsubuga
My bad, trigger.new is not usable in after delete. I have added an IF above line 5.
trigger AttendanceCalendarRollup on Attendance_Calendar__c (after insert, after update, after delete) {

    List<Id> POPIds = new List<Id>();

IF (trigger.isInsert){
    for(Attendance_Calendar__c a: Trigger.new) {
      POPIds.add(a.Parent_Opportunity_Product_HIDDEN__c); 
    }
}

    IF (trigger.isUpdate||trigger.isDelete){
        for (Attendance_Calendar__c a: trigger.old){
            POPIds.add(a.Parent_Opportunity_Product_HIDDEN__c);
        }
    }
    
    AggregateResult[] groupedResults = [SELECT count(id)No_Attendees__c, Parent_Opportunity_Product_HIDDEN__c 
                                        FROM Attendance_Calendar__c 
                                        WHERE Parent_Opportunity_Product_HIDDEN__c in :POPIds 
                                        GROUP BY Parent_Opportunity_Product_HIDDEN__c]; 
    
    Map<id,Parent_Opportunity_Products__c> POPMap = new Map<Id,Parent_Opportunity_Products__c>
        ([SELECT id, No_Attendees__c 
          FROM Parent_Opportunity_Products__c 
          WHERE Id in :POPIds]);

    for(AggregateResult ar: groupedResults) {
      POPMap.get((Id)ar.get('Parent_Opportunity_Product_HIDDEN__c')).No_Attendees__c = (integer)ar.get('No_Attendees__c');
    }

    try {
      update POPMap.values();
    } catch(DmlException e) {
      System.debug(e.getMessage());
    }
}

 
Abinaya vAbinaya v 
1. Declare one variable for product category field
2. If condition for that variable like 
IF product category = "timeshare", "vfs" means it will update like as "nights"
IF product category = "units" means it will update like as "units"
IF product category = "points" means it will update like as "points"
3. I have to assign that variable
Best Answer chosen by Ed (salesforce.com) 
Abinaya vAbinaya v
It's working with the following code

{!IF(Customer__c.Product_Category__c == 'TimeShare','Nights',IF(Customer__c.Product_Category__c == 'VTS','Nights',IF(Customer__c.Product_Category__c == 'Points','Points',IF(Customer__c.Product_Category__c == 'Units','Units','false'))))}
Brendan ConroyBrendan Conroy 
I'm trying to create an end to end process within the Napili template for Agents to be able to converse with Customers as well as have emails be sent out back and forth (basic stuff). What I am finding out with Chatter in the Community is that the Agent has to manually make the post visible to the All with Access to the record in order for it to show up, so it's not a great Agent experience. I can't use the Send Email function with regular customer community. 

So here's the intended end to end: Customer opens a Case, agent makes a response somehow (ie posting, case comments, etc), an email is sent to the customer with details of the response, the Customer responds (probably through the community, but ideally from email as well), and they converse.

What are some of the best ways of doing that within the Community template? Thanks
 
Best Answer chosen by Brendan Conroy
Coline LudwigColine Ludwig
We went the Chatter route for a recently implemented Community built on the Napili template. Initially we tried building a custom Case Comments component to mimic the Case Comments Component that was deprecated in Summer '17 but ran into some permission challenges based on our sharing model (https://developer.salesforce.com/docs/atlas.en-us.community_templates.meta/community_templates/rss_case_comments.htm). Ultimately we felt that the Customer benefits around Chatter (ex. replying directly through email) outweighed the clunky agent workflow around marking a post visible to all.