Wednesday, October 3, 2012

Salesforce Record ID's

Apart from being what many regard as long, useless numbers; Record IDs in Salesforce.com can in fact be very useful, whether you’re a simple user of the system, or an advanced developer looking to extend your Force.com applications.
Each table and data record in the Salesforce.com system has a unique ID field assigned to it. You can’t remove the unique ID, nor can you change it; it’s something that is system generated each time a new record is inserted into the application. Unique IDs are in fact very useful for anyone designing and developing applications on the Force.com platform. To understand this better let’s look at a real example:
  • As an exercise, sign into your Salesforce.com org and find an Account record to work with (In my case, I am using a developer org with some test data pre-loaded)
  • I’ve selected the Edge Communications account, which has an ID of 001A0000006Vm9u as you can see from the page snippet below
Salesforce.com Unique ID


So why are these IDs useful?
Basically, they provide a consistent, foolproof way to refer to a data record; right down to the ability to copy and paste a unique ID as a URL into the page address after the salesforce.com/ part of the address.
What many do NOT know is that these IDs, though unique, are also case-sensitive. This can present a challenge when you are using the ID values in external systems such as MS Excel or database systems.
To demonstrate my point, try this URL: http://na7.salesforce.com/001A0000006VM9U
(substitute the na7 part of the URL for your own instance)
It almost certainly will not work, and you’ll see an error message (unless, by some fluke this ID actually exists in your system). To drive home the point, 001000000009Abc is *not* equal to 001000000009ABC, at least not in Salesforce.com ID terms.
Useful information: Record ID values are copied without modification from a production org when a sandbox is created, but it is almost certain that any subsequent records created in the two orgs will have different ID values.

Now, you can do some interesting things with ID values. For example, the following characters (entered after the salesforce.com part of the web address) will place you in a new Contact record page: /003/e – Try it!
Similarly, these characters will navigate you directly to the Campaign Home Page: /701/o
Using just the 3-char prefix will bring you to the default view for that object e.g. /800
Entering a known record ID (15 or 18 characters) will direct you straight to the details page of that record: /00QA0000004wjDt

Here are some more useful shortcuts:
Useful tip: The 1st 3 characters of an ID indicate the object type (i.e. table name)
  • 001 = Account
  • 003 = Contact
  • 005 = User
  • 006 = Opportunity
  • 00D = Organization
  • 00e = Profile
  • 00E = UserRole
  • 00Q = Lead
  • 00T = Task
  • 00U = Event
  • 012 = Record Type
  • 015 = Document
  • 01t = Product
  • 500 = Case
  • 701 = Campaign
  • 800 = Contract… and so on
These prefixes never change for standard objects. Custom objects are assigned 3-char prefixes based on internal SFDC rules that we cannot predict. However, even if you’re not a developer or an expert user of Salesforce.com, these unique IDs can provide a quick route to locate and amend data in the Salesforce.com system. Not only that, it’s also quite a fun way to show how much you know about the system and how quickly you can navigate around it.

Tuesday, October 2, 2012

Certification Notes

Force.com Applications

Building Data Model

  1. Fields
  2. Standard Fields
    1. Created when object are generated
      1. ID
      2. Name – Text OR Auto Number
      3. Owner
      4. Other – Created by, Modified By, Created date, last Modified date
      5. Data Types
        1. Numeric
          1. Number
          2. Currency
          3. Percent
    2. Calendar
      1. Date
      2. Date Time
    3. Limited Option
      1. Check Box
      2. Pick list
      3. Multi-select Pick List
    4. Formatted Text
      1. Email
      2. Phone
      3. URL
    5. Text
      1. Text
      2. Text Area (255)
      3. Long Text Area (32768)
      4. Rich Text Area (Formatted Text, Links, Images)
      5. Encrypted
    6. Calculation
      1. Auto Number
      2. Formula
      3. Roll Up Summary
      4. Custom Field Properties
        1. Name (__c)
        2. Label
        3. Universally Required
        4. Unique
        5. External ID – Custom Index added, Improves SOQL & Report Performance, Can have 3 External ID fields per object
        6. Default Value
        7. Help Text
        8. Field Dependencies
          1. Standard Pick list can be controlling not dependent
          2. Max values in controlling is 300 (so also if a field is both controlling and dependent)
          3. Before defining at least 1 value is required
          4. Custom multi select pick list cannot be controlling field
          5. Encrypted fields
            1. Provisioned feature
            2. View encrypted data permission
            3. Can edit even if not having View encrypted data permission
            4. Cannot be unique, external id or have default value
  3. Object relationships
  4. Lookup
    1. Child detail optional
    2. Each object can have as many as 25
    3. Creates a related list on the parent object
  5. Master Detail
    1. Required child
    2. Delete parent – child deleted
    3. Master in one cannot be detail in another – not possible to create multiple level
    4. Can create between two custom or one custom and one standard (standard always master)
    5. Cannot create master detail to users or leads
    6. Detail side objects cannot have sharing rules, manual sharing or queues (no owner fields)
    7. Maximum 2 relationships per object
    8. Can perform cross object fields updates and roll up summary fields
    9. Can span multiple levels depending on Master object is standard or custom??
10. Special Relationships
  1. Self relationships
    1. Lookup to self object
    2. Hierarchy
    3. May to many
      1. Two many to one relationships with same object on detail side
      2. Junction (Intersection object) object
      3. Deleted when one of the master is deleted (Kept in trash). If both master deleted it is deleted permanently.
11. Lookup Filter
  1. Limit search results
  2. Compare fields to other fields and standard value
  3. Can be required or optional

Building User Interface

  1. Custom Application
    1. Logo and Landing Tab
  2. Custom tab
    1. Custom Object tab
    2. Web Tab
    3. VF Tab

Business Logic

  1. Formula fields
  2. Cross object formula
    1. Cannot reference cross object formula in roll up summary fields
    2. Cannot reference merge fields for objects related to activities
    3. Cannot reference record owner merge fields
    4. Limit for cross object formula fields is 10 unique relationships per object across all formulas and rules
  3. Roll up summary fields
    1. Sum, Minimum, Maximum, Record Count
    2. Can create for all custom MD
    3. Some standard relationships also including Account Oppty and Oppty Product
Migrating configuration changes
  1. Configuration stored as meta data
    1. Tools to move meta data
      1. Change sets
      2. Force.com ide
      3. Migration Tool
  2. Change sets
    1. Point and click web interface to move metadata only between “related” orgs
    2. Requirements
      1. Apex code 75% code coverage unit testing
      2. Incompatibilities between versions – not migrated (can upload compatible part)
      3. Manually migrate changes that cannot be included
      4. Renaming or deleting cannot be specified
      5. Need change set profile permission
      6. Deployed entirely or not at all (if one component fails all fails)
      7. Cannot modify once uploaded by can be cloned

Analytics as a Service

Reports

  1. Custom Reports Basics
    1. Reports do not save data only the report logic
    2. Data – Displayed based on access levels
    3. Reports are real time
    4. Reports access determined by folder
  2. Report Builder
    1. Panes: Field, Filter and preview Panes
    2. Formats
      1. Tabular
      2. Summary – Sorting, sub Total
      3. Matrix – Grid, Compare related totals
      4. Scheduled reports run in the time zone of the user scheduling report
      5. To email a report it must be in public folder

Dashboards

  1. Dashboard Component – based on report or chart
  2. Based on data when dashboard was run
  3. Dashboard components (20 max)
    1. Chart
    2. Table – 4 columns, summary fields
    3. Gauge
    4. Metric – Single no
    5. VF page
  4. Chart Types
    1. Verticle column
    2. Horizontal Bar
    3. Line
    4. Donut
    5. Funnel
    6. Pie
    7. Scatter
  5. Access
    1. Folder & Running user
    2. Each dashboard can have 3 filters
      1. Date/time, currency, picklist, lookup and text
      2. Fields that are common to all components
      3. Can not be added where you have VF components, used with bucket fields
      4. Dashboard Filter – based on 1 field (10 options)

Custom report Types (CRT)

  1. Standard & Custom report Types
    1. Standard – Created when an object is created or relationship is created
    2. CRT
  2. Creating CRT
    1. Define Primary Object
    2. Optional – Define report record set (related records / up to 4 objects) – with or without
    3. Optional – Add fields
    4. With (only when there is child) & With or Without (irrespective of child record)

Analytic Snapshots

  1. Steps
    1. Create report
    2. Create object
    3. Create snapshot

Data Management

Data Management Overview

  1. Uses Web Services API to access application
  2. Data Management operations
    1. Export
    2. Insert
    3. Update
    4. Upsert
    5. Delete
    6. Record Id
      1. Two Format 15 Digit Case Sensitive and 18 Digit Case Insensitive (first three char – object)
i.     Reports 15 Digits
ii.     API 18 Digits
iii.     For Updates APIs expect 18 Digit
iv.     Can convert 15 to 18
  1. Ways to access record ID – URL, Reports, API, Formula Fields
  2. Help establish Object Relationships
  3. Data Loaded in sequence depending on dependencies
  4. “Inserting System Fields” like created date – can be set when importing if this feature is enabled (only during initial import of data). Cannot be updated.
    1. Inserting System Fields is only for
i.     Account
ii.     Oppty
iii.     Case
iv.     Lead
v.     Task
vi.     Event
vii.     All custom objects
  1. Available only through API and backward compatible with SOAP based APIs

External Ids

  1. UPSERT – An API function that provides INSERT & UPDATE in single call
  2. External id
    1. Each object can have 3
    2. Help improve report and SOQL performance
    3. Upsert and External Ids are used for migration and data integration
    4. Can help auditioning the flow of information
    5. When UPDERTING If the extern ID matches with no record a new record is created, if it matches with 1 record – it is updated and if multiple records then error is thrown

