Index

Symbols

+ (addition) operator, 110

& (AND) operator, 110

&& (AND) operator, 110

- (arithmetic negation) operator, 110

= (assignment) operator, 110

(backslash), UNIX line-continuation character, 309

/ (division) operator, 110

== (equality) operator, 110

=== (exact equality) operator, 110

!== (exact inequality) operator, 110

> (greater than) operator, 110

>= (greater than or equal to) operator, 110

( ) (grouping operators), 110

? : (if/then/else expression shortcut), 110

< (less than) operator, 110

<= (less than or equal to) operator, 110

! (logical negation) operator, 110

* (multiplication) operator, 110

!= (not equal to) operator, 110

| (OR) operator, 110

|| (OR) operator, 110

<< (signed shift left) operator, 110

>> (signed shift right) operator, 110

+ (string concatenation) operator, 110

- (subtraction) operator, 110

-- (unary decrement) operator, 110

++ (unary increment) operator, 110

>>> (unsigned shift right) operator, 110

^ (XOR) operator, 110

4GL developer contributions, 12

A

abortJob method, 296

Accept button, 213

accessibility (fields), 78-79, 89-90

accessing data

mobile Web applications

actionFunction component, 270

authentication, 269-270

JavaScript remoting, 270

REST API, 270

SmartSync, 270

REST API, 306

AccessLevel field, 163

access modifiers, 118

accounts receivable profile, 18, 86

actionFunction component, 235-236

mobile Web application data access, 270

Visualforce

controller, 236

page code, 236

actionPoller component, 237

actions, 203-204

asynchronous

as JavaScript events, 237-238

as JavaScript functions, 235-236

partial page refreshes, 234-235

status messages, 238-240

as timed events, 237

container components, 205

custom controllers, 195-197

custom logic, invoking, 195

trigger page navigation, 195

view state preservation, 195

wrapper pattern, 195-196

expressions

standard controllers, 192

standard set controllers, 193

actionStatus component, 238-240

actionSupport component, 237-238, 262

addError method, 225

addFields method, 246

addInfo method, 225

addition (+) operator, 110

administrative permissions, 75

aggregate functions, 144-145

AVG, 144

COUNT, 144-145

COUNT_DISTINCT, 144

governor limits, 145

MAX, 144

MIN, 144

records, grouping, 146

SUM, 144-145

AggregateResult object, 145

aggregate SOQL queries, 144

aggregate functions, 144-145

AVG, 144

COUNT, 144-145

COUNT_DISTINCT, 144

governor limits, 145

MAX, 144

MIN, 144

records, grouping, 146

SUM, 144-145

grouping records, 145-146

with aggregate functions, 146

filtering grouped, 146

without aggregate functions, 145-146

grouping records with subtotals, 147-148

debug log excerpt, 147

GROUP BY CUBE clause, 147-148

GROUP BY ROLLUP clause, 147

Ajax (Asynchronous JavaScript and XML)

actions, 234

as JavaScript events, 237-238

as JavaScript functions, 235-236

partial page refreshes, 234-235

status messages, 238-240

as timed events, 237

Visualforce support, 234

Proxy, 270

Amazon Web Services, 2-3

AND (&) operator, 110

AND (&&) operator, 110

AngularJS, 251-253

controllers

ProjectListCtrl, 253

timecard editing, 279

Visualforce, implementing, 252

demonstration page, 251

templates, 253

timecard entry in-page navigation controller, 277

tutorial Web site, 251

Visualforce page code, 252-253

Web site, 251

anonymous benchmarking SOAP Web service, 333-335

anti-joins

overview, 152

restrictions, 153

Apex, 7

AggregateResult object, 145

aggregate SOQL queries, 144

aggregate functions, 144-145

grouping records, 145-146

grouping records with subtotals, 147-148

arrays

creating, 111

initializing, 111-112

sorting, 112

Batch

Batchable interface, 283-284

batch jobs, 282, 286-289

classes, creating, 285-286

iterable scope, 290-292

limitations, 292

missing timecard class, developing, 298-299

project evaluation guidelines, 284-285

scheduling, 293-296

scope, 282

stateful, 289-290

testing, 293

transactions, 283

callouts, 301-302

REST services, 302-304

SOAP services, 305-306

Chatter, 378-379

Visualforce controller, 378

Visualforce page, 378

Web site, 378

classes

ConnectApi, 378

custom Apex REST services, creating, 312-314

custom Apex SOAP Web services rules, 327

HTTP, 302-303

code deployment in Tooling API, 355

Code Developer’s Guide Web site, 108

code execution

asynchronous, 116

conditional statements, 113

Execute Anonymous View, 104-105

exception statements, 114-115

governor limits, 120

loops, 114

recursion, 115

collections

clearing, 109

cloning, 109

emptiness, 109

size, 109

custom Apex REST Web services, 312-314

Apex class rules, 312

creating, 313

governor limits, 312

invoking, 313-314

custom settings, 180-181

creating, 180

deleting, 180

governor limits, 180

hierarchy type, 181

updating, 180

values, retrieving, 180

custom SOAP Web services, 326

Apex class rules, compared, 327

calling, 328

creating records example, 328

governor limits, 327

invoking, 329

limitations, 326-327

Services Manager anonymous benchmarking, 333-335

database integration

data integrity, 122

DML statements. See DML, statements

objects, referencing, 121-122

overview, 120-121

queries. See queries

security, 133

data types, 106

Blob, 106

Boolean, 106

converting, 107-108

Date, 106

date to string conversions, 109

Datetime, 106

Decimal, 106

Double, 106

ID, 106

Integer, 106

Long, 106

Object, 106

String, 106

string to date conversions, 109

Time, 106

debugging, 133

checkpoints, 133-135

execution logs, 134

dynamic, 174

instances, creating, 179

schema metadata, 177-179

SOQL queries, 175-176

SOSL queries, 176

governor limits, 100, 120

Apex code, 120

databases, 120

heaps, 120

namespaces, 120

lists

creating, 111

initializing, 111-112

nesting, 111

overview, 111

sorting, 112

managed sharing, 162

organization-wide sharing defaults, changing, 163

rules, creating, 163-167

sharing objects, 162-163

maps, 112-113

object-oriented principles, 117

encapsulation, 117-118

information-hiding notation, 118

inheritance, 119

modularity, 119

polymorphism, 119

operators, 109

AND (&&), 110

addition (+), 110

arithmetic negation (-), 110

assignment (=), 110

bitwise, 110

division (/), 110

equality (==), 110

exact equality (===), 110

exact inequality (!==), 110

greater than (>), 110

greater than or equal to (>=), 110

grouping, 110

if/then/else expression (? :), 110

less than (<), 110

less than or equal to (<=), 110

logical negation (!), 110

multiplication (*), 110

not equal to (!=), 110

OR (||), 110

signed shift left (<<), 110

signed shift right (>>), 110

string concatenation (+), 110

subtraction (-), 110

unary decrement (--), 110

unary increment (++), 110

unsigned shift right (>>>), 110

ORM code snippet, 30

overview, 100-101

receiving email, 172-173

class, creating, 173-174

governor limits, 173

personalizing based on sender identity, 173

services, configuring, 174-175

uncaught exceptions, 173

sending email, 168

attachments, 172

blind-carbon-copies, 171

carbon copies, 171

mass emails, 170-171

notifications, 181-182

organization-wide email address unique identifiers, 172

reply-to addresses, 171

sendEmail method, 171

sender display names, 171

signatures, 172

SingleEmailMessage object, 168-169

templates, 169-170

tracking, 172

sets, 112

SOQL queries, 126-128

SOSL, 155-157

Test Runner View (IDE), 103

transaction processing

DML database methods, 157-158

record locking, 161

savepoints, 159-160

triggers, 130-131

batching, 132

bulkifying, 132

definitions, 131-132

error handling, 132-133

names, 131

timecard validation, creating, 138-139

unit tests, 136

results, viewing, 137

running, 137

test data, 137

test methods, 136

Test Runner View, 103

TimecardManager class, 140-141

variables, 105

access modifiers, 118

checkpoints, 133-135

classes, 117

constants, 107

declaring, 105-106

enums, 107

names, 105-106

rounding, 108

APIs

Bulk, 344

authentication, 345-346

exporting records, 347-349

importing records, 346-347

two-tier system, 345

Web site, 345

Canvas, 349

authentication, 349-350

cross-domain XHR, 350

example application, 350-354

Web site, 349

Metadata, 360

object creation example, 361-363

services, 360-361

Web site, 360

REST

authentication, 306-307

Chatter, 379-380

Connected Apps, creating, 307

creating record requests, 310

data access, 306

data integration, 31

deleting record requests, 311

Force.com REST API Developer’s Guide Web site, 308

mobile Web application data access, 270

record retrieval by external identifiers, 310

record retrieval by unique identifiers, 309

services available call, 308-309

SObject basic information request, 309

SOQL query request, 310

updating record requests, 311

upserting record requests, 311

SOAP

data integration, 31

enabled permissions, 318-319

Enterprise. See Enterprise API

error handling, 321

Force.com data types, 321

IP white-listing, 319

limits, 316

logging in/out, 318-320

login call, 320

login problems, troubleshooting, 320

Partner, 315

security, 316

security tokens, 319

stub code, generating, 316-317

Web Service Connector (WSC), 316

WSDL versions, 315-316

Streaming

example, 341-344

PushTopcis, 340-341

Web site, 340

Tooling, 354

Apex code, deploying, 355

internal state of deployment, 355

overview, 355

query service, 355

status, refreshing, 355

user interface, 356

Visualforce controller example, 357-359

Visualforce page example, 359-360

Web site, 355

App Builder Tools, 33

App Engine, 3

AppExchange, 16

applications

AppExchange, 16

Connected Apps, creating, 351

custom, creating, 58

LDV deployments, 22

mobile

Chatter Mobile, 264

containers, 271

hybrid, 265, 267

native, 265-266

Salesforce Classic, 264

Salesforce Mobile SDK, 265

Salesforce Touch, 264

timecard entry page. See mobile timecard entry page

Web. See mobile applications, Web

services, 6

Services Manager. See Services Manager application

single-page, 250

AngularJS, 251-253

JavaScript remoting, 250

social. See Chatter

architectures

application services, 6

declarative metadata, 7

multilenancy, 4-6

programming languages, 7

relational databases, 6

security, 71

Visualforce, 186-187

arithmetic negation (-) operator, 110

arrays

creating, 111

initializing, 111-112

sorting, 112

Assignment object

fields, 54

overview, 53

assignment (=) operator, 110

asynchronous actions

as JavaScript events, 237-238

as JavaScript functions, 235-236

partial page refreshes, 234-235

status messages, 238-240

actionStatus component, 238-240

dynamic, 239

images/stylized messages, 239

as timed events, 237

asynchronous code execution, 116

Asynchronous JavaScript and XML. See Ajax

asyncMethod, 116

attachments (email), 172

attributes

page components, 200

reRender, 234

showChatter, 381

view components, 199

authentication

Bulk API, 345-346

Canvas, 349-350

mobile Web applications, 269-270

REST APIs, 306-307

sites users, 258

auto numbers, 40-41, 322

availability (PushTopics), 341

AVG aggregate function, 144

B

backslash (), UNIX line-continuation character, 309

Batchable interface, 283-284

Batch Apex, 116

Batchable interface, 283-284

batch jobs, 282

executing, 286

execution detail, viewing, 288

progress, monitoring, 287-288

scope, 289

classes, creating, 285-286

iterable scope, 290-292

limitations, 292

missing timecard class, developing, 298-299

project evaluation guidelines, 284-285

scheduled jobs

creating, 295

editing, 296

viewing, 296

scheduling, 293-296

Apex user interface, 294-295

sample code, 296

schedulable code development, 294

scope, 282

stateful, 289-290

testing, 293

transactions, 283

batch jobs, 282

bulk export

batches, creating, 348

creating, 347-348

results, retrieving, 348-349

status, checking, 348

bulk import

closing, 347

creating, 346

records, adding, 346-347

results, retrieving, 347

status, checking, 347

executing, 286

execution detail, viewing, 288

limitations, 292

progress, monitoring, 287-288

scheduled

creating, 295

deleting, 296

editing, 296

scheduling, 293-296

Apex user interface, 294-295

schedulable code development, 294

scope, 289

triggers, 132

BenchmarkWS class, 334

binary data types, 322

bitwise operators, 110

blind-carbon-copies (email), 171

blobs, 106

Boolean data type, 106

break keyword (loops), 114

browsing data, 42-44

Bulk API, 344

authentication, 345-346

records

exporting, 347-349

importing, 346-347

two-tier system, 345

Web site, 345

bulk jobs

export

batches, creating, 348

creating, 347-348

results, retrieving, 348-349

status, checking, 348

import

closing, 347

creating, 346

records, adding, 346-347

results, retrieving, 347

status, checking, 347

bulk modifications (records), 326

business analyst contributions, 11

business units

collaboration, testing, 97-98

security, 85-88

buttons

custom

custom objects, creating, 38

Visualforce pages, 215

native user interface, 213

standard, 37

C

callouts (Apex), 301-302

REST services, 302-304

formats, 302

HTTP classes, 302-303

integrating, 303-304

invoking, 303

testing, 304

SOAP services, 305-306

Canvas, 349

authentication, 349-350

cross-domain XHR, 350

example application

adding pages, 352

callback HTML page, 354

configuring pages, 352

Connected App, creating, 351

local Web servers, configuring, 352

main HTML page, 353-354

previewing, 352

running in App Previewer, 350

Web site, 349

carbon copies (email), 171

catch keyword (exceptions), 115

channel names, 340

Chatter

Apex, 378-379

Visualforce controller example, 378

Visualforce page, 378

Web site, 378

comments, 374-375

creating, 375

deleting, 375

query, 375

schema pattern, 374

feed-tracked changes, 376

following records, 376-378

following relationships, 377

method, 377

unfollowing, 377-378

Mobile, 264

objects

dynamic, 370

high-volume design, 370

relationship-rich, 370

posts, 370-372

content, 371

creating, 372-373

custom object feeds, 373

deleting, 373

Feed objects, 370-371

news feeds, 374

schema pattern, 370

standard object feeds, 372-373

user feeds, 374

REST API, 379-380

followed records request, 380

news feed request, 379-380

post request, 380

Web site, 379

Services Manager Follow Team button, 382-385

configuring, 385

controller extension code, 383-384

testing, 385

Visualforce page, 384-385

Visualforce components, 380-382

feed, 381

feedWithFollowers, 381

follow, 381

followers, 381

limitations, 382

newsFeed, 381

showChatter attribute, 381

userPhotoUpload, 381

Visualforce page, creating, 381

checkboxes

defined, 38

SOAP type, mapping, 322

checkpoints, 133-135

child relationships

child-to-parent, 125-126

metadata, 178

semi-joins

child-to-child, 153

child-to-parent, 153

classes

access modifiers, 118

Apex

ConnectApi, 378

custom Apex REST services, creating, 312-314

custom Apex SOAP Web services rules, 327

HTTP, 302-303

Batch Apex, creating, 285-286

BenchmarkWS, 334

constructors, 118

defining, 118

information-hiding notation, 118

inheritance, 119

initializers, 118

inner, 118

Iterable, 291

Iterator, 290

methods, 117

MissingTimecardBatch

creating, 298-299

reset results, 300

running, 300

MyEmailService, 173-174

properties, 117

TimecardManager

creating, 138-139

unit tests, 140-141

variables, 117

clear method (collections), 109

Clone button, 213

clone method (collections), 109

closing bulk import jobs, 347

cloud computing

benefits, 2

overview, 2

PaaS, 2

Amazon Web Services, 2-3

Force.com, 3-4

Google Cloud Platform, 3

Windows Azure, 3

Cloudforce conference, 17

code execution (Apex)

asynchronous, 116

conditional statements, 113

exception statements, 114-115

examples, 115

handling, 115

raising, 115

governor limits, 120

loops, 114

recursion, 115

Code Share, 16

collections

arrays

creating, 111

initializing, 111

sorting, 112

clearing, 109

cloning, 109

emptiness, 109

lists

creating, 111

initializing, 111

nesting, 111

sorting, 112

maps, 112-113

sets, 112

size, 109

ComeD library, 342

commandButton component, 203

commandLink component, 203

comments (Chatter), 374-375

creating, 375

deleting, 375

query, 375

schema pattern, 374

communication errors, 220-221

CompareSkillsComponent

creating, 259-260

support, adding, 261

CompareSkillsController, 260

composition (modular Visualforce pages), 243-244

conditional statements, 113

condition expressions, 194

configuration management, 14

configuring

Canvas App pages, 352

email services, 174-175

field accessibility, 89-90

Follow Team button, 385

IDE, 138

local Web servers, 352

sharing rules, 92-93

ConnectApi classes, 378

Connected Apps, creating

Canvas, 351

REST API, 307

constants, 107

constructors, 118

Consultant profile

permissions, 86

Services Manager application, 18

testing, 96

ContactFeed object, 372

Contact object

CSV import file, 69

fields, 51

overview, 51

ContainerId field, 355

containers

dynamicComponent elements, 248

mobile applications, 271

static resources, 241-242

continue keyword (loops), 114

controlled by parent records, 81

controller attribute (pages), 200

controllers, 186-187

actionFunction component, 236

actions

as JavaScript events, 237-238

timed events, 237

AngularJS, 253

mobile timecards, editing, 279

project list example, 252

timecard entry in-page navigation, 277

Chatter example, 378

custom, 193-197

actions, 195-197

exposing data, 193-194

dynamic field reference, 247

extensions, 197

governor limits, 221

mobile timecards

editing, 277

list functionality, 274

partial page refresh, 235

Services Manager

business hours, configuring, 331

Follow Team button extension code, 383-384

Skills Matrix, 225-227, 229-231

utilization calculation, 332

utilization code, 335-337

standard, 191-193

multiple records, 192-193

single records, 191-192

Streaming API example, 342

Tooling API example, 357-359

unit tests, 222

conversion methods, 108

converting data types, 107-108

conversion methods, 108

dates to strings, 109

exceptions, 114

implicit conversion, 107-108

strings to dates, 109

COUNT aggregate function, 144-145

COUNT_DISTINCT aggregate function, 144

Create Lookup Field dialog box, 61

Create New Object dialog box, 59

create permission, 75

createProject service, 329

create service, 324

cross-domain XHR, 350

CRUD (create, read, update, delete) operations, 31

Crypto class, 303

CSRF (Cross Site Request Forgery) attacks, 385

CSS (components), adding, 261

CSV files

Contact import, 69

exporting, 64-65

Project import, 65

cURL, 306

currency

fields, 38

SOAP data type, mapping, 322

custom Apex Web services

REST, 312-314

Apex class rules, 312

creating, 313

governor limits, 312

invoking, 313-314

SOAP, 326

Apex class rules, compared, 327

calling, 328

creating records example, 328

governor limits, 327

invoking, 329

limitations, 326-327

Services Manager anonymous benchmarking, 333-335

custom applications, creating, 58

custom buttons

custom objects, creating, 38

Visualforce pages, 215

custom components

creating, 259-260

CSS, adding, 261

defining, 244-245

Google Map example, 245-246

support, adding, 259-260

custom controllers, 193-197

actions, 195-197

custom logic, invoking, 195

trigger page navigation, 195

view state preservation, 195

wrapper pattern, 195-196

exposing data, 193-194

custom fields. See fields, creating

custom links

custom objects, creating, 38

Visualforce pages, 215

custom objects, 22

creating, 35, 59-60

activities, allowing, 36

custom buttons/links, 38

custom fields, 37

definition, 35-36

deployment status, 36

descriptions, 36

field history tracking, 36

help settings, 36

labels, 35

names, 35

page layouts, 37

record name label, 36

reports, allowing, 36

search layouts, 37

standard buttons/links, 37

standard fields, 36

triggers, 37

validation rules, 37

missing timecards, creating, 297

tabs, creating, 63

tools, 33-34

App Builder Tools, 33

data, 34

Force.com IDE, 34

metadata, 33

Schema Builder, 34

custom settings, 180-181

defined, 47

governor limits, 180

hierarchy, 49, 181

list, 48

records

creating, 180

deleting, 180

updating, 180

storage limits, 49

types, 47-48

values, retrieving, 180

custom tabs, 215

D

data

batch processing. See Batch Apex

browsing, 42-44

entering, 41-42

exposing (custom controllers), 193-194

expressions

standard controllers, 192

standard set controllers, 193

importing, 64

import process, 66

preparations, 64-66

verification, 67-69

integration, 29

metadata XML, 30-31

native user interface, 31

object-relational mapping, 30

REST APIs, 31

SOAP APIs, 31

integrity, 122

mobile Web applications access, 269-270

actionFunction component, 270

authentication, 269-270

JavaScript remoting, 270

REST API, 270

SmartSync, 270

modeler contributions, 11

relationships

explicitly defined, 26

integrity enforced, 26

records, creating, 121

Services Manager application, 55-58

SOQL, 26-27

SOQL versus SQL, 27-28

SOSL, 29

viewing, 121

REST API access, 306

security

architecture, 71

field accessibility, 73

object-level. See object-level security

overview, 71-74

permission sets, 72

profiles, 72

record-level, 72

sharing model, 73

sharing reasons, 74

Services Manager application integration

implementation strategy, 363-364

sample implementation, 364-366

scenario, 363

storage custom settings

defined, 47

governor limits, 180

hierarchy, 49, 181

list, 48

records, 180

storage limits, 49

types, 47-48

values, retrieving, 180

tools, 34

Data Loader, 34

Excel Connector, 34

Import Wizard, 34

Database.com, 4

databases

administrator contributions, 12

Apex integration

DML statements. See DML, statements

integrity, 122

objects, referencing, 121-122

overview, 120-121

queries. See queries

security, 133

