Salesforce Native Functionality

Now that you understand what salesforce is, it is time to dive in. This article (second in salesforce series) talks about how to customize/extend salesforce platform using its native functionality that does not requiring any coding.

An organization account in salesforce at the root level comprises of various data objects. While the platform comes ready with some pre-built objects (like Account, Contact etc), it also allows its users to define new ones. This process of creating a new Custom Object is similar to that of creating a table in a database where the definition of the object is captured & requires special privileges. Salesforce provides simple web based UI tools to administrators that allow them to define an object & add attributes to it through a UI wizard. The following section talk about various concepts that are involved related to salesforce objects.

Custom Fields : Once an object is defined, it is not of much use till you add “Fields” to it. These fields are elements that would be required to be filled with data with every record of the custom object. You might want to think of these as columns of a database table. These fields could be of different types like numbers (integers as well as floating), text, date, Boolean, currency, lists etc. While defining the object, one is required to specify the “record name” – a field that would uniquely identify a record. This field of type Text or auto-generated number can be thought of as the “primary key” for the object.

Constraints :  Once an attribute has been defined, the platform allows adding simple constraints on them. A constraint comes handy when you want to impose restrictions on the possible values that an attribute can contain. For example if an attribute represents a percentage value, you would want to impose a constraint that it can be between zero and hundred. You also define an error message that is displayed if the constraint is violated.

Dependent Fields : Fields can also be marked dependent on one another. For example if you have a drop down (or pick-list) that stores a list of countries and another drop down that stores a list of cities; it is possible to show only cities of the selected country by marking the “city” drop down dependent on the “country” drop down.

Relationships : When adding an attribute, one can also set up a relation between objects. For example – When defining a “Student” object, it might have an attribute called “School” for example which might have its own set of attributes. These fields are known as “lookup” fields. You might want to think of this as a “foreign-key” relationship.

Triggers : Another interesting feature that can be used for manipulating custom-objects is triggers. These are call back methods that are executed by salesforce platform when data is inserted, updated or deleted. The logic to be executed is written in Apex (to be discussed later).

Security : When creating an attribute, security is also defined for that attribute. This essentially involves who all have permissions to view/modify/delete data in the field. More on security later.

Tab

sf-tab[8] Once a custom object has been defined along with the associated relationships, dependencies & constraints one can add that object to a new “Tab”. A tab is a UI element that provides visibility for the object to a user.  A tab can show a list of instances/records of a particular object; clicking each item in the list provides more details (Fields of the record) which can be edited if desired (assuming edit permissions are granted). A tab also provides buttons that allow a user to do standard operations like “New” which presents a user with a form that takes input for all the attributes defined. One can also create custom buttons to do custom actions – For example you might want to have a custom button that modifies an attribute of multiple instances in one shot (this would require Apex programming though which I’ll talk about in later sections).

Page Layouts

As mentioned above a Tab associated with a custom object provides information about instances of that object. All UI related aspects of this object are decided by the Page Layout. One can define different layouts and associate them to different roles (therefore controlling the amount of information visible to any role). A Page Layout manager is the place where one defines what all fields would be shown & in what order. This also allows a user to select the buttons that are to be shown.

Note – This post only introduces various concepts as used by salesforce & is by no means complete. If you like to read further, here is an excellent document that should help you – http://wiki.apexdevnet.com/index.php/Members:Creating_On-Demand_Apps_PDF. This points to a document titled : Creating On Demand Apps and is an excellent read. You would need to signup (free) as a developer to download this.

If you have any questions, please feel free to post the same in comments section and I would try to help as much as possible.

Advertisements

What is salesforce?

As an introductory post of the salesforce series this article intends to start from the basic question outlined by the heading of this article – What is salesforce?


Salesforce is an on-demand, web based platform that allow people to develop & host custom applications. Force.com (that’s what salesforce calls its platform) allows developers to build and deliver any application without any other software (other than a web browser). There is no need of a database, no need for any SDK to be installed on the local machine. The application once developed is available for access online immediately – therefore eliminating any need of hosting software servers & hardware. Read more about Platform As a Service nature of Salesforce here.

Salesforce also provides CRM solutions off-the-shelf to its customers that require zero development. These applications are ready to use and are extremely popular. These CRM applications are easy to customize through drag and drop click tools and therefore can be used with equal ease by small as well as huge organizations. A lot of organizations world wide have trusted salesforce for managing their sales & customer data for improved customer service, partner management and better visibility into sales pipelines.

Salesforce also provides an on-line marketplace called Appexchange; where people can buy/sell & deploy ready to use pre-built salesforce applications that can run on Force.com platform. This allows companies and individual developers to build applications that they can sell to prospective customers. salesforce.com also manages & encourages a huge developer community at developer.salesforce.com [DFC] which allows various tools to help developers build their applications.

Salesforce Tutorial

With this post I intend to start a series, where I would talk about Force.com – salesforce unique on-demand application development and hosting platform.

I got introduced to salesforce around last week of January 2008 and was assigned a task to implement a CRM application that could talk to a website’s existing proprietary system. The first problem that I faced at the time of learning was the plethora of terms that were being used all over the place at salesforce website. There is good documentation available in chunks and pieces but it takes time to reach the right document. Once I figured out some terms and where to look for help, things became easier. I would attempt to demystify some of these terms through my upcoming posts.

The journey that I undertook in developing the application forced me to quickly discover features that Force.com offers. Unfortunately I made initial mistakes in choosing the right components/features to build my application. These mistakes could have been avoided had I been better educated about the platform features. Some of these upcoming posts would help readers avoid making these mistakes. After going live a couple of weeks ago, I also discovered some inherent strengths and weakness of the platform. This knowledge too I feel would be useful for many others.

I would aim to complete this series of posts in a week or two; therefore would target publishing one post in 2-3 days. I would be categorizing all these posts under the Category “salesforce“.

Google Apps from within Salesforce

Very recently Google and Salesforce tied up to make Google Apps accessible to SF users. Here are more details about the story on Tech Crunch.

Since, I’m right now involved in building an application over Salesforce’s force.com platform, I was kind of excited and was waiting for google apps to be made available. To my surprise I saw links for “Google Apps” showing up in my SF account. The speed with which this came out was pretty cool.

Check-out the video below to know more on how the two work together.

Force dot com

I recently got introduced to Force.com which is a platform from salesforce.com that allows a user to quickly build interesting & powerful data centric applications without having to write a single line of code.

A week ago, I used to think of salesforce just as an online tool to manage sales data for an organization. I was very pleasantly surprised to find that their platform has now evolved much more than just being a CRM. They interestingly have a tutorial kind of a document that provides step by step instructions for building a hiring solution for a organization’s HR team. The example provides detailed instructions on how to go about it and exposes the reader (in steps) of the power of the underlying platform. I certainly think, I might be using this a lot for building applications quickly.

For more details, just sign-up as a developer, get an account spend time on reading the documents along with trying out their stuff and you should be ready to do a lot of interesting apps on their platform with very minimal effort. The URL http://www.salesforce.com/developer/ would be a good starting point.