Category Archives: Salesforce

Check Object Level and Field Level Security Within a Visualforce Page

<!--Check object level access within a Visualforce page-->
<apex:page>
    {!$ObjectType.Contact.Accessible} 
</apex:page>
<!--Check an Object field level access within a Visualforce page-->
<apex:outputText value="{!contactName}" rendered="{!$ObjectType.Contact.fields.Name.Accessible}" />
<!--Check an Object field level Update access within a Visualforce page-->
<apex:inputText value="{!contactEmail}" rendered="{!$ObjectType.Contact.fields.Email.Updateable}" />
<!--Check an Object Delete access within a Visualforce page-->
<apex:commandButton action="{!CustomDelete}" rendered="{!$ObjectType.Contact.Deletable}" />
<!-- Check an Object field level Create access within a Visualforce page .
stringToBecomeNewContactEmail is a generic string type-->
<apex:inputText value="{!stringToBecomeNewContactEmail}" rendered="{!$ObjectType.Contact.fields.Email.Createable}" />

Install the Force.com IDE Plug-In For Eclipse

The Eclipse IDE for Java Developers distribution is recommended for Force.com IDE (Eclipse download site). You can install the Force.com IDE into your existing Eclipse distribution or upgrade from a previous version.
Before installing the Force.com IDE, ensure that you have these items installed on your workstation.

A supported operating system:

  • Windows 7, 8, or 10
  • macOS 10.7, 10.8, 10.9, 10.10, or 10.11
  • Ubuntu 12.04 LTS or 14.04 LTS

Java SE Development Kit (JDK), Runtime Environment 8, or later (Java download site).

Note: Be sure to download the full JDK—without it, the plug-in doesn’t load. On macOS, the full JDK is not the default JRE installation.

  1. Launch Eclipse and select Help | Install New Software.
  2. Click Add.
  3. In the Add Repository dialog, set the name to Force.com IDE and the location to https://developer.salesforce.com/media/force-ide/eclipse45. For Spring ’16 (Force.com IDE v36.0) and earlier Force.com IDE versions, use https://developer.salesforce.com/media/force-ide/eclipse42.
  4. Click OK.
  5. To install an older version of the plug-in (for example, if you don’t have Java 8), deselect Show only the latest versions of available software. Eclipse downloads the list of available plug-ins and displays them in the Available Software dialog.
  6. Select Force.com IDE.
  7. If you want to install the Apex Debugger or our tools for working with Lightning components, select Force.com Debugger or Force.com Lightning Support.
  8. Click Next.
  9. In the Install Details dialog, click Next.
  10. In the Review Licenses dialog, accept the terms and click Finish.
  11. If you chose to install support for Lightning components, Eclipse displays a warning dialog about installing software that contains unsigned content. We are bundling third-party plug-ins to support Lightning components. Salesforce doesn’t own these third-party plug-ins; hence, we don’t sign them. Click OK to proceed.
  12. Eclipse downloads and installs the Force.com IDE and the required dependencies. When the installation is complete, you are prompted to restart. Click Yes.
  13. When Eclipse restarts, select Window | Open Perspective | Other. Select Force.com and then click OK.
    You are now ready to develop and customize Force.com applications in Eclipse!

Note: When you create a project, you are sometimes prompted for a new master password. This master password is a separate password of your choosing. It’s required by Eclipse secure storage but not associated with your Force.com IDE credentials.

Comparable: Sorting Objects in Salesforce

The Comparable interface adds sorting support for Lists that contain non-primitive types, that is, Lists of user-defined types.

To add List sorting support for your Apex class, you must implement the Comparable interface with its compareTo method in your class.

When a class implements the Comparable interface it has to implement a method called compareTo(). This method returns an Integer value that is the result of the comparison. In that method the code has to be written to decide if two objects match or if one is larger than the other.

The implementation of this method should return the following values:

  • 0 if this instance and objectToCompareTo are equal
  • > 0 if this instance is greater than objectToCompareTo
  • < 0 if this instance is less than objectToCompareTo

Let’s take a look at a simple class that takes in an Employee object, stores the employee’s data in it and allows us to sort a list of Employees by their Employee Id.

Apex Class:

public class Employee implements Comparable {

    public Integer Id;
    public String Name;
    public Decimal Salary;

    public Employee(Integer i, String n, Decimal s) {
        Id = i;
        Name = n;
        Salary = s;
    }

    public Integer compareTo(Object objToCompare) {
        Employee emp = (Employee)objToCompare;
        if (Id == emp.Id){
            return 0;
        }
        else if (Id > emp.Id){
            return 1;
        }
        else{
            return -1;        
        }
    }
}

Execute the below code in Developer Console.

List<Employee> empList = new List<Employee>();
empList.add(new Biswajeet.Employee(104,'John Doe', 5000.00));
empList.add(new Biswajeet.Employee(102,'Joe Smith', 9000.00));
empList.add(new Biswajeet.Employee(103,'Caragh Smith', 10000.00));
empList.add(new Biswajeet.Employee(101,'Mario Ruiz', 12000.00));

//Sort using the custom compareTo() method
empList.sort();

//Write list contents to the debug log
for (Employee e : empList){
	system.debug(e);
}

Output:

ISBLANK and ISNULL with a Rich Text Field is not working in Validation Rule

Using ISBLANK or ISNULL with a Rich Text Area field always returns true when used in a Validation Rule.
To check whether a Rich Text Area field is empty, use the LEN function.

LEN (Rich_Text_Field__c) = 0

Remove the Salutation, Middle Name and Suffix Fields

Salutation field is Mandatory and cannot be removed from the Layout.
Middle Name and Suffix can be disabled by following these steps:

  • Click Setup || Customize || User Interface.
  • In the Name Settings section, deselect Enable Middle Names for Person Names and Enable Name Suffixes for Person Names.
  • Click Save.

The Middle Name and Suffix fields are available for the following person objects: Contact, Lead, Person Account, and User.

The values of the Middle Name and Suffix fields appear in most places where a person’s full name is displayed with the following exceptions.

  • Activities, including new events, new tasks, and shared activity lookup search results
    Calendar, including meeting invitations and the Scheduled Meetings section on the Home tab
  • Campaigns, including Campaign Member lists
  • Chatter
  • Cloud Scheduler
  • Data.com records
  • Forecasts, including the Collaborative Forecasting page
  • Opportunities, including opportunity stage history, the Opportunity Sharing Detail page, and the Opportunity Split Edit page
  • Price Books, including price book history
  • Recycle Bin
  • Search results for users