change exceptions, 114

custom settings, 47-48

defined, 47

hierarchy, 49

list, 48

storage limits, 49

types, 47-48

data. See data

developer contributions, 12

fields. See fields

governor limits, 120

integration, 29

logical, 13

metadata XML, 30-31

native user interface, 31

object-relational mapping, 30

REST APIs, 31

SOAP APIs, 31

objects. See objects

queries. See queries

records. See records

relational, 6

relationships. See relationships

security

Apex, 133

architecture, 71

field accessibility, 73

object-level. See object-level security

object permissions, 73

overview, 71-74

permission sets, 72

profiles, 72

record-level, 72

sharing model, 73

sharing reasons, 74

services, 7

tables. See objects

triggers, 130-131

batching, 132

bulkifying, 132

custom objects, creating, 37

definitions, 131-132

email notifications, 181-182

error handling, 132-133

names, 131

page navigation, 195

timecard validation, creating, 138-139

data components, 200-203

metadata-aware, 200-201

inputField, 201

outputField, 201

Mobile Components for Visualforce, 268

primitive, 201-202

inputCheckbox, 202

inputFile, 202

inputHidden, 202

inputSecret, 202

inputText, 202

inputTextArea, 202

outputLabel, 202

selectCheckboxes, 202

selectList, 202

selectRadio, 202

repeating, 201-203

dataList component, 203

Data Loader tool, 34

data preparation, 64-66

Contact CSV import file, 69

exporting CSV files, 64-65

Project CSV import file, 65

data verification, 67-69

importing data, 66

Data Manipulation Records. See DML

data model (Services Manager)

design goals

Developer Edition, optimization, 50

standard objects, leveraging, 50

implementing

custom application, creating, 58

custom objects, creating, 59-60

custom object tabs, creating, 63

field visibility, 64

Lookup relationship, creating, 60

Master-Detail relationships, creating, 60-62

validation rules, creating, 63

specification, 50

assignments, 53-54

contacts, 51

data relationships, 55-58

projects, 52

skills, 53

timecards, 53-56

dataTable component, 203

data types

Apex, 106

blob, 106

Boolean, 106

converting, 107-108

converting dates to strings, 109

converting strings to dates, 109

date, 106

datetime, 106

decimal, 106

double, 106

ID, 106

Integer, 106

long, 106

object, 106

string, 106

time, 106

arrays

creating, 111

initializing, 111-112

sorting, 112

collections

clearing, 109

cloning, 109

emptiness, 109

size, 109

converting, 114

fields, selecting, 38

lists

creating, 111

initializing, 111-112

nesting, 111

overview, 111

sorting, 112

maps, 112-113

rich, 25

sets, 112

SOAP types, mapping, 321

dates, 38

converting to strings, 109

defined, 106

SOAP type, mapping, 322

String conversions, 109

datetime data type

converting to strings, 109

defined, 106

SimpleDateFormat pattern, 109

SOAP type, mapping, 322

string conversions, 109

DE accounts

logging in, 32

orgs, 32

registration, 32

debugging

Apex, 133

checkpoints, 133-135

execution logs, 134

batch jobs execution details, viewing, 288

Visualforce

component identifier problems, 240

user interfaces, 216

decimals

defined, 106

rounding, 108

declarative metadata, 7

declaring

future methods, 116

variables, 105-106

delegated administration sharing reason, 82

Delete button, 213

delete permission, 76

delete service, 325

Delete statement, 130

deleting

Chatter comments, 375

custom setting records, 180

PushTopics, 341

record requests, 311

records, 130, 325

scheduled batch jobs, 296

dependent fields, 46

deploying mobile Web applications, 271-272

deployment status, 36

detail component, 209

Developer Console

Apex, debugging, 133-134

unit test results, viewing, 137

Visualforce user interfaces, debugging, 216-218

Developer Force Web site, 16

development

Batch Apex schedulable code, 294

discussion boards, 16

environments, 32

lifecycle, 12

configuration management, 14

end of life, 15

integrated logical databases, 13

integrated unit testing, 14-15

interoperability, 15

MVC pattern, 15

native user interfaces, 14

mobile applications

hybrid, 265, 267

native, 265-266

Salesforce Mobile SDK, 265

Web. See mobile applications, Web

Visualforce

process, 188

tools, 188-190

dialog boxes

Create Lookup Field, 61

Create New Object, 59

Open Perspective, 101

dirty writes, 161

division (/) operator, 110

DML (Data Manipulation Language), 128

database methods, 157-158

insert example, 158

opt_allOrNone parameter, 158

statements

Delete, 130

Insert, 129

Undelete, 130

Update, 129

Upsert, 129-130

DmlException exception, 114

domain names (sites), 255

double data type

defined, 106

rounding, 108

Do-While loops, 114

Dreamforce conference, 17

dynamic Apex, 174

instances, creating, 179

queries

governor limits, 176

SOQL, 175-176

SOSL, 176

schema metadata, 177

child relationship, 178

field, 177-178

limits, 177

object, 177

picklist, 178

record type, 179

dynamic Chatter objects, 370

dynamicComponent elements, 248

dynamic field references, 246-248

dynamic status messages, 239

dynamic Visualforce, 246

component generation, 248-249

dynamic field references, 246-248

E

EC2 (Elastic Compute Cloud), 2-3

editing

mobile timecards, 277-279

scheduled batch jobs, 296

edit page, 211

edit permission, 75

Elastic Beanstalk, 2

email

fields, 38

integration, 9

receiving, 172-173

class, creating, 173-174

governor limits, 173

personalizing based on sender identity, 173

services, configuring, 174-175

uncaught exceptions, 173

sending, 168

attachments, 172

blind-carbon-copies, 171

carbon copies, 171

mass emails, 170-171

notifications (Services Manager application), 181-182

organization-wide email address unique identifiers, 172

reply-to addresses, 171

sendEmail method, 171

sender display names, 171

signatures, 172

SingleEmailMessage object, 168-169

templates, 169-170

tracking, 172

SOAP data type, mapping, 322

enabled permissions (SOAP API), 318-319

encapsulation, 117-118

EncodingUtil class, 303

end of life, 15

enhancedList component, 209

Enhanced Profile List Views, 74

Enhanced Profile User Interface, 74

Enterprise API

overview, 315

records

bulk modifications, 326

creating, 324-325

deleting/undeleting, 325

retrieving, 323-324

updating, 325

upserting, 325

writing, 324

EntitySubscription object, 377

enums, 107

environments, 32

equality (==) operator, 110

error handling

SOAP API, 321

triggers, 132-133

Visualforce, 220-221

communication, 220-221

uncaught exceptions, 220

errors

communication, 220-221

data type conversions, 108

events

JavaScript, 237-238

timed, 237

exact equality (===) operator, 110

exact inequality (!==) operator, 110

Excel Connector, 34

exceptions

incoming email, 173

statements, 114-115

examples, 115

handling, 115

raising, 115

uncaught, 220

EXCLUDES keyword (multi-select picklists), 154

Execute Anonymous view (IDE)

batch jobs, running, 286

missing timecard report, testing, 300

REST services integration, testing, 304

executeBatch method, 286

execute method (Batchable interface), 283

execution logs, 134

exporting

CSV files, 64-65

records, 347-349

batches, creating, 348

creating bulk export jobs, 347-348

results, retrieving, 348-349

status, checking, 348

expressions

combining, 194

condition, 194

if/then/else, 110

scheduling, 295

standard controllers

actions, 192

data, 192

navigation, 192

standard set controllers

action, 193

data, 193

filters, 193

navigation, 193

pagination, 193

extensions (controller), 197

extensions attribute (pages), 200

external IDs, 39

F

facets, 239

FeedComments relationship, 375

feed component, 381

Feed objects, 370-371

custom objects, 373

news, 374

standard objects, 372-373

users, 374

FeedTrackedChange object, 376

feed-tracked changes (Chatter), 376

feedWithFollowers component, 381

Field change Chatter posts, 371

fields, 23

accessibility, 73, 78-79, 89-90

Assignment object, 54

auto number, 41

categories, 23

checkboxes, 38

Contact object, 51

ContainerId, 355

creating, 37

default values, 39

descriptions, 39

external IDs, 39

help text, 39

labels, 39

names, 39

required, 39

types, selecting, 38

unique, 39

date/time, 38

dependent, 46

dynamic references, 246-248

email/phone/URL, 38

field sets, 247-248

fieldsToNull, 325

formula, 24-25, 41

history tracking, 25, 36

logical, 23

metadata, 177-178

multi-select picklists, 154

NotifyForFields, 341

NotifyForOperations, 341

numbers/percent/currency/ geolocation, 38

picklists, 38

metadata, 178

multi-select, 154

SOAP type, mapping, 322

Project object, 52

query results, sorting, 125

relationships. See relationships

RequestId, 355

rich data types, 25

roll-up summary, 41, 45

security, 77

field accessibility, 78-79, 89-90

profiles, 78

sharing objects, 162-163

Skill object, 54

standard, 36

text, 38

Timecard object, 56

unique identifiers, 24

validation rules, 24

visibility, 64

fieldsToNull field, 325

fields variable, 247

file-based services, 361

File Chatter posts, 371

files (CSV)

Contact import, 69

exporting, 64-65

Project import, 65

filtering

multi-select picklists, 154

records

grouped, 146

SOQL, 124-125

standard set controllers, 193

finally keyword (exceptions), 115

finish method (Batchable interface), 284

follow component, 381

followers component, 381

following records (Chatter), 376-378

following relationships, 377

method, 377

relationships, 377

request, 380

unfollowing, 377-378

Follow Team button, 382-385

configuring, 385

controller extension code, 383-384

testing, 385

Visualforce page, 384-385

Force.com

architecture

application services, 6

declarative metadata, 7

multilenancy, 4-6

programming languages, 7

relational databases, 6

Database.com, 4

developers, 3

perspective, 101

Project, 103

services, 7

business logic, 8

database, 7

integration, 8-9

user interface, 8

technology integrations, 4

Force.com-styled components, 204-205

action containers, 205

notifications, 205

page structure, 205

paging, 205

samples

controller, 206

page, 207

table, 205

forcetk.js library, 266

For loops, 114, 127

formatting

datetime data types, 109

REST services, 302

SimpleDateFormat pattern, 109

strings for dates, 109

formulas, 24-25, 41, 322

frameworks (mobile Web applications), 268-269

Mobile Components for Visualforce, 268-269

Web MVC, 269

functions (aggregate), 144-145

AVG, 144

COUNT, 144-145

COUNT_DISTINCT, 144

governor limits, 145

MAX, 144

MIN, 144

records, grouping, 146

SUM, 144-145

future methods, 116

declaring, 116

limitations, 116

G

geolocation fields, 38

getCurrentUserContact method, 225

getDescribe method, 177

getInstance method, 181

getSObject method, 176

Google Cloud Platform, 3

governor limits, 120

aggregate functions, 145

Apex code, 120

custom Apex Web services

REST, 312

SOAP, 327

custom settings, 180

databases, 120

dynamic queries, 176

Force.com Apex Code Developer’s Guide Web site, 100

heaps, 120

inbound email, 173

namespaces, 120

overview, 100

Visualforce, 221

greater than (>) operator, 110

greater than or equal to (>=) operator, 110

GROUP BY clause (record groupings), 145

GROUP BY CUBE clause, 147-148

GROUP BY ROLLUP clause, 147

groups

operators, 110

records, 145-146

with aggregate functions, 146

filtering, 146

subtotals, 147-148

without aggregate functions, 145-146

users, 80

public, 80

roles, 80

H

The Hammer, 6

handleInboundEmail method, 172

handling

errors

SOAP API, 321

triggers, 132-133

Visualforce, 220-221

exceptions, 115

HAVING keyword (grouped records, filtering), 146

heap governor limits, 120

Hello World

code example, 105

Visualforce example, 189-191

help

settings (custom objects), 36

text, 39

hierarchy custom settings, 49, 181

high volume objects, 370

history tracking

custom objects, 36

fields, 25

HTTP Apex classes, 302-303

Http class, 302

HttpRequest class, 302

HttpResponse class, 302

hybrid applications, 265, 267

I

IaaS. See PaaS

id attribute (view components), 199

IDE

Execute Anonymous view

batch jobs, running, 286

missing timecard report, testing, 300

REST services integration, testing, 304

installation, 101

perspective, 101

Project, 103

Schema Explorer, 103

Services Manager application configuration, 138

Views

Apex Test Runner, 103

Execute Anonymous, 104-105

Problems, 103

Visualforce page editor, 189

Ideas Web site, 16

IDs

defined, 106

external, 39

string conversion, 108

iframe component, 204

if/then/else expression shortcut (? :), 110

image component, 204

implicit conversions (data types), 107-108

importing

data, 64

import process, 66

preparations, 64-66

Contact CSV import file, 69

exporting CSV files, 64-65

Project CSV import file, 65

verification, 67-69

records, 346-347

adding records to bulk import jobs, 346-347

closing bulk import jobs, 347

creating bulk import jobs, 346

results, retrieving, 347

status, checking, 347

Import Wizard, 34

InboundEmailHandler interface, 172

inbound email. See receiving email

include component, 242

includeScript component, 205

INCLUDES keyword (multi-select picklists), 154

inclusion (modular Visualforce), 242

information-hiding notation, 118

Infrastructure as a Service. See PaaS

inheritance (Apex), 119

initializers, 118

inner classes, 118

inner joins, 149-150

inputCheckbox component, 202

inputField component, 201

inputFile component, 202

inputHidden component, 202

inputSecret component, 202

inputTextArea component, 202

inputText component, 202

insert database method, 158

Insert statement, 129

installing

IDE, 101

Mobile Components for Visualforce, 268-269

instances, creating, 179

Integers, 106

integration, 29

Apex callouts, 301-304

databases in Apex, 120-121

DML statements. See DML, statements

integrity, 122

objects, referencing, 121-122

queries. See queries

security, 133

logical databases, 13

metadata XML, 30-31

native user interface, 31

object-relational mapping, 30

REST APIs, 31

services, 8-9

Services Manager application

implementation strategy, 363-364

sample implementation, 364-366

scenario, 363

SOAP APIs, 31

specialist contributions, 12

Visualforce and native user interface, 209-210

custom buttons/links, 215

custom tabs, 215

page layouts, 213

standard buttons, 213

standard pages, 210-211

interfaces

Batchable, 283-284

InboundEmailHandler, 172

Schedulable, 294

Stateful, 290

interoperability, 15

IP white-listing, 319

isEmpty method, 109

@isTest, 136

iterable batch scope, 290-292

Iterable class, 291

Iterator class, 290

J

Java

createProject service, 329

create service, 324

Metadata API object creation example, 361-363

query batch sizes, setting, 324

SOQL queries, executing, 323

stub code, generating, 317

JavaScript

dynamic action status messages, 239

events, 237-238

forcetk.js library, 266

JQuery UI, 259

Object Notation (JSON), 302, 364-366

remoting, 250, 270

Skills Matrix comparison overlay, 261

Visualforce components, referencing, 240

job function security, 85-86

jobs

bulk export

batches, creating, 348

creating, 347-348

results, retrieving, 348-349

status, checking, 348

bulk import

closing, 347

creating, 346

records, adding, 346-347

results, retrieving, 347

status, checking, 347

joins

anti-joins

overview, 152

restrictions, 153

inner, 149-150

outer, 148-149

semi-joins

child-to-child, 153

child-to-parent, 153

parent-to-child, 151

restrictions, 153

jQuery UI, 259

JSON (JavaScript Object Notation), 302, 364-366

K

keywords

break, 114

catch, 115

continue, 114

EXCLUDES, 154

finally, 115

HAVING, 146

INCLUDES, 154

LIMIT, 125

throw, 115

try, 115

L

labels

custom objects, 35

fields, 39

layouts

page, 37

search, 37

LDV (Large Data Volume) deployments, 22

less than (<) operator, 110

less than or equal to (<=) operator, 110

licensing

orgs, 32

profiles, 76

lifecycles (development), 12

configuration management, 14

end of life, 15

integrated logical databases, 13

integrated unit testing, 14-15

interoperability, 15

MVC pattern, 15

native user interfaces, 14

LIMIT keyword (records), 125

links

custom

custom objects, creating, 38

Visualforce pages, 215

standard, 37

listings

actionFunction component (Visualforce)

controllers, 236

pages, 236

actionPoller component, 237

actionStatus component, 238

with facets, 239

JavaScript functions, 239

actionSupport component, 237-238

aggregate functions

COUNT, 145

SUM, 145

AngularJS project list example (Visualforce)

controller, 252

page code, 252-253

Apex ORM code snippet, 30

arrays

creating, 111

initializing, 112

Batch Apex

class, 285

execution scope, 289

iterable batch example, 291

project iterator, 291

running batch jobs, 286

schedulable code, 294

scheduling example, 296

stateful example, 289

test, 293

Bulk API password authentication, 345

bulk export jobs

creating, 348

results, retrieving, 348-349

status, checking, 348

bulk import jobs

closing, 347

creating, 346

records, adding, 346

results, retrieving, 347

status, checking, 347

Canvas App

callback HTML page, 354

main HTML page, 353-354

Chatter

feed-tracked changes, 376

following records, 377

following relationships, 377

unfollowing records, 378

Visualforce component page, 381

Visualforce controller example, 378

Visualforce page example, 378

Chatter comments

creating, 375

deleting, 375

query, 375

Chatter posts

creating, 372

custom object query, 373

deleting, 373

standard object query, 372

user feed query, 374

Chatter REST API requests

followed records, 380

news feed, 380

posts, 380

class definitions, 118

commandButton component, 203

conditional statements, 113

constants, defining, 107

Contact CSV import file, 69

custom Apex REST Web services

creating, 313

invoking, 313

custom Apex SOAP Web services

creating record example, 328

invoking, 329

custom controllers

extensions, 197

read-only access to Project record, 194

wrapper patterns, 195-196

custom settings

creating custom setting records, 180

deleting, 181

updating, 180

values, retrieving, 180

data integrity, 122

data type conversions

conversion methods, 108

errors, 108

ID and string, 108

implicit conversion, 107

strings to dates, 109

datetime data types, formatting, 109

dynamic queries

SOQL, 175

SOSL, 176

Enterprise API

creating records, 325

query batch sizes, 324

record retrieval SOQL query, 323

enums, defining, 107

error-severity message, 221

exception statements, 115

Force.com-styled components

controller, 206

page, 207

formula field example, 24-25

future method declaration, 116

Hello World, 105

include component, 242

inputField component, 201

insert DML database method, 158

instances, creating, 179

lists

creating, 111

initializing, 112

nesting, 111

maps, 113

Metadata API object creation, 362-363

metadata XML example, 31

MissingTimecardBatch class

creating, 298-299

reset results, 300

running, 300

mobile timecard entry page

editing timecards, 277-279

listing timecards controller, 274

listing timecards Visualforce page, 275

navigation, AngularJS controller, 277

outputField component, 201

Project CSV import file, 65

receiving email, 173

records

creating, 121

deleting, 130

inserting, 129

locking, 161

relationships, creating, 121

undeleting, 130

updating, 129

upserting, 130

records, grouping

with aggregate functions, 146

debug log excerpt, 147

filtering grouped, 146

GROUP BY CUBE clause, 147-148

GROUP BY ROLLUP clause, 147

without aggregate functions, 146

recursion, 115

repeat component, 203

REST API

authentication, 307

creating record requests, 310

deleting record requests, 311

record retrieval by external identifiers, 310

record retrieval by unique identifiers, 309

services available call, 309

SObject basic information request, 309

SOQL query request, 310

updating record requests, 311

upserting record requests, 311

rounding operations, 108

savepoints, 160

schema metadata

child relationship, 178

field, 177

object, 177

picklist, 178

record type, 179

sending email

mass email, 171

SingleEmailMessage object, 168

template, 170

Services Manager application

anonymous benchmark Web service, testing, 334

email notifications, 182

integration implementation example, 364-366

utilization controller, 335-337

Utilization page code, 337-338

Services Manager Follow Team button

controller extension code, 383

Visualforce page, 384

Services Manager Skills Matrix

controller, 226-227

unit test, 229-231

Visualforce page, 228

Services Manager Skills Matrix comparison overlay

actionSupport, adding, 262

CompareSkillsComponent, 260

CompareSkillsController, 260

component CSS, adding, 261

component support, adding, 261

JavaScript integration, 261

sets, 112

sharing rules, inserting, 167

Skill type field error condition formula, 63

SOAP API, logging in, 320

SOQL

child-to-child semi-join, 153

child-to-parent relationships, 126

child-to-parent semi-join, 153

filter conditions, 124

Group Object query, 166

inner join, 150

multi-select picklists, 154

outer join, 148

parent-to-child query, 151

parent-to-child relationships, 126

Project Share Object query, 165

query in Apex, 127

query in Apex with For loop, 127

record limits, 125

relationship query, 28

semi-join, 152

sort fields, 125

statement, 124

SOSL

Apex, 156

query, 29

SQL relationship query, 27

standard controllers

multiple records, 192

single records, 191

Streaming API Visualforce controller, 342

test methods, 136

TimecardManager class

creating, 139

unit tests, 140-141

Tooling API example (Visualforce)

controller, 357-359

page, 359-360

triggers

batching, 132

definition, 131

validateTimecard trigger, 138

validation rule example, 24

variables

declaring, 105

name case insensitivity, 106

view components syntax, 199

Visualforce

controller partial page refresh, 235

controller unit test, 222

dynamic components, 248-249

dynamic field references, 247

Hello World example, 190

pages as templates, 243

partial page refresh, 235

record-level security, 219

view components, 244, 246

Yahoo! geocoding REST service

integrating, 303

invoking, 303

testing, 304

lists

creating, 111

custom settings, 48

initializing, 111-112

nesting, 111

overview, 111

pages, 211

sorting, 112

List/Set Iteration For loops, 114

listViews component, 208

local Web servers, configuring, 352

locking records, 161

logging in

DE accounts, 32

SOAP API, 318-320

enabled permissions, 318-319

IP white-listing, 327

logging out, 320

login call, 320

problems, troubleshooting, 320

security tokens, 319

logical databases integration, 13

logical negation (!) operator, 110

login method, 320

LoginResult object, 320

logs

debug, 288

execution, 134

long data type, 106

Lookup relationships

creating, 60

defined, 39

Master-Detail relationships, compared, 40

Services Manager application, 55

SOAP type, mapping, 322

loops, 114, 127

M

managed sharing (Apex), 162

organization-wide sharing defaults, changing, 163

restrictions, 163

sharing objects, 162-163

sharing rules, creating, 163-167

inserting, 167

Project object, 164

SOQL queries, 165-166

viewing, 163, 167

manual sharing reason, 82

maps, 112-113

mashups, 9

MassEmailMessage object, 170-171

mass emails, sending, 170-171

Master-Detail relationships

creating, 60-62

defined, 40

Lookup relationships, compared, 40

Services Manager application, 55-57

SOAP type, mapping, 322

MAX aggregate function, 144

messages component, 220-221

metadata

declarative, 7

schema, 177

child relationship, 178

field, 177-178

limits, 177

object, 177

picklist, 178

record type, 179

tools, 33

XML, 30-31

Metadata API, 360

object creation example, 361-363

services, 360-361

Web site, 360

metadata-aware components, 200-201

inputField, 201

outputField, 201

methods

abortJob, 296

access modifiers, 118

action, 195-197

addError, 225

addFields, 246

addInfo, 225

Apex test, 136

clear, 109

clone, 109

defined, 117

DML database, 157-158

insert example, 158

opt_allOrNone parameter, 158

execute, 283

executeBatch, 286

finish, 284

future, 116

declaring, 116

limitations, 116

getCurrentUserContact, 225

getDescribe, 177

getInstance, 181

getSObject, 176

handleInboundEmail, 172

isEmpty, 109

login, 320

nav, 277

navClass, 277

overloading, 119

query

SOQL, 175

SOSL, 176

rollback, 159

schedule, 295

sendEmail, 171

setBccSender, 171

setCcAddresses, 171

setDocumentAttachments, 172

setFileAttachments, 172

setOrgWideEmailAddressId, 172

setReplyTo, 171

setSaveAsActivity, 172

setSavePoint, 159

setSenderDisplayName, 171

setUseSignature, 172

size, 109

start, 283

testAsUser, 231

testNoContactForUser, 231

testNoContactSelected, 231

testNoSkills, 231

testSave, 231

testWithSkills, 231

valueOf

date to string conversions, 109

string to date conversions, 109

MIN aggregate function, 144

MissingTimecardBatch class

creating, 298-299

reset results, 300

running, 300

missing timecard reports, 296-297

missing timecards information, calculating, 298-299

missing timecards list custom object, creating, 297

testing, 299-300

mobile applications

Chatter Mobile, 264

containers, 271

hybrid, 265, 267

native, 265-266

Salesforce

Classic, 264

Mobile SDK, 265

Touch, 264

timecard entry page

editing timecards, 277-279

in-page navigation, 276-277

listing timecards, 273-276

requirements, 272

testing, 279

viewing in Web browsers, 273

viewing on iPhones, 273

Web, 265

data access, 269-270

deployment, 271-272

frameworks, 268-269

overview, 266

Salesforce SDK libraries, 266

Mobile Components for Visualforce, 268-269

documentation/source code Web site, 269

installing, 268-269

types, 268

Mobile Design templates, 269

Mobile Packs, 269

mobile timecard entry pages

in-page navigation, 276-277

requirements, 272

testing, 279

timecards

editing, 277-279

listing, 273-276

viewing

iPhones, 273

Web browsers, 273

Model-View-Controller (MVC) pattern, 15

Modify All permission, 76

modularity (Apex), 119

modular Visualforce pages, 241

composition, 243-244

custom components, 244-246

defining, 244-245

Google Map example, 245-246

inclusion, 242

static resources, 241-242

monitoring batch jobs, 287-288

multilenancy, 4-6

multiplication (*) operator, 110

multi-select picklists, 154

MVC (Model-View-Controller) pattern, 15

MyEmailService class, 173-174

N

NAICS (North American Industry Classification System) codes, 333

names

channel, 340

custom objects, 35

fields, 39

sender display (email), 171

sites domain names, 255

triggers, 131

variables, 105-106

view components, 199

namespaces, 120

native applications, 265-266

native user interfaces

CRUD (create, read, update, delete) operations, 31

data integration, 31

development lifecycle, 14

new features, enabling, 41

view components, 208-209

detail, 209

enhancedList, 209

listViews, 208

relatedList, 209

Visualforce development tool, 189

Visualforce integration, 209-210

custom buttons/links, 215

custom tabs, 215

page layouts, 213

standard buttons, 213

standard pages, 210-211

navClass method, 277

navigation

expressions

standard controllers, 192

standard set controllers, 193

Mobile Components for Visualforce, 268

mobile timecard entry page, 276-277

nav method, 277

nesting lists, 111

New button, 213

New Custom Field Wizard

default values, 39

descriptions, 39

external IDs, 39

help text, 39

labels, 39

names, 39

required fields, 39

types, selecting, 38

unique fields, 39

New Custom Object Tab Wizard, 63

news feeds

defined, 381

requests, 379-380

North American Industry Classification System (NAICS) codes, 333

not equal to (!=) operator, 110

notifications, 205

action status

actionStatus component, 238-240

dynamic, 239

images/stylized messages, 239

Streaming API

PushTopics, 340-341

Web site, 340

NotifyForFields field, 341

NotifyForOperations field, 341

NullPointerException exception, 114

number data type, 38, 322

O

OAuth, 270, 306-307

object-level security, 72, 74

field-level security, 77

field accessibility, 78-79

profiles, 78

permission sets, 76-77

profiles, 74

administrative permissions, 75

Enhanced Profile List Views, 74

Enhanced Profile User Interface, 74

field-level security, 78

licenses, 76

object permissions, 75-76

Services Manager, creating, 89-90

Services Manager, listing, 85-86

types, 74

object-oriented programming, 117

analysis and design specialist contributions, 12

encapsulation, 117-118

information-hiding notation, 118

inheritance, 119

modularity, 119

polymorphism, 119

Object-Relational Mapping (ORM), 30

objects, 22, 106

AggregateResult, 145

Assignment

fields, 53

overview, 53

Chatter

dynamic, 370

high-volume design, 370

relationship-rich, 370

Contact

CSV import file, 69

fields, 51

overview, 51

ContactFeed, 372

creating, 35, 59-60

activities, allowing, 36

custom buttons/links, 38

custom fields, 37

definition, 35-36

deployment status, 36

descriptions, 36

field history tracking, 36

help settings, 36

labels, 35

with Metadata API, 361-363

names, 35

page layouts, 37

record name label, 36

reports, allowing, 36

search layouts, 37

standard buttons/links, 37

standard fields, 36

triggers, 37

validation rules, 37

EntitySubscription, 377

Feed, 370-371

custom objects, 373

news, 374

standard objects, 372-373

users, 374

FeedTrackedChange, 376

logical, 22

LoginResult, 320

MassEmailMessage, 170-171

metadata, 177

operational tasks, 22

permissions, 73, 75-76

Project

CSV import file, 65

custom object tab, creating, 63

fields, 52

overview, 52

sharing rules, 164

records

creating, 42, 121

relationships, creating, 121

types, 47

referencing in Apex, 121-122

SaveResult, 324

security, 218

services, 361

sharing, 162-163

fields, 162-163

restrictions, 163

SingleEmailMessage, 168-169

Skill

fields, 54

overview, 54

validation rule, creating, 63

SOQL relationships, 125-126

child-to-parent, 125-126

parent-to-child, 126

standard, 22

tabs, creating, 41

Timecard

fields, 56

overview, 53

undelete support, 23

Views, 43-44

Open Perspective dialog box, 101

operations specialist contributions, 12

operators, 109

& (AND) operator, 110

AND (&&), 110

addition (+), 110

arithmetic negation (-), 110

assignment (=), 110

bitwise, 110

division (/), 110

equality (==), 110

exact equality (===), 110

exact inequality (!==), 110

greater than (>), 110

greater than or equal to (>=), 110

grouping, 110

if/then/else expression (? :), 110

less than (<), 110

less than or equal to (<=), 110

logical negation (!), 110

multiplication (*), 110

not equal to (!=), 110

OR (||), 110

signed shift left (<<), 110

signed shift right (>>), 110

string concatenation (+), 110

subtraction (-), 110

unary decrement (--), 110

unary increment (++), 110

unsigned shift right (>>>), 110

opt_allOrNone parameter (DML database methods), 158

organization-wide

email address unique identifiers, 172

security defaults

overview, 80-82

Services Manager application, 91

orgs, 32

ORM (Object-Relational Mapping), 30

OR (|) operator, 110

OR (||) operator, 110

outbound email. See sending email

outer joins, 148-149

outputField component, 201

outputLabel component, 202

outputLink component, 204

outputPanel component, 204

outputText component, 204

overloading methods, 119

overriding

standard buttons, 213

standard pages, 210-211

ownership (records), 79-80

P

PaaS (Platform as a Service), 2

Amazon Web Services, 2-3

Force.com, 3-4

Google Cloud Platform, 3

Windows Azure, 3

pageBlockButtons component, 228

pageBlock component, 228

pageBlockTable component, 228

pageMessages component, 220-221

pages

adding to sites, 256-257

Canvas App

adding, 352

configuring, 352

components, 200

layouts

custom objects, creating, 37

Visualforce pages, adding, 213

security, 219

standard native user interface

edit, 211

list, 211

overriding, 211

tab, 210

view, 211

structure components, 205

view state, preserving, 195

Visualforce, 187

actionFunction component, 236

adding to page layouts, 213

adding to Salesforce Touch, 271

AngularJS example code, 252-253

asynchronous actions. See asynchronous actions

Chatter components, 381

Chatter example, 378

dynamic, 246-249

JavaScript events, 237-238

mobile timecards, 275-276, 278

modular, 241-246

native user interface buttons/links navigation, 215

as native user interface tabs, 215

partial refreshes, 234-235

performance tuning, 217-218

public access. See sites

security, 218-220

Services Manager Follow Team button, 384-385

Services Manager Skills Matrix, 228-229

Services Manager Utilization, 337-338

Services Manager Utilization page, creating, 330-331

standard pages, overriding, 210-211

Streaming API example, 343

timed events, 237

Tooling API example, 359-360

viewing from native user interface buttons, 213

viewing in Salesforce Classic, 271

pagination expressions, 193

paging components, 205

ParentId field, 162

parent-to-child relationships, 126

queries, 151

semi-join, 151

partial page refreshes, 234-235

Partner SOAP API, 315

percent data type, 38, 322

performance

custom Apex SOAP Web services, 327

Visualforce pages, tuning, 217-218

permissions

administrative, 75

enabled (SOAP API), 318-319

object, 73, 75-76

Services Manager profiles, 85-86

sets, 72, 76-77

perspectives, 101

phone data type, 322

phone fields, 38

picklists, 38

metadata, 178

multi-select, 154

SOAP type, mapping, 322

Platform as a Service. See PaaS

platform documentation, 16

polymorphism, 119

posts (Chatter), 370-372

content, 371

creating, 372-373

deleting, 373

Feed objects, 370-371

custom object, 373

news, 374

standard objects, 372-373

user, 374

schema pattern, 370

primitive components, 204-205

primitive data components, 201-202

inputCheckbox, 202

inputFile, 202

inputHidden, 202

inputSecret, 202

inputText, 202

inputTextArea, 202

outputLabel, 202

selectCheckboxes, 202

selectList, 202

selectRadio, 202

private records, 81

Problems View (IDE), 103

procedural sharing reasons, 82

profiles, 74

administrative permissions, 75

defined, 72

Enhanced Profile List Views, 74

Enhanced Profile User Interface, 74

field-level security, 78

licenses, 76

object permissions, 75-76

Services Manager application, 18, 91-92

accounts receivable, 18

consultants, 18

creating, 89-90

listing, 85-86

project managers, 18

sales representatives, 18

staffing coordinators, 18

Vice President, 18

types, 74

user groups, 80

programming languages, 7

ProjectListCtrl controller, 253

project manager profile

permissions, 86

Services Manager application, 18

projects, 103

CSV import file, 65

custom object tab, creating, 63

development lifecycle, 12

configuration management, 14

end of life, 15

integrated logical databases, 13

integrated unit testing, 14-15

interoperability, 15

MVC pattern, 15

native user interfaces, 14

fields, 52

overview, 52

selecting, 10-11

sharing rules, 164

team selection, 11-12

tools/resources

AppExchange, 16

Code Share, 16

developer discussion boards, 16

Developer Force Web site, 16

Dreamforce/Cloudforce conferences, 17

Ideas site, 16

platform documentation, 16

systems integrators, 17

technical support, 17

Visualforce, 188

properties, 117

public groups, 80

public read-only records, 81

public read/write records, 81

PushTopics, 340-341

availability, 341

components, 340-341

deleting, 341

limitations, 341

Q

quality assurance engineer contributions, 12

queries

batch sizes, setting, 324

dirty writes, 161

exceptions, 114

joins

anti-joins, 152-153

inner, 149-150

outer, 148-149

semi-joins. See semi-joins

parent-to-child, 151

SOQL. See SOQL queries

SOSL, 29

Apex, 155-157

dynamic, 176

record retrieval, 324

syntax, 155

QueryException exception, 114

query method

SOQL, 175

SOSL, 176

queryMore service, 323

query service, 323

R

raising exceptions, 115

RCED (read, create, edit, delete) operations, 31

Read permission, 75

receiving email, 172-173

class, creating, 173-174

governor limits, 173

personalizing based on sender identity, 173

services, configuring, 174-175

uncaught exceptions, 173

records

adding to bulk import jobs, 346-347

batch processing. See Batch Apex

controlled by parent option, 81

counts, returning, 145

creating, 42, 121

custom setting

creating, 180

deleting, 180

updating, 180

deleting, 130

Enterprise API

bulk modifications, 326

creating, 324-325

deleting/undeleting, 325

retrieving, 323-324

updating, 325

upserting, 325

writing, 324

exporting, 347-349

batches, creating, 348

creating bulk export jobs, 347-348

results retrieving, 348-349

status, checking, 348

feed-tracked changes (Chatter), 376

filtering, 124-125

following

method, 377

relationships, querying, 377

request, 380

grouping, 145-146

with aggregate functions, 146

filtering grouped, 146

without aggregate functions, 145-146

grouping with subtotals, 147-148

debug log excerpt, 147

GROUP BY CUBE clause, 147-148

GROUP BY ROLLUP clause, 147

importing, 346-347

adding records to bulk import jobs, 346-347

closing bulk import jobs, 347

creating bulk import jobs, 346

results, retrieving, 347

status, checking, 347

inserting, 129

limits, 125

locking, 161

ownership, 79-80

private, 81

public read-only, 81

public read/write, 81

PushTopics, 340-341

availability, 341

components, 340-341

deleting, 341

limitations, 341

relationships, creating, 121

requests

creating, 310

deleting, 311

updating, 311

upserting, 311

retrieving

external identifiers, 310

unique identifiers, 309

security, 72, 79

record ownership, 79-80

user groups, 80

Visualforce user interfaces, 219

sharing, 80-82

organization-wide defaults, 80-82, 163

Services Manager application, 87-88

restrictions, 163

sharing objects, 162-163

sharing reasons, 82

sharing rules

inserting, 167

Project object, 164

SOQL queries, 165-166

viewing, 163, 167

type metadata, 179

types, 46-47

undeleting, 130

unfollowing, 377-378

updating, 129

upserting, 129-130

viewing, 42

recursion, 115

registration, 32

relatedList component, 209

relational databases, 6

relationship-rich Chatter objects, 370

relationships

child metadata, 178

comparison, 40

creating, 39-40

data, 25

explicitly defined, 26

integrity enforced, 26

SOQL, 26-27

SOQL versus SQL, 27-28

SOSL, 29

viewing, 121

FeedComments, 375

fields, 38

comparison, 40

creating, 39-40

Lookup, 39

Master-Detail, 40

following, 377

Lookup, 39

creating, 60

Services Manager application, 55

SOAP type, mapping, 322

Master-Detail, 40

creating, 60-62

Services Manager application, 55-57

SOAP type, mapping, 322

parent-to-child queries, 151

records, creating, 121

Services Manager application, 55-58

SOQL, 125-126

child-to-parent, 125-126

parent-to-child, 126

viewing, 121

repeat component, 203

repeating components, 201-203

reply-to addresses (email), 171

reports

custom objects, allowing, 36

missing timecard, 296-297

missing timecards information, calculating, 298-299

missing timecards list custom object, creating, 297

testing, 299-300

Representational State Transfer. See REST

RequestId field, 355

requests

Chatter posts, 380

followed records, 380

news feed, 379-380

password authentication, 307

records

creating, 310

deleting, 311

retrieving, 309-310

updating, 311

upserting, 311

services available, 308

SObject basic information, 309

SOQL query, 310

reRender attribute, 234

resources

Apex Code Developer’s Guide Web site, 108

AppExchange, 16

Code share, 16

developer discussion boards, 16

Developer Force Web site, 16

Dreamforce/Cloudforce conferences, 17

Ideas Web site, 16

platform documentation, 16

REST API, 308

security Web site, 385

systems integrators, 17

technical support, 17

REST (Representational State Transfer), 301

API

authentication, 306-307

Chatter, 379-380

Connected Apps, creating, 307

creating record requests, 310

data access, 306

deleting record requests, 311

Developer’s Guide Web site, 308

mobile Web application data access, 270

record retrieval by external identifiers, 310

record retrieval by unique identifiers, 309

services available call, 308-309

SObject basic information request, 309

SOQL query request, 310

updating record requests, 311

upserting record requests, 311

custom Apex REST Web services, 312-314

Apex class rules, 312

creating, 313

governor limits, 312

invoking, 313-314

integration, 9

services, calling from Apex, 302-304

formats, 302

HTTP classes, 302-303

integrating, 303-304

invoking, 303

testing, 304

rich data types, 25

roles. See profiles

rollback method, 159

roll-up summaries

fields, 41, 45

SOAP type, mapping, 322

rounding, 108

RowCause field, 163

rules

Apex Web services classes

REST, 312

SOAP, 327

governor limits, 120

aggregate functions, 145

Apex code, 120

custom Apex REST Web services, 312

custom Apex SOAP Web services, 327

custom settings, 180

databases, 120

dynamic queries, 176

Force.com Apex Code Developer’s Guide Web site, 100

heaps, 120

inbound email, 173

namespaces, 120

overview, 100

Visualforce, 221

managed sharing, 153

creating, 163-167

organization-wide sharing defaults, changing, 163

restrictions, 163

sharing objects, 162-163

sharing, 82

inserting, 167

Services Manager application, 92-93

viewing, 163, 167

validation

fields, 24

Skill object creating, 63

S

S2S (Salesforce-to-Salesforce), 9

SaaS. See PaaS

Salesforce

Classic, 264

implementation guide, 271

Visualforce pages, viewing, 271

Mobile Packs, 269

Mobile SDK

download Web sites, 265

home page, 267

libraries, 266

Object Query Language. See SOQL

Object Search Language. See SOSL

Touch, 264

mobile timecard entry page, testing, 279

Visualforce pages, viewing, 271

Salesforce-to-Salesforce (S2S), 9

sales representatives profile

permissions, 86

Services Manager application, 18

sample application. See Services Manager application

savepoints, 159-160

example, 159-160

limitations, 159

restoring to, 159

setting, 159

SaveResult objects, 324

Schedulable interface, 294

schedule method, 295

scheduling Batch Apex, 293-296

Apex user interface, 294-295

sample code, 296

schedulable code development, 294

scheduled jobs

creating, 295

deleting, 296

editing, 296

Schema Builder, 34

custom objects, creating, 59-60

Lookup relationships, creating, 60

Master-Detail relationships, creating, 60-62

Schema Explorer, 103

relationships, viewing, 121

SOQL queries, running, 123

scope

Batch Apex, 282

batch jobs

adjusting, 289

iterable batch, 290-292

search layouts, 37

sectionHeader component, 228

Secure Coding Guideline document Web site, 218

security

Apex, 133

architecture, 71

authentication

Bulk API, 345-346

Canvas, 349-350

mobile Web applications, 269-270

REST APIs, 306-307

sites users, 258

Cross Site Request Forgery attacks, 385

custom Apex SOAP Web services, 327

fields, 77

accessibility, 73, 78-79, 89-90

profiles, 78

object-level. See object-level security

objects, 218

overview, 71-74

permission sets, 72, 76-77

profiles, 72, 74

administrative permissions, 75

Enhanced Profile List Views, 74

Enhanced Profile User Interface, 74

field-level security, 78

licenses, 76

object permissions, 75-76

Services Manager, creating, 89-90

Services Manager, listing, 85-86

types, 74

records, 72, 79

record ownership, 79-80

sharing model, 80-82

user groups, 80

Visualforce user interfaces, 219

resources Web site, 385

Secure Coding Guideline document Web site, 218

Services Manager application

business units, 85-88

designing, 85

field accessibility, 89-90

implementing, 88-89

job functions, 85-86

organization-wide defaults, 91

profiles, 89-92

sharing rules, 92-93

Skills Matrix, 224-225

testing, 94-98

sharing model, 73

sharing reasons, 74

sites, 255-256

SOAP API

IP white-listing, 319

overview, 316

tokens, 319

