Visualforce Workbook - • Download the Visualforce Cheat Sheet at . • Get in-depth documentation for Visualforce in the Visualforce Developer’s Guide. • Start learning the Apex

  • View
    217

  • Download
    4

Embed Size (px)

Text of Visualforce Workbook - • Download the Visualforce Cheat Sheet at . • Get in-depth documentation...

  • Visualforce WorkbookVersion 6, Winter 17

    @salesforcedocsLast updated: September 13, 2016

    https://twitter.com/salesforcedocs

  • Copyright 20002016 salesforce.com, inc. All rights reserved. Salesforce is a registered trademark of salesforce.com, inc.,as are other names and marks. Other marks appearing herein may be trademarks of their respective owners.

  • CONTENTS

    Welcome to the Visualforce Workbook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

    Who this Workbook is For . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

    Introduction to Visualforce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

    Creating and Listing Visualforce Pages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3Enable Visualforce Development Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3Create a Visualforce Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3Edit the Visualforce Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4Find All Visualforce Pages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5Alternative Page Creation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

    Adding Attributes and Using Auto-Suggest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5Add Attributes Using Auto-Suggest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6Add Additional Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7Add Nested Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

    Understanding Simple Variables and Formulas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8Global Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9Basic Formulas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9Conditionals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

    Using Standard Controllers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11Find Identifiers of Records . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11Display Data from a Record . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12Display Other Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13Display Fields from Related Records . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

    Using Standard User Interface Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14Display a Record or Related Lists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14Display Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15Display a Table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

    Updating Visualforce Pages with Ajax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16Identify a Region for Dynamic Updates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16Add Dynamic Re-Rendering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

    Overriding and Pointing to Pages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18Override the Standard Display for a Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18Embed a Page on a Standard Layout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

  • Create a Button that Links to a Visualforce Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19Create Hyperlinks to URLs or Other Visualforce Pages . . . . . . . . . . . . . . . . . . . . . . . . . 20Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

    Inputting Data with Forms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21Create a Basic Form . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21Show Field Labels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22Display Warning and Error Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

    Reusing Pages with Templates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23Create a Template . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23Use a Template with Another Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23Include One Visualforce Page within Another . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

    Introduction to Apex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

    Set Up Your Development Environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25Install the Enhanced Warehouse Data Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25Access the Mobile Browser Web App . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26Download the Salesforce1 Mobile App . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

    Using the Developer Console . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26Activating the Developer Console . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26Using the Developer Console to Execute Apex Code . . . . . . . . . . . . . . . . . . . . . . . . . . 27Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

    Creating and Instantiating Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29Creating an Apex Class Using the Developer Console . . . . . . . . . . . . . . . . . . . . . . . . 29Calling a Class Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31Creating an Apex Class Using the Salesforce User Interface . . . . . . . . . . . . . . . . . . . . . 31Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

    Creating the WarehouseUtils Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32Create the WarehouseUtils Apex Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33Add a Stub findNearbyWarehouses Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33Perform a Query and Return the Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34Summary and Code Check . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

    Testing and Debugging the WarehouseUtils Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36Create an Apex Test Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36Add a Test Method and Setup Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36Test the findNearbyWarehouses Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38Run the Test and Review Test Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39Find the Bug . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41Write a Test for the Bug . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41Fix the Bug . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42Summary and Code Check . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

    Visualforce and Apex In Action . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

    Contents

  • Creating Location-Aware Visualforce Pages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46Create a Visualforce Page Linked to the WarehouseUtils Class . . . . . . . . . . . . . . . . . . . 46Add Static Resources to the Page . . . . . . . . . . .