+ (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
abortJob method, 296
Accept button, 213
accessibility (fields), 78-79, 89-90
accessing data
mobile Web applications
actionFunction component, 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
asynchronous
as JavaScript functions, 235-236
partial page refreshes, 234-235
as timed events, 237
container components, 205
custom logic, invoking, 195
trigger page navigation, 195
view state preservation, 195
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
AVG, 144
COUNT_DISTINCT, 144
governor limits, 145
MAX, 144
MIN, 144
records, grouping, 146
AggregateResult object, 145
aggregate SOQL queries, 144
AVG, 144
COUNT_DISTINCT, 144
governor limits, 145
MAX, 144
MIN, 144
records, grouping, 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 ROLLUP clause, 147
Ajax (Asynchronous JavaScript and XML)
actions, 234
as JavaScript functions, 235-236
partial page refreshes, 234-235
as timed events, 237
Visualforce support, 234
Proxy, 270
AND (&) operator, 110
AND (&&) operator, 110
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
grouping records with subtotals, 147-148
arrays
creating, 111
sorting, 112
Batch
limitations, 292
missing timecard class, developing, 298-299
project evaluation guidelines, 284-285
scope, 282
testing, 293
transactions, 283
Visualforce controller, 378
Visualforce page, 378
Web site, 378
ConnectApi, 378
custom Apex REST services, creating, 312-314
custom Apex SOAP Web services rules, 327
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
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
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
Services Manager anonymous benchmarking, 333-335
database integration
data integrity, 122
DML statements. See DML, statements
queries. See queries
security, 133
data types, 106
Blob, 106
Boolean, 106
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
execution logs, 134
dynamic, 174
instances, creating, 179
SOSL queries, 176
Apex code, 120
databases, 120
heaps, 120
namespaces, 120
lists
creating, 111
nesting, 111
overview, 111
sorting, 112
managed sharing, 162
organization-wide sharing defaults, changing, 163
object-oriented principles, 117
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
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
organization-wide email address unique identifiers, 172
reply-to addresses, 171
sendEmail method, 171
sender display names, 171
signatures, 172
SingleEmailMessage object, 168-169
tracking, 172
sets, 112
Test Runner View (IDE), 103
transaction processing
record locking, 161
batching, 132
bulkifying, 132
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
classes, 117
constants, 107
enums, 107
rounding, 108
APIs
Bulk, 344
two-tier system, 345
Web site, 345
Canvas, 349
cross-domain XHR, 350
Web site, 349
Metadata, 360
object creation example, 361-363
Web site, 360
REST
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
Enterprise. See Enterprise API
error handling, 321
Force.com data types, 321
IP white-listing, 319
limits, 316
login call, 320
login problems, troubleshooting, 320
Partner, 315
security, 316
security tokens, 319
stub code, generating, 316-317
Web Service Connector (WSC), 316
Streaming
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
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
JavaScript remoting, 250
social. See Chatter
architectures
application services, 6
declarative metadata, 7
programming languages, 7
relational databases, 6
security, 71
arithmetic negation (-) operator, 110
arrays
creating, 111
sorting, 112
Assignment object
fields, 54
overview, 53
assignment (=) operator, 110
as JavaScript functions, 235-236
partial page refreshes, 234-235
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
mobile Web applications, 269-270
sites users, 258
availability (PushTopics), 341
AVG aggregate function, 144
backslash (), UNIX line-continuation character, 309
Batch Apex, 116
batch jobs, 282
executing, 286
execution detail, viewing, 288
scope, 289
limitations, 292
missing timecard class, developing, 298-299
project evaluation guidelines, 284-285
scheduled jobs
creating, 295
editing, 296
viewing, 296
sample code, 296
schedulable code development, 294
scope, 282
testing, 293
transactions, 283
batch jobs, 282
bulk export
batches, creating, 348
status, checking, 348
bulk import
closing, 347
creating, 346
results, retrieving, 347
status, checking, 347
executing, 286
execution detail, viewing, 288
limitations, 292
scheduled
creating, 295
deleting, 296
editing, 296
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
Bulk API, 344
records
two-tier system, 345
Web site, 345
bulk jobs
export
batches, creating, 348
status, checking, 348
import
closing, 347
creating, 346
results, retrieving, 347
status, checking, 347
bulk modifications (records), 326
business analyst contributions, 11
business units
buttons
custom
custom objects, creating, 38
Visualforce pages, 215
native user interface, 213
standard, 37
formats, 302
invoking, 303
testing, 304
Canvas, 349
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
previewing, 352
running in App Previewer, 350
Web site, 349
carbon copies (email), 171
catch keyword (exceptions), 115
channel names, 340
Visualforce controller example, 378
Visualforce page, 378
Web site, 378
creating, 375
deleting, 375
query, 375
schema pattern, 374
feed-tracked changes, 376
following relationships, 377
method, 377
Mobile, 264
objects
dynamic, 370
high-volume design, 370
relationship-rich, 370
content, 371
custom object feeds, 373
deleting, 373
news feeds, 374
schema pattern, 370
standard object feeds, 372-373
user feeds, 374
followed records request, 380
post request, 380
Web site, 379
Services Manager Follow Team button, 382-385
configuring, 385
controller extension code, 383-384
testing, 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
child relationships
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
BenchmarkWS, 334
constructors, 118
defining, 118
information-hiding notation, 118
inheritance, 119
initializers, 118
inner, 118
Iterable, 291
Iterator, 290
methods, 117
MissingTimecardBatch
reset results, 300
running, 300
properties, 117
TimecardManager
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
Google Cloud Platform, 3
Windows Azure, 3
Cloudforce conference, 17
code execution (Apex)
asynchronous, 116
conditional statements, 113
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
sets, 112
size, 109
ComeD library, 342
commandButton component, 203
commandLink component, 203
creating, 375
deleting, 375
query, 375
schema pattern, 374
CompareSkillsComponent
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
Follow Team button, 385
IDE, 138
local Web servers, 352
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
continue keyword (loops), 114
controlled by parent records, 81
controller attribute (pages), 200
actionFunction component, 236
actions
timed events, 237
AngularJS, 253
mobile timecards, editing, 279
project list example, 252
timecard entry in-page navigation, 277
Chatter example, 378
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
Streaming API example, 342
unit tests, 222
conversion methods, 108
converting data types, 107-108
conversion methods, 108
dates to strings, 109
exceptions, 114
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
Project import, 65
cURL, 306
currency
fields, 38
SOAP data type, mapping, 322
custom Apex Web services
Apex class rules, 312
creating, 313
governor limits, 312
SOAP, 326
Apex class rules, compared, 327
calling, 328
creating records example, 328
governor limits, 327
invoking, 329
Services Manager anonymous benchmarking, 333-335
custom applications, creating, 58
custom buttons
custom objects, creating, 38
Visualforce pages, 215
CSS, adding, 261
custom logic, invoking, 195
trigger page navigation, 195
view state preservation, 195
custom fields. See fields, creating
custom links
custom objects, creating, 38
Visualforce pages, 215
custom objects, 22
activities, allowing, 36
custom buttons/links, 38
custom fields, 37
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
App Builder Tools, 33
data, 34
Force.com IDE, 34
metadata, 33
Schema Builder, 34
defined, 47
governor limits, 180
list, 48
creating, 180
deleting, 180
updating, 180
storage limits, 49
values, retrieving, 180
custom tabs, 215
batch processing. See Batch Apex
exposing (custom controllers), 193-194
expressions
standard controllers, 192
standard set controllers, 193
importing, 64
import process, 66
integration, 29
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
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
SOSL, 29
viewing, 121
REST API access, 306
security
architecture, 71
field accessibility, 73
object-level. See object-level security
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
list, 48
records, 180
storage limits, 49
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
queries. See queries
security, 133
change exceptions, 114
defined, 47
hierarchy, 49
list, 48
storage limits, 49
data. See data
developer contributions, 12
fields. See fields
governor limits, 120
integration, 29
logical, 13
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
permission sets, 72
profiles, 72
record-level, 72
sharing model, 73
sharing reasons, 74
services, 7
tables. See objects
batching, 132
bulkifying, 132
custom objects, creating, 37
names, 131
page navigation, 195
timecard validation, creating, 138-139
inputField, 201
outputField, 201
Mobile Components for Visualforce, 268
inputCheckbox, 202
inputFile, 202
inputHidden, 202
inputSecret, 202
inputText, 202
inputTextArea, 202
outputLabel, 202
selectCheckboxes, 202
selectList, 202
selectRadio, 202
dataList component, 203
Data Loader tool, 34
Contact CSV import file, 69
Project CSV import file, 65
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
contacts, 51
projects, 52
skills, 53
dataTable component, 203
data types
Apex, 106
blob, 106
Boolean, 106
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
sorting, 112
collections
clearing, 109
cloning, 109
emptiness, 109
size, 109
converting, 114
fields, selecting, 38
lists
creating, 111
nesting, 111
overview, 111
sorting, 112
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
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
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
scheduled batch jobs, 296
dependent fields, 46
deploying mobile Web applications, 271-272
deployment status, 36
detail component, 209
Developer Console
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
Salesforce Mobile SDK, 265
Web. See mobile applications, Web
process, 188
dialog boxes
Create Lookup Field, 61
Create New Object, 59
Open Perspective, 101
dirty writes, 161
division (/) operator, 110
DML (Data Manipulation Language), 128
insert example, 158
opt_allOrNone parameter, 158
statements
Delete, 130
Insert, 129
Undelete, 130
Update, 129
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
SOSL, 176
schema metadata, 177
child relationship, 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
dynamic field references, 246-248
EC2 (Elastic Compute Cloud), 2-3
editing
scheduled batch jobs, 296
edit page, 211
edit permission, 75
Elastic Beanstalk, 2
fields, 38
integration, 9
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
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
tracking, 172
SOAP data type, mapping, 322
enabled permissions (SOAP API), 318-319
EncodingUtil class, 303
end of life, 15
enhancedList component, 209
Enhanced Profile List Views, 74
Enhanced Profile User Interface, 74
overview, 315
records
bulk modifications, 326
deleting/undeleting, 325
updating, 325
upserting, 325
writing, 324
EntitySubscription object, 377
enums, 107
environments, 32
equality (==) operator, 110
error handling
SOAP API, 321
uncaught exceptions, 220
errors
data type conversions, 108
events
timed, 237
exact equality (===) operator, 110
exact inequality (!==) operator, 110
Excel Connector, 34
exceptions
incoming email, 173
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
batches, creating, 348
creating bulk export jobs, 347-348
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
facets, 239
FeedComments relationship, 375
feed component, 381
custom objects, 373
news, 374
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
email/phone/URL, 38
fieldsToNull, 325
logical, 23
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
security, 77
field accessibility, 78-79, 89-90
profiles, 78
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
Project import, 65
filtering
multi-select picklists, 154
records
grouped, 146
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
configuring, 385
controller extension code, 383-384
testing, 385
Force.com
architecture
application services, 6
declarative metadata, 7
programming languages, 7
relational databases, 6
Database.com, 4
developers, 3
perspective, 101
Project, 103
services, 7
business logic, 8
database, 7
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
formatting
datetime data types, 109
REST services, 302
SimpleDateFormat pattern, 109
strings for dates, 109
frameworks (mobile Web applications), 268-269
Mobile Components for Visualforce, 268-269
Web MVC, 269
functions (aggregate), 144-145
AVG, 144
COUNT_DISTINCT, 144
governor limits, 145
MAX, 144
MIN, 144
records, grouping, 146
future methods, 116
declaring, 116
limitations, 116
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 ROLLUP clause, 147
groups
operators, 110
with aggregate functions, 146
filtering, 146
without aggregate functions, 145-146
users, 80
public, 80
roles, 80
The Hammer, 6
handleInboundEmail method, 172
handling
errors
SOAP API, 321
exceptions, 115
HAVING keyword (grouped records, filtering), 146
heap governor limits, 120
Hello World
code example, 105
help
settings (custom objects), 36
text, 39
hierarchy custom settings, 49, 181
high volume objects, 370
history tracking
custom objects, 36
fields, 25
Http class, 302
HttpRequest class, 302
HttpResponse class, 302
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
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
Contact CSV import file, 69
Project CSV import file, 65
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
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
DML statements. See DML, statements
integrity, 122
queries. See queries
security, 133
logical databases, 13
native user interface, 31
object-relational mapping, 30
REST APIs, 31
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
interfaces
InboundEmailHandler, 172
Schedulable, 294
Stateful, 290
interoperability, 15
IP white-listing, 319
isEmpty method, 109
@isTest, 136
Iterable class, 291
Iterator class, 290
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
forcetk.js library, 266
JQuery UI, 259
Object Notation (JSON), 302, 364-366
Skills Matrix comparison overlay, 261
Visualforce components, referencing, 240
jobs
bulk export
batches, creating, 348
status, checking, 348
bulk import
closing, 347
creating, 346
results, retrieving, 347
status, checking, 347
joins
anti-joins
overview, 152
restrictions, 153
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
keywords
break, 114
catch, 115
continue, 114
EXCLUDES, 154
finally, 115
HAVING, 146
INCLUDES, 154
LIMIT, 125
throw, 115
try, 115
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
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
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
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
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
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
reset results, 300
running, 300
mobile timecard entry page
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 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
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
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
Tooling API example (Visualforce)
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 field references, 247
Hello World example, 190
pages as templates, 243
partial page refresh, 235
record-level security, 219
Yahoo! geocoding REST service
integrating, 303
invoking, 303
testing, 304
lists
creating, 111
custom settings, 48
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
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
managed sharing (Apex), 162
organization-wide sharing defaults, changing, 163
restrictions, 163
sharing rules, creating, 163-167
inserting, 167
Project object, 164
manual sharing reason, 82
mashups, 9
MassEmailMessage object, 170-171
Master-Detail relationships
defined, 40
Lookup relationships, compared, 40
Services Manager application, 55-57
SOAP type, mapping, 322
MAX aggregate function, 144
metadata
declarative, 7
schema, 177
child relationship, 178
limits, 177
object, 177
picklist, 178
record type, 179
tools, 33
Metadata API, 360
object creation example, 361-363
Web site, 360
metadata-aware components, 200-201
inputField, 201
outputField, 201
methods
abortJob, 296
access modifiers, 118
addError, 225
addFields, 246
addInfo, 225
Apex test, 136
clear, 109
clone, 109
defined, 117
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
reset results, 300
running, 300
missing timecard reports, 296-297
missing timecards information, calculating, 298-299
missing timecards list custom object, creating, 297
Chatter Mobile, 264
containers, 271
Salesforce
Classic, 264
Mobile SDK, 265
Touch, 264
timecard entry page
requirements, 272
testing, 279
viewing in Web browsers, 273
viewing on iPhones, 273
Web, 265
overview, 266
Salesforce SDK libraries, 266
Mobile Components for Visualforce, 268-269
documentation/source code Web site, 269
types, 268
Mobile Design templates, 269
Mobile Packs, 269
requirements, 272
testing, 279
timecards
viewing
iPhones, 273
Web browsers, 273
Model-View-Controller (MVC) pattern, 15
Modify All permission, 76
modularity (Apex), 119
modular Visualforce pages, 241
inclusion, 242
monitoring batch jobs, 287-288
multiplication (*) operator, 110
multi-select picklists, 154
MVC (Model-View-Controller) pattern, 15
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
view components, 199
namespaces, 120
CRUD (create, read, update, delete) operations, 31
data integration, 31
development lifecycle, 14
new features, enabling, 41
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
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
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
Web site, 340
NotifyForFields field, 341
NotifyForOperations field, 341
NullPointerException exception, 114
field-level security, 77
profiles, 78
profiles, 74
administrative permissions, 75
Enhanced Profile List Views, 74
Enhanced Profile User Interface, 74
field-level security, 78
licenses, 76
Services Manager, creating, 89-90
Services Manager, listing, 85-86
types, 74
object-oriented programming, 117
analysis and design specialist contributions, 12
information-hiding notation, 118
inheritance, 119
modularity, 119
polymorphism, 119
Object-Relational Mapping (ORM), 30
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
activities, allowing, 36
custom buttons/links, 38
custom fields, 37
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
EntitySubscription, 377
custom objects, 373
news, 374
users, 374
FeedTrackedChange, 376
logical, 22
LoginResult, 320
metadata, 177
operational tasks, 22
Project
CSV import file, 65
custom object tab, creating, 63
fields, 52
overview, 52
sharing rules, 164
records
relationships, creating, 121
types, 47
SaveResult, 324
security, 218
services, 361
restrictions, 163
Skill
fields, 54
overview, 54
validation rule, creating, 63
parent-to-child, 126
standard, 22
tabs, creating, 41
Timecard
fields, 56
overview, 53
undelete support, 23
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
Services Manager application, 91
orgs, 32
ORM (Object-Relational Mapping), 30
OR (|) operator, 110
OR (||) operator, 110
outbound email. See sending email
outputField component, 201
outputLabel component, 202
outputLink component, 204
outputPanel component, 204
outputText component, 204
overloading methods, 119
overriding
standard buttons, 213
PaaS (Platform as a Service), 2
Google Cloud Platform, 3
Windows Azure, 3
pageBlockButtons component, 228
pageBlock component, 228
pageBlockTable component, 228
pageMessages component, 220-221
pages
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
mobile timecards, 275-276, 278
native user interface buttons/links navigation, 215
as native user interface tabs, 215
public access. See sites
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
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
performance
custom Apex SOAP Web services, 327
Visualforce pages, tuning, 217-218
permissions
administrative, 75
Services Manager profiles, 85-86
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
content, 371
deleting, 373
custom object, 373
news, 374
user, 374
schema pattern, 370
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
Services Manager application, 18, 91-92
accounts receivable, 18
consultants, 18
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
sharing rules, 164
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
availability, 341
deleting, 341
limitations, 341
quality assurance engineer contributions, 12
batch sizes, setting, 324
dirty writes, 161
exceptions, 114
joins
semi-joins. See semi-joins
parent-to-child, 151
SOQL. See SOQL queries
SOSL, 29
dynamic, 176
record retrieval, 324
syntax, 155
QueryException exception, 114
query method
SOQL, 175
SOSL, 176
queryMore service, 323
query service, 323
raising exceptions, 115
RCED (read, create, edit, delete) operations, 31
Read permission, 75
governor limits, 173
personalizing based on sender identity, 173
services, configuring, 174-175
uncaught exceptions, 173
adding to bulk import jobs, 346-347
batch processing. See Batch Apex
controlled by parent option, 81
counts, returning, 145
custom setting
creating, 180
deleting, 180
updating, 180
deleting, 130
Enterprise API
bulk modifications, 326
deleting/undeleting, 325
updating, 325
upserting, 325
writing, 324
batches, creating, 348
creating bulk export jobs, 347-348
status, checking, 348
feed-tracked changes (Chatter), 376
following
method, 377
relationships, querying, 377
request, 380
with aggregate functions, 146
filtering grouped, 146
without aggregate functions, 145-146
grouping with subtotals, 147-148
debug log excerpt, 147
GROUP BY ROLLUP clause, 147
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
private, 81
public read-only, 81
public read/write, 81
availability, 341
deleting, 341
limitations, 341
relationships, creating, 121
requests
creating, 310
deleting, 311
updating, 311
upserting, 311
retrieving
external identifiers, 310
unique identifiers, 309
user groups, 80
Visualforce user interfaces, 219
organization-wide defaults, 80-82, 163
Services Manager application, 87-88
restrictions, 163
sharing reasons, 82
sharing rules
inserting, 167
Project object, 164
type metadata, 179
undeleting, 130
updating, 129
viewing, 42
recursion, 115
registration, 32
relatedList component, 209
relational databases, 6
relationship-rich Chatter objects, 370
child metadata, 178
comparison, 40
data, 25
explicitly defined, 26
integrity enforced, 26
SOSL, 29
viewing, 121
FeedComments, 375
fields, 38
comparison, 40
Lookup, 39
Master-Detail, 40
following, 377
Lookup, 39
creating, 60
Services Manager application, 55
SOAP type, mapping, 322
Master-Detail, 40
Services Manager application, 55-57
SOAP type, mapping, 322
parent-to-child queries, 151
records, creating, 121
Services Manager application, 55-58
parent-to-child, 126
viewing, 121
repeat component, 203
reply-to addresses (email), 171
reports
custom objects, allowing, 36
missing timecards information, calculating, 298-299
missing timecards list custom object, creating, 297
Representational State Transfer. See REST
RequestId field, 355
requests
Chatter posts, 380
followed records, 380
password authentication, 307
records
creating, 310
deleting, 311
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
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
integration, 9
services, calling from Apex, 302-304
formats, 302
invoking, 303
testing, 304
rich data types, 25
roles. See profiles
rollback method, 159
roll-up summaries
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
organization-wide sharing defaults, changing, 163
restrictions, 163
sharing, 82
inserting, 167
Services Manager application, 92-93
validation
fields, 24
Skill object creating, 63
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
limitations, 159
restoring to, 159
setting, 159
SaveResult objects, 324
Schedulable interface, 294
schedule method, 295
scheduling Batch Apex, 293-296
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
search layouts, 37
sectionHeader component, 228
Secure Coding Guideline document Web site, 218
security
Apex, 133
architecture, 71
authentication
mobile Web applications, 269-270
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
administrative permissions, 75
Enhanced Profile List Views, 74
Enhanced Profile User Interface, 74
field-level security, 78
licenses, 76
Services Manager, creating, 89-90
Services Manager, listing, 85-86
types, 74
user groups, 80
Visualforce user interfaces, 219
resources Web site, 385
Secure Coding Guideline document Web site, 218
Services Manager application
designing, 85
organization-wide defaults, 91
sharing model, 73
sharing reasons, 74
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
selectList component, 202
selectRadio component, 202
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
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
tracking, 172
services, 7
application, 6
business logic, 8
create, 324
createProject, 329
Apex class rules, 312
creating, 313
governor limits, 312
custom Apex SOAP Web, 326
Apex class rules, compared, 327
calling, 328
creating records example, 328
governor limits, 327
invoking, 329
Services Manager anonymous benchmarking, 333-335
database, 7
delete, 325
query, 323
queryMore, 323
REST, calling from Apex, 302-304
formats, 302
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
anonymous benchmarking service, 333-335
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
contacts, 51
projects, 52
skills, 53
configuring, 385
controller extension code, 383-384
testing, 385
hours utilization calculation, 332
IDE configuration, 138
importing data, 64
import process, 66
missing timecard report, 296-297
missing information, calculating, 298-299
missing timecards list custom object, creating, 297
mobile timecard entry page
requirements, 272
testing, 279
viewing in Web browsers, 273
viewing on iPhones, 273
security
designing, 85
organization-wide defaults, 91
Skills Matrix
complete list of skill types, creating, 224
contacts drop-down list, creating, 224
page, creating, 224
requirements, 223
sample implementation, 223
skills list, creating, 224
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
user roles, 18
accounts receivable, 18
consultants, 18
project managers, 18
sales representatives, 18
staffing coordinators, 18
Vice President, 18
utilization
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
organization-wide defaults, 80-82, 163
procedural, 82
restrictions, 163
Services Manager application, 87-88
sharing reasons, 82
inserting, 167
Services Manager application, 92-93
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
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
creating, 255
domain name, 255
enabling, 254
main page, 255
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
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
page, creating, 224
requirements, 223
sample implementation, 223
skills list, creating, 224
SmartSync
library, 266
mobile Web applications data access, 270
SOAP (Simple Object Access Protocol), 301
API, 31
Enterprise. See Enterprise API
error handling, 322
Force.com data types, 321
IP white-listing, 319
limits, 316
login call, 320
login problems, troubleshooting, 320
Partner, 315
security, 316
security tokens, 319
stub code, generating, 316-317
Web Service Connector (WSC), 316
custom Apex SOAP Web services, 326
Apex class rules, compared, 327
calling, 328
creating records example, 328
governor limits, 327
invoking, 329
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
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
semi-joins. See semi-joins
multi-select picklists, 154
queries
PushTopics, 340
record retrieval, 323
REST API request, 310
results, sorting, 125
Schema Explorer, 123
records
limits, 125
column list functions, 28
governor limits, 28
implicit joins, 27
statements, 124
filter conditions, 124
record limits, 125
sort fields, 125
sorting
lists/arrays, 112
query results, 125
SOSL (Salesforce Object Search Language), 29
dirty writes, 161
queries
dynamic, 176
example, 29
record retrieval, 324
syntax, 155
column list functions, 28
governor limits, 28
implicit joins, 27
Staffing Coordinator profile
permissions, 86
Services Manager application, 18
standard buttons
custom objects, creating, 37
listing of, 213
overriding, 213
standardController attribute, 200
standard fields
custom objects, creating, 36
defined, 23
standard links, 37
standard objects, 22
standard pages
edit, 211
list, 211
tab, 210
view, 211
standard set controllers, 192-193
start method (Batchable interface), 283
Stateful interface, 290
statements
conditional, 113
Delete, 130
DML. See DML, statements
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
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
Streaming API
CometD library, 342
Visualforce controller, 342
Visualforce page, 343
availability, 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
table components, 205
tables. See objects
tabs
page, 210
targetObjectIds unique identifiers
email templates, 169
MassEmailMessage object, 170
technical support, 17
technology integrations, 4
templateIds unique identifiers, 170
templates
AngularJS, 253
Mobile Design, 269
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
Staffing Coordinator profile, 96-97
Vice President profile, 97
unit tests
Apex. See Apex, unit tests
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
TimecardManager class
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
Web site, 355
tools
cURL, 306
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
importing data, 66
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
insert example, 158
opt_allOrNone parameter, 158
record locking, 161
limitations, 159
restoring to, 159
setting, 159
transactions
Batch Apex, 283
custom Apex SOAP Web services, 327
batching, 132
bulkifying, 132
custom objects, creating, 37
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
unary decrement (--) operator, 110
unary increment (++) operator, 110
uncaught exceptions, 220
undelete service, 325
Undelete statement, 130
unique identifiers
email templates, 169
fields, 24
mass emails, 170
organization-wide email addresses, 172
unit tests
Apex, 136
results, viewing, 137
running, 137
test data, 137
test methods, 136
Test Runner View, 103
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
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
mobile Web applications, 269-270
sites, 258
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
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
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
classes, 117
constants, 107
data types, 106
blob, 106
Boolean, 106
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
enums, 107
fields, 247
rounding, 108
selectedContactId, 225
Vice President profile
permissions, 86
Services Manager application, 18
testing, 97
View All permission, 76
view components (Visualforce), 198
attributes, 199
feed, 381
feedWithFollowers, 381
follow, 381
followers, 381
limitations, 382
newsFeed, 381
userPhotoUpload, 381
component body, 199
CompareSkillsComponent, creating, 259-260
CSS, adding, 261
support, adding, 261
facets, 239
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
types, 268
names, 199
native user interface, 208-209
detail, 209
enhancedList, 209
listViews, 208
relatedList, 209
page, 200
referencing from JavaScript, 240
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
unit test results, 137
Visualforce pages
native user interface buttons, 213
Salesforce Classic, 271
Salesforce Touch, 271
view page, 211
Apex Test Runner, 103
Problems, 103
view state, preserving, 195
asynchronous actions
Ajax support, 234
as JavaScript functions, 235-236
partial page refreshes, 234-235
as timed events, 237
feed, 381
feedWithFollowers, 381
follow, 381
followers, 381
limitations, 382
newsFeed, 381
userPhotoUpload, 381
actionFunction component, 236
AngularJS project list example, 252
Chatter example, 378
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
Streaming API example, 342
unit tests, 222
debugging, 216
development
process, 188
dynamic, 246
dynamic field references, 246-248
uncaught exceptions, 220
documentation/source code Web site, 269
types, 268
modular, 241
inclusion, 242
native user interface integration, 209-210
custom buttons/links, 215
custom tabs, 215
page layouts, 213
standard buttons, 213
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
mobile timecards, 275-276, 278
native user interface buttons/links navigation, 215
as native user interface tabs, 215
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
viewing from native user interface buttons, 213
viewing in Salesforce Classic, 271
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
view components, 198
attributes, 199
component body, 199
custom. See custom components
facets, 239
identifier problems, debugging, 240
names, 199
native user interface, 208-209
page, 200
referencing from JavaScript, 240
visibility, 200
web developer contributions, 12
Web development frameworks, 268-269
Mobile Components for Visualforce, 268-269
documentation/source code Web site, 269
types, 268
Web MVC, 269
Web servers, configuring, 352
Web services
Connector (WSC), 316
Description Language. See WSDL
integration, 9
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
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
write locks, 161
WSC (Web Service Connector), 316
WSDL (Web Services Description Language)
Services Manager anonymous benchmark, 333
stub code, generating, 316-317
XOR (^) operator, 110
Yahoo! geocoding REST service
integrating, 303
invoking, 303
testing, 304
3.135.247.11