Data Management Tools

  1. Import Wizards
    1. 50000 records
    2. Accounts, Contacts, Leads, Solutions, Custom Objects
    3. Prevent Duplication (Using Account Name & Site OR Account ID, Contact Name, Contact Email OR Contact ID, Custom Object Name OR ID)
    4. API Based Tools
      1. Data Loader
      2. Can load more than 50000 records
      3. Schedule data loads – every night
      4. Export for backup
      5. Delete multiple objects
      6. Data Loader
        1. Supports CSV files & External Database through JDBC
        2. Can run from command line
        3. SOQL – Salesforce Object Query Language
        4. Data Loader Operation
i.     Extract  – uses SOQL
ii.     Insert -
iii.     Update – Matches records based on SF ID
iv.     Upsert  – Matches records based on SF ID OR External ID
v.     Delete – Matches records based on SF ID
  1. Can be used only for DE, EE or UE
  2. Selecting Data Management Tool
    1. Dedup data – Import Wizard
    2. Schedule Data Load – Data Loader
    3. Load two related objects at once – Import Wizard
    4. Load < 50000 records – Import Wizard
    5. Export Data for backup – Data Loader
    6. Load data for object not supported by wizard – data Loader
    7. Upsert or Upsert with relationships – Data loader

Managing Data

  1. Running Data Loader from Command Line
    1. java – jar DataLoader.jar
    2. com.salesforce.dataloader.process.PricessRunner with DataLoader.jar in classpath
    3. Options
i.     –Dsalesforc.config.dir=CONFIG_DIRECTORY.
  1. Data loader runs operation file or map in the configuration file
  2. If no directory is speceified takes the current directory
  3. Default directory
i.     C:Program FilesSalesforce.comData Loader Versionconfig
  1. Batch process configuration file – process-conf.xml is at samplesconf directory
  2. If you use process-conf.xml setting process.name to the name of process specifies process to run otherwise config.properties is used for parameter settings
  3. Data Loader Encryption
    1. Encryption Utility – RunBinencrypt.bat
    2. Command Line Prompts
i.     Generate a key
ii.     Encrypt text
iii.     Verify Encrypted Text
  1. Mass Transfer Records
    1. To Transfer users need required user permission and read sharing access to record
    2. Can be used to transfer Accounts, Leads and Custom Objects

Designing Applications for Multiple Users

Design Considerations

  1. Design Considerations
    1. Users – What they see and what they do
    2. Data Access path – Data that can be accessed by whom and restrictions
    3. Analyzing Business requirements
      1. Identify Actors and Data
      2. Identify How much each actor will see
      3. Specify access levels

Managing User Experience

  1. Licenses
    1. User License
i.     Salesforce – Full access to standard CRM, Force.com  Appexchange apps
ii.     Salesforce.com Platform – Only custom apps, Force.com  Appexchange apps
  1. Feature License
i.     Marketing
ii.     Offline
  1. Profiles
    1. Define user’s permission to perform different functions
    2. Profiles are associated with license type
    3. Work in conjunction with role hierarchy and sharing model
    4. Profiles control permissions, access to data and user interface
i.     Permissions – Admin & General, Standard Object & Custom Object
ii.     Access to data – Field Level security
iii.     User Interface – Page Layout, Apps, Tabs, Record Types
  1. Admin Permissions – View All data, Modify All data, Customize Application, API Only User (can not login to sfc.com, Password never expires)
  2. Standard (can not be created, deleted or customized) & Custom profiles (to modify the standard profiles – can be deleted or customized)
  3. Profile Permissions
  4. Permission Set
    1. Group of permissions in addition to their profile
    2. A user can have 1 profile and multiple permission sets
    3. 1 org can have up to 1000 permission sets
    4. Can only be used to give permission but not to deny
    5. Profiles v/s Permission sets
      1. Permissions sets – Applications, objects, tabs, fields, apex classes, service provider and VF pages
      2. Profiles – App Picker, Tab defaults, record Type, page Layout, Login hours, Desktop client access, category group access
      3. Field Level Security
      4. User Interface & profiles
        1. Record Type – View different details on page
        2. Page Layouts

Controlling Record Access

  1. Considerations
    1. Ownership of records can be transferred to any user who has at least ‘read’ permission on object
    2. Child records in MD relationships inherit the properties of parent
    3. Users or Queue can be owners
    4. Levels of Record access
      1. Read only
      2. Read Write
i.     OWD
ii.     Role hierarchy
iii.     Sharing rules
iv.     Manual sharing
v.     Apex sharing
vi.     “view all data”
  1. Full Access
i.     Record Owner
ii.     Above in Role Hierarchy
iii.     “Modify all data”
  1. OWD
    1. Baseline level of access to data that we do not own
    2. Restrict access to data
    3. Three levels
i.     Public Read Write
ii.     Public Read Only
iii.     Private
  1. Roles & Hierarchy
    1. Record access through Role hierarchy
    2. Rolls up for all standard objects if the person above has access to object by profile
    3. Custom objects can be defined whether access can be granted or not (Use Grant Access using hierarchy in OWD)
    4. Public groups
      1. Default Public Group – All Internal users
      2. Made up of combination of
i.     Users
ii.     Roles
iii.     Roles & Sub
iv.     Other Public groups
  1. Use public groups to
i.     Reduce no of sharing rules
ii.     Folder access
  1. Sharing rules
  2. Manual sharing
  3. Apex sharing Reason
i.     Developers define why a user has access to record
ii.     Sharing reason does not creates sharing rule
iii.     Deleting a reason may sharing rule that uses that reason
iv.     Requires ‘Modify all data’
v.     Used programmatically and not through app
vi.     Sharing button will display reason
  1. Access to Record Review is in following order
    1. Permissions (like View all data)
    2. Record Ownership
    3. OWD
    4. Role hierarchy
    5. Sharing (rules or manual sharing)
Designing Data Access Security

Implementing business processes

Automating Business Processes with workflow

  1. Workflow rule – automate business process
    1. Process
i.     Select object
ii.     Specify criteria
  1. Only when Record is created
  2. Record is created or Updated and first meets criteria
  3. Every single time created or updates
iii.     Rule criteria
  1. Workflow actions
i.     Immediate
ii.     Time dependent
  1. Cannot be set for every time record is created or updated
  2. Can monitor in Time dependent workflow q (can remove actions)
  3. If a record has action pending in TDWQ and record no longer meets criteria or timing changes – the action will be updated.
  4. If no longer meets – action is removed
iii.     Action types
  1. Email
  2. Update field
  3. Send outbound message
  4. Assign a task

Auditing processes

  1. Setup audit trail – track changes made to the setup
    1. Date, name of user and change
    2. 20 changes on screen and 180 days changes by download
    3. Field History Tracking
      1. History Related list
      2. Tracked for Accounts, Cases, Contacts, Contracts, Leads, opportunities, Solutions and Custom Objects
      3. Old value, new value, date time and user
      4. Long text area and multi-select pick lists are not tracked
      5. 20 fields per object
      6. Auditing tools
        1. Debug logs – Activities performed by end user or code
        2. Setup audit trail – config changes by admin
        3. Field history – data value changes

Approval processes

  1. Steps
    1. Process definition – which records enter process, settings for whole process
    2. Initial submission action – locking, assigning task, email, update field, ob message
    3. Step definition – which records enter step (all or some), multiple step
i.     Decision criteria
ii.     Assignment
  1. Final rejection action – unlock, task, email, update fields, ob message
  2. Final approval action – unlock, task, email, update fields, ob message
  3. Recall action – unlock, task, email, update fields, ob message
  4. Process visualise
    1. Read only visual
    2. Workflow v/s Approval
      1. Wf triggerd when record is saved – approval manual
      2. One set of criteria and actions – have multiple steps, entry and step criteria and step actions + more actions
      3. Can be modified or deleted – some attributes can not be modified without deactivation.
      4. Skipping steps
        1. Criteria to Skip Step in an approval process
        2. Can be a filter criteria or formula
        3. Options
i.     Go to next step (only if there is next step and if next step is deleted SF will automatically change to reject record)
ii.     Approve
iii.     Reject
  1. Selecting Go to next step in the first step and record does not meets criteria – record is rejected
  2. Parallel approval process
    1. Can send approval to multiple users
    2. Up to 25 users
    3. Unanimous / based on 1st response
    4. Outbound messages
      1. Designate end point
      2. Secure configurable API message in xml format
      3. Dynamic approval process
        1. Route records based on approval matrices
        2. Approval request to users listed in record
        3. Creating
i.     Create lookup fields on object approved
ii.     Custom object as approving matrix
iii.     Populate approval matrix
iv.     Create apex code to fill lookup fields from approval matrix
v.     Approval process to utilize lookup fields
  1. Order of automated process
    1. Validation rule
    2. Assignment rule
    3. Auto response rule
    4. Workflow rule
    5. Escalation rule
    6. Visual workflow (flows)
      1. Required Manage Force.com Flow
      2. Cloud Flow Designer

Preserving Data Quality

  1. Validation Rules – data meets the standards (formula or expressions)
    1. Run on server
    2. UI, API, Import wizard
    3. You write – Error condition formula and Error Message
    4. Conditionally required fields
    5. Data Quality
      1. REGEX – compares text field to Regular expression (pattern used to describe a set of strings according to syntax rules)
      2. Data consistency
        1. VLOOKUP – validation rule stored in another object
        2. Prevent data loss
          1. Use in conjunction with Rollup summary field
          2. Parent – sums no of child objects

Visualforce Pages

Visualforce Introduction

  1. Two types of UIs
    1. Page Builder
    2. Visualforce
i.     Full control over UI
  1. In line editor – available on “Development mode”
    1. Automated completion, syntax highlighting, documentation
    2. Create a page – /apex/pagename
    3. Visualforce Pages – defined using mark-up language
      1. Can include
i.     Visualforce tags
ii.     Force.com expressions
iii.     HTML / CSS
iv.     Javascript
v.     Flash
  1. Can Ajax Toolkit to access web services API to connect to SF data
  2. Limited to 15 MB
  3. Visualforce component tags – generated HTML tags behind the scene to create the page
  4. Benefits
    1. Understand SF metadata
    2. Coupled with Force.com – same performace
    3. Auto upgrade
    4. Separate view from navigation control and data model
    5. Confirms to MVC
    6. MVC
      1. Model (data Structure)
      2. View (data display)
      3. Controller (rules)
      4. Elements of VF
        1. Pages
        2. Components – referenced components for reuse
