An external ID is a custom field which can be used as a unique identifier in a record. External IDs are mainly used while importing records/ data. When importing records, one among the many fields in those records need to be marked as an external ID (unique identifier).
An important point to note is that only custom fields can be used as External IDs.
The fields that can be marked as external IDs are: Text, Number, E-Mail and Auto-Number.
You can get the ID’s of all the currently logged in users by using this global function: UserInfo.getUserId ().
In a Data Loader .CSV, if there is a comma in field content, you will have to enclose the contents within double quotation marks”.
A sandbox is a copy of the production environment/ org, used for testing and development purposes. It’s useful because it allows development on Apex programming without disturbing the production environment.
You can deploy code in Salesforce using:
A standard field record name can have data type of either auto number or text field with a limit of 80 chars.
For generating auto numbers, the format needs to be specified while defining the field and after that for every record that is added, the number will get auto generated.
For example:-
Sr No-{1}
Sr No-{2}
Sr No-{3}
Trigger.New is a command which returns the list of records that have been added recently to the subjects. To be more precise, those records will be returned which are yet to be saved to the database. Note that this subject list is only available in insert and update triggers, and the records can only be modified in before triggers.
But just for your information, Trigger. old returns a list of the old versions of the subject records. Note that this subject list is only available in update and delete triggers.
There are three types of bindings used in Salesforce:-
Data bindings and Action bindings are the most common and they will be used in every Visual force page.
Who ID refers to people. Typically: contacts or leads.
Example:
What ID refers to objects.
Example:
Before I mention some of the examples, let me give you an introduction to deterministic and non-deterministic formula fields. Formula fields whose value will be static are referred to as deterministic fields. Whereas, formula fields whose value will be changed dynamically or whose values will have to be calculated on the fly, they are referred to as non-deterministic formula fields. A classic example of that is a formula returning the current date and time.
Some examples of non-deterministic fields in Force.com are:
Collections are the type of variables which can be used to store multiple number of records (data).
It is useful because Governor Limits restrict the number of records you can retrieve per transaction. Hence, collections can be used to store multiple records in a single variable defined as type collection and by retrieving data in the form of collections, Governor Limits will be in check. Collections are similar to how arrays work.
There are 3 collection types in Salesforce:
Maps are used to store data in the form of key-value pairs, where each unique key maps to a single value.
Syntax: Map<String, String> country city = new Map<String, String>();
Sharing rules are written to give edit access (public read and write) or public read only access to certain individuals in Salesforce org.
A classic example is when:- only your managers or superiors need to be given extra credentials to your records in objects as compared to your peers.
Only one rule can be active at a time.
In Salesforce, if you want to deploy your code to production, then you must make sure that at least 75% of your Apex code is covered by unit tests. And all these tests must complete successfully.
An Apex transaction represents a set of operations that are executed as a single unit. The operations here include the DML operations which are responsible for querying records. All the DML operations in a transaction either complete successfully, or if an error occurs even in saving a single record, then the entire transaction is rolled back.
Sets can have any of the following data types:
There are two types of custom settings in Salesforce: List Custom Settings and Hierarchy Custom Settings.
No list of Salesforce interview questions is complete without involving relationships between objects in Salesforce. Relationships in Salesforce can be used to establish links between two or more objects.
The different types of object relationships in Salesforce are:
Master-Detail Relationship (1:n):-
Lookup Relationship (1:n):-
Junction Relationship (Many-To-Many):-
This kind of a relationship can exist when there is a need to create two master-detail relationships. Two master-detail relationships can be created by linking 3 custom objects. Here, two objects will be master objects and the third object will be dependent on both the objects. In simpler words, it will be a child object for both the master objects.
In a Master-Detail relationship, when a master record is deleted, the detail record is deleted automatically (Cascade delete).
In a Lookup relationship, even if the parent record is deleted, the child record will not be deleted.
As mentioned in one of the previous Salesforce interview questions, a profile will ultimately control access to which records a user has in a Salesforce org. No user can work on the Salesforce org without being assigned a profile. The Profile is therefore mandatory for every user.
Role however is not mandatory for every user. The primary function of the Role/ Role hierarchy is that it allows higher level users in hierarchy get access to records owned by lower level users in the hierarchy. An example of that is Sales Managers getting access to records owned by Sales Reps while their peers do not get access to it.
In Salesforce, it is the Governor Limits which controls how much data or how many records you can store in the shared databases. Why? Because Salesforce is based on the concept of multi-tenant architecture. In simpler words, Salesforce uses a single database to store the data of multiple clients/ customers.
To make sure no single client monopolizes the shared resources, Salesforce introduced the concept of Governor Limits which is strictly enforced by the Apex run-time engine.
Governor Limits are a Salesforce developer’s biggest challenge. That is because if the Apex code ever exceeds the limit, the expected governor issues a run-time exception that cannot be handled. Hence as a Salesforce developer, you have to be very careful while developing your application.
Different Governor Limits in Salesforce are:
A bucket field lets you group related records together by ranges and segments, without the use of complex formulas and custom fields. Bucketing can thus be used to group, filter, or arrange report data. When you create a bucket field, you need to define multiple categories (buckets) that are used to group report values.
The advantage is that earlier, we had to create custom fields to group or segment certain data.
A Visual force Component is either a predefined component (standard from component library) or a custom component that determines the user interface behavior. For example, if you want to send the text captured from the Visual force page to an object in Salesforce, then you need to make use of Visual force components.
Example: <apex: detail>
Governor limits will restrict a single Apex transaction to make a maximum of 100 callouts to an HTTP request or an API call.
Software developers from around the world will unanimously agree that writing code in test classes makes debugging more efficient. That is because test classes help in creating robust and error-free code be it Apex or any other programming language. Since Unit tests are powerful in their own right, Salesforce requires you to write test classes in Apex code.
Because test classes and test methods verify whether a particular piece of code is working properly or not. If that piece of code fails, then developers/ testers can accurately locate the test class having the faulty bug.
Test classes can be determined easily because every test class will be annotated with isTest keyword. In fact, if we do not annotate a test class with isTest, then it cannot be defined as a test class. Similarly, any method within a class which has the keyword test method is a test method.
Standard controller in Apex, inherits all the standard object properties and standard button functionality directly. It contains the same functionality and logic that are used for standard Salesforce pages.
Custom controller is an Apex class that implements all of the logic for a page without leveraging a standard controller. Custom Controllers are associated with Visual force pages through the controller attribute.
You can use it when you want to test a newly developed Force.com application or Visualforce page. You can develop and test it in the Sandbox org instead of doing it directly in production.
This way, you can develop the application without any hassle and then migrate the metadata and data (if applicable) to the production environment. Doing this in a non-production environment allows developers to freely test and experiment applications end to end.
Types of Sandboxes are:
Only the following fields are automatically indexed in Salesforce:
Database.Batchable interface contains three methods that must be implemented:
Start method:
global (Database.QueryLocator | Iterable) start(Database.BatchableContext bc) {}.
Execute method:
Global void execute (Database.BatchableContext BC, list){}.
Finish method:
Global void finish(Database.BatchableContext BC){}.
The Governor Limits enforces the following:-
In Salesforce, skinny tables are used to access frequently used fields and to avoid joins. This largely improved performance. Skinny tables are highly effective, so much so that even when the source tables are modified, skinny tables will be in sync with source tables.
Considerations for skinny tables: