SlideShare una empresa de Scribd logo
1 de 21
Descargar para leer sin conexión
Getting Started with SalesForce CRM
Customizing Salesforce Interface

Description:
BISP is committed to provide BEST learning material to the beginners and advance learners.
In the same series, we have prepared a complete end-to end Hands-on Beginner’s Guide for
SalesForce. The document focuses on customizing Salesforce interface. Join our professional
training program and learn from experts.

History:
Version Description Change
0.1
Initial Draft
0.1
Review#1

www.bispsolutions.com

Author
Chandra Prakash Sharma
Amit Sharma

www.bisptrainigs.com

Publish Date
10th Jan 2014
10th Jan 2014

www.hyperionguru.com

Page 1
Contents
Understand the VisualForce framework, including its Advantages.....................................................3
Understand the VisualForce framework :.......................................................................................3
What is VisualForce ?................................................................................................................. 3
Advantage of VisualForce :............................................................................................................4
Dynamic VisualForce Bindings :.....................................................................................................5
Actions on a page to a controller :..................................................................................................6
Using Standard List Controller Actions :.....................................................................................6
Create custom controllers and standard controller extensions to incorporate new data and actions
into a page......................................................................................................................................... 7
Custom Controllers:....................................................................................................................... 7
What are Custom Controllers and Controller Extensions?..........................................................7
How To Create Page By Using Custom Controllers :..................................................................8
How to Building a Custom Controller :........................................................................................9
Controller Methods :................................................................................................................. 10
Standard Controllers :.................................................................................................................. 10
Associating a Standard Controller with a VisualForce Page :...................................................10
Accessing Data with a Standard Controller :.............................................................................10
Standard Controller Actions :....................................................................................................10
................................................................................................................................................. 11
Validation Rules and Standard Controllers :.............................................................................11
Understand the security implications of using custom vs. standard controllers................................12
Controller Class Security :........................................................................................................ 12
Implement wizards using custom controllers to handle the state and operations.............................13
Create custom components that use custom controllers..................................................................19

www.bispsolutions.com

www.bisptrainigs.com

www.hyperionguru.com

Page 2
Understand the VisualForce framework, including its
Advantages
Understand the VisualForce framework :
What is VisualForce ?
What is VisualForce?
VisualForce is a framework that allows developers to build sophisticated, custom user interfaces
that can be hosted natively on the Force.com platform. The VisualForce framework includes a tagbased markup language, similar to HTML.

What is a VisualForce Page ?
Developers can use VisualForce to create a VisualForce page definition. A page definition consists
of two primary elements:
• VisualForce markup
• A VisualForce controller
Where Can VisualForce Pages Be Used ?
Similar to s-controls, developers can use VisualForce pages to:
• Override standard buttons, such as the New button for accounts, or the Save button for contacts
• Override tab overview pages, such as the Accounts tab home page
• Define custom tabs
• Embed components in detail page layouts, similar to the way inline s-controls can be embedded

www.bispsolutions.com

www.bisptrainigs.com

www.hyperionguru.com

Page 3
Advantage of VisualForce :
As a markup language, VisualForce provides the following benefits :
User-friendly development :
Developers can edit their VisualForce markup in the same window that displays the resulting page.
Consequently, developers can instantly verify the result of an edit just by saving their code. The
VisualForce editor pane also include auto-completion and syntax highlighting.
Integration with other Web-based user interface technologies :
Because VisualForce markup is ultimately rendered into HTML, designers can use VisualForce tags
alongside standard HTML, JavaScript, Flash, or any other code that can execute within an HTML
page on the platform, including Force.com platform merge fields and expressions.
Model-View-Controller (MVC) style development :
VisualForce conforms to the Model-View-Controller (MVC) development pattern by providing a clear
division between the view of an application (the user interface, defined by VisualForce markup), and
the
controller and the controller that determines how the application works(the business logic, defined
by a VisualForce controller written in Apex).
Concise syntax :
VisualForce pages can implement the same functionality as s-controls but with approximately 90%
fewer lines of code.
Data-driven defaults :
VisualForce components are rendered intelligently by the platform. For example, rather than forcing
page designers to use different component tags for different types of editable fields (such as email
addresses or calendar dates), designer scan simply use a generic <apex:inputField> tag for all
fields. The VisualForce renderer displays the appropriate edit interface for each field.
Hosted platform :
VisualForce pages are compiled and rendered entirely by the Force.com platform. Because they
are so tightly integrated, they display the same performance as standard SalesForce pages,
regardless of the amount of data being displayed or edited.
Automatically upgradeable :
VisualForce pages do not need to be rewritten when other parts of the Force.com platform are
upgraded. Because the pages are stored as metadata, they are automatically upgraded with the
rest of the system.

www.bispsolutions.com

www.bisptrainigs.com

www.hyperionguru.com

Page 4
Use expressions to bind data and actions on a page to a
controller
Dynamic VisualForce Bindings :
In SalesForce Dynamic VisualForce bindings are a way of writing generic VisualForce pages that
display information about records without necessarily knowing which fields to show. In other words,
fields on the page are determined at run time, rather than compile time. This allows a developer to
design a single page that renders differently for various audiences, based on their permissions or
preferences. Dynamic bindings are useful for VisualForce pages included in managed packages
since they allow for the presentation of data specific to each subscriber with very little coding.
Dynamic VisualForce binding is supported for standard and custom objects :
Syntax : reference[expression]
Dynamic bindings can be used anywhere formula expressions are valid :
Syntax : {!reference[expression]}
Enters Dynamic VisualForce Binding.
Let's just quickly see what a regular VisualForce page looks like. As an example I want to display
the Employee first Name, Mobile Number, Position. To do that, all you need to do is a very simple
VisualForce page like this :

www.bispsolutions.com

www.bisptrainigs.com

www.hyperionguru.com

Page 5
Actions on a page to a controller :
Using Standard List Controller Actions :
Action methods perform logic or navigation when a page event occurs, such as when a user clicks
a button, or hovers over an area of the page.
Syntax
<apex:commandButton>
<apex:commandLink>
<apex:actionPoller>
<apex:actionSupport>

Description
creates a button that calls an action
creates a link that calls an action
periodically calls an action
makes an event (Ex: "onclick", "onmouseover", and so on) on
another, named component, call an action
defines a new JavaScript function that calls an action
calls an action when the page is loaded

<apex:actionFunction>
<apex:page>

Action Methods :
Action
Save

Description
Inserts new records or updates existing records that have been
changed.
Inserts new records or updates existing records that have been
changed.
Returns a PageReference object of the standard list page,
based on the most recently used list filter for that object when
the filterId is not specified by the user.
Aborts an edit operation.
Displays the first page of records in the set.
Displays the last page of records in the set.
Displays the next page of records in the set.
Displays the previous page of records in the set.

quicksave
list

cancel
first

last
next
previous

You can see below Example :

www.bispsolutions.com

www.bisptrainigs.com

www.hyperionguru.com

Page 6
Create custom controllers and standard controller extensions
to incorporate new data and actions into a page
Custom Controllers:
A custom controller is an Apex class that implements all of the logic for a page without leveraging a
standard controller.
- You want to leverage the built-in functionality of a standard controller but override one or more
actions, such as edit, view, save, or delete.
- You want to add new actions.
- You want to build a VisualForce page that respects user permissions.
Standard controllers can provide all the functionality you need for a VisualForce page because they
include the same logic that is used for a standard page. For example, if you use the standard
Accounts controller, clicking a Save button in a VisualForce page results in the same behavior as
clicking Save on a standard Account edit page.
However, if you want to override existing functionality, customize the navigation through an
application, use callouts or Web services, or if you need finer control for how information is
accessed for your page, you can write a custom controller or a controller extension using Apex:

What are Custom Controllers and Controller Extensions?

www.bispsolutions.com

www.bisptrainigs.com

www.hyperionguru.com

Page 7
In VisualForce custom control is an apex class that implement all of the logic for a page without
leaving a standard controller. Custom control use in VisualForce page run entirely in system mode
they does not enforce the permissions and field-level security of the current user.

How To Create Page By Using Custom Controllers :
Click on Setup > develop > Pages Then Click on New button.
OR
Directly write in address bar after login SalesForce site then add given address in url
/apex/Newpage1
for example you see here https://c.ap1.visual.force.com/apex/Newpage1
Note :- 1.Make Sure in User Setting Development Mode is enable.
2. You can Custom Control you in Standard Object and Custom object.
Example 1:- In this example create table with style sheet and how to call image by using custom
object Controller.
Step 1 :- Create new page /apex/Newpage1

www.bispsolutions.com

www.bisptrainigs.com

www.hyperionguru.com

Page 8
Note :- Before using this code <apex:image value="{!$Resource.imagename}"/> make sure add
image file in Static Resources.

How to Building a Custom Controller :
From Setup > Develop > Apex Classes then click New button.

After create apex class then you can create VisualForce page you can see below.
www.bispsolutions.com

www.bisptrainigs.com

www.hyperionguru.com

Page 9
Controller Methods :
Action Control :
<apex:commandButton> creates a button that calls an action
<apex:commandLink> creates a link that calls an action
<apex:actionPoller> periodically calls an action
<apex:actionSupport> makes an event (such as “onclick”, “onmouseover”, and so on) on
another, named component, call an action
<apex:actionFunction> defines a new JavaScript function that calls an action
<apex:page> calls an action when the page is loaded

Standard Controllers :
In Salesforce.com VisualForce controller is a set of instructions that specify what happens when a
user interacts with the components specified in associated VisualForce markup, such as when a
user clicks a button or link. Controllers also provide access to the data that should be displayed in a
page, and can modify component behavior.

Associating a Standard Controller with a VisualForce Page :
Use the standardController attribute on the <apex:page> </apex:page> tag and assign it the name
of any SalesForce object that can be queried using the Force.com API.
Syntax :
<apex:page standardController="Account">
</apex:page>

Accessing Data with a Standard Controller :
Every standard controller includes a getter method that returns the record specified by the id query
string parameter in the page URL.
- You can traverse up to five levels of child-to-parent relationship.
- You can traverse one level of parent-to-child relationships.

Standard Controller Actions :
<apex:commandButton> creates a button that calls an action
www.bispsolutions.com

www.bisptrainigs.com

www.hyperionguru.com

Page 10
<apex:commandLink> creates a link that calls an action
<apex:actionPoller> periodically calls an action
<apex:actionSupport> makes an event (such as “onclick”, “onmouseover”, and so on) on
another, named component, call an action
<apex:actionFunction> defines a new JavaScript function that calls an action
<apex:page> calls an action when the page is loaded

Validation Rules and Standard Controllers :
If a user enters data on a SalesForce page that uses a standard controller, and that data causes a
validation rule error, the error can be displayed on the SalesForce page. If the validation rule error
location is a field associated with an <apex:inputField> component, the error displays there. If the
validation rule error location is set to the top of the page, use the <apex:pageMessages> or
<apex:messages> component within the <apex:page> to display the error.
you can see below

Example : The following page allows you to update an account after will all fields then click on
Save button.

www.bispsolutions.com

www.bisptrainigs.com

www.hyperionguru.com

Page 11
Understand the security implications of using custom vs.
standard controllers
Custom Control :
Standard controllers can provide all the functionality you need for a VisualForce page because they
include the same logic that is used for a standard page. For example, if you use the standard
Accounts controller, clicking a Save button in a VisualForce page results in the same behavior as
clicking Save on a standard Account edit page.
Standard Control :
In Salesforce.com VisualForce controller is a set of instructions that specify what happens when a
user interacts with the components specified in associated VisualForce markup, such as when a
user clicks a button or link. Controllers also provide access to the data that should be displayed in a
page, and can modify component behavior.
contain the same functionality and logic that are used for standardSalesforce pages.
Can be used with standard objects and custom objects.

Controller Class Security :
To set Apex class security from the class list page:
www.bispsolutions.com

www.bisptrainigs.com

www.hyperionguru.com

Page 12
Setup > Develop > Apex Classes
then you can see security link on given page you can see below.

Select the profiles that you want to enable from the Available Profiles list and click Add, or select
the profiles that you want to disable from the Enabled Profiles list and click Remove.
Then click Save.
You can see below.

Implement wizards using custom controllers to handle the state
and operations
Example : If you want to create a three-step opportunity wizard that allows users to create an
opportunity at the same time as a related contact, account, and contact role:
 The first step captures information related to the account and contact.
 The second step captures information related to the opportunity.
 The final step shows which records will be created and allows the user to save or cancel .

Solution :
1. Navigate to the URL for the Create VisualForce first page:
https://<host>.salesforce.com/apex/opptyStep1
2. Click Create Page newOpptyStep1.

www.bispsolutions.com

www.bisptrainigs.com

www.hyperionguru.com

Page 13
3. Repeat the Step (Step 1 or Step 2) and give VisualForce page Name opptyStep2 and
opptyStep3.
4. Create the newOpportunityController controller it's create on Apex class.
you can see below.

Create Apex class then you create newOpptyStep1, newOpptyStep2, and newOpptyStep3 Visual
Force page. You can see below.

www.bispsolutions.com

www.bisptrainigs.com

www.hyperionguru.com

Page 14
<apex:page controller="newOpportunityController"
tabStyle="Opportunity">
<apex:sectionHeader title="New Customer Opportunity"
subtitle="Step 1 of 3"/>
<apex:form >
<apex:pageBlock title="Customer Information">
<!-- This facet tag defines the "Next" button that appears
in the footer of the pageBlock. It calls the step2()
controller method, which returns a pageReference to
the next step of the wizard. -->
<apex:facet name="footer">
<apex:commandButton action="{!step2}" value="Next"
styleClass="btn"/>
</apex:facet>
<apex:pageBlockSection title="Account Information">
<!-- <apex:panelGrid> tags organize data in the same way as
a table. It places all child elements in successive cells,
in left-to-right, top-to-bottom order -->
<!-- <apex:outputLabel > and <apex:inputField > tags can be
bound together with the for and id attribute values,
respectively. -->
<apex:panelGrid columns="2">
<apex:outputLabel value="Account Name" for="accountName"/>
<apex:inputField id="accountName" value="{!account.name}"/>
www.bispsolutions.com

www.bisptrainigs.com

www.hyperionguru.com

Page 15
<apex:outputLabel value="Account Site" for="accountSite"/>
<apex:inputField id="accountSite" value="{!account.site}"/>
</apex:panelGrid>
</apex:pageBlockSection>
<apex:pageBlockSection title="Contact Information">
<apex:panelGrid columns="2">
<apex:outputLabel value="First Name"
for="contactFirstName"/>
<apex:inputField id="contactFirstName"
value="{!contact.firstName}"/>
<apex:outputLabel value="Last Name" for="contactLastName"/>
<apex:inputField id="contactLastName"
value="{!contact.lastName}"/>
<apex:outputLabel value="Phone" for="contactPhone"/>
<apex:inputField id="contactPhone"
value="{!contact.phone}"/>
</apex:panelGrid>
</apex:pageBlockSection>
</apex:pageBlock>
</apex:form>
</apex:page>
Create newOpptyStep1, then create newOpptyStep2 VisualForce page.

<apex:page controller="newOpportunityController"
tabStyle="Opportunity">
<apex:sectionHeader title="New Customer Opportunity"
subtitle="Step 2 of 3"/>
<apex:form >
<apex:pageBlock title="Opportunity Information">
www.bispsolutions.com

www.bisptrainigs.com

www.hyperionguru.com

Page 16
<apex:facet name="footer">
<apex:outputPanel >
<apex:commandButton action="{!step1}" value="Previous"
styleClass="btn"/>
<apex:commandButton action="{!step3}" value="Next"
styleClass="btn"/>
</apex:outputPanel>
</apex:facet>
<apex:pageBlockSection title="Opportunity Information">
<apex:panelGrid columns="2">
<apex:outputLabel value="Opportunity Name"
for="opportunityName"/>
<apex:inputField id="opportunityName"
value="{!opportunity.name}"/>
<apex:outputLabel value="Amount"
for="opportunityAmount"/>
<apex:inputField id="opportunityAmount"
value="{!opportunity.amount}"/>
<apex:outputLabel value="Close Date"
for="opportunityCloseDate"/>
<apex:inputField id="opportunityCloseDate"
value="{!opportunity.closeDate}"/>
<apex:outputLabel value="Stage"
for="opportunityStageName"/>
<apex:inputField id="opportunityStageName"
value="{!opportunity.stageName}"/>
<apex:outputLabel value="Role for Contact:
{!contact.firstName}
{!contact.lastName}"
for="contactRole"/>
<apex:inputField id="contactRole"
value="{!role.role}"/>
</apex:panelGrid>
</apex:pageBlockSection>
</apex:pageBlock>
</apex:form>
</apex:page>
Create newOpptyStep2, then create newOpptyStep3 VisualForce page.

www.bispsolutions.com

www.bisptrainigs.com

www.hyperionguru.com

Page 17
<apex:page controller="newOpportunityController"
tabStyle="Opportunity">
<apex:sectionHeader title="New Customer Opportunity"
subtitle="Step 3 of 3"/>
<apex:form >
<apex:pageBlock title="Confirmation">
<apex:facet name="footer">
<apex:outputPanel >
<apex:commandButton action="{!step2}" value="Previous"
styleClass="btn"/>
<apex:commandButton action="{!save}" value="Save"
styleClass="btn"/>
</apex:outputPanel>
</apex:facet>
<apex:pageBlockSection title="Account Information">
<apex:panelGrid columns="2">
<apex:outputText value="Account Name"/>
<apex:outputText value="{!account.name}"/>
<apex:outputText value="Account Site"/>
<apex:outputText value="{!account.site}"/>
</apex:panelGrid>
</apex:pageBlockSection>
<apex:pageBlockSection title="Contact Information">
<apex:panelGrid columns="2">
<apex:outputText value="First Name"/>
<apex:outputText value="{!contact.firstName}"/>
<apex:outputText value="Last Name"/>
<apex:outputText value="{!contact.lastName}"/>
<apex:outputText value="Phone"/>
www.bispsolutions.com

www.bisptrainigs.com

www.hyperionguru.com

Page 18
<apex:outputText value="{!contact.phone}"/>
<apex:outputText value="Role"/>
<apex:outputText value="{!role.role}"/>
</apex:panelGrid>
</apex:pageBlockSection>
<apex:pageBlockSection title="Opportunity Information">
<apex:panelGrid columns="2">
<apex:outputText value="Opportunity Name"/>
<apex:outputText value="{!opportunity.name}"/>
<apex:outputText value="Amount"/>
<apex:outputText value="{!opportunity.amount}"/>
<apex:outputText value="Close Date"/>
<apex:outputText value="{!opportunity.closeDate}"/>
</apex:panelGrid>
</apex:pageBlockSection>
</apex:pageBlock>
</apex:form>
</apex:page>

Create custom components that use custom controllers
In SalesForce you can build your own custom components to augment this library.
Accessing Custom Component Attributes in a Controller :
Step 1:
Create Apex class :

Step 2 :
Create Component, how to create Component in SalesForce.com.
Setup > Develop > Components, Then click New button.

www.bispsolutions.com

www.bisptrainigs.com

www.hyperionguru.com

Page 19
Step 3 :
Create VisualForce page.

www.bispsolutions.com

www.bisptrainigs.com

www.hyperionguru.com

Page 20
www.bispsolutions.com

www.bisptrainigs.com

www.hyperionguru.com

Page 21

Más contenido relacionado

La actualidad más candente

E mail and-workflow-administation
E mail and-workflow-administationE mail and-workflow-administation
E mail and-workflow-administationAmit Sharma
 
Introduction to visualforce
Introduction to visualforceIntroduction to visualforce
Introduction to visualforceRinku Saini
 
Salesforce interview-preparation-toolkit-formula-and-validation-rules-in-sale...
Salesforce interview-preparation-toolkit-formula-and-validation-rules-in-sale...Salesforce interview-preparation-toolkit-formula-and-validation-rules-in-sale...
Salesforce interview-preparation-toolkit-formula-and-validation-rules-in-sale...Amit Sharma
 
Apex code-fundamentals
Apex code-fundamentalsApex code-fundamentals
Apex code-fundamentalsAmit Sharma
 
Salesforce interview preparation toolkit formula and validation rules in sale...
Salesforce interview preparation toolkit formula and validation rules in sale...Salesforce interview preparation toolkit formula and validation rules in sale...
Salesforce interview preparation toolkit formula and validation rules in sale...Amit Sharma
 
Custom Controllers and Controller Extensions
Custom Controllers and Controller Extensions Custom Controllers and Controller Extensions
Custom Controllers and Controller Extensions Mohammed Safwat Abu Kwaik
 
Mulesoft salesforce connector to update Object.
Mulesoft salesforce connector to update Object.Mulesoft salesforce connector to update Object.
Mulesoft salesforce connector to update Object.Yogesh Chandr
 
IBM Lotus iNotes 8.5 Customization
IBM Lotus iNotes 8.5 CustomizationIBM Lotus iNotes 8.5 Customization
IBM Lotus iNotes 8.5 Customizationrledwich
 
Exploring Adobe Flex
Exploring Adobe Flex Exploring Adobe Flex
Exploring Adobe Flex senthil0809
 
Lotus knows Notes851
Lotus knows Notes851Lotus knows Notes851
Lotus knows Notes851Mary Raven
 
Developing Mash up applications with Adobe AIR
Developing Mash up applications with Adobe AIRDeveloping Mash up applications with Adobe AIR
Developing Mash up applications with Adobe AIRmarcocasario
 
Orangescrum Invoice Pro Add-on user manual
Orangescrum Invoice Pro Add-on user manualOrangescrum Invoice Pro Add-on user manual
Orangescrum Invoice Pro Add-on user manualOrangescrum
 
Exploring Layouts and Providers
Exploring Layouts and ProvidersExploring Layouts and Providers
Exploring Layouts and Providerssenthil0809
 
( 6 ) Office 2007 Accessing A Business Data Catolog
( 6 ) Office 2007   Accessing A Business Data Catolog( 6 ) Office 2007   Accessing A Business Data Catolog
( 6 ) Office 2007 Accessing A Business Data CatologLiquidHub
 

La actualidad más candente (17)

E mail and-workflow-administation
E mail and-workflow-administationE mail and-workflow-administation
E mail and-workflow-administation
 
Introduction to visualforce
Introduction to visualforceIntroduction to visualforce
Introduction to visualforce
 
Salesforce interview-preparation-toolkit-formula-and-validation-rules-in-sale...
Salesforce interview-preparation-toolkit-formula-and-validation-rules-in-sale...Salesforce interview-preparation-toolkit-formula-and-validation-rules-in-sale...
Salesforce interview-preparation-toolkit-formula-and-validation-rules-in-sale...
 
Apex code-fundamentals
Apex code-fundamentalsApex code-fundamentals
Apex code-fundamentals
 
Salesforce interview preparation toolkit formula and validation rules in sale...
Salesforce interview preparation toolkit formula and validation rules in sale...Salesforce interview preparation toolkit formula and validation rules in sale...
Salesforce interview preparation toolkit formula and validation rules in sale...
 
Custom Controllers and Controller Extensions
Custom Controllers and Controller Extensions Custom Controllers and Controller Extensions
Custom Controllers and Controller Extensions
 
Mulesoft salesforce connector to update Object.
Mulesoft salesforce connector to update Object.Mulesoft salesforce connector to update Object.
Mulesoft salesforce connector to update Object.
 
IBM Lotus iNotes 8.5 Customization
IBM Lotus iNotes 8.5 CustomizationIBM Lotus iNotes 8.5 Customization
IBM Lotus iNotes 8.5 Customization
 
Exploring Adobe Flex
Exploring Adobe Flex Exploring Adobe Flex
Exploring Adobe Flex
 
Oracle EMC 12C Grand Tour
Oracle EMC 12C Grand TourOracle EMC 12C Grand Tour
Oracle EMC 12C Grand Tour
 
Lotus knows Notes851
Lotus knows Notes851Lotus knows Notes851
Lotus knows Notes851
 
Developing Mash up applications with Adobe AIR
Developing Mash up applications with Adobe AIRDeveloping Mash up applications with Adobe AIR
Developing Mash up applications with Adobe AIR
 
Orangescrum Invoice Pro Add-on user manual
Orangescrum Invoice Pro Add-on user manualOrangescrum Invoice Pro Add-on user manual
Orangescrum Invoice Pro Add-on user manual
 
Test script
Test scriptTest script
Test script
 
Exploring Layouts and Providers
Exploring Layouts and ProvidersExploring Layouts and Providers
Exploring Layouts and Providers
 
Opr089 xx
Opr089 xxOpr089 xx
Opr089 xx
 
( 6 ) Office 2007 Accessing A Business Data Catolog
( 6 ) Office 2007   Accessing A Business Data Catolog( 6 ) Office 2007   Accessing A Business Data Catolog
( 6 ) Office 2007 Accessing A Business Data Catolog
 

Similar a Customizing Salesforce with VisualForce - Build Pages and ControllersDescription: This title summarizes the key topics covered in the document - customizing Salesforce using VisualForce by building pages and controllers. It is less than 40 characters to meet the requirement. The keywords "Salesforce", "VisualForce", "Pages" and "Controllers

Customizing sales force-interface
Customizing sales force-interfaceCustomizing sales force-interface
Customizing sales force-interfaceAmit Sharma
 
Visualforce report
Visualforce reportVisualforce report
Visualforce reportRinku Saini
 
Apex code-fundamentals
Apex code-fundamentalsApex code-fundamentals
Apex code-fundamentalsAmit Sharma
 
3.dev meetup2 visualforce_sites_a_pruzan
3.dev meetup2 visualforce_sites_a_pruzan3.dev meetup2 visualforce_sites_a_pruzan
3.dev meetup2 visualforce_sites_a_pruzanNata Isaevich
 
Getting Started with Visualforce
Getting Started with VisualforceGetting Started with Visualforce
Getting Started with VisualforceRati Sharma
 
Salesforce Spring '17 Top 10 Features
Salesforce Spring '17 Top 10 Features Salesforce Spring '17 Top 10 Features
Salesforce Spring '17 Top 10 Features Michael Gill
 
Demystifying S-Controls and AJAX
Demystifying S-Controls and AJAXDemystifying S-Controls and AJAX
Demystifying S-Controls and AJAXdreamforce2006
 
Customer FX Technical Reference Sheet
Customer FX Technical Reference SheetCustomer FX Technical Reference Sheet
Customer FX Technical Reference SheetGoodCustomers
 
Webinar: Salesforce Customization using Visualforce and Lightning Component F...
Webinar: Salesforce Customization using Visualforce and Lightning Component F...Webinar: Salesforce Customization using Visualforce and Lightning Component F...
Webinar: Salesforce Customization using Visualforce and Lightning Component F...APPSeCONNECT
 
A report on mvc using the information
A report on mvc using the informationA report on mvc using the information
A report on mvc using the informationToushik Paul
 
Alfresco_Web_Quick_Start_User_Help_Enterprise.pdf
Alfresco_Web_Quick_Start_User_Help_Enterprise.pdfAlfresco_Web_Quick_Start_User_Help_Enterprise.pdf
Alfresco_Web_Quick_Start_User_Help_Enterprise.pdfJeff Smith
 
Alfresco_Web_Quick_Start_User_Help_Enterprise.pdf
Alfresco_Web_Quick_Start_User_Help_Enterprise.pdfAlfresco_Web_Quick_Start_User_Help_Enterprise.pdf
Alfresco_Web_Quick_Start_User_Help_Enterprise.pdfJeff Smith
 
Alfresco_Web_Quick_Start_User_Help_Enterprise.pdf
Alfresco_Web_Quick_Start_User_Help_Enterprise.pdfAlfresco_Web_Quick_Start_User_Help_Enterprise.pdf
Alfresco_Web_Quick_Start_User_Help_Enterprise.pdfJeff Smith
 
Alfresco_Web_Quick_Start_User_Help_Enterprise.pdf
Alfresco_Web_Quick_Start_User_Help_Enterprise.pdfAlfresco_Web_Quick_Start_User_Help_Enterprise.pdf
Alfresco_Web_Quick_Start_User_Help_Enterprise.pdfJeff Smith
 
Salesforce Development Training In Noida Delhi NCR
Salesforce Development Training In Noida Delhi NCRSalesforce Development Training In Noida Delhi NCR
Salesforce Development Training In Noida Delhi NCRShri Prakash Pandey
 