i.     Standard (prebuilt constructs) or Custom
ii.     Referenced using a Tag Library Model
iii.     Dynamic Visualforce Components (Designed in Apex – Render pages based on variety of states)
  1. Controllers
i.     Standard (new, edit, save)
ii.     Custom
  1. Custom controller – implemented in Apex
iii.     Controller Extensions – OOB functionality while creating custom actions and data references
iv.     Logic and data references
v.     A VF page reference one main controller
vi.     VF uses Expressions syntax to bind data to controllers
  1. All data in {!…} is evaluated as expression
  2. Versioning
    1. Previous versions are available
10. Namespaces
  1. Standard Tag –
  2. Csutom Tag –
  3. Register Custom namespace –
11. Ways to add VF pages to Salesforce UI
  1. Link to URL
  2. Override standard buttons
  3. Overriding Tab overview pages
  4. Custom Tab
  5. Embedding on Page Layout
  6. Adding to  dashboard
  7. Custom help to custom object

Visualforce tags

  1. Tags
    1. Tags
    2. Text directly on page
    3. HTML tags and  Comments <!—Comment –>
    4. Can use Javascript but not Javascript comments
    5. Hierarchial tags – well formed – means start and end tag or self contained tag
    6. Visualforce component tags – similar to JSP tags
    7. Tag Binding
      1. Three types of Tag bindings