Visualforce user interfaces, 218

object-level, 218

page-level, 219

record-level, 219

selectCheckboxes component, 202

selectedContactId variable, 225

selecting

field types, 38

projects, 10-11

teams, 11-12

selectList component, 202

selectRadio component, 202

semi-joins

child-to-child, 153

child-to-parent, 153

parent-to-child, 151

restrictions, 153

sendEmail method, 171

sender display names (email), 171

sending email, 168

attachments, 172

blind-carbon-copies, 171

carbon copies, 171

mass emails, 170-171

notifications (Services Manager application), 181-182

organization-wide email address unique identifiers, 172

reply-to addresses, 171

sendEmail method, 171

sender display names, 171

signatures, 172

SingleEmailMessage object, 168-169

templates, 169-170

tracking, 172

services, 7

application, 6

business logic, 8

create, 324

createProject, 329

custom Apex REST Web, 312-314

Apex class rules, 312

creating, 313

governor limits, 312

invoking, 313-314

custom Apex SOAP Web, 326

Apex class rules, compared, 327

calling, 328

creating records example, 328

governor limits, 327

invoking, 329

limitations, 326-327

Services Manager anonymous benchmarking, 333-335

database, 7

delete, 325

email, configuring, 174-175

integration, 8-9

Metadata API, 360-361

query, 323

queryMore, 323

REST, calling from Apex, 302-304

formats, 302

HTTP classes, 302-303

integrating, 303-304

invoking, 303

testing, 304

SOAP, calling from Apex, 305-306

sobjects

record retrieval by external identifiers, 310

record retrieval by unique identifiers, 309

SObject basic information request, 309

update, 325

upsert, 325

user interface, 8

Web, integration, 9

Services Manager application

anonymous benchmarking service, 333-335

background, 17-18

business hours, configuring, 331

database integration

implementation strategy, 363-364

sample implementation, 364-366

scenario, 363

data model design goals, 49-50

Developer Edition optimization, 50

standard objects, leveraging, 50

data model implementation

custom application, creating, 58

custom objects, creating, 59-60

custom object tabs, creating, 63

field visibility, 64

Lookup relationship, creating, 60

Master-Detail relationships, creating, 60-62

validation rules, creating, 63

data model specification, 50

assignments, 53-54

contacts, 51

data relationships, 55-58

projects, 52

skills, 53

timecards, 53-56

email notifications, 181-182

Follow Team button, 382-385

configuring, 385

controller extension code, 383-384

testing, 385

Visualforce page, 384-385

hours utilization calculation, 332

IDE configuration, 138

importing data, 64

data preparation, 64-66

import process, 66

verification, 67-69

missing timecard report, 296-297

missing information, calculating, 298-299

missing timecards list custom object, creating, 297

testing, 299-300

mobile timecard entry page

editing timecards, 277-279

in-page navigation, 276-277

listing timecards, 273-276

requirements, 272

testing, 279

viewing in Web browsers, 273

viewing on iPhones, 273

security

business units, 85-88

designing, 85

field accessibility, 89-90

implementing, 88-89

job functions, 85-86

organization-wide defaults, 91

profiles, creating, 89-90

roles, 91-92

sharing rules, 92-93

testing, 94-98

Skills Matrix

complete list of skill types, creating, 224

contacts drop-down list, creating, 224

controller, creating, 225-227

controller tests, 229-231

data security, 224-225

page, creating, 224

requirements, 223

sample implementation, 223

skills list, creating, 224

Visualforce page, 228-229

Skills Matrix comparison overlay, 259-262

actionSupport, adding, 262

component CSS, adding, 261

component support, adding, 261

custom components, creating, 259-260

JavaScript integration, 261

TimecardManager class, creating, 138-139

timecard validation

trigger, creating, 138-139

unit testing, 140-141

user roles, 18

accounts receivable, 18

consultants, 18

project managers, 18

sales representatives, 18

staffing coordinators, 18

Vice President, 18

utilization

controller code, 335-337

page code, 337-338

Visualforce page, creating, 330-331

session sharing, 270

setBccSender method, 171

setCcAddresses method, 171

setDocumentAttachments method, 172

setFileAttachments method, 172

setOrgWideEmailAddressId method, 172

setReplyTo method, 171

sets, 112

setSaveAsActivity method, 172

setSavepoint method, 159

setSenderDisplayName method, 171

setUseSignature method, 172

sharing

reasons, 74

delegated administration, 82

manual, 82

procedural, 82

records, 82

sharing rules, 82

records, 73, 80-82

organization-wide defaults, 80-82, 163

procedural, 82

restrictions, 163

Services Manager application, 87-88

sharing reasons, 82

rules, 82, 92-93

inserting, 167

Services Manager application, 92-93

viewing, 163, 167

sharing objects, 162-163

fields, 162-163

restrictions, 163

showChatter attribute, 381

signatures (email), 172

signed shift left (<<) operator, 110

signed shift right (>>) operator, 110

SimpleDateFormat pattern, 109

Simple Object Access Protocol. See SOAP

SingleEmailMessage object, 168-169

single-page applications, 250

AngularJS, 251-253

controllers, 253

demonstration page, 251

templates, 253

tutorial Web site, 251

Visualforce controller, implementing, 252

Visualforce page code, 252-253

Web site, 251

JavaScript remoting, 250

sites

creating, 255

domain name, 255

enabling, 254

main page, 255

pages, adding, 256-257

security, 255-256

user authentication, 258

size

collections, 109

query batches, 324

static resources, 241

size method (collections), 109

Skill object

fields, 54

overview, 54

validation rule, creating, 63

Skills Matrix

comparison overlay, 259-262

actionSupport, adding, 262

component CSS, adding, 261

component support, adding, 261

custom component, creating, 259-260

JavaScript integration, 261

complete list of skill types, creating, 224

contacts drop-down list, creating, 224

controllers

creating, 225-227

tests, 229-231

data security, 224-225

page, creating, 224

requirements, 223

sample implementation, 223

skills list, creating, 224

Visualforce page, 228-229

SmartSync

library, 266

mobile Web applications data access, 270

SOAP (Simple Object Access Protocol), 301

API, 31

enabled permissions, 318-319

Enterprise. See Enterprise API

error handling, 322

Force.com data types, 321

IP white-listing, 319

limits, 316

logging in/out, 318-320

login call, 320

login problems, troubleshooting, 320

Partner, 315

security, 316

security tokens, 319

stub code, generating, 316-317

Web Service Connector (WSC), 316

WSDL versions, 315-316

custom Apex SOAP Web services, 326

Apex class rules, compared, 327

calling, 328

creating records example, 328

governor limits, 327

invoking, 329

limitations, 326-327

Services Manager anonymous benchmarking, 333-335

services, calling from Apex, 305-306

sobjects service

record retrieval

external identifiers, 310

unique identifiers, 309

SObject basic information request, 309

social applications. See Chatter

Software as Service. See PaaS

SOQL (Salesforce Object Query Language), 26-27

aggregate queries, 144

aggregate functions, 144-145

grouping records, 145-146

grouping records with subtotals, 147-148

Chatter queries

comments, 375

custom object, 373

feed-tracked changes, 376

following relationships, 377

standard object, 372

user feed, 374

dirty writes, 161

joins

anti-joins, 152-153

inner, 149-150

outer, 148-149

semi-joins. See semi-joins

multi-select picklists, 154

queries

Apex, 126-128

child-to-parent, 125-126

dynamic, 175-176

example, 26-27

parent-to-child, 126, 151

PushTopics, 340

record retrieval, 323

record sharing, 165-166

relationships, 125-126

REST API request, 310

results, sorting, 125

Schema Explorer, 123

records

filter conditions, 124-125

limits, 125

SQL, compared, 27-28

column list functions, 28

governor limits, 28

implicit joins, 27

nested resultsets, 27-29

statements, 124

filter conditions, 124

record limits, 125

sort fields, 125

sorting

lists/arrays, 112

query results, 125

SOSL (Salesforce Object Search Language), 29

Apex, 155-157

dirty writes, 161

queries

dynamic, 176

example, 29

record retrieval, 324

syntax, 155

column list functions, 28

governor limits, 28

implicit joins, 27

nested resultsets, 27-29

SQL versus SOQL, 27-28

Staffing Coordinator profile

permissions, 86

Services Manager application, 18

testing, 96-97

standard buttons

custom objects, creating, 37

listing of, 213

overriding, 213

standardController attribute, 200

standard controllers, 191-193

multiple records, 192-193

single records, 191-192

standard fields

custom objects, creating, 36

defined, 23

standard links, 37

standard objects, 22

standard pages

edit, 211

list, 211

overriding, 210-211

tab, 210

view, 211

standard set controllers, 192-193

start method (Batchable interface), 283

stateful Batch Apex, 289-290

Stateful interface, 290

statements

conditional, 113

Delete, 130

DML. See DML, statements

exception, 114-115

examples, 115

handling, 115

raising, 115

Insert, 129

loops, 114

SOQL, 124

filter conditions, 124

record limits, 125

sort fields, 125

Undelete, 130

Update, 129

Upsert, 129-130

static resources, 241-242

status

bulk export jobs, 348

bulk import jobs, 347

messages, displaying, 238

dynamic, 239

images/stylized, 239

Status update Chatter posts, 371

storage custom settings, 47-48

defined, 47

hierarchy, 49

limits, 49

list, 48

types, 47-48

Streaming API

example, 341-344

CometD library, 342

Visualforce controller, 342

Visualforce page, 343

PushTopics, 340-341

availability, 341

components, 340-341

deleting, 341

limitations, 341

Web site, 340

strings

concatenation (+) operator, 110

converting to dates, 109

date conversions, 109

defined, 106

ID conversion, 108

structural components (Mobile Components for Visualforce), 268

stub code, generating, 316-317

stylesheet component, 205

subtraction (-) operator, 110

SUM aggregate function, 144-145

systems integrators, 17

T

table components, 205

tables. See objects

tabs

creating, 41, 63, 215

page, 210

targetObjectIds unique identifiers

email templates, 169

MassEmailMessage object, 170

teams, selecting, 11-12

technical support, 17

technology integrations, 4

templateIds unique identifiers, 170

templates

AngularJS, 253

Mobile Design, 269

sending email, 169-170

Visualforce pages as, 243-244

testAsUser method, 231

testing

anonymous benchmarking Web service, 334

Batch Apex, 293

REST services integration, 304

Services Manager application, 97-98

Follow Team button, 385

mobile timecard entry page, 279

Services Manager security, 94-98

additional users, creating, 94-95

Consultant profile, 96

data preparation, 95-96

Staffing Coordinator profile, 96-97

Vice President profile, 97

unit tests

Apex. See Apex, unit tests

integrated, 14-15

missing timecard report, 299-300

Skills Matrix controllers, 229-231

TimecardManager class, 140-141

Visualforce controllers, 222

test methods (Apex), 136

testNoContactForUser method, 231

testNoContactSelected method, 231

testNoSkills method, 231

testSave method, 231

testWithSkills method, 231

text