MCA 6th Sem Project Report
MCA 6th Sem Project ReportMCA 6th Sem Project Report
MCA 6th Sem Project ReportPRADEEP GUPTA
 
How to embed reporting into your asp.net core web applications
How to embed reporting into your asp.net core web applications How to embed reporting into your asp.net core web applications
How to embed reporting into your asp.net core web applications Concetto Labs
 

Similar a Customizing Salesforce with VisualForce - Build Pages and ControllersDescription: This title summarizes the key topics covered in the document - customizing Salesforce using VisualForce by building pages and controllers. It is less than 40 characters to meet the requirement. The keywords "Salesforce", "VisualForce", "Pages" and "Controllers (20)

Customizing sales force-interface
Customizing sales force-interfaceCustomizing sales force-interface
Customizing sales force-interface
 
Visualforce report
Visualforce reportVisualforce report
Visualforce report
 
Introducing Visualforce
Introducing VisualforceIntroducing Visualforce
Introducing Visualforce
 
Apex code-fundamentals
Apex code-fundamentalsApex code-fundamentals
Apex code-fundamentals
 
Vf ppt (1)
Vf ppt (1)Vf ppt (1)
Vf ppt (1)
 
3.dev meetup2 visualforce_sites_a_pruzan
3.dev meetup2 visualforce_sites_a_pruzan3.dev meetup2 visualforce_sites_a_pruzan
3.dev meetup2 visualforce_sites_a_pruzan
 
Getting Started with Visualforce
Getting Started with VisualforceGetting Started with Visualforce
Getting Started with Visualforce
 
Salesforce Spring '17 Top 10 Features
Salesforce Spring '17 Top 10 Features Salesforce Spring '17 Top 10 Features
Salesforce Spring '17 Top 10 Features
 
Demystifying S-Controls and AJAX
Demystifying S-Controls and AJAXDemystifying S-Controls and AJAX
Demystifying S-Controls and AJAX
 
Getting a Quick Start with Visualforce
Getting a Quick Start with Visualforce Getting a Quick Start with Visualforce
Getting a Quick Start with Visualforce
 
Customer FX Technical Reference Sheet
Customer FX Technical Reference SheetCustomer FX Technical Reference Sheet
Customer FX Technical Reference Sheet
 
Webinar: Salesforce Customization using Visualforce and Lightning Component F...
Webinar: Salesforce Customization using Visualforce and Lightning Component F...Webinar: Salesforce Customization using Visualforce and Lightning Component F...
Webinar: Salesforce Customization using Visualforce and Lightning Component F...
 
A report on mvc using the information
A report on mvc using the informationA report on mvc using the information
A report on mvc using the information
 
Alfresco_Web_Quick_Start_User_Help_Enterprise.pdf
Alfresco_Web_Quick_Start_User_Help_Enterprise.pdfAlfresco_Web_Quick_Start_User_Help_Enterprise.pdf
Alfresco_Web_Quick_Start_User_Help_Enterprise.pdf
 
Alfresco_Web_Quick_Start_User_Help_Enterprise.pdf
Alfresco_Web_Quick_Start_User_Help_Enterprise.pdfAlfresco_Web_Quick_Start_User_Help_Enterprise.pdf
Alfresco_Web_Quick_Start_User_Help_Enterprise.pdf
 
Alfresco_Web_Quick_Start_User_Help_Enterprise.pdf
Alfresco_Web_Quick_Start_User_Help_Enterprise.pdfAlfresco_Web_Quick_Start_User_Help_Enterprise.pdf
Alfresco_Web_Quick_Start_User_Help_Enterprise.pdf
 
Alfresco_Web_Quick_Start_User_Help_Enterprise.pdf
Alfresco_Web_Quick_Start_User_Help_Enterprise.pdfAlfresco_Web_Quick_Start_User_Help_Enterprise.pdf
Alfresco_Web_Quick_Start_User_Help_Enterprise.pdf
 
Salesforce Development Training In Noida Delhi NCR
Salesforce Development Training In Noida Delhi NCRSalesforce Development Training In Noida Delhi NCR
Salesforce Development Training In Noida Delhi NCR
 
MCA 6th Sem Project Report
MCA 6th Sem Project ReportMCA 6th Sem Project Report
MCA 6th Sem Project Report
 
How to embed reporting into your asp.net core web applications
How to embed reporting into your asp.net core web applications How to embed reporting into your asp.net core web applications
How to embed reporting into your asp.net core web applications
 

Más de Amit Sharma

Oracle enteprise pbcs drivers and assumptions
Oracle enteprise pbcs drivers and assumptionsOracle enteprise pbcs drivers and assumptions
Oracle enteprise pbcs drivers and assumptionsAmit Sharma
 
Oracle EPBCS Driver
Oracle EPBCS Driver Oracle EPBCS Driver
Oracle EPBCS Driver Amit Sharma
 
Oracle Sales Quotation Planning
Oracle Sales Quotation PlanningOracle Sales Quotation Planning
Oracle Sales Quotation PlanningAmit Sharma
 
Oracle strategic workforce planning cloud hcmswp converted
Oracle strategic workforce planning cloud hcmswp convertedOracle strategic workforce planning cloud hcmswp converted
Oracle strategic workforce planning cloud hcmswp convertedAmit Sharma
 
FDMEE script examples
FDMEE script examplesFDMEE script examples
FDMEE script examplesAmit Sharma
 
Oracle PBCS creating standard application
Oracle PBCS creating  standard applicationOracle PBCS creating  standard application
Oracle PBCS creating standard applicationAmit Sharma
 
Hfm rule custom consolidation
Hfm rule custom consolidationHfm rule custom consolidation
Hfm rule custom consolidationAmit Sharma
 
Hfm calculating RoA
Hfm calculating RoAHfm calculating RoA
Hfm calculating RoAAmit Sharma
 
Adding metadata using smartview
Adding metadata using smartviewAdding metadata using smartview
Adding metadata using smartviewAmit Sharma
 
Hyperion planning weekly distribution
Hyperion planning weekly distributionHyperion planning weekly distribution
Hyperion planning weekly distributionAmit Sharma
 
Hyperion planning scheduling data import
Hyperion planning scheduling data importHyperion planning scheduling data import
Hyperion planning scheduling data importAmit Sharma
 
Hyperion planning new features
Hyperion planning new featuresHyperion planning new features
Hyperion planning new featuresAmit Sharma
 
Microsoft dynamics crm videos
Microsoft dynamics crm videosMicrosoft dynamics crm videos
Microsoft dynamics crm videosAmit Sharma
 
Security and-data-access-document
Security and-data-access-documentSecurity and-data-access-document
Security and-data-access-documentAmit Sharma
 
Sales force certification-lab-ii
Sales force certification-lab-iiSales force certification-lab-ii
Sales force certification-lab-iiAmit Sharma
 
Sales force certification-lab
Sales force certification-labSales force certification-lab
Sales force certification-labAmit Sharma
 
Managing users-doc
Managing users-docManaging users-doc
Managing users-docAmit Sharma
 
Force.com migration utility
Force.com migration utilityForce.com migration utility
Force.com migration utilityAmit Sharma
 