i.     Data – Use Expression Syntax to pull data made available by page controller
  1. API naming syntax
    1. __C
    2. Custom objects referenced through relationships – dot notation and __r
    3. Expression Syntax
      1. Dynamic Object Data {!..}
      2. Global Data – {{$..}
      3. Local variables can be created
ii.     Action – Use Expression Syntax to call action methods for functions coded in page controller
iii.     Component – does not use expression syntax and uses component attribute vales to reference other component Ids
Basic Page Components
  1. Attributes and values
    1. Values Types
i.     Integer
ii.     String
iii.     Object {!Account}
iv.     Action Method – {!Save}, {!Edit}, {!Delete}
v.     Boolean – true, false
vi.     Iteration
  1. Layout Components
i.     – single VF page
  1. standardController or controller
  2. title (String)
  3. tabStyle (String)
  4. action (Action Method)
  5. renderAs (string)
ii.     apex:variable
  1. value (Object)
  2. var (string)
  3. Static Resources – Type of salesforce storage, like archive, images, CSS
i.     Referenced in code using $Variable
ii.     Limit 5MB file overall 250 MB
iii.     Faster upload – caching
iv.     Usage
i.     Stylesheers located in /sCSS/ directory with dStandard.css and allCustom.css
  1. Pageblock tags
i.    
  1. Mode (string) – detail / edit
  2. Title(string)
  3. tabStyle(string)
  4. facet tags
ii.    
  1. location
iii.     – section with columns
  1. Collapsible (Boolean)
  2. Columns (integer)
iv.    
v.    
  1. Title
  2. Subtitle
  3. Help
  4. Other UI Tags
i.    
ii.    
iii.    
iv.    
v.    
vi.    
  1. Template Tags
i.    
  1. Coarse Metadata Components
    1. Apex:detail
i.     Subject
ii.     relatedList
iii.     relatedListHover
  1. apex:relatedList
i.     List
ii.     Subject
iii.     pageSize
  1. apex:ListView
i.     type
  1. apex:enhancedList
i.     customizable
ii.     type
iii.     rowsPerPage
iv.     width
  1. apex:repeat
i.     value
ii.     rows (integer) (0 all rows)
  1. Chater
i.     showChatter on apex:detail
ii.    
iii.     Chatter:follower
iv.     Chatter:follow
v.     Chatter:feedwith follow
  1. Massage tags
i.     Apex:message
ii.     Apex:pageMessage
Visualforce Form & Output Components
  1. Form – enter data
    1. a.     Apex:form
i.     Accept
ii.     Title
iii.     Target
  1. b.    Apex:inputfield
  2. c.     Apex:inputwidget
i.     Widgets that do not correspond to data in SF (have limitations)
  1. Inputcheckbox
  2. inputHidden
  3. inputsecret
  4. inputtext
  5. inputtextarea
ii.     use when you want to vary size of data, tab sequence, required inputs, bind to custom controllers and standard javascript events
  1. selectWidgets (display of UI widgets in organized tables)
i.     selectcheckboxes
ii.     selectList
iii.     selectRadio
  1. apex:inputfile (attachments, documents, blobs)
i.     accept
ii.     contentType
iii.     filename
  1. apex:commandButton & apex:commandLink (used within form tags)
i.     action
ii.     value
  1. Output (display without allowing change in data and most have parallel form components)
    1. Apex:Outputlabel
i.     Vales
ii.     For
iii.     Tabindex
  1. Apex:outputField
i.     Value
  1. Apex:outputField
i.     Value
ii.     Title
iii.     coords
  1. Apex:outputLink
  2. Apex:OutputPanel
i.     Set of content grouped together (eg for partial page refreshes using ajax
  1. Apex:outputText
  2. g.    Apex:pageBlockTable
  3. h.    Apex:dataTable
  4. i.       apex:dataList
  5. apex:column/
  6. k.     apex:flash
i.     src
ii.     height
iii.     width
iv.     flashVars
  1. apex:facet
i.     to override headers, footers and captions

Visualforce components for modularity

  1. Custom Components
    1. Can be standalone or accompanied by custom controller
    2. b.    Apex:component
    3. Access using
i.     Controller or extentions
ii.     Access (global (outside namespace) or public)
  1. Apex:attribute
  2. Apex:componentBody
  3. Page inclusion components

Saturday, September 15, 2012

Salesforce Developer Practice Exam (DEV 401 Certification)

  1. In the statement below, controller refers to what type of controller? Select the one correct answer. 
    1. Standard Controller
    2. Custom Controller
    3. Controller Extension
    4. Specific Controller
  2. Which of the following represent correct syntax to display first name from global variable user? Select the one correct answer.
    1. {User.FirstName}
    2. {!User.FirstName}
    3. $User.FirstName
    4. {!$User.FirstName}
  3. Which of these is not a standard profile? Select the one correct answer.
    1. Developer
    2. Contract Manager
    3. Read only
    4. Solution Manager
  4. Name the language Force.com uses to support full-text search in objects. Select the one correct answer.
    1. SQL
    2. VisualForce
    3. SOQL
    4. SOSL
  5. Before a code can be deployed on production what percentage of test coverage must be achieved. Select the one correct answer.
    1. 25%
    2. 50%
    3. 75%
    4. 100%
  6. In Salesforce what is the maximum number of fields that can be added to an object? Select the one correct answer.
    1. There is no such limit on the number of fields
    2. 100
    3. 200
    4. 500
  7. How many characters are there in the Salesforce case-insensitive id field of an object? Select the one correct answer.
    1. id field is not mandatory
    2. The field length is customizable
    3. This depends on the version of Salesforce
    4. 18
  8. Name the prefix used by standard VisualForce markup tags. Select the one correct answer.
    1. vf
    2. apex
    3. c
    4. s
  9. Which of the following cannot be included in a VisualForce page? Select the one correct answer.
    1. Java
    2. JavaScript
    3. HTML
    4. Flash
  10. To create a new VisualForce page HelloWorld in developer mode, which URL should be appended to server address? Select the one correct answer.
    1. /HelloWorld
    2. /vf/HelloWorld
    3. /apex/HelloWorld
    4. /home/HelloWorld
  11. What is the maximum size of a VisualForce page? Select the one correct answer.
    1. 1 MB
    2. 5 MB
    3. 15 MB
    4. There is no limit on the size of a VisualForce page
  12. What is the number of components that can be added to a dashboard? Select the one correct answer.
    1. 20
    2. 25
    3. 50
    4. 100
  13. Which of these represent the correct syntax for custom controllers? Select the one correct answer.
  14. Which is the first step when creating reports? Select the one correct answer.
    1. Select report name
    2. Select object on which report needs to be generated
    3. Select type of report
    4. Select columns to be displayed
  15. Which of these is not a valid report type. Select the one correct answer.
    1. Summary
    2. Matrix
    3. Tabular
    4. Detailed
  16. Which report type is used to group rows of data and show their subtotals. Select the one correct answer.
    1. Summary
    2. Matrix
    3. Tabular
    4. Detailed
  17. Which report type is used to group rows and columns of data and show their subtotals. Select the one correct answer.
    1. Summary
    2. Matrix
    3. Tabular
    4. Detailed
  18. Which report type does not allow generation of charts? Select the one correct answer.
    1. Summary
    2. Matrix
    3. Tabular
    4. Detailed
  19. Which of these are valid data type in Force.com development platform. Select the two correct answers.
    1. Percent
    2. URL
    3. Choicebox
    4. Long
    5. Decimal
  20. When designing an application, a developer needs to make a field editable to all profiles. In field level security what settiings should be used in this situation. Select the one correct answer.
    1. Disable Visible and Read-Only
    2. Disable Visible but Enable Read-Only
    3. Enable Visible but Disable Read-Only
    4. Enable Visible and Read-Only
  21. Which report type does not support analytical snapshot? Select the one correct answer.
    1. Summary
    2. Matrix
    3. Tabular
    4. Detailed
  22. A customer has requested a user interface where list view of four objects can be accessed together with frequent navigation across them. Which feature of Force.com platform can be used to support this requirement? Select the one correct answer.
    1. Console
    2. Dashboards
    3. Analytical Snapshot
    4. Packages
    5. Layout template
  23. In a recruitment application, a dashboard component needs to be built that will display total number of positions. Which dashboard component can be used to implement this feature? Select the one correct answer.
    1. Gauge
    2. Metric
    3. Table
    4. Chart
    5. VisualForce page
  24. Universal Recruiters will like to hire ten employees in two months. In a recruitment application, a dashboard component needs to be built that will display progress towards achieving this goal of hiring of ten employees. Which dashboard component can be used to implement this feature? Select the one correct answer.
    1. Gauge
    2. Metric
    3. Table
    4. Chart
    5. VisualForce page
  25. Universal Recruiters uses an external system for keeping track of exits from the organization. The CEO of the organization will like to view information about exits in the Salesforce application that Universal Recruiters uses. Which dashboard component can be used to implement this feature? Select the one correct answer.
    1. Gauge
    2. Metric
    3. Table
    4. Chart
    5. VisualForce page
  26. Universal Recruiters uses Force.com as its recruitment platform. The Sales VP of Universal Recruiters will like a report that will display progress in recruitment across six months. Which reporting component can be used to implement this feature? Select the one correct answer.
    1. Summary
    2. Matrix
    3. Tabular
    4. Analytic Snapshot
  27. Which two features are supported by Salesforce in developer mode? Select the one correct answer.
    1. Developer mode allows a default user interface to be created for objects.
    2. Developer mode provides a debugger that is used to perform step by step execution.
    3. Developer mode allows developers to create dashboards from reports.
    4. Developer mode allows split screen where user can view Visual Force editor and user interface together
    5. Developer mode allows developers to create new pages by just entering the page name.
  28. Universal Recruiters wants to make access to records in such a way that all managers should be able to access records that are accessible to their team members. Which feature of Force.com's security should be used to implement this requirement. Select the one correct answer.
    1. Object level access to profiles
    2. Field level access to profiles
    3. Organization wide defaults
    4. Role hierarchy
    5. Sharing rules
    6. Manual sharing
  29. Universal Recruiters need to ensure that the Social Security Number and Phone Numbers follow a specific pattern. Which function can be used to implement this functionality. Select the one correct answer.
    1. REGEX
    2. EXPRMATCH
    3. ISNUMBER
    4. PRIORVALUE
    5. VLOOKUP
  30. Universal Recruiters have an object that they use to store all US zip codes and corresponding states. They want to ensure that the zip code and state specified by users are correct. Which function could be used to implement this feature? Select the one correct answer.
    1. REGEX
    2. EXPRMATCH
    3. ISNUMBER
    4. PRIORVALUE
    5. VLOOKUP
  31. Which of these functions is available in formulae field. Select the one correct answer.
    1. ISCHANGED
    2. ISNEW
    3. REGEXC
    4. IF
    5. VLOOKUP
    6. All of these functions are available in a formula field
  32. A Force.com developer needs to execute Apex code snippet and check the resource usage. Which feature of the platform can be used to support this requirement. Select the one correct answer.
    1. Debug Log
    2. System Log
    3. Setup Audit Trail
    4. Field level security
  33. A user at Universal Container has reported an issue with respect to approval process. You need to analyze this issue by reviewing the debug messages that get generated for this particular users. Which feature of the platform can be used to support this requirement. Select the one correct answer.
    1. Debug Log
    2. System Log
    3. Setup Audit Trail
    4. Field level security
  34. While debugging an issue you realize that the field type of an object has changed. You need to find out more details about this change. Which feature of the platform can be used to support this requirement. Select the one correct answer.
    1. Debug Log
    2. System Log
    3. Setup Audit Trail
    4. Field level security
  35. In Universal Recruiter application a developer realizes that the Salary field of an employee is set up to an incorrect value. The developer needs to find out who has set this new value to Salary field. Which feature of the platform can be used to support this requirement. Select the one correct answer.
    1. Debug Log
    2. System Log
    3. Setup Audit Trail
    4. Field History Tracking
  36. Which of the following is correct about custom fields in Salesforce. Select one correct answer.
    1. If a field is set as required it must be entered in the Salesforce generated pages, however it may not be specified when entering information via Force.com API
    2. A required field is always present in an edit page
    3. A unique field is always present in an edit page
    4. A unique field increases report and SOQL performance
  37. Fields of the which of the following type is not allowed to be set as external ids. Select one correct answer.
    1. Date
    2. Number
    3. eMail
    4. Text
  38. The number of master detail relationship that an object can have are
    1. 1
    2. 2
    3. 25
    4. 300
  39. The number of Lookup relationship that an object can have are
    1. 1
    2. 2
    3. 25
    4. 300
  40. Which of these is true about the Lookup Relationship. Select one correct answer.
    1. Parent is not a required field and may be omitted.
    2. Deleting an object deletes its children.
    3. Roll-up summary field can be used to perform basic operations over all children of a parent record.
    4. Security access of the child record is dependent upon the parent record.
  41. Which of the following cannot be used to build a complete Custom Tab. Select one correct answer.
    1. Display an external web page
    2. Display data using a VisualForce page
    3. Show data from a custom object using the native user interface
    4. Display the approval process using an Apex page
  42. Which of the following is not supported by Enhanced Page Layout editor. Select the one correct answer.
    1. Change the field name
    2. Add blank spaces
    3. Make a field required or read-only
    4. Add a new section
    5. Add a new custom field
  43. Which of the following is true about Roll-up summary fields? Select one correct answer.
    1. Roll-up summary can only be set on the parent of a Master-Detail or Lookup relationship.
    2. Roll-up summary can be used to compute SUM,MIN,MAX,AVG over a set of records
    3. The results of the roll-up summary is displayed on the child in a master-detail relationship.
    4. Roll-up summary fields are read only.
  44. Which of the following is true about Validation Rules? Select two correct answers.
    1. Validation rules are executed when the user clicks on the Save button.
    2. Validation rules are not applicable when the data is stored using the API.
    3. If the error condition evaluates to true, then an error message is generated and the record is not saved.
    4. Validation rules are applied only when a new record is created, and not when an existing record is edited.
  45. Which of the following is not a valid return type of a custom formula. Select one correct answer.
    1. Date
    2. Decimal
    3. Text
    4. Array
  46. Which of the following is not a part of a Force.com app. Select one correct answer.
    1. Notes
    2. Tab
    3. Links
    4. Forms
  47. An organization needs to create a public website that displays data from Salesforce.com organization without user registration. Select one correct answer.
    1. Apex
    2. Triggers
    3. Salesforce Knowledgebase
    4. Force.com sites
    5. Formula
Answers
  1. B. controller attribute is used for Custom Controller
  2. D. {!$User.FirstName} is the correct syntax to access first name.
  3. A. There is no developer standard profile.
  4. D. Salesforce Object Search Language
  5. C. The code must get a test coverage of 75% before it can be deployed.
  6. D. There can be a maximum of 500 fields in custom objects.
  7. D. object id field can be 15 character case-sensitive or 18 character case-insensitive.
  8. B. The prefix apex is used for standard VisualForce markup tags.
  9. A. It is not possible to include Java code in VisualForce page.
  10. VisualForce page address appears like /apex/HelloWorld.
  11. C. VisualForce pages must be upto 15 MB.
  12. A. A dashboard can have upto 20 components.
  13. A.
  14. B. The first step when creating reports is select the object type.
  15. D. Salesforce does not have a report type named Detailed.
  16. A.
  17. B.
  18. C.
  19. A, B. Percent and URL are valid data types in Salesforce.
  20. C. To make a field editable, enable Visible but disable Read-Only.
  21. B. Matric report cannot be used to generate Analytical snapshot.
  22. A. Console tab allows easy navigation across multiple object types.
  23. B. Metric dashboard type is used to display
  24. A. A gauge is used to display progress towards a goal.
  25. E. VisualForce pages can be used to draw dashboard components that extract data from another source.
  26. D. Analytic Snapshot feature of Salesforce is used to perform trend analysis over a period of time.
  27. D, E. Last two statements about developer mode are correct.
  28. D. Role Hierarchy feature of Force.com platform can be used to implement this functionality.
  29. A. REGEX function is used to check a text field matches the regular expression.
  30. E. VLOOKUP is used to return the value for a unique key in an object.
  31. D. IF function is available in the formula field. Other functions are not available in the formula field.
  32. B. System Log can be used to run code snippets.
  33. A. Debug Log can be used to view the debug/error messages generated for a particular user.
  34. C. Setup Audit Trail can be used to track changes made in the configuration.
  35. D. Field History Tracking can be used to find out changes in field values.
  36. B. A field set as required must always be present in the edit page.
  37. A. Fields of type external id can be defined as Text, Number or Email.
  38. B. An object can have maximum of 2 Master detail relationship
  39. C. An object can have maximum of 25 Lookup relationship
  40. A. Parent is not a required field in Lookup relationship
  41. D. Custom tabs can be used to display a VisualForce page, data from an external page, data from a custom object.
  42. E. Enhanced Page Layout editor cannot be used to create new fields.
  43. D. Only option D is correct. Rollup summary field can only be applied in Master-detail. Hence A is incorrect. AVG is not supported in Rollup summary fields.Rollup Summary is defined at the parent level of a Master-Detail relationship.
  44. A and C. Validation rules are applicable when the record is saved using the API, hence the option B is incorrect. Validation rules are applied every time the record is saved, hence D is incorrect.
  45. D. Array is not a valid return type of custom formula.
  46. A. Key element of a Salesforce app are Tab, Links and Forms.
  47. D. Force.com sites is used to build public facing sites.

DEV 401 Topics to focus



  • Security controls (also learn about criteria based sharing)
  • Profiles
  • object level permissions
  • Field level permissions
  • Record level permissions
  • Record level access
  • Role hierarchy
  • Reports
  • How are objects related to reports?
  • Type of dashboard to component to use per case scenarios
  • What can be done with custom report types?
  • Analytic Snapshots
  • Workflows
  • Parallel approval
  • Approval process
  • Use case for time triggered actions
  • Limitations of data loader on importing standard, custom objects
  • Features of the data loader
  • Sidebar feature how are items added
  • User objects
  • Types of relationships including hierarchal
  • Use case on best relationship to use
  • Use case for using Visualforce and Apex
  • Force.com Sites
  • Encrypted Fields
  • External ID fields
  • System Fields
  • Formula fields
  • Console
  • Page layouts & Mini page layouts
  • Record Ids
  • Process Visualizer
  • Multiple currencies