Chatter posts, 371

fields, 38

SOAP data type, mapping, 322

Text Area data type, 322

throw keyword (exceptions), 115

time data type, 38, 106

TimecardManager class

creating, 138-139

unit tests, 140-141

Timecard object

fields, 56

overview, 53

timed events, 237

Tooling API, 354

Apex code, deploying, 355

internal state of deployment, 355

overview, 355

query service, 355

status, refreshing, 355

user interface, 356

Visualforce examples

controller, 357-359

page, 359-360

Web site, 355

tools

cURL, 306

custom objects, 33-34

App Builder Tools, 33

data, 34

Force.com IDE, 34

metadata, 33

Schema Builder, 34

data, 34

Data Loader, 34

Excel Connector, 34

Import Wizard, 34

Data Loader

data preparation, 64-66

data verification, 67-69

importing data, 66

Schema Builder

custom objects, creating, 59-60

Lookup relationships, creating, 60

Master-Detail relationships, creating, 60-62

Visualforce development, 188-190

Web Service Connector, 316

tracking email, 172

transaction processing

DML database methods, 157-158

insert example, 158

opt_allOrNone parameter, 158

record locking, 161

savepoints, 159-160

example, 159-160

limitations, 159

restoring to, 159

setting, 159

transactions

Batch Apex, 283

custom Apex SOAP Web services, 327

triggers, 130-131

batching, 132

bulkifying, 132

custom objects, creating, 37

definitions, 131-132

email notifications, 181-182

error handling, 132-133

names, 131

page navigation, 195

timecard validation, creating, 138-139

troubleshooting SOAP API login problems, 320

try keyword (exceptions), 115

tuning Visualforce user interfaces, 217-218

TypeException exception, 114

U

unary decrement (--) operator, 110

unary increment (++) operator, 110

uncaught exceptions, 220

undelete service, 325

Undelete statement, 130

undeleting records, 130, 325

unfollowing records, 377-378

unique identifiers

email templates, 169

fields, 24

mass emails, 170

organization-wide email addresses, 172

record retrieval, 309, 324

unit tests

Apex, 136

results, viewing, 137

running, 137

test data, 137

test methods, 136

Test Runner View, 103

integrated, 14-15

missing timecard report, 299-300

Skills Matrix controllers, 229-231

TimecardManager class, 140-141

Visualforce controllers, 222

UNIX line-continuation character (), 309

unsigned shift right (>>>) operator, 110

update service, 325

Update statement, 129

updating

custom setting records, 180

records, 129

Enterprise API, 325

requests, 311

upserting records

Enterprise API, 325

requests, 311

upsert service, 325

Upsert statement, 129-130

URLs

Chatter posts, 371

fields, 38

SOAP data type, mapping, 322

user feeds (Chatter posts), 374

user interfaces

Apex Test Runner View, 103

custom, creating. See Visualforce

designer contributions, 12

Enhanced Profile, 74

jQuery, 259

modularity, 119

native. See native user interface

services, 8

Tooling API example, 356

UserOrGroupId field, 162

userPhotoUpload component, 381

users

authentication

Bulk API, 345-346

Canvas, 349-350

mobile Web applications, 269-270

REST APIs, 306-307

sites, 258

creating, 94-95

groups, 80

public, 80

roles, 80

permission sets, 72

profiles, 74

administrative permissions, 75

defined, 72

Enhanced Profile List Views, 74

Enhanced Profile User Interface, 74

field-level security, 78

licenses, 76

object permissions, 75-76

Services Manager, 85-86, 89-90

types, 74

roles (Services Manager application), 18, 91-92

accounts receivable, 18

consultants, 18

project managers, 18

sales representatives, 18

staffing coordinators, 18

Vice President, 18

V

validateTimecard trigger, 131

validation rules

custom objects, 37

fields, 24

Skill object, creating, 63

valueOf method

date to string conversions, 109

string to date conversions, 109

variables, 105

access modifiers, 118

checkpoints, 133-135

classes, 117

constants, 107

data types, 106

blob, 106

Boolean, 106

converting, 107-108

converting dates to strings, 109

converting strings to dates, 109

date, 106

datetime, 106

decimal, 106

double, 106

ID, 106

Integer, 106

long, 106

object, 106

string, 106

time, 106

declaring, 105-106

enums, 107

fields, 247

names, 105-106

rounding, 108

selectedContactId, 225

verifying data imports, 67-69

Vice President profile

permissions, 86

Services Manager application, 18

testing, 97

View All permission, 76

view components (Visualforce), 198

action, 203-204

attributes, 199

Chatter support, 380-382

feed, 381

feedWithFollowers, 381

follow, 381

followers, 381

limitations, 382

newsFeed, 381

userPhotoUpload, 381

component body, 199

custom, 244-246

CompareSkillsComponent, creating, 259-260

CSS, adding, 261

defining, 244-245

Google Map example, 245-246

support, adding, 261

data, 200-203

metadata-aware, 200-201

primitive, 201-202

repeating, 201-203

facets, 239

Force.com-styled, 204-205

action containers, 205

notifications, 205

page structure, 205

paging, 205

sample controller, 206

sample page, 207

table, 205

identifier problems, debugging, 240

Mobile Components for Visualforce, 268-269

documentation/source code Web site, 269

installing, 268-269

types, 268

names, 199

native user interface, 208-209

detail, 209

enhancedList, 209

listViews, 208

relatedList, 209

page, 200

primitive, 204-205

referencing from JavaScript, 240

syntax, 198-199

visibility, 200

viewing

batch jobs execution detail, 288

fields, 64

mobile timecard entry pages

iPhones, 273

Web browsers, 273

relationships, 121

scheduled batch jobs, 296

sharing rules, 163, 167

unit test results, 137

Visualforce pages

native user interface buttons, 213

Salesforce Classic, 271

Salesforce Touch, 271

view page, 211

Views, browsing data, 43-44

Apex Test Runner, 103

Execute Anonymous, 104-105

Problems, 103

view state, preserving, 195

Visualforce

architecture, 186-187

asynchronous actions

Ajax support, 234

as JavaScript events, 237-238

as JavaScript functions, 235-236

partial page refreshes, 234-235

status messages, 238-240

as timed events, 237

Chatter components, 380-382

feed, 381

feedWithFollowers, 381

follow, 381

followers, 381

limitations, 382

newsFeed, 381

userPhotoUpload, 381

controllers, 186-187

actionFunction component, 236

AngularJS project list example, 252

Chatter example, 378

custom, 193-197

dynamic field reference, 247

editing mobile timecards, 277

extensions, 197

governor limits, 221

mobile timecard list functionality, 274

partial page refresh, 235

Services Manager Follow Team button extension code, 383-384

Services Manager Skills Matrix, 225-227, 229-231

standard, 191-193

Streaming API example, 342

unit tests, 222

debugging, 216

development

process, 188

tools, 188-190

dynamic, 246

component generation, 248-249

dynamic field references, 246-248

error handling, 220-221

communication, 220-221

uncaught exceptions, 220

Hello World example, 189-191

Mobile Components, 268-269

documentation/source code Web site, 269

installing, 268-269

types, 268

modular, 241

composition, 243-244

custom components, 244-246

inclusion, 242

static resources, 241-242

native user interface integration, 209-210

custom buttons/links, 215

custom tabs, 215

page layouts, 213

standard buttons, 213

standard pages, 210-211

overview, 186

pages, 187

actionFunction component, 236

adding to page layouts, 213

adding to Salesforce Touch, 271

AngularJS example code, 252-253

Chatter components, 381

Chatter example, 378

dynamic, 246-249

JavaScript events, 237-238

mobile timecards, 275-276, 278

native user interface buttons/links navigation, 215

as native user interface tabs, 215

performance tuning, 217-218

security, 218-220

Services Manager Follow Team button, 384-385

Services Manager Skills Matrix, 228-229

Services Manager Utilization, 337-338

Services Manager Utilization page, creating, 330-331

standard pages, overriding, 210-211

Streaming API example, 343

timed events, 237

Tooling API example, 359-360

viewing from native user interface buttons, 213

viewing in Salesforce Classic, 271

performance, tuning, 217-218

public access. See sites

security, 218

object-level, 218

page-level, 219

record-level, 219

Services Manager application

business hours, configuring, 331

hours utilization calculation, 332

utilization controller code, 335-337

Utilization page, 330-331, 337-338

Streaming API page, 343

Tooling API example

controller, 357-359

page, 359-360

view components, 198

action, 203-204

attributes, 199

component body, 199

custom. See custom components

data, 200-203

facets, 239

Force.com-styled, 205-208

identifier problems, debugging, 240

names, 199

native user interface, 208-209

page, 200

primitive, 204-205

referencing from JavaScript, 240

syntax, 198-199

visibility, 200

W

web developer contributions, 12

Web development frameworks, 268-269

Mobile Components for Visualforce, 268-269

documentation/source code Web site, 269

installing, 268-269

types, 268

Web MVC, 269

Web servers, configuring, 352

Web services

Connector (WSC), 316

Description Language. See WSDL

integration, 9

Web sites

AJAX Proxy, 270

AngularJS, 251

anonymous benchmark WSDL, 333

Apex Code Developer’s Guide, 100, 108

AppExchange, 16

Bulk API, 345

Canvas, 349

Chatter

Apex, 378

REST API, 379

Code Share, 16

CometD library, 342

cURL, 306

Data Loader Mac OS X version, 34

DE account registration, 32

developer discussion boards, 16

Developer Force, 16

Dreamforce/Cloudforce conferences, 17

Excel Connector, 34

expressions, scheduling, 295

Force.com IDE, 34

Ideas, 16

IDE installation, 101

jQuery UI, 259

Large Data Volume (LDV) deployments, 22

Metadata API, 360

Mobile Components for Visualforce, 269

Mobile Packs, 269

multilenancy whitepaper, 5

NAICS codes, 333

OAuth, 307

REST API Developer’s Guide, 308

Salesforce

Classic implementation guide, 271

Mobile SDK, 265, 267

Secure Coding Guideline document, 218

security resources, 385

SimpleDateFormat pattern, 109

SOAP Partner API, 315

Streaming API, 340

systems integrators, 17

Tooling API, 355

Visualforce pages, performance tuning, 218

Web Service Connector, 316

Yahoo! geocoding REST service, 303

whatIds unique identifiers

email templates, 169

MassEmailMessage object, 170

While loops, 114

Windows Azure, 3

wizards

Import, 34

New Custom Field

default values, 39

descriptions, 39

external IDs, 39

help text, 39

labels, 39

names, 39

required fields, 39

types, selecting, 38

unique fields, 39

New Custom Object Tab, 63

wrapper patterns, 195-196

write locks, 161

WSC (Web Service Connector), 316

WSDL (Web Services Description Language)

Services Manager anonymous benchmark, 333

stub code, generating, 316-317

versions, 315-316

X

XML metadata, 30-31

XOR (^) operator, 110

Y

Yahoo! geocoding REST service

integrating, 303

invoking, 303

testing, 304

Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.147.70.66