User and group security migration
User and group security migrationUser and group security migration
User and group security migrationAmit Sharma
 

Más de Amit Sharma (20)

Oracle enteprise pbcs drivers and assumptions
Oracle enteprise pbcs drivers and assumptionsOracle enteprise pbcs drivers and assumptions
Oracle enteprise pbcs drivers and assumptions
 
Oracle EPBCS Driver
Oracle EPBCS Driver Oracle EPBCS Driver
Oracle EPBCS Driver
 
Oracle Sales Quotation Planning
Oracle Sales Quotation PlanningOracle Sales Quotation Planning
Oracle Sales Quotation Planning
 
Oracle strategic workforce planning cloud hcmswp converted
Oracle strategic workforce planning cloud hcmswp convertedOracle strategic workforce planning cloud hcmswp converted
Oracle strategic workforce planning cloud hcmswp converted
 
Basics of fdmee
Basics of fdmeeBasics of fdmee
Basics of fdmee
 
FDMEE script examples
FDMEE script examplesFDMEE script examples
FDMEE script examples
 
Oracle PBCS creating standard application
Oracle PBCS creating  standard applicationOracle PBCS creating  standard application
Oracle PBCS creating standard application
 
Hfm rule custom consolidation
Hfm rule custom consolidationHfm rule custom consolidation
Hfm rule custom consolidation
 
Hfm calculating RoA
Hfm calculating RoAHfm calculating RoA
Hfm calculating RoA
 
Adding metadata using smartview
Adding metadata using smartviewAdding metadata using smartview
Adding metadata using smartview
 
Hyperion planning weekly distribution
Hyperion planning weekly distributionHyperion planning weekly distribution
Hyperion planning weekly distribution
 
Hyperion planning scheduling data import
Hyperion planning scheduling data importHyperion planning scheduling data import
Hyperion planning scheduling data import
 
Hyperion planning new features
Hyperion planning new featuresHyperion planning new features
Hyperion planning new features
 
Microsoft dynamics crm videos
Microsoft dynamics crm videosMicrosoft dynamics crm videos
Microsoft dynamics crm videos
 
Security and-data-access-document
Security and-data-access-documentSecurity and-data-access-document
Security and-data-access-document
 
Sales force certification-lab-ii
Sales force certification-lab-iiSales force certification-lab-ii
Sales force certification-lab-ii
 
Sales force certification-lab
Sales force certification-labSales force certification-lab
Sales force certification-lab
 
Managing users-doc
Managing users-docManaging users-doc
Managing users-doc
 
Force.com migration utility
Force.com migration utilityForce.com migration utility
Force.com migration utility
 
User and group security migration
User and group security migrationUser and group security migration
User and group security migration
 

Último

Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 

Último (20)

Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 

Customizing Salesforce with VisualForce - Build Pages and ControllersDescription: This title summarizes the key topics covered in the document - customizing Salesforce using VisualForce by building pages and controllers. It is less than 40 characters to meet the requirement. The keywords "Salesforce", "VisualForce", "Pages" and "Controllers

  • 1. Getting Started with SalesForce CRM Customizing Salesforce Interface Description: BISP is committed to provide BEST learning material to the beginners and advance learners. In the same series, we have prepared a complete end-to end Hands-on Beginner’s Guide for SalesForce. The document focuses on customizing Salesforce interface. Join our professional training program and learn from experts. History: Version Description Change 0.1 Initial Draft 0.1 Review#1 www.bispsolutions.com Author Chandra Prakash Sharma Amit Sharma www.bisptrainigs.com Publish Date 10th Jan 2014 10th Jan 2014 www.hyperionguru.com Page 1
  • 2. Contents Understand the VisualForce framework, including its Advantages.....................................................3 Understand the VisualForce framework :.......................................................................................3 What is VisualForce ?................................................................................................................. 3 Advantage of VisualForce :............................................................................................................4 Dynamic VisualForce Bindings :.....................................................................................................5 Actions on a page to a controller :..................................................................................................6 Using Standard List Controller Actions :.....................................................................................6 Create custom controllers and standard controller extensions to incorporate new data and actions into a page......................................................................................................................................... 7 Custom Controllers:....................................................................................................................... 7 What are Custom Controllers and Controller Extensions?..........................................................7 How To Create Page By Using Custom Controllers :..................................................................8 How to Building a Custom Controller :........................................................................................9 Controller Methods :................................................................................................................. 10 Standard Controllers :.................................................................................................................. 10 Associating a Standard Controller with a VisualForce Page :...................................................10 Accessing Data with a Standard Controller :.............................................................................10 Standard Controller Actions :....................................................................................................10 ................................................................................................................................................. 11 Validation Rules and Standard Controllers :.............................................................................11 Understand the security implications of using custom vs. standard controllers................................12 Controller Class Security :........................................................................................................ 12 Implement wizards using custom controllers to handle the state and operations.............................13 Create custom components that use custom controllers..................................................................19 www.bispsolutions.com www.bisptrainigs.com www.hyperionguru.com Page 2
  • 3. Understand the VisualForce framework, including its Advantages Understand the VisualForce framework : What is VisualForce ? What is VisualForce? VisualForce is a framework that allows developers to build sophisticated, custom user interfaces that can be hosted natively on the Force.com platform. The VisualForce framework includes a tagbased markup language, similar to HTML. What is a VisualForce Page ? Developers can use VisualForce to create a VisualForce page definition. A page definition consists of two primary elements: • VisualForce markup • A VisualForce controller Where Can VisualForce Pages Be Used ? Similar to s-controls, developers can use VisualForce pages to: • Override standard buttons, such as the New button for accounts, or the Save button for contacts • Override tab overview pages, such as the Accounts tab home page • Define custom tabs • Embed components in detail page layouts, similar to the way inline s-controls can be embedded www.bispsolutions.com www.bisptrainigs.com www.hyperionguru.com Page 3
  • 4. Advantage of VisualForce : As a markup language, VisualForce provides the following benefits : User-friendly development : Developers can edit their VisualForce markup in the same window that displays the resulting page. Consequently, developers can instantly verify the result of an edit just by saving their code. The VisualForce editor pane also include auto-completion and syntax highlighting. Integration with other Web-based user interface technologies : Because VisualForce markup is ultimately rendered into HTML, designers can use VisualForce tags alongside standard HTML, JavaScript, Flash, or any other code that can execute within an HTML page on the platform, including Force.com platform merge fields and expressions. Model-View-Controller (MVC) style development : VisualForce conforms to the Model-View-Controller (MVC) development pattern by providing a clear division between the view of an application (the user interface, defined by VisualForce markup), and the controller and the controller that determines how the application works(the business logic, defined by a VisualForce controller written in Apex). Concise syntax : VisualForce pages can implement the same functionality as s-controls but with approximately 90% fewer lines of code. Data-driven defaults : VisualForce components are rendered intelligently by the platform. For example, rather than forcing page designers to use different component tags for different types of editable fields (such as email addresses or calendar dates), designer scan simply use a generic <apex:inputField> tag for all fields. The VisualForce renderer displays the appropriate edit interface for each field. Hosted platform : VisualForce pages are compiled and rendered entirely by the Force.com platform. Because they are so tightly integrated, they display the same performance as standard SalesForce pages, regardless of the amount of data being displayed or edited. Automatically upgradeable : VisualForce pages do not need to be rewritten when other parts of the Force.com platform are upgraded. Because the pages are stored as metadata, they are automatically upgraded with the rest of the system. www.bispsolutions.com www.bisptrainigs.com www.hyperionguru.com Page 4
  • 5. Use expressions to bind data and actions on a page to a controller Dynamic VisualForce Bindings : In SalesForce Dynamic VisualForce bindings are a way of writing generic VisualForce pages that display information about records without necessarily knowing which fields to show. In other words, fields on the page are determined at run time, rather than compile time. This allows a developer to design a single page that renders differently for various audiences, based on their permissions or preferences. Dynamic bindings are useful for VisualForce pages included in managed packages since they allow for the presentation of data specific to each subscriber with very little coding. Dynamic VisualForce binding is supported for standard and custom objects : Syntax : reference[expression] Dynamic bindings can be used anywhere formula expressions are valid : Syntax : {!reference[expression]} Enters Dynamic VisualForce Binding. Let's just quickly see what a regular VisualForce page looks like. As an example I want to display the Employee first Name, Mobile Number, Position. To do that, all you need to do is a very simple VisualForce page like this : www.bispsolutions.com www.bisptrainigs.com www.hyperionguru.com Page 5
  • 6. Actions on a page to a controller : Using Standard List Controller Actions : Action methods perform logic or navigation when a page event occurs, such as when a user clicks a button, or hovers over an area of the page. Syntax <apex:commandButton> <apex:commandLink> <apex:actionPoller> <apex:actionSupport> Description creates a button that calls an action creates a link that calls an action periodically calls an action makes an event (Ex: "onclick", "onmouseover", and so on) on another, named component, call an action defines a new JavaScript function that calls an action calls an action when the page is loaded <apex:actionFunction> <apex:page> Action Methods : Action Save Description Inserts new records or updates existing records that have been changed. Inserts new records or updates existing records that have been changed. Returns a PageReference object of the standard list page, based on the most recently used list filter for that object when the filterId is not specified by the user. Aborts an edit operation. Displays the first page of records in the set. Displays the last page of records in the set. Displays the next page of records in the set. Displays the previous page of records in the set. quicksave list cancel first last next previous You can see below Example : www.bispsolutions.com www.bisptrainigs.com www.hyperionguru.com Page 6
  • 7. Create custom controllers and standard controller extensions to incorporate new data and actions into a page Custom Controllers: A custom controller is an Apex class that implements all of the logic for a page without leveraging a standard controller. - You want to leverage the built-in functionality of a standard controller but override one or more actions, such as edit, view, save, or delete. - You want to add new actions. - You want to build a VisualForce page that respects user permissions. Standard controllers can provide all the functionality you need for a VisualForce page because they include the same logic that is used for a standard page. For example, if you use the standard Accounts controller, clicking a Save button in a VisualForce page results in the same behavior as clicking Save on a standard Account edit page. However, if you want to override existing functionality, customize the navigation through an application, use callouts or Web services, or if you need finer control for how information is accessed for your page, you can write a custom controller or a controller extension using Apex: What are Custom Controllers and Controller Extensions? www.bispsolutions.com www.bisptrainigs.com www.hyperionguru.com Page 7
  • 8. In VisualForce custom control is an apex class that implement all of the logic for a page without leaving a standard controller. Custom control use in VisualForce page run entirely in system mode they does not enforce the permissions and field-level security of the current user. How To Create Page By Using Custom Controllers : Click on Setup > develop > Pages Then Click on New button. OR Directly write in address bar after login SalesForce site then add given address in url /apex/Newpage1 for example you see here https://c.ap1.visual.force.com/apex/Newpage1 Note :- 1.Make Sure in User Setting Development Mode is enable. 2. You can Custom Control you in Standard Object and Custom object. Example 1:- In this example create table with style sheet and how to call image by using custom object Controller. Step 1 :- Create new page /apex/Newpage1 www.bispsolutions.com www.bisptrainigs.com www.hyperionguru.com Page 8
  • 9. Note :- Before using this code <apex:image value="{!$Resource.imagename}"/> make sure add image file in Static Resources. How to Building a Custom Controller : From Setup > Develop > Apex Classes then click New button. After create apex class then you can create VisualForce page you can see below. www.bispsolutions.com www.bisptrainigs.com www.hyperionguru.com Page 9
  • 10. Controller Methods : Action Control : <apex:commandButton> creates a button that calls an action <apex:commandLink> creates a link that calls an action <apex:actionPoller> periodically calls an action <apex:actionSupport> makes an event (such as “onclick”, “onmouseover”, and so on) on another, named component, call an action <apex:actionFunction> defines a new JavaScript function that calls an action <apex:page> calls an action when the page is loaded Standard Controllers : In Salesforce.com VisualForce controller is a set of instructions that specify what happens when a user interacts with the components specified in associated VisualForce markup, such as when a user clicks a button or link. Controllers also provide access to the data that should be displayed in a page, and can modify component behavior. Associating a Standard Controller with a VisualForce Page : Use the standardController attribute on the <apex:page> </apex:page> tag and assign it the name of any SalesForce object that can be queried using the Force.com API. Syntax : <apex:page standardController="Account"> </apex:page> Accessing Data with a Standard Controller : Every standard controller includes a getter method that returns the record specified by the id query string parameter in the page URL. - You can traverse up to five levels of child-to-parent relationship. - You can traverse one level of parent-to-child relationships. Standard Controller Actions : <apex:commandButton> creates a button that calls an action www.bispsolutions.com www.bisptrainigs.com www.hyperionguru.com Page 10
  • 11. <apex:commandLink> creates a link that calls an action <apex:actionPoller> periodically calls an action <apex:actionSupport> makes an event (such as “onclick”, “onmouseover”, and so on) on another, named component, call an action <apex:actionFunction> defines a new JavaScript function that calls an action <apex:page> calls an action when the page is loaded Validation Rules and Standard Controllers : If a user enters data on a SalesForce page that uses a standard controller, and that data causes a validation rule error, the error can be displayed on the SalesForce page. If the validation rule error location is a field associated with an <apex:inputField> component, the error displays there. If the validation rule error location is set to the top of the page, use the <apex:pageMessages> or <apex:messages> component within the <apex:page> to display the error. you can see below Example : The following page allows you to update an account after will all fields then click on Save button. www.bispsolutions.com www.bisptrainigs.com www.hyperionguru.com Page 11
  • 12. Understand the security implications of using custom vs. standard controllers Custom Control : Standard controllers can provide all the functionality you need for a VisualForce page because they include the same logic that is used for a standard page. For example, if you use the standard Accounts controller, clicking a Save button in a VisualForce page results in the same behavior as clicking Save on a standard Account edit page. Standard Control : In Salesforce.com VisualForce controller is a set of instructions that specify what happens when a user interacts with the components specified in associated VisualForce markup, such as when a user clicks a button or link. Controllers also provide access to the data that should be displayed in a page, and can modify component behavior. contain the same functionality and logic that are used for standardSalesforce pages. Can be used with standard objects and custom objects. Controller Class Security : To set Apex class security from the class list page: www.bispsolutions.com www.bisptrainigs.com www.hyperionguru.com Page 12
  • 13. Setup > Develop > Apex Classes then you can see security link on given page you can see below. Select the profiles that you want to enable from the Available Profiles list and click Add, or select the profiles that you want to disable from the Enabled Profiles list and click Remove. Then click Save. You can see below. Implement wizards using custom controllers to handle the state and operations Example : If you want to create a three-step opportunity wizard that allows users to create an opportunity at the same time as a related contact, account, and contact role:  The first step captures information related to the account and contact.  The second step captures information related to the opportunity.  The final step shows which records will be created and allows the user to save or cancel . Solution : 1. Navigate to the URL for the Create VisualForce first page: https://<host>.salesforce.com/apex/opptyStep1 2. Click Create Page newOpptyStep1. www.bispsolutions.com www.bisptrainigs.com www.hyperionguru.com Page 13
  • 14. 3. Repeat the Step (Step 1 or Step 2) and give VisualForce page Name opptyStep2 and opptyStep3. 4. Create the newOpportunityController controller it's create on Apex class. you can see below. Create Apex class then you create newOpptyStep1, newOpptyStep2, and newOpptyStep3 Visual Force page. You can see below. www.bispsolutions.com www.bisptrainigs.com www.hyperionguru.com Page 14
  • 15. <apex:page controller="newOpportunityController" tabStyle="Opportunity"> <apex:sectionHeader title="New Customer Opportunity" subtitle="Step 1 of 3"/> <apex:form > <apex:pageBlock title="Customer Information"> <!-- This facet tag defines the "Next" button that appears in the footer of the pageBlock. It calls the step2() controller method, which returns a pageReference to the next step of the wizard. --> <apex:facet name="footer"> <apex:commandButton action="{!step2}" value="Next" styleClass="btn"/> </apex:facet> <apex:pageBlockSection title="Account Information"> <!-- <apex:panelGrid> tags organize data in the same way as a table. It places all child elements in successive cells, in left-to-right, top-to-bottom order --> <!-- <apex:outputLabel > and <apex:inputField > tags can be bound together with the for and id attribute values, respectively. --> <apex:panelGrid columns="2"> <apex:outputLabel value="Account Name" for="accountName"/> <apex:inputField id="accountName" value="{!account.name}"/> www.bispsolutions.com www.bisptrainigs.com www.hyperionguru.com Page 15
  • 16. <apex:outputLabel value="Account Site" for="accountSite"/> <apex:inputField id="accountSite" value="{!account.site}"/> </apex:panelGrid> </apex:pageBlockSection> <apex:pageBlockSection title="Contact Information"> <apex:panelGrid columns="2"> <apex:outputLabel value="First Name" for="contactFirstName"/> <apex:inputField id="contactFirstName" value="{!contact.firstName}"/> <apex:outputLabel value="Last Name" for="contactLastName"/> <apex:inputField id="contactLastName" value="{!contact.lastName}"/> <apex:outputLabel value="Phone" for="contactPhone"/> <apex:inputField id="contactPhone" value="{!contact.phone}"/> </apex:panelGrid> </apex:pageBlockSection> </apex:pageBlock> </apex:form> </apex:page> Create newOpptyStep1, then create newOpptyStep2 VisualForce page. <apex:page controller="newOpportunityController" tabStyle="Opportunity"> <apex:sectionHeader title="New Customer Opportunity" subtitle="Step 2 of 3"/> <apex:form > <apex:pageBlock title="Opportunity Information"> www.bispsolutions.com www.bisptrainigs.com www.hyperionguru.com Page 16
  • 17. <apex:facet name="footer"> <apex:outputPanel > <apex:commandButton action="{!step1}" value="Previous" styleClass="btn"/> <apex:commandButton action="{!step3}" value="Next" styleClass="btn"/> </apex:outputPanel> </apex:facet> <apex:pageBlockSection title="Opportunity Information"> <apex:panelGrid columns="2"> <apex:outputLabel value="Opportunity Name" for="opportunityName"/> <apex:inputField id="opportunityName" value="{!opportunity.name}"/> <apex:outputLabel value="Amount" for="opportunityAmount"/> <apex:inputField id="opportunityAmount" value="{!opportunity.amount}"/> <apex:outputLabel value="Close Date" for="opportunityCloseDate"/> <apex:inputField id="opportunityCloseDate" value="{!opportunity.closeDate}"/> <apex:outputLabel value="Stage" for="opportunityStageName"/> <apex:inputField id="opportunityStageName" value="{!opportunity.stageName}"/> <apex:outputLabel value="Role for Contact: {!contact.firstName} {!contact.lastName}" for="contactRole"/> <apex:inputField id="contactRole" value="{!role.role}"/> </apex:panelGrid> </apex:pageBlockSection> </apex:pageBlock> </apex:form> </apex:page> Create newOpptyStep2, then create newOpptyStep3 VisualForce page. www.bispsolutions.com www.bisptrainigs.com www.hyperionguru.com Page 17
  • 18. <apex:page controller="newOpportunityController" tabStyle="Opportunity"> <apex:sectionHeader title="New Customer Opportunity" subtitle="Step 3 of 3"/> <apex:form > <apex:pageBlock title="Confirmation"> <apex:facet name="footer"> <apex:outputPanel > <apex:commandButton action="{!step2}" value="Previous" styleClass="btn"/> <apex:commandButton action="{!save}" value="Save" styleClass="btn"/> </apex:outputPanel> </apex:facet> <apex:pageBlockSection title="Account Information"> <apex:panelGrid columns="2"> <apex:outputText value="Account Name"/> <apex:outputText value="{!account.name}"/> <apex:outputText value="Account Site"/> <apex:outputText value="{!account.site}"/> </apex:panelGrid> </apex:pageBlockSection> <apex:pageBlockSection title="Contact Information"> <apex:panelGrid columns="2"> <apex:outputText value="First Name"/> <apex:outputText value="{!contact.firstName}"/> <apex:outputText value="Last Name"/> <apex:outputText value="{!contact.lastName}"/> <apex:outputText value="Phone"/> www.bispsolutions.com www.bisptrainigs.com www.hyperionguru.com Page 18
  • 19. <apex:outputText value="{!contact.phone}"/> <apex:outputText value="Role"/> <apex:outputText value="{!role.role}"/> </apex:panelGrid> </apex:pageBlockSection> <apex:pageBlockSection title="Opportunity Information"> <apex:panelGrid columns="2"> <apex:outputText value="Opportunity Name"/> <apex:outputText value="{!opportunity.name}"/> <apex:outputText value="Amount"/> <apex:outputText value="{!opportunity.amount}"/> <apex:outputText value="Close Date"/> <apex:outputText value="{!opportunity.closeDate}"/> </apex:panelGrid> </apex:pageBlockSection> </apex:pageBlock> </apex:form> </apex:page> Create custom components that use custom controllers In SalesForce you can build your own custom components to augment this library. Accessing Custom Component Attributes in a Controller : Step 1: Create Apex class : Step 2 : Create Component, how to create Component in SalesForce.com. Setup > Develop > Components, Then click New button. www.bispsolutions.com www.bisptrainigs.com www.hyperionguru.com Page 19
  • 20. Step 3 : Create VisualForce page. www.bispsolutions.com www.bisptrainigs.com www.hyperionguru.com Page 20