Beruflich Dokumente
Kultur Dokumente
Version7
G210-2369-00
Note: Before using this information and the product it supports, read the information in "Notices" at the end of this document.
Contents
Chapter 1. Introduction to Domino
Designer . . . . . . . . . . . . . . 1
Overview -- applications and databases . . . . . 1
Applications . . . . . . . . . . . . . 1
Databases . . . . . . . . . . . . . . 1
Starting Lotus Domino Designer . . . . . . . . 2
To start Domino Designer from the Bookmark bar
in the Notes client . . . . . . . . . . . 2
To start Domino Designer from a database in the
Notes client . . . . . . . . . . . . . . 2
To start Domino Designer from the command line 2
Exploring Lotus Domino Designer . . . . . . . 3
Properties boxes . . . . . . . . . . . . 5
Creating a database . . . . . . . . . . . . 6
Displaying, collecting, and storing information . . . 6
Pages . . . . . . . . . . . . . . . . 6
Forms and documents . . . . . . . . . . 7
Fields . . . . . . . . . . . . . . . . 8
Organizing your data . . . . . . . . . . . 9
Views . . . . . . . . . . . . . . . . 9
Folders . . . . . . . . . . . . . . . 9
Creating navigation. . . . . . . . . . . . 10
Outlines . . . . . . . . . . . . . . 10
Navigators . . . . . . . . . . . . . . 11
Structuring your display . . . . . . . . . . 11
Adding automation . . . . . . . . . . . . 11
Actions . . . . . . . . . . . . . . . 12
Hotspots . . . . . . . . . . . . . . 12
Agents . . . . . . . . . . . . . . . 12
Sharing, locking, and editing design elements . . . 12
Editing multiple design elements . . . . . . 12
Sharing resources across databases . . . . . 12
Locking documents and design elements . . . 13
Autosaving Notes documents . . . . . . . . 13
Enabling AutoSave in forms . . . . . . . . 13
Enabling AutoSave in the Notes client . . . . 13
Recovering documents saved with the AutoSave
feature . . . . . . . . . . . . . . . 14
Other Autosave options . . . . . . . . . 14
Extending access to applications . . . . . . . 14
Using third-party design tools . . . . . . . 14
Using WebDAV for remote development . . . 15
Accessing external data sources from a field . . 15
Bringing an application off-line . . . . . . . 15
Instant messaging colleagues . . . . . . . 15
Communicating across platforms . . . . . . . 15
JavaServer pages . . . . . . . . . . . 15
XML. . . . . . . . . . . . . . . . 16
21
22
22
23
23
23
23
24
24
25
25
25
27
27
27
27
29
30
. 31
. 31
. 32
.
.
.
.
.
.
.
33
33
34
34
35
35
36
. 36
. 37
. 37
.
.
.
.
.
.
.
.
.
.
.
.
.
.
38
39
39
39
40
40
40
40
40
41
41
41
41
41
42
iii
42
42
42
42
43
43
43
43
43
43
44
44
45
45
45
45
45
46
46
46
47
47
47
47
48
48
iv
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
50
50
50
51
51
52
52
52
52
52
53
53
53
53
53
54
54
54
54
54
55
55
. 55
. 56
. 56
To format a section . . . . . . . . . . .
To delete a section . . . . . . . . . . .
Creating links . . . . . . . . . . . . .
To create a Named Element link . . . . . .
To copy and paste a link . . . . . . . . .
To create a link using the properties box . . . .
To create a link to a document, view, anchor, or
database . . . . . . . . . . . . . .
To create a URL link . . . . . . . . . .
Using graphics . . . . . . . . . . . . .
Preparing graphics . . . . . . . . . . .
Changing the color palette . . . . . . . .
Adding graphics to a page, form, or subform . .
Changing the display properties of the graphic
Adding a background color or graphic . . . .
Adding an applet . . . . . . . . . . . .
Creating an attachment . . . . . . . . . .
Embedding elements . . . . . . . . . . .
To embed an element . . . . . . . . . .
To delete an embedded element . . . . . .
Embedding a date picker . . . . . . . . .
Embedding an Instant Messaging Contact List . .
Inserting a JavaScript library . . . . . . . .
To insert a JavaScript library in-line . . . . .
To Insert a JavaScript Library into the JS Header:
Using HTML on a page, form, or subform . . . .
To convert pages, forms, or subforms into HTML
To import HTML . . . . . . . . . . .
To paste HTML . . . . . . . . . . . .
To enter HTML directly on a page, form, or
subform . . . . . . . . . . . . . .
To include some HTML on a page, form, or
subform . . . . . . . . . . . . . .
Setting launch properties for pages or forms . . .
To set the launch property for a page . . . . .
To set the launch property for a form . . . . .
Layers . . . . . . . . . . . . . . . .
Creating a layer . . . . . . . . . . . .
Changing the position of a layer . . . . . .
Changing the HTML properties of a layer . . .
Changing the background color and image for a
layer. . . . . . . . . . . . . . . .
Creating style sheets as shared resources . . . .
To create a new style sheet resource . . . . .
To insert a style sheet resource into a page, form,
or subform . . . . . . . . . . . . .
To edit a style sheet resource . . . . . . .
To refresh a style sheet resource . . . . . .
Table of supported CSS properties . . . . . .
Programming a page or form . . . . . . . .
Adding HTML header information . . . . . .
To add HTML header information . . . . . .
Example: Adding HTML to the Head tag . . .
Adding JavaScript header information . . . . .
To add JavaScript header information. . . . .
Example: Adding JavaScript header information
56
56
57
57
57
57
57
58
58
58
59
59
60
60
61
61
62
62
62
62
63
63
63
63
63
64
64
64
65
65
65
65
65
66
66
67
69
69
70
70
70
71
71
71
73
73
73
73
73
73
73
.
.
.
.
.
.
.
.
.
. 75
. 77
. 78
. 78
. 78
78
. 78
. 79
. 79
. 79
. 79
. 79
. 79
. 79
. 80
. 80
. 80
. 80
. 81
. 81
. 81
. 81
. 82
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
82
82
82
82
83
83
83
83
83
83
84
84
84
84
85
85
85
85
. 86
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
86
86
86
88
88
88
88
88
88
89
89
90
90
90
90
90
90
91
. 113
. 113
. 113
114
114
. 114
. 114
. 114
Contents
vi
114
115
115
115
116
116
116
116
117
117
117
118
120
120
121
121
121
121
122
123
124
125
126
126
126
126
127
128
128
129
129
129
129
130
130
130
130
131
131
132
133
133
133
133
134
134
135
137
137
137
138
138
139
139
139
139
139
140
140
140
140
141
141
141
142
142
142
142
143
143
143
144
144
144
144
145
145
145
145
146
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
147
148
148
149
151
152
152
152
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
155
155
157
157
157
158
158
158
158
159
159
159
159
160
160
160
160
161
161
Naming tips . . . . . . . . . . . . .
Aliases . . . . . . . . . . . . . .
Hidden views . . . . . . . . . . . .
Shortcut keys . . . . . . . . . . . .
Cascading views . . . . . . . . . . .
Customizing the style of the inbox folder . . . .
Using a previously created style . . . . . .
Selecting an inbox style . . . . . . . . .
Selecting which documents display in a view. . .
Choosing the type of view selection . . . . .
Simple Search . . . . . . . . . . . .
Formula . . . . . . . . . . . . . .
Examples: Programming documents to display
in a view . . . . . . . . . . . . . .
Table of document selection conditions . . . .
Description of document selection conditions
Creating columns in a view . . . . . . . .
Creating a shared column . . . . . . . .
Adding titles to columns . . . . . . . .
Setting styles for columns . . . . . . . .
Formatting date and time columns . . . . .
Displaying numbers in columns . . . . . .
Enabling a column for instant messaging . . .
Advanced options for columns . . . . . .
Adding programming to columns . . . . .
Table of simple functions for columns . . . .
Displaying an icon in a column . . . . . .
Sorting documents in views . . . . . . .
Overriding alphabetical sorting with a hidden
column . . . . . . . . . . . . . .
Using a column to switch to another view . . .
Generating column totals, averages, and
percents . . . . . . . . . . . . . .
Setting styles for a standard view or folder . . .
Display options for views . . . . . . . . .
Setting the view as the default . . . . . .
Using a view or folder as a template . . . .
Collapsing the view to show only categories
Organizing response documents in a hierarchy
Adding a view name to the View menu . . .
Allowing Notes users to customize a view . .
Evaluating formulas when documents change
Creating new documents at view level . . . .
Opening to a particular row in the view . . .
Displaying the last-used view . . . . . . .
Refreshing a view . . . . . . . . . . .
Page breaks in a view . . . . . . . . .
Adding categories to views . . . . . . . . .
To categorize a view . . . . . . . . . .
Generating category names . . . . . . . .
Categorizing in the All by Category view . . .
Indenting response documents . . . . . .
Formulas for response columns . . . . . .
Identifying unread documents . . . . . . . .
Choosing a style for unread marks . . . . .
Choosing a color for unread marks . . . . .
Disabling unread marks for modified
documents . . . . . . . . . . . . .
Default views . . . . . . . . . . . . .
Allowing users to edit or create documents from a
view . . . . . . . . . . . . . . . .
161
161
162
162
162
162
162
163
163
163
164
164
164
164
166
167
167
168
169
170
171
171
172
173
176
178
179
182
183
183
183
184
185
185
185
185
185
185
185
185
185
186
186
186
186
186
187
188
188
189
190
190
190
190
190
191
Usage Notes . . . . . . . . . . . . .
To allow users to edit documents in a view . .
To allow users to create a new document from a
view . . . . . . . . . . . . . . .
Coding notes . . . . . . . . . . . .
Allowing users to set colors in a view . . . . .
Setting the color value in the profile document
Formulas that look for values in columns and
views . . . . . . . . . . . . . . . .
Referring to views in @function formulas . . .
Referring to columns in formulas . . . . . .
Creating a calendar view . . . . . . . . .
To create a calendar view . . . . . . . .
Formatting options for calendar views . . . .
Troubleshooting a calendar view . . . . . .
Setting styles for a calendar view . . . . . .
Displaying views in Web applications . . . . .
Specifying how a view displays in a Web
browser . . . . . . . . . . . . . .
Creating an embedded view or embedded
folder . . . . . . . . . . . . . . .
Using HTML formatting for views and columns
Displaying a view as an applet in Web
applications . . . . . . . . . . . . .
Allowing users to select view documents on the
Web . . . . . . . . . . . . . . .
Opening a view with a particular frameset on
the Web . . . . . . . . . . . . . .
Hiding a view . . . . . . . . . . . . .
Hiding a view from Notes users . . . . . .
Hiding a view from Web users . . . . . .
Showing a view only to users of older Notes
releases . . . . . . . . . . . . . .
Refreshing view indexes . . . . . . . . . .
Refresh time options . . . . . . . . . .
Refresh display options . . . . . . . . .
Discard index options . . . . . . . . .
When the view index is deleted . . . . . .
Adding a trash folder to an application. . . . .
Trash folders in the view applet . . . . . .
Adding a view for soft deletions . . . . . . .
To turn on soft deletions for a database. . . .
Displaying and restoring soft-deleted documents
DB2 query views . . . . . . . . . . . .
Query views and federated data . . . . . .
Using complex SQL queries in query views . .
Prerequisites for working with Notes databases
that reside in DB2 . . . . . . . . . . .
Creating a query view . . . . . . . . .
Managing query views . . . . . . . . .
@ functions for query views . . . . . . .
191
191
191
191
192
192
192
193
193
193
193
194
195
195
196
196
197
200
200
203
203
203
203
203
204
204
204
204
205
205
205
206
206
206
206
207
207
208
208
208
210
211
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Contents
.
.
.
.
.
.
.
213
213
214
214
214
214
215
vii
.
.
.
.
215
215
215
216
.
.
.
.
216
217
217
218
223
224
224
224
224
225
225
225
226
226
.
.
.
.
.
.
.
.
. 227
. 227
. 228
. 230
. 230
. 231
. 231
.
.
.
.
.
.
.
.
232
232
233
233
233
233
233
234
viii
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
236
236
236
236
236
237
237
237
237
238
238
238
238
238
238
238
239
239
239
Form events . . . . . . . . . . . .
Examples. . . . . . . . . . . . .
Field events . . . . . . . . . . . .
Examples. . . . . . . . . . . . .
Click events . . . . . . . . . . . .
Examples. . . . . . . . . . . . .
Agent event . . . . . . . . . . . .
Creating a form, subform, page, or view action .
To create an action with subaction . . . .
To create system actions . . . . . . . .
Copying and deleting actions . . . . . .
Actions menu . . . . . . . . . . .
Calling an agent . . . . . . . . . .
Action bar . . . . . . . . . . . . .
Creating and inserting shared actions . . . .
To create a shared action . . . . . . .
To create shared action notes . . . . . .
To delete a shared action note . . . . . .
To insert a shared action. . . . . . . .
To edit shared actions . . . . . . . .
Creating a button . . . . . . . . . . .
Other button tasks. . . . . . . . . .
Creating a text pop-up . . . . . . . . .
Other text pop-up tasks . . . . . . . .
Example: Text pop-ups . . . . . . . .
Creating a formula pop-up . . . . . . . .
Other formula pop-up tasks . . . . . .
Creating an action hotspot . . . . . . . .
Other action hotspot tasks . . . . . . .
Creating a program for an event . . . . . .
Creating an agent . . . . . . . . . . .
Triggering an agent on an event . . . . .
Triggering an agent on a schedule . . . .
Useful agent procedures . . . . . . . .
Examples of agents to run before Web users open
or save documents . . . . . . . . . .
WebQueryOpen events . . . . . . . .
WebQuerySave events . . . . . . . .
Setting up agent security using the Security tab
Security for agents on servers and the Web . .
Who can create agents? . . . . . . . .
Who can run agents? . . . . . . . . .
Private agents . . . . . . . . . . .
Shared agents . . . . . . . . . . .
LotusScript/Java agents . . . . . . . .
Where can agents run? . . . . . . . .
What operations can agents run? . . . . .
When are restrictions checked? . . . . .
Locally on Notes . . . . . . . . . .
On the server . . . . . . . . . . .
Foreground or background . . . . . . .
From the Notes client or the Web . . . . .
Security controls for agents that are called by
agents . . . . . . . . . . . . . .
Troubleshooting agents . . . . . . . . .
Testing agents . . . . . . . . . . . .
To use the Test menu command . . . . .
To use the LotusScript debugger . . . . .
To create a test database . . . . . . . .
Profiling agents and Web services . . . . .
Viewing the agent log . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
239
239
239
240
240
240
240
240
241
242
242
242
242
242
244
244
245
246
246
246
246
247
248
248
248
248
249
249
249
250
250
251
253
254
. 256
. 256
. 256
256
. 257
. 258
. 258
. 258
. 258
. 258
. 258
. 259
. 259
. 259
. 259
. 260
. 260
.
.
.
.
.
.
.
.
260
261
261
261
261
262
262
263
263
263
264
264
264
265
265
265
266
266
266
266
267
267
267
267
267
268
268
268
268
268
268
269
269
269
269
270
270
271
272
272
272
273
273
274
274
274
274
275
275
.
.
.
.
.
.
.
277
277
278
278
278
278
278
.
.
.
.
.
278
279
279
279
280
.
.
.
.
.
.
.
.
.
.
280
280
281
281
282
283
283
283
284
284
284
284
285
285
286
286
286
287
287
287
287
287
287
287
287
288
288
288
288
289
289
290
290
290
291
291
291
292
293
293
294
294
294
294
295
295
295
296
296
ix
Tips . . . . . . . . . . . . . .
Specifying applet parameters, attributes, and
properties . . . . . . . . . . . . .
Setting HTML attributes . . . . . . . . .
Setting Alternate HTML attributes . . . . .
Setting properties . . . . . . . . . . .
To set applet properties . . . . . . . .
To hide an applet under certain conditions .
To hide an applet based on the browser
accessing it . . . . . . . . . . . .
Setting up shared applet resources . . . . .
To create a shared applet resource . . . .
To use a shared applet resource . . . . .
Stopping, selecting, and restarting applets . . .
To stop an applet . . . . . . . . . .
To select an applet . . . . . . . . . .
To restart an applet . . . . . . . . .
Copying and deleting applets . . . . . . .
To delete an applet and its related files . . .
To copy an applet . . . . . . . . . .
Refreshing and exporting applet files . . . .
To refresh applet files. . . . . . . . .
To export files . . . . . . . . . . .
Setting security for applets . . . . . . . .
To set security for applets in Notes . . . .
To set security for applets in Web applications
To extend the AppletBase class . . . . .
Saving applet data . . . . . . . . . .
Considerations . . . . . . . . . . .
Externalization . . . . . . . . . . .
To set up externalization . . . . . . .
Example HTML code . . . . . . . . .
Serialization . . . . . . . . . . . .
To set serialization . . . . . . . . . .
Example of HTML code . . . . . . . .
Tips and troubleshooting for Java applets . . .
Troubleshooting an applet that is not running
Accessing resource files . . . . . . . .
Specifying a full URL. . . . . . . . .
Using getDocumentBase . . . . . . . .
Using getCodeBase . . . . . . . . .
Modifying parameter values to locate resource
files . . . . . . . . . . . . . .
. 296
.
.
.
.
.
.
296
297
297
297
297
298
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
298
298
298
299
299
299
299
299
299
300
300
300
300
300
300
300
301
301
302
302
302
303
303
303
304
304
304
304
304
305
305
306
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 306
307
308
308
308
308
308
308
309
309
309
310
311
311
311
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 312
. 312
. 312
. 314
. 315
. 315
315
. 316
. 317
317
. 318
. 318
. 319
. 319
. 320
. 320
. 321
. 321
. 322
. 323
. 323
. 324
. 324
. 324
. 324
. 324
. 325
327
328
328
328
328
328
329
330
330
330
330
330
330
331
331
331
331
332
332
332
332
332
332
332
332
333
333
334
334
335
335
335
335
336
336
337
337
337
337
338
338
338
338
339
339
339
339
339
340
340
.
.
.
.
.
.
.
.
.
.
.
.
.
343
343
343
344
344
344
344
345
345
345
345
345
345
. 346
. 346
. 347
. 349
. 349
.
.
.
.
.
.
.
.
.
.
350
350
351
351
352
357
. 358
. 358
. 359
.
.
.
. 362
. 363
. 363
365
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Contents
365
365
366
368
370
372
372
373
378
379
380
380
380
383
383
. 384
. 384
.
.
.
.
384
385
386
386
.
.
.
.
387
387
388
388
. 389
390
. 390
.
.
.
.
391
392
393
393
xi
394
395
395
396
396
397
398
398
399
400
401
xii
403
. 403
. 403
. 404
.
.
.
.
404
404
404
405
. 405
405
. 406
. 406
. 406
. 406
. 407
. 407
. 407
. 407
407
. 408
. 408
. 409
. 409
. 410
. 411
411
. 412
. 412
. 413
. 413
. 413
. 413
. 414
. 414
. 415
. 415
. 415
. 415
. 416
. 416
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
416
416
416
416
417
417
417
417
417
418
418
418
419
419
419
419
420
420
422
423
. 424
424
. 425
. 426
. 426
. 427
. 427
. 427
. 427
. 428
. 428
.
.
.
.
.
428
429
429
429
429
. 429
.
.
.
.
.
430
430
430
431
431
. 431
. 432
. 432
.
.
.
.
.
.
.
432
432
432
433
433
433
433
435
.
.
.
.
.
.
.
.
.
.
.
.
435
435
436
437
437
438
438
439
440
442
443
443
. 444
446
. 446
. 446
. 447
. 447
. 447
449
449
449
449
450
450
450
451
451
451
452
452
452
452
452
453
454
454
454
456
456
456
457
457
458
458
459
460
460
461
461
462
463
463
464
464
464
464
465
466
466
466
467
467
467
468
468
468
468
469
469
469
472
472
473
475
475
476
476
476
476
476
477
477
477
477
477
Appendix A. Domino
Designer templates . . . . . . . . . 479
Table of Domino Designer templates
. 479
Appendix B. Importing to
and exporting from views . . . . . . 481
File formats you can export and import .
Importing options . . . . . . . . .
Formatting options . . . . . . .
Including additional fields for imported
documents . . . . . . . . . .
Character translation file . . . . .
.
.
.
.
.
.
. 481
. 481
. 481
.
.
.
.
. 481
. 482
Contents
xiii
Importing worksheets . . . . . . . . . .
To import worksheet data into a view . . . .
Importing tabular text . . . . . . . . . .
Viewing imported text . . . . . . . . .
To import tabular text into a view . . . . .
Importing structured text files . . . . . . . .
To import structured text into a view . . . .
Creating a column descriptor (COL) file . . . .
Using a column descriptor file (COL ) to map a
source file to a Notes view . . . . . . . . .
Mapping a column to a field in a view . . . .
Specifying the data type of a column . . . .
Using formulas . . . . . . . . . . . .
Writing a COL file for a worksheet . . . . . .
WKSCOL . . . . . . . . . . . . . .
RANGE . . . . . . . . . . . . . .
Writing a COL file for a tabular text file . . . .
Specifying the delimiter of a column . . . .
Specifying the start, end, and width of a
fixed-width column . . . . . . . . . .
Specifying the header, footer, and lines per page
Writing formulas for COL files . . . . . . .
Example . . . . . . . . . . . . . .
Exporting views . . . . . . . . . . . .
Exporting to an ASCII file with comma
separated values . . . . . . . . . . .
Notes on exporting as a CSV file . . . . . .
Exporting to a worksheet . . . . . . . .
Exporting to a tabular text file . . . . . . .
Exporting to a structured text file. . . . . .
To export a view . . . . . . . . . . .
Delimiter and word wrap settings . . . . .
482
482
482
483
483
483
483
484
484
484
484
485
485
485
485
486
486
486
486
487
487
487
487
487
487
488
488
488
488
Appendix C. Developing
applications using MAPI. . . . . . . 491
The Address Book provider . . .
The Message Store provider . . .
The Message Transport provider . .
MAPI recipient types . . . . . .
Platforms and requirements for MAPI
Windows 98 . . . . . . . .
Windows NT 3.51 . . . . . .
Windows NT 4.0 . . . . . .
Windows 2000 . . . . . . .
Mail . . . . . . . . . .
Address Book template . . . .
MAPI classes and methods . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
491
491
492
492
492
492
492
492
492
492
493
493
Appendix D. Features to
avoid using in Web applications . . . 495
Domino @functions that are not supported on the
Web . . . . . . . . . . . . . . . .
Domino actions and agent properties that are not
supported on the Web . . . . . . . . . .
Domino calendar features that are not supported
on the Web . . . . . . . . . . . . . .
Domino field properties that are not supported on
the Web . . . . . . . . . . . . . . .
Domino form properties that are not supported on
the Web . . . . . . . . . . . . . . .
xiv
495
496
496
497
497
498
498
499
499
499
499
500
500
501
Appendix E. URL
commands for Web applications . . . 503
Domino URL Commands . . . . . . .
The Domino URL command syntax . . .
Syntax Guidelines . . . . . . . . .
URL commands for opening servers, databases,
and views . . . . . . . . . . . .
Redirect . . . . . . . . . . . .
Syntax . . . . . . . . . . . . .
Example . . . . . . . . . . . .
OpenDatabase . . . . . . . . . .
Syntax . . . . . . . . . . . . .
Examples . . . . . . . . . . . .
OpenView . . . . . . . . . . .
Syntax . . . . . . . . . . . . .
Examples . . . . . . . . . . . .
Optional arguments for OpenView . . .
Examples . . . . . . . . . . . .
ReadViewEntries . . . . . . . . .
Syntax . . . . . . . . . . . . .
Examples . . . . . . . . . . . .
Optional arguments for ReadViewEntries .
Examples . . . . . . . . . . . .
OpenAbout . . . . . . . . . . .
Syntax . . . . . . . . . . . . .
Example . . . . . . . . . . . .
OpenHelp . . . . . . . . . . .
Syntax . . . . . . . . . . . . .
Example . . . . . . . . . . . .
OpenIcon . . . . . . . . . . . .
Syntax . . . . . . . . . . . . .
Example . . . . . . . . . . . .
URL commands for opening framesets . . .
OpenFrameset . . . . . . . . . .
Syntax . . . . . . . . . . . . .
Examples . . . . . . . . . . . .
URL commands for opening agents, forms, and
navigators . . . . . . . . . . . .
OpenAgent . . . . . . . . . . .
Syntax . . . . . . . . . . . . .
Examples . . . . . . . . . . . .
OpenForm . . . . . . . . . . .
.
.
.
. 503
. 503
. 503
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
505
505
505
505
505
505
506
506
506
506
506
507
507
507
507
507
509
509
509
509
509
510
510
510
510
510
510
510
510
510
.
.
.
.
.
.
.
.
.
.
510
510
510
510
511
Syntax . . . . . . . . . . . . . .
Examples . . . . . . . . . . . . .
Optional argument forOpenForm . . . .
Syntax . . . . . . . . . . . . . .
Example . . . . . . . . . . . . .
OpenNavigator . . . . . . . . . . .
Syntax . . . . . . . . . . . . . .
Examples . . . . . . . . . . . . .
ReadForm . . . . . . . . . . . .
Syntax . . . . . . . . . . . . . .
Examples . . . . . . . . . . . . .
URL commands for opening resources . . . .
OpenImageResource . . . . . . . . .
Syntax . . . . . . . . . . . . . .
Examples . . . . . . . . . . . . .
OpenFileResource . . . . . . . . . .
Syntax . . . . . . . . . . . . . .
Examples . . . . . . . . . . . . .
URL commands for creating, deleting, editing,
opening, and saving documents . . . . . .
CreateDocument . . . . . . . . . .
Syntax . . . . . . . . . . . . . .
Examples . . . . . . . . . . . . .
DeleteDocument . . . . . . . . . .
Syntax . . . . . . . . . . . . . .
Example . . . . . . . . . . . . .
EditDocument . . . . . . . . . . .
Syntax . . . . . . . . . . . . . .
Example . . . . . . . . . . . . .
OpenDocument. . . . . . . . . . .
Syntax . . . . . . . . . . . . . .
Examples . . . . . . . . . . . . .
SaveDocument . . . . . . . . . . .
Syntax . . . . . . . . . . . . . .
Example . . . . . . . . . . . . .
URL commands for opening documents by key
Using Domino URLs to access a document .
Syntax . . . . . . . . . . . . . .
Examples . . . . . . . . . . . . .
Using @commands to link to a document . .
Using Domino URLs to access attachments .
URL commands for opening pages . . . . .
OpenPage . . . . . . . . . . . .
Syntax . . . . . . . . . . . . . .
Examples . . . . . . . . . . . . .
Optional arguments for OpenPage and
OpenDocument. . . . . . . . . . .
Syntax . . . . . . . . . . . . . .
Examples . . . . . . . . . . . . .
Syntax . . . . . . . . . . . . . .
Examples . . . . . . . . . . . . .
Arguments . . . . . . . . . . . .
Syntax . . . . . . . . . . . . . .
Examples . . . . . . . . . . . . .
URL commands for opening attachments, image
files, and OLE objects . . . . . . . . .
OpenElement . . . . . . . . . . .
Using OpenElement with attachments . . .
Syntax . . . . . . . . . . . . . .
Example . . . . . . . . . . . . .
Using OpenElement with image files . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
511
511
511
511
511
511
511
511
511
511
512
512
512
512
512
512
512
512
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
512
512
513
513
513
513
513
513
513
513
513
513
514
514
514
514
514
514
514
515
515
515
515
515
515
515
.
.
.
.
.
.
.
.
515
516
516
516
516
516
516
517
.
.
.
.
.
.
517
517
517
517
517
517
Syntax . . . . . . . . . . . . . . .
Optional argument forOpenElement . . . .
Using OpenElement with OLE Objects . . . .
Syntax . . . . . . . . . . . . . . .
URL commands for searching for text . . . . .
SearchDomain . . . . . . . . . . . .
Syntax . . . . . . . . . . . . . . .
Example . . . . . . . . . . . . . .
Redirect . . . . . . . . . . . . . .
SearchSite . . . . . . . . . . . . .
Syntax . . . . . . . . . . . . . . .
Example . . . . . . . . . . . . . .
SearchView . . . . . . . . . . . . .
Syntax . . . . . . . . . . . . . . .
Example . . . . . . . . . . . . . .
Optional arguments for SearchSite, SearchView,
and SearchDomain . . . . . . . . . .
Examples . . . . . . . . . . . . . .
URL search syntax and customized results . .
Start and Count parameters . . . . . . .
Syntax . . . . . . . . . . . . . . .
Examples . . . . . . . . . . . . . .
Using Next and Previous buttons or hotspots with
Start and Count parameters . . . . . . . .
Example of a formula for a Next button or
hotspot . . . . . . . . . . . . . .
Example of a formula for a Previous button or
hotspot . . . . . . . . . . . . . .
URL commands for required authentication . . .
Login argument . . . . . . . . . . .
Syntax . . . . . . . . . . . . . . .
Examples . . . . . . . . . . . . . .
Logout command . . . . . . . . . . .
Syntax . . . . . . . . . . . . . . .
Examples . . . . . . . . . . . . . .
URL commands for processing SSL certificates . .
OpenForm with SpecialAction argument . . .
Syntax . . . . . . . . . . . . . . .
Examples . . . . . . . . . . . . . .
Creating an SSL User Certificate . . . . . .
Syntax . . . . . . . . . . . . . . .
Example . . . . . . . . . . . . . .
Optional and required fields . . . . . . .
Creating an SSL Server Certificate Request . .
Syntax . . . . . . . . . . . . . . .
Example . . . . . . . . . . . . . .
Optional and required fields . . . . . . .
URL commands for setting user preferences in Web
applications . . . . . . . . . . . . . .
OpenPreferences . . . . . . . . . . .
Syntax . . . . . . . . . . . . . . .
Examples . . . . . . . . . . . . . .
Optional arguments for OpenPreferences . . .
Managing multilingual input in a single database
Syntax . . . . . . . . . . . . . . .
Usage . . . . . . . . . . . . . . .
Example . . . . . . . . . . . . . .
Perl Scripts . . . . . . . . . . . . . .
Common Gateway Interface (CGI) programs . . .
Running a CGI program . . . . . . . . .
CGI variables . . . . . . . . . . . .
Contents
517
517
518
518
518
518
518
518
518
518
519
519
519
519
519
519
520
520
521
521
521
521
521
521
522
522
522
522
522
522
522
522
522
522
523
523
523
523
523
524
524
524
524
524
525
525
525
525
527
527
527
527
528
528
528
528
xv
.
.
. 528
. 529
Appendix F. Accessibility
and Keyboard Shortcuts . . . . . . 531
Accessibility and keyboard shortcuts . . . .
Enabling and using extended accelerator keys .
To enable extended accelerators for the
Bookmark bar . . . . . . . . . . .
To use extended accelerators in the Bookmark
bar . . . . . . . . . . . . . . .
To enable keyboard navigation of window tabs
To use extended accelerators in window tabs
Keyboard shortcuts . . . . . . . . . .
Keyboard shortcuts for the Designer interface and
windows . . . . . . . . . . . . . .
xvi
. 531
. 531
. 531
. 531
531
531
. 532
. 532
.
.
.
.
533
533
534
534
. 535
. 536
. 536
. 537
. 537
Index . . . . . . . . . . . . . . . 539
Applications
Domino applications enable people to share, collect, track, and organize information, using Lotus Notes
or the Web. Using Lotus Domino Designer, developers can create applications to meet a variety of
business needs, including:
Workflow applications that route information.
Tracking applications that monitor processes, projects, performance, or tasks.
Collaboration applications that create a forum for discussion and collaboration.
Data integration applications that work with relational databases and transactional systems.
Dynamic applications that produce content based on, for example, user name, user profile, access
rights, or time of day.
v Localization and Management applications that use Domino Global WorkBench to translate Lotus
Domino databases and Web sites.
v
v
v
v
v
Databases
All Notes applications contain one or more databases. You create a database to use as the container for
the data, logic, and design elements in your application. Design elements include:
v
v
v
v
v
v
v
v
v
Pages
Forms
Outlines
Navigators
Views
Folders
Framesets
Shared Resources
Agents
To start Domino Designer from the Bookmark bar in the Notes client
v
Note ID, which is a series of numbers and letters following the letters NT, for example, NT000002AA, is
listed on the Document IDs tab. Given these Replica and Note IDs, you could open this database if it was
local by entering:
designer Notes:///85256BE50051F014/2AA
To open this database (named customer.nsf) hosted by the Casco/Bay server, enter:
designer Notes://Casco/customer.nsf/85256BE50051F014/2AA
Alternatively, you can use LotusScript to retrieve the Replica ID of a database and Note ID of a
document. You can also use the formula language @functions @ReplicaID and @NoteID to retrieve them.
Item
Purpose
These convenient buttons trigger common tasks, such as creating new design
elements.
Design list
Displays a list of the design elements or resources that are stored in the current
database. This list displays in the Work pane. When you click a list item, the Work
pane changes to display the work area for the selected element or resource.
Design pane
Displays the design elements and resource types that a database can contain. If
you click an element, such as Pages for example, a list of the pages stored in the
current database displays in a Design list on the Work pane. The Design action
button at the top of the Design list for Pages enables you to create a new page.
Item
Purpose
Designer bookmarks
Listed along the left side of the welcome page, bookmarks help you to quickly
access and organize your databases. You can drag a database onto the bookmark
pane to bookmark it or you can create a folder on the bookmark pane to which
you can drag related databases. By default, Designer provides a Recent Databases
folder. You can create additional bookmarks and folders.
Menu bar
Preview buttons
Window tabs
Work pane
When a design element or resource type is selected in the Design pane, displays
the Design list. When an element or resource is selected from the Design list,
displays two sections. The upper section contains the Work area for the element or
resource. The lower section contains the Programmers pane, which is shown in
the illustration below.
Item
Purpose
Info List
Scrollable window that displays the objects and coding reference information for the
design element currently displayed in the Work area.
Objects tab
Lets you navigate between objects and events in the Programmers pane. To work on
an object, select it to expand its list of properties and events. If you select a property
or event, the script area of the Programmers pane changes to show the code that
describes it. Events and properties that are already programmed appear in a darker
color.
Item
Purpose
Reference tab
The Reference tab of the Info List is language sensitive; the contents of the Reference
tab change depending on the language selected. If you are editing in the Formula
language, the window contains @commands, @functions and fields. If you are
editing in LotusScript, the window contains LotusScript information. If you are
editing in JavaScript, the window contains information about the Document Object
Model. If you are editing in Java, the window contains Java-related information.
Script area
Lets you enter formulas in the Script area. Formulas can be written in Formula
language, LotusScript, JavaScript, or simple actions.
Note that you can print source code by selecting File - Print when you are in the
Programmers pane. You can print any code you can view in the Programmers
pane.
Properties boxes
Properties boxes are tools you use to select or modify settings for a design element. Properties boxes have
tabs and each tab presents different attributes or options. If you hold the cursor over the icon on a tab,
the name of the tab appears. In most windows, right clicking opens the Properties box for the active
design element. You can also choose Design -- <element> Properties from the menu.
Properties boxes are context-sensitive so you can leave them open on your workspace and they will
change to reflect the element that you are working with.
Tip: You can also collapse some Properties boxes into context-sensitive tool bars by double-clicking the
top of the box.
Creating a database
There are three ways to create a database:
v Using a template.
The fastest way to create a database is to use one of the Domino templates included with Domino
Designer. Domino Designer includes templates for creating a variety of applications. Applications
created using one of the Domino Designer templates can be used as is or customized.
To decide if there is a template that is right for you, see the Table of Domino Designer templates.
v Copying an existing database.
If you have access to a database that already has all the elements you are looking for, you can copy the
design and create a new database with the same features. Once you have created the database, you can
customize it to meet your companys needs.
v Building your own.
If you need to create a unique database, build your own. Choose File - Database - New from the
Domino Designer menu. Name the database, select Blank from the template list, and click OK. This
creates an empty database in which you can create your own design elements.
For more information, see the chapter, Creating an application.
Pages
A page is a database design element that displays information. Pages are a familiar Web concept. Almost
every Web site has a home page -- a page that contains information about the company, graphics that
enhance the page, and links that take you to other places within the site or elsewhere on the Web.
Pages can be used anytime you are displaying information to the user. Pages can contain:
v Layers
v Text
v Tables
v Graphics
v Applets
v Embedded objects such as views
v Links
Pages often work in conjunction with framesets to display graphics, site navigation, or applets.
For more information on layers, see the chapter Designing Pages.
When you create a form in Designer, users can open the form in the Notes client from the Create menu.
On the Web, you must provide a button or action that opens the form. When the user completes the form
and saves it, the information is saved as a document. When a user reopens the document, the document
uses the form as a template for displaying the data.
For more information on forms and documents, see the chapter Designing Forms.
Fields
Fields are the elements on forms that collect data. Each field on a form stores a single type of
information, which is stored in documents. A fields data type defines the kind of information a field
accepts.
You can create fields in the following data types:
v Text
v Date/Time
v
v
v
v
v
v
v
v
v
v
v
v
Number
Dialog List
Check box
Radio button
Listbox
Combo box
Rich text
Authors
Names
Readers
Password
Formula
Application Development with Domino Designer 7
v Time zone
v Rich text lite
v Color
You decide if a field is editable -- that is, populated by user input, or calculated by formulas. You can
program fields to retrieve data from other Domino applications or from external sources. In addition, you
can create shared fields, which can be used in many forms within the same database.
For more information, see the chapter Designing Fields.
Views
Views are the entry point to the data stored in a database because they display a sorted or categorized
list of documents. Every database must have at least one view, although most databases have more than
one. Views select the documents they display programmatically, so you can create a view that shows all
of the documents in your database or only some of the documents, based on a formula. Views can also
sort the documents they display by a field on the form, such as date, category, or author. Note that you
can create views that are hidden from users but organize your data so that other applications can retrieve
the information from the documents.
Folders
A folder is a container that stores documents. Folders have the same design elements as views, and you
design folders in much the same way as a view. The difference between folders and views is that a view
always has a document selection formula that collects and displays documents automatically. A folder
remains empty until users or programs add documents to the folder.
For more information on folders, see Lotus Notes 6 Help.
Creating navigation
Every application needs to include a way to navigate from one place to another. You add navigation to
an application using:
v Outlines
v Navigators
When you create a new database from a blank template, Designer provides a default navigation structure
called the Folder pane (sometimes called the Navigation pane). The Folder pane displays all the shared
views and folders in the database. It displays on the left pane of the Notes client and on the top left of a
browser window. You can choose to use this navigation structure or design a different one.
Outlines
You can create an outline to customize the Folder pane of an application. An outline is the skeleton of
your application: each outline entry represents a key piece of the application. An outline can include
background graphics, custom icons, links, or actions. When the outline is embedded on a page or form,
users can click on the outline entries, which take them where you want them to go. The process of
creating a navigation structure with an outline involves three steps:
v Create a new or default outline and create an outline entry for each piece of the application you want
to include in the navigation structure or site map.
v Embed your outline on a form or page.
v Format the display of the embedded outline. You can put the page or form in which the outline is
embedded into a frameset if you choose.
You can also use an outline to plan your application before you create any design elements.
10
Navigators
Navigators are graphical road maps that direct users to specific parts of a database. They let users find
documents or take actions without having to open views. Navigators are like image maps. You can create
hotspots on a graphic that take the users to links within or outside of your application. You can embed
navigators on forms or pages. Navigators can take the place of the folder pane or work in conjunction
with it.
For more information, see the chapter Designing Navigators.
Adding automation
Adding automation to an application can speed up repetitive tasks, route documents, update information,
perform calculations, run programs, and check for errors.
Chapter 1. Introduction to Domino Designer
11
You can add the following automated components to the design elements in a Domino application such
as a database, a view, a form, or a document:
v Actions
v Hotspots
v Agents
Actions
Actions automate tasks that are found on Notes menus or tasks defined by formulas or a LotusScript
program. Users click a button, hotspot, or pick from the Action menu to execute the action. For Web
applications in particular, use actions to simulate Notes menu items.
Hotspots
A hotspot is text or a picture that a user can click to perform an action, run a formula or script, or follow
a link. The hotspot can be a link to another Web site, database, or element in a database. It can be a
button, pop-up, or an action as well.
Agents
Agents are programs that perform a series of automated tasks according to a set schedule or at the
request of a user. An agent consists of three components: the trigger (when it acts), the search (what
documents it acts on), and the action (what it does). Use agents to set up user-activated tasks, or
background tasks, in any part of a Domino application. Agents can be simple, such as moving documents
to a folder, or complex, using Java programs to run multiple automated tasks at scheduled times. Agents
are stored with databases, but you can use them to run automated tasks for views, documents, fields, and
databases.
For more information, see the chapter Adding Automation to Applications.
12
Lotus Domino Designer 6 increases the number of resources that can be shared in a database to include:
v Style sheets
v JavaScript libraries
v Non-NSF files
13
14
as a tool. For example, you can now add a Web-development application, such as Dreamweaver, to the
Tools menu as a tool named Web work, for example. If you want to add HTML to your Designer
application using Macromedia Dreamweaver, you can launch it by selecting Web work from the Tools
menu.
For more information on customizing the Designer Tools menu, see the chapter Developing applications
using third-party tools and WebDAV.
JavaServer pages
You can now retrieve Domino data from an NSF database for use in a JavaServer page (JSP). Domino
Designer Release 6 includes custom tag libraries that you can include in your Web site directory files.
Chapter 1. Introduction to Domino Designer
15
These libraries are made up of several JSP tags. JSP tags are similar to HTML tags, except that they
contain instructions for executing complicated Java programming logic, instead of instructions for
defining how to format the contents of the tag. The logic in the Domino tag library is specifically
designed to retrieve, edit, and otherwise manipulate Domino data, but the complicated logic itself always
takes place behind the scenes. Once the libraries are included in a page, all the page developer has to do
is include a tag in a page and all the programmatic capabilities of the tag are automatically available.
Note: The JSP containing the Domino custom tag libraries must be hosted by a server that provides a
rich J2EE Web development environment, like the IBM WebSphere Enterprise Edition server or
Application server 4.02.
For more information, see the book Domino Designer Programming Guide, Volume 1.
XML
Domino data can now be exported and imported from a database as XML. XML, the Extensible Markup
Language, is a meta-language that enables you to define data using tags. XML tags are similar to HTML
tags, except that they define the content within a tag, instead of defining how to format the contents of a
tag.
Since you can export data from a Notes database as XML, it can then be transferred to other platforms.
Once each platform agrees on a set of XML tag definitions, transferring the data between them or
transforming it via a style sheet for optimum display on various devices, is easy.
For more information on viewing XML using DXL utilities, see the book Domino Designer Programming
Guide, Volume 1.
For information on using XML with Domino, see the book Domino Designer Programming Guide, Volume 1.
For more information on the Domino DTD tags, see the book Domino Designer Programming Guide, Volume
1.
16
The more planning you do before design begins, the smoother the design process will be. Designer
provides you with a range of tools and services to suit your design needs and application development
styles.
17
Security
The security model is different for Notes and Web users. Manager and Designer access to databases is not
available for Web users as it is for Notes client users. Therefore, do not include LotusScript actions or
agents that require a user to have Manager or Designer access to complete the task.
Authenticating users requires extra planning for applications available via Web browsers. Most Web
applications provide some level of access for Anonymous users. For higher levels of access, you must
match Web users to the names in the Domino Directory. Because Web users generally login to an
application using an abbreviated name, consider using the @UserName command to return their fully
distinguished Notes name for proper authentication.
Forms
Many times the same form will work in both a Notes client application and a Web application. You can
compensate for minor differences in functionality using hide-when formulas for design elements on a
form. At times you may want to display one subform for a Notes client and another for a Web browser.
In this example, the formula calls one of two computed subforms named NS and IE that include
browser-specific code by using the CGI variable for browser type in @BrowserInfo:
@If(@BrowserInfo("BrowserType")="Netscape";"NS";"IE")
Each subform has its own JavaScript Header, so you can selectively include JavaScript as well as other
data types in your forms by using computed subforms.
All subforms open simultaneously with the main form. You cant display a computed subform on the
basis of calculations after the page opens.
Forms are quite flexible in a mixed-client environment. Using programming designed to support multiple
clients, you can program a form event to execute one set of commands when accessed by a Notes client
and another set of commands when accessed by a Web client. In some cases, you may find it easier to
design two completely separate forms -- one for a Notes client, and another for a Web client. In this case,
you assign the same alias to the two forms, hide one from the Notes client, and the other from the Web
client, so that the correct form displays in the correct context.
Fields
Consider that not all field types that are supported in a Notes application are supported in a Web
application. For example, the Web does not support a multivalue keyword field that allows users to enter
choices not in the list. The workaround for this is to use two fields in a Web application -- one field to
accept new choices for the list and the other field to build and display the list. If users can access the
application from either the Notes client or the Web, you must synchronize the field values so that all
users see the same values.
If you can solve a problem with two versions of a field formula, one that works in Notes and the other
that works on the Web, then include both in the form and use the Hide from Notes/Hide from Web
browsers selection in the Field Properties box to display one or the other.
If youre using the same form for both Notes clients and browsers, the Hide from Notes/Hide from Web
browsers attribute on a design elements properties can be very useful. However, note that hidden has
a different meaning for each client. In Notes, hidden fields are still present in the document and can be
used in scripted calculations. Fields hidden from Web browsers, on the other hand, are cut out of the
document by Domino before the page is served to the browser. The field contents are not available to be
used by JavaScript.
18
Tip: If you want to make fields invisible in a browser, but keep their contents available to JavaScript,
dont use the Hide from Notes/Hide from Web browsers and dont put type=hidden into the fields
HTML Body Attributes objects. Make sure that:
v Their hide-when properties are set correctly for the Notes client.
v Use JavaScript when generating pages is set in the Database Properties box.
v Generate HTML for all fields is selected in the Form Properties box.
Domino will generate the appropriate <type=hidden> tags in the HTML page:
<input type="hidden" name="fieldname" value="fieldcontents">
Be aware that names and values treated this way are not secure. They can still be seen by any user who
clicks on the browsers View Page Source function.
Remember, too, that not all fields can be passed to a browser this way -- the password field, for example,
$Updatedby, $HtmlHead, and any objects that contain NULL characters (which includes users public
keys) because NULLs cannot be expressed in HTML.
Actions
Actions play a more significant role in Web applications because Web browser users do not have access to
the Notes menu commands. You must supply an action for tasks such as creating a document, switching
to Edit mode, switching views, or forwarding documents. Therefore, in many cases you must design an
action bar specifically for a Web application that you hide from Notes client users.
Tip: To Web-enable buttons in a database, check Web access: Use JavaScript when generating pages in
the Database Properties box. If this property is not set, Domino recognizes only the first button in a
document and treats it by default as a Submit button that closes and saves the document.
Views
Displaying Notes views in a Web application results in a loss of some display attributes unless you first
embed the view on a page. You can embed multiple views on a page to achieve a sophisticated layout.
You can also specify a view template that will apply uniform style properties to embedded views for use
in Web applications.
For more information, see the topic Displaying views in Web applications in the chapter Designing
Views.
Navigation
Using an outline for navigation can provide a uniform structure for Notes client and Web browser users.
An outline lets users open views, pages, or URLs. Embed the outline on a page to preserve all of the
display properties for Web browser users.
You might also consider an imagemap as a navigation tool.
For more information, see the chapter Navigating an Application later in this book.
Agents
Programming with agents provides all of the processing power for an application. Using agents is where
you will encounter the most significant differences in developing applications for Notes client and Web
browsers. Although you should be able to share a lot of code, there will be instances when you need to
write certain agents for the Web, and certain agents for the Notes client. The key programmable server
events for Web applications are WebQueryOpen and WebQuerySave. To avoid performance problems, use
these events to perform key tasks, and use background agents to perform more complex processing.
Agents can be run from the Web using @Command([ToolsRunMacro]) or @URLOpen formulas.
19
By default, Web agents run under the identity of the agent author (the person who saved the agent). To
run agents under the identity of the Web user, open the Agent Properties box, click the Design tab, and
select Run Agent as Web user option in the For Web Access section. This option can provide more
security, because when a Web user tries to run an agent with this property set, Domino prompts the user
for a name and password and checks them against the invokers rights in the database ACL.
In the Notes client, many form, field, and button events can be scripted in either JavaScript or LotusScript
(or, to be sure, @formulas). Depending on how your application uses scripted events, this may mean that
you write your agents using JavaScript and use the same form for both Notes and Web clients. There are
differences in the capabilities, however. JavaScript in the Notes client has access only to the data in the
currently open form -- it lacks the access to the front-end and back-end Domino Objects of LotusScript.
Your application may work best if you write LotusScript for execution in the Notes client and JavaScript
for browsers, and use hide-whens or separate forms to keep the execution straight.
Keep in mind that many @functions and @commands dont work in a browser. The @functions that dont
work fall into three major categories:
v They work only in the Notes client interface. There are no browser counterparts to @DialogBox,
@Picklist, and @Prompt, for example. And several advanced mail-handling functions are unique to the
Notes client, such as @MailSend and @IsDocBeingMailed.
v The much simpler structure of Web views doesnt support many functions, including @DocChildren,
@DocLevel, @DocNumber, @IsCategory, or @Responses.
v Many features associated with Notes access, preferences, and the workstation environment dont carry
over to a browser -- @Certificate, @IsAgentEnabled, @MailEncryptSavedPreference, and
@UserPrivileges, for example.
Most @commands are associated with controlling the Notes client interface, so they dont work in Web
applications. The handful that do work on the Web work hard, though, because theyre used often.
@Command([FileSave]) and @Command([FileCloseWindow]), for example are used frequently together to
simulate a Submit button.
You can check to see whether @formulas and properties of other programming constructs work for the
Web by looking through the topics listed in the appendix Overview of features to avoid using in Web
applications.
20
21
@Command([FileSave]);
@Command([CloseWindow])
22
@Command([CloseWindow]) @Command([FileSave])
@Command([ViewRefreshFields])
@Command([CloseWindow]) @Command([FileSave])
@Command([ViewRefreshFields])
23
4. For programming options, select Hide paragraph if formula is true and write a formula in the
design pane to describe the situations in which users dont need to see the layout region.
If an element is hidden when
Then
The hidden information isnt visible when users read documents in the
document preview pane.
The hidden information isnt visible when users work on documents in Edit
mode in the document preview pane.
The hidden information isnt visible when users open documents in Read
mode. A layout region that cant be read cant be printed either.
The hidden information isnt visible when users work on documents in Edit
mode.
Printed
Hides the contents of the component when users copy a document. Note
that this setting does not affect documents copied at the view level.
Note: If you create or save a document from a form that contains a field
with Hide when copied to the clipboard checked and then copy the
contents of the document somewhere else, the contents of that field will not
be pasted.
Embedded
The element isnt visible when users access a document in which you have
used the embedded editor to embed the element.
Description
Name/ID
References an object using JavaScript or CSS. For example, the object could be
ID = ZipCode
Class
Applies a CSS class for a defined object. For example, if the objects name is
ZipCode, the class could be Numeric. CSS styles are defined in the HTML Head
Content event for a form or page.
Style
Applies a specific CSS style to an object using in-line CSS. For example, if the
objects name is ZipCode, the class is Numeric, the style could be font-size:10pt. If
you have more then one value, separate them with a semi-colon; for example,
font-size:10pt; color:blue.
Title
Explorer 4.x and later provides the user with a tip or prompt. For example, if the
objects name is ZipCode, the class is Numeric, the title could be Enter your Zip
Code. The title displays differently on different browsers.
24
Description
Other
Adds other HTML tag attributes, and must be written as pure HTML code. For
example, instead of writing ZipCode in the Name/ID box, you write ID=ZipCode
in the Other box.
Domino applets
When users run a Domino application from a Web browser, some Domino design elements are more
effectively presented to Web users using Java instead of HTML. Domino provides Java applets for these
design elements so that the interface is more similar to the Notes client interface. You can easily enable
the Java applets when you create the design element.
When you consider whether to use the Java applets or HTML, keep these points in mind:
v The applets provide a more interactive interface.
v The Domino applets require download time on the Web.
v The applets use the Java Developers Kit (JDK), Release 1.1.8 to support Java-enabled Web browsers.
The only fonts available are typically Courier, Helvetica, and Times.
For a complete description of how the applets work, see the description for each design element:
v Outline applet
The outline applet lets Web users work with outlines embedded in a page or form.
v View applet
The view applet lets Web users use many of the Domino view features, including column resizing,
multiple document selection, and section collapse/expand without page regeneration.
v Action bar applet
The action bar applet lets users scroll and easily view and select subactions.
v Editor applet
The editor applet lets Web users change the font, color, size, and style for text in rich text fields.
25
v Use text as the primary means of communicating information. Text and rich text are accessible in
almost every situation.
v Use the Alternate text tag on all images and applets.
Both images and Java applets allow you to specify a short piece of text to be displayed with the
graphical object. Typically the alternate text appears only when the object is loading or when image or
applet loading is turned off in browser preferences. However, alternate text is also used by screen
reader software to describe the contents of an object. Specify alternate text on the Info tab (i) of the
Picture and Java Applet Properties box.
v Echo the action button tasks in the Action menu and echo the forms you create in the Create menu.
Screen readers cannot always provide information about action buttons. For this reason, when you
design an application, you should provide users with an alternative way to trigger actions and create
forms. Echoing action button tasks in menus provides this alternative route. To echo an action button
on the Action menu, open the properties box for the action and select Include in Action Menu. To
provide access to a form that might otherwise be triggered by an action button in a view, for instance,
open the properties box for the form and select Include in menu.
v Place the most frequently accessed menu items at the top of the menu list.
The vertical order in which the Action buttons appear in the action pane indicates the order in which
they appear on the Action menu and bar. You can create the order in which forms appear on the
Create menu. You can cut and paste the most frequently used actions to the top of the list in the action
pane. To place the form that is most often accessed by users at the top of the Create menu list, insert
the number 1 followed by a period (1.) in front of the name in the forms name field. You can number
the remaining forms accordingly to control their order in the menu list.
v Check that the accelerator keys assigned to menu items make sense.
If an application has more than one menu item that starts with the same letter, Notes assigns a default
accelerator key using the first letter not already in use. If the accelerator key assigned to an action or
form does not make sense, you can force the assignment of a specific key. In the name field for the
action or form, add an underscore before the letter you want to assign as the accelerator key. For
example, if you want to assign p as the accelerator key for the form entitled Complete evaluation, enter
Com_plete evaluation in the forms name field.
Avoid:
v Using Java applets as the sole means of navigating or performing an action. Java accessibility is
currently not widely supported, and a keyboard-only user cannot navigate to a Java applet in many
browsers.
v Excessive use of embedded objects. Although these are keyboard-accessible, navigating through too
many objects can be a burden for keyboard-only users.
v Excessive use of framesets. It is laborious for keyboard-only users to navigate through framesets. The
fewer frames used in an application, the easier it will be for a keyboard user to navigate.
v Using color and graphics as the sole means of communicating meaning in your application. To test if
your application is legible for color-blind users, set your display to monochrome and view all graphics.
v Using text smaller than 10 point Helvetica. Some operating systems support a large font user
preference, but this preference is not respected by all objects in an application.
v Graphical navigators. Use outline controls instead as they are screen reader accessible.
v Layout regions.
If accessibility is a major priority for your application, you may want to consider creating an alternate
interface for your application using only text and non-embedded controls.
For more information about accessibility, see the following resources:
v The IBM Special Needs Web site at http://www.austin.ibm.com/sns/
v The W3 Web Accessibility Initiative (WAI) site at http://www.w3.org/WAI
26
4.
5.
6.
7.
8.
9.
Note: Create one and only one alias for design elements in a multilingual database.
Make a copy of the design element and open the copy for editing in the Work pane.
On the Info (i) tab of the properties box for the design element, assign a name and an alias. The name
can be the same as the original design element or it can be unique; the alias must be the same.
Translate the text of the design element into another language and save and close the element.
Select the element name from the work pane and choose Design - Design Properties to open the
Design Document properties box.
On the Design tab of the Design Document properties box, select a Language and, optionally, a
Region to associate with the design element.
Select a corresponding sort order for the language or choose Unicode standard sorting.
For information on naming an element and assigning an alias, refer to the documentation for creating
that element. For example, see the topic Naming Forms in the Designing Forms chapter.
27
If you decide to use Domino Global Workbench, a number of design-stage tasks makes the localization
process simpler. For example, you should use aliases for the names of design elements wherever you can.
Use a system of standard prefixes for the aliases so that they can easily be identified as text to exclude
from translation. To launch Domino Global Workbench, click the Domino Global Workbench
icon.
For more information, see Preparing Source Databases in Domino Global Workbench Help.
28
29
Maximum limit
Database size
Fields in a database
~ 3000 (limited to ~ 64K total length for all field names). You can enable the
database property Allow more fields in database to get up to 22,893
uniquely-named fields in the database.
Columns in a table
64
Rows in a table
255
Views in a database
Forms in a database
Columns in a view
200
46
46
250
Documents in a view
75 Roles
ID password length
63 characters
8 users
~21,000 entries
30
With Designer, you create one application to use on both your intranet and the Internet. The structure of
a database is the same whether for the Notes client or a Web browser. What makes a database a Web
database is the viewing mechanism: users view it through a Web browser instead of the Notes client. You
do all design work in Designer and use the same design elements -- framesets, pages, forms, fields,
views, outlines -- to display and organize the content.
Creating databases
There are three ways to create a new database:
v Using a template
v Copying an existing database
v Starting from scratch
31
Customizing a template
The templates that ship with Designer are master templates by default. This means that changes made to
a master template are passed along to all databases created from that template. Inheriting design changes
from a master template can be initiated by the end user or by the Domino server, which runs a nightly
Designer task. You can disable this feature by deselecting Inherit design from master template on the
Design tab of the Database Properties box.
For more information on customizing a template, see the topic Creating templates in the chapter
Completing an Application and Managing Design Changes.
3.
4.
5.
6.
7.
8.
v If you plan to use the database you are creating as a template, use the NTF file extension instead of
NSF.
Select a template from the list. To display additional templates, do one of the following:
v Click Show advanced templates and select a template from the list.
v Click Template Server to use templates that reside on a server.
(Optional) Click Encryption. Select Locally encrypt this database using, select an encryption type,
and then click OK. For information on encrypting a database, see the topic Notes and Domino
encryption in the chapter Security in an Application.
(Optional) If you are developing an application for use with Lotus Notes and Domino Release 4.x or
if you will be on a Domino 4.x server, click Size limit and select a size (in gigabytes).
(Optional) Click Advanced and select the options that you want applied to your database.
For a description of the advanced options, see the topic To set database properties that optimize
database performance in the chapter Optimizing and Troubleshooting Databases.
Click OK.
(Optional) Choose File - Database - Properties, click the Design tab and deselect Inherit design from
template. This prevents the new database from inheriting design changes from the master template
whose design the database is based on.
32
You can use the database as is, or you can modify it. If you modify a database, be sure to protect the
individual design elements from being overwritten by a design refresh or replace.
information on creating a full-text index for a database copy, see Administering the Domino System.
Open the database you want to copy.
Choose File - Database - New Copy.
In the Server field do one of the following:
v Leave Local selected to store the new database on your workstation hard disk.
v Select or enter a server name to store the new database on a server. This allows multiple people to
work on the database design.
4. (Optional) In the Title field, enter a title for the new database. The title can have a maximum of 96
characters.
5.
6.
7.
8.
9.
10.
Note: When you copy a database, Designer automatically gives the new database the same title and
file name as the original database. You can accept the database title and file name or change it.
Database file names can be any number of characters long (within the limits of your operating
system), and must end with the NSF file extension. If you plan to use the database you are creating
as a template, use the file extension NTF rather than NSF.
(Optional) Click Encryption, select Locally encrypt this database using: and select an encryption
type. For information on encrypting a database, see the topic Notes and Domino encryption in the
chapter Security in an Application.
(Optional) If you are developing an application for use with Lotus Notes and Domino 4.x or will be
on a Domino 4.x server, click Size Limit and select a size (in gigabytes).
Select Database design only so that the databases documents will not be copied to your new
database.
Deselect Access Control List so that the original databases access control list will not be copied to
your new database.
Click OK.
(Optional) Choose File - Database - Properties, click the Design tab, and deselect Inherit design from
template. This will prevent the new database from inheriting design changes from the template
whose design the database is based on.
33
4. In the Design pane, click the type of element you are pasting, such as forms or views, and choose Edit
- Paste.
If your database inherits its design from a template, you should protect views, forms, subforms,
navigators, shared fields, or agents that you copy into your database.
For another way to copy design elements, see the topic Copying a design element to a new location
later in this chapter.
4.
5.
6.
7.
Note: As you type a title, Designer adds the name to the File Name field. You can accept this
database file name or change it. Database file names can be any number of characters long (within the
limits of your operating system). If you want the database to appear in the Database Open dialog box,
it must end with the file extension NSF. If you plan to use the database you are creating as a
template, use the file extension NTF rather than NSF. For more information about creating templates,
see the topic Creating templates in the chapter Completing an Application and Managing Design
Changes.
(Optional) Click Encryption, select Locally encrypt this database using, and select an encryption
type. For information on encrypting a database, see the topic Notes and Domino encryption in the
chapter Security in an Application.
(Optional) If you are developing an application for use with Lotus Notes and Domino 4.x or if the
application will be on a Domino 4.x server, click Size Limit and select a size (in gigabytes).
Select -Blank- as the template.
Click OK.
You are now ready to begin creating the design elements for your application.
34
Do this
35
To
Do this
36
When you click the containing folder on the Bookmark bar, the new folder appears in the Design
pane. You can now populate this folder with applications and databases.
Using toolbars
Toolbars contain icon buttons that when clicked perform simple actions like printing a document or
opening a database. Toolbars give you a quick alternative to looking through a series of menus to initiate
an action. Notes provides a number of pre-defined toolbars that contain a set of icon buttons for specific
tasks, as well as the capability to create your own.
For more information on toolbars, see the topic Toolbars in Lotus Notes Help. If Lotus Notes Help is
not installed, go to http://www.lotus.com/ldd/doc to download or view the Help.
For information on creating toolbar buttons to run custom formulas, see the topic Toolbars in the
Domino Designer Programming Guide.
Enabling subscriptions
Subscriptions work in conjunction with the Headlines database. The Headlines database enables users to
stay informed of current events both within their company and on the Web by subscribing to databases
that are of interest to them and then receiving notification when a posting meets their subscription
profile.
When you design a database you can enable it to for subscriptions, consider the following:
v The database must reside on a server that allows subscription monitoring. The Domino administrator
must enable subscriptions in the Server document. See Administering the Domino System for more
information on enabling subscriptions at the server level.
v The database must enable headline monitoring. This is enabled by default on the Advanced tab of the
Database Properties box. For more information on performance and headline monitoring, see the topic
Properties that improve database performance in the chapter Optimizing and troubleshooting
databases.
v The database must have a default view specified. For more information on specifying a default view,
see the topic Default views in the chapter Designing Views.
37
v (Optional) The database can contain a subscription form. You can design one yourself or copy the
subscription form from the HEADLINES.NSF database in the Notes client. To copy the subscription
form from the headlines database to your database, see the topic To copy an individual design
element earlier in this chapter. If you are creating a new subscription form, you must use a formula
field. For more information on formula fields, see the topic Formula fields in the chapter Designing
Fields.
38
tasks when accessing Domino databases on the Web. For more information on shared actions, see the
topic Creating and inserting shared actions in the chapter Adding Automation to Applications.
v Cascading style sheets
You can browse your local file system for a cascading style sheet (CSS) and insert one into a page,
form, or subform. For more information, see the topic Creating style sheets as shared resources in the
chapter Designing Pages.
39
40
Basics tab
On the Basics tab, the name of the image appears automatically. You can also provide an alias and a
comment, both of which appear next to the image resource name in the list of images.
You can also specify:
v Images across and Images down (if you are creating image sets).
v Colorize grays - lets an image blend with the users system colors.
v Needs refresh - adds the refresh symbol next to the image resource name in the list of images and
targets it as an image to be refreshed.
v Web browser compatible - appears if you are creating a horizontal image set (Images down) and want
the images to work on the Web.
Design tab
On the Design tab of the Image Resource Properties box, select any of the following design options:
Field or box
Description
41
To colorize grays
If you want an image to blend with the users system colors, select the option Colorize grays on the
Basics tab of the Image Resource Properties box. When enabled, the grays in an image that use the Lotus
palette change to the color scheme of the users operating system. This feature lets the image resources
blend in with the other elements of the users system, such as dialog boxes and menu bars.
Tip: You can use the images among multiple databases by putting the image into a template. Databases
inheriting from that template have easy access to the image.
For more information on creating templates and inheriting design, see the topic Templates in the
chapter Completing an Application and Managing Design Changes.
42
43
image resources for those icons are part of a vertical image set. A vertical image set includes an icon in
three different sizes. To set the size for icons on the bookmark bar, users choose File - User Preferences.
At the Bookmark icon size setting on the Basics page, they can choose Small, Medium, or Large.
State
Normal image
First position
Mouse-over image
Second position
Selected image
Third position
Mouse-down image
Fourth position
Note: The order of the states is predetermined and cannot be changed. However, if you want to take
advantage of only two of the states, for example, if you want to use a different image in the normal
state (the first position) only, copy the second image two or three times so that the different image is
in the first position.
44
Document locking
When you set the database property Allow document locking, users with Author access or higher can
lock documents in that database. Locking a document prevents editing and replication conflicts by
ensuring that person who locks the document has exclusive rights to modify the document; others with
the same rights cannot modify a locked document even if they are working on a different replica on the
same LAN. Managers of a database cannot edit a locked document. However, managers can unlock
documents that are locked.
For information on how users lock a document, see the topic Locking Documents in Lotus Notes Help.
Or, go to http://www.lotus.com/ldd/doc to download or view Lotus Notes Help.
Customizing twisties
The triangular icons that indicate a row or a section may be expanded or collapsed are called twisties.
Twisties are green in Notes and blue on the Web. You can customize these icons by importing your own
images. You import two images into one graphics file. The first image replaces the expand twistie and
the second replace the collapse twistie. A pair of images for customized twisties should result in a .gif
file that is 33 x 16 pixels -- that is, two 16 x 16 images, with a 1-pixel divider.
Chapter 3. Creating an application
45
1. Using a graphics program, create an image well by importing two images into one graphic. One of
the images will appear as the icon that expands a row or section, and the other will appear as the
icon that collapses the row or section. Place the expand image on the left and the collapse image on
the right.
2. In Designer, create an image resource from the icon file.
3. In the Image Resource work pane, double-click the image resource to open the Image Resources
Properties box:
v Enter 2 next to Images across.
v Check Web browser compatible.
4. In the View work pane, select the expandable column and open the Column Properties box. At the
Column Info tab:
v Check Show twistie when row is expandable.
v Enter the name of the image resource file you just created in the Twistie Image setting. Click the
folder button to browse for the image file.
46
4. (Optional) To stop the Web browser preview without exiting Notes, choose File - Tools - Stop Local
Web Preview Process.
4. Click OK.
5. Close and save the Location document.
3. Click OK.
47
For information on enabling online awareness for Names fields, see Enabling a field for instant
messaging.
For information on enabling online awareness for views, see Enabling a column for instant messaging.
For information on embedding a contact lists, see Embedding an Instant Messaging Contact List
48
Description
Actions
Actions automate tasks for the user. Add actions to the menu in the Notes client,
or add actions with buttons or hotspots on a page or form. For more information,
see the topic Actions
in the chapter Adding Automation to Applications.
Applets
Attachments
Attach files to a page or form so users can detach or launch files locally.
Computed text
Embedded elements
You can embed the following elements in a page or form: a view or folder pane,
navigator, outline, date picker, or Instant Messaging Contact List. Use these
elements alone or combine them to control how users navigate through your
application.
Graphics
Place a graphic anywhere on a page or form. Use graphics to add color to a page
or form or to create imagemaps.
Horizontal rules
HTML
If you have existing HTML or you prefer using HTML to using the formatting
tools Designer offers, you can import, paste, or write your own HTML on a page
or form. You can also convert pages and forms to HTML.
Imagemaps
JavaScript libraries
You can find and insert JavaScript libraries into a page, form or subform. For more
information on inserting JavaScript libraries, see the topic Inserting a JavaScript
library in this chapter.
Layers
Layers let you position overlapping blocks of content on a page, form, or subform.
Layers give you greater design flexibility because you can control the placement,
size, and content of information. For more information on layers, see the topic
Layers in this chapter.
Links
Add links to take users to other pages, views, databases, or URLs when they click
on text or a graphic.
Designer supports objects that are linked and embedded (OLE) as well as custom
controls, sometimes called OCX controls. Including a linked or embedded object
on a page or form lets you use a page or form as a gateway to another
application. For example, an Employee Information page or form can include an
OLE object that links to a Word Pro file where the employee annual performance
reviews are stored. Notes/FXTM 2.0 fields create a two-way exchange between
Notes and a supporting application by allowing field data to be shared and
updated from either application. For more information on including OLE objects
and custom controls on a form, see the chapter Including OLE Objects in
Applications.
49
Description
Sections
A section is a collapsible and expandable area that can include objects, text, and
graphics.
You can find and insert a cascading style sheet (CSS) as a shared resource on a
page, form, or subform. For more information on style sheets, see the topic
Creating style sheets as shared resources in this chapter.
Tables
Use tables to summarize information, align text and graphics in rows and
columns, or position elements on a page or form. For more information on
creating programmable tables, see the topic Creating programmable tables in this
chapter.
Text
Use text anywhere on a page or form and apply text attributes, such as color, size,
and font styles to the text. For complete information on creating and formatting
text, see Notes Client Help.
For all other information on creating and formatting tables, see the topic Creating tables in the Notes
Client Help.
Creating pages
A page is a design element that displays information to users. It is similar to a form except that it does
not contain fields or subforms.
To create a page
1. Click Pages in the Design pane.
2. Click New Page.
3. Create the contents for the page, using elements such as text and graphics.
4. Choose Design - Page Properties to assign the following page properties:
Page Properties box
Tab
50
Action
Background tab
Launch tab
Security tab
To delete a page
1.
2.
3.
4.
Displaying a page
Pages do not display in views. To work around this, you can display pages in the following ways:
Options for displaying pages
51
Fonts
If the fonts used are not the system defaults -- for example, in Windows, Default Sans Serif and Default
Serif -- Domino converts font instructions to the HTML <FONT> tag and FACE= attribute to approximate
the original font choice. Text may look different to a Web user than it does to a Notes user because the
browser determines which fonts to use.
52
Size
Domino maps the text size you select in Designer to an HTML text size. The following table lists the text
size in Notes and the corresponding HTML size. Note that Domino does not map font sizes to HTML
heading tags (H1, H2, and so on).
Notes text size less than or equal to
11
3 (default size)
13
17
23
greater than 23
Preserving spaces
To align a column of numbers or to preserve or insert spaces, use the default monospaced font. On a
Windows system, the default monospaced font is Courier. Domino converts the default monospaced font
to a monospaced font on the Web and preserves any spaces you enter.
Text colors
Web users see the same approximate text colors as Notes users, but the colors may not match exactly.
Select Value (located under Computed Text on the Objects tab of the Info List).
In the Script area, enter the formula:
@Name([CN];@UserName)
If the users name is Sara Ryan/Acme, when she opens the page or form she will see:
Welcome Sara Ryan.
Note: Domino publishes a <span> tag around the computed text for access via JavaScript.
53
54
4.
5.
6.
7.
8.
9.
10.
11.
Note: All columns in a row will appear when the row is displayed.
Under Table Type, click the programmable table button.
Click OK.
Choose Table - Table Properties.
Do the following on the Table Programming tab of the Tables Properties box:
v In the Table HTML Tags field, enter a Name/ID for the table.
v Click each row of the table and enter a name for each row in the Row Tags field.
(Optional) To display tabs so users can switch rows, select Also show tabs so user can pick row on
the Table Rows tab.
Format the table.
Enter text, graphics, or objects in the table.
Create links, a button, or an outline entry that will set the fields for the table and control what
displays.
55
7. Select the second line of text and create a hotspot with the formula:
FIELD $CompanyInfo:= "b";
@Command([RefreshHideFormulas])
When users click on the first hotspot they will see the text and graphics in the first row of the table only.
When they click on the second hotspot they will see the text and graphics in the second row of the table
only.
For more information about writing formulas, see the Domino Designer Programming Guide.
Creating sections
Use sections to group and organize elements on a page or form. Sections work well to present large
amounts of information in an uncluttered way. For example, if you have two different procedures on a
page, and users only need to see one at a time, you can put each procedure into a collapsible section so
that the users can expand only the section that they need.
To create a section
1. Open the page or form.
2. Highlight the text, graphics, and other elements to include in the section.
3. Choose Create - Section.
To format a section
1. Select the section and choose Section - Section Properties.
2. On the Section Title and Border tab, you can:
v Enter a title for the section. Titles can be either text or a formula.
Use text if the title should be the same all the time.
Use a formula if you want the title to appear differently under different conditions.
v Select the border style. The border appears around the section.
v Select a border color.
3. On the Expand/Collapse tab:
v Select options for showing the section expanded or collapsed depending on whether a document is
being previewed, opened for reading, opened for editing, or printed.
v Select Hide title when expanded if users dont need to see the section title when the fields are
displayed.
v Select Show as text when not previewing so that the user sees the section only when the
document is being previewed. If the document is being printed or is opened for reading or editing,
the user sees the text with no visible sign that the text is contained in a section.
To delete a section
Select the section and choose Section - Remove Section.
56
Creating links
You can create text or graphic links that users click on to navigate to other parts of an application or to
external sites on the Web. In the properties box, you can set how the link displays to users. You can use a
different color text for text links, or a hotspot around a graphic that shows when a user moves the mouse
over it. Domino converts these links to Hypertext links on the Web.
57
Using graphics
A page or form that contains a graphic is visually appealing but takes more time to display and print.
You can paste or import graphics into pages, as you can into documents, forms, views, and navigators.
Designer stores graphics in Graphics Interchange Format (GIF) and Joint Photographic Experts Group
(JPEG) in their native formats. Therefore, these are the best choices for graphic fidelity. Designer stores
other types of graphics in a platform-independent 256-color format that is similar to GIF89a format. (GIFs
are 256-color images.)
Graphics can be:
v Stand-alone graphics that add aesthetics or focus to a page or form
v Background graphics
v Imagemaps -- navigation structures composed of graphics that contain links
Preparing graphics
Your goal, when preparing a graphic, is to have it look as much as possible like the graphic you created
in your drawing program. How graphics look depends on the users viewer, operating system, and color
mode.
v Viewer -- Notes client or a Web browser.
If your audience is Notes users only, use either the Lotus color palette or the Web color palette.
If your audience is Web users only, use the Web color palette.
If your audience is both Notes and Web users, either use black and white or very simply colored
graphics, or use the Web color palette.
v Operating system -- Macintosh, Windows NT, Windows XP Professional, Windows 95/98/2000, OS/2,
or UNIX.
58
Always reduce the color in graphics with formats other than GIF or JPEG to 256 or fewer colors.
Although doing this may reduce the quality of high-resolution graphics, it ensures a more reliable color
display across platforms.
v Color mode -- 16-color mode, 256-color mode, or High/True/24-bit color mode.
If all users have machines that display in true color mode, reducing the colors to 256 or fewer is all
you need to do to prepare a graphic. If users have machines running in 256-color mode, use a color
palette to map colors in the graphic to a table of predefined colors.
To create a picture
1. Move the cursor to where you want to place the picture.
2. Choose Create - Picture.
3. Select a graphic to import and click Import.
59
To resize a graphic
1. Select the graphic.
2. Choose Picture - Picture Properties.
3. Do one of the following:
v Drag the box in the graphics lower right corner to resize the graphic.
v In the Scaling field of the properties box, enter a value for the width and height.
To add a caption
1.
2.
3.
4.
60
In addition, you can add a background color to enhance a page or form. You might want to use a
standard color for a particular type of page or form, for example, white for a request page.
To have the background show through part of an image, create a transparent GIF file with an image
editor or utility and then import the image. Both Notes and Web users see transparent background
images.
To import a BMP, JPEG, GIF, PCX Image, or TIFF 5.0 bitmap as a background
1. Choose Design -<Design element> Properties and click the Background tab.
2. Click Import Graphic and select the file to import.
3. Click OK.
Adding an applet
You can add a Java applet to a page or form to provide visual interest or additional functionality -- for
example, you might use animation to make your home page or form appealing. Applets can range from
programs you build yourself to prebuilt programs that you simply drop into a page or form. In Web
applications, you might want to display an embedded view or embedded outline as an applet rather than
as HTML to provide a richer user interface.
The Designer elements that you can display as applets include outlines, views, rich-text fields, and action
bars. For more information, see the topics for creating an outline applet, view applet, editor applet, and
action bar applet.
For custom or prebuilt applets you want to include in a page or form, follow the steps for inserting,
modifying, and running applets described in the chapter Including Java Applets in an Application.
Creating an attachment
Add a file attachment to make the file available for users to launch or detach. You can also create
attachments to store files. For example, attach a file for use in a Web application, so that it can be
accessed using a Domino URL.
For more information about opening an attachment with a URL command, see the appendix URL
commands for Web Applications.
1. Open the page, form, or subform.
2. Move the cursor to where you want to create the attachment.
Chapter 4. Designing pages
61
Embedding elements
Embedded elements are objects and controls that can be embedded on a page, form, subform, or
document. Elements that can be embedded include:
v Views
v Folders
v Outlines
v Navigators
v Date pickers
v Instant Messaging Contact List
Embedding elements makes it easier to design a single application for use by both Notes clients and Web
browsers. Many Notes elements display differently when viewed on a browser. Embedded elements
provide functionality in Web applications that closely resemble functionality already available in Notes
applications. Additionally, embedding lets you combine elements on a page or form and use a full range
of design features, including frames, tables, styled text, borders, and graphics, to create a high-impact
design.
To embed an element
1. Place the cursor where you want the embedded element to display on a page, form, subform, or
rich-text field of a document.
2. Choose Create - Embedded Element and select the type of element to embed.
3. (Optional) If available for the element, you can enter a formula that specifies under what
circumstances it should display.
4. (Optional) Click the embedded element and choose Element - <element> Properties to change the
alignment, style, or hide options.
62
date selected appears only in the calendar in the target frame. If you do not specify a target frame, all
calendar views in the frameset switch to the day selected in the date picker.
63
v Import HTML, thus using the source of an existing Web page or form as the base of a new page or
form. Designer renders the imported HTML on the page, form, or subform already translated from
HTML.
v Paste HTML directly on a page, form, or subform. The HTML stays in HTML format.
v Enter HTML directly on a page, form, or subform. The HTML stays in HTML format.
4.
5.
6.
7.
Note: Buttons in Web applications that have JavaScript associated with the Click event are converted
to HTML as expected. However, buttons that do not have JavaScript associated with the Click event
are not converted to HTML. For the buttons not converted to HTML, choose Edit - Undo Delete so
that the deleted button reappears on the page, form, or subform.
To use the HTML editor, place the cursor anywhere in the newly created HTML source code and
choose View - HTML pane.
The screen splits. The page, form, or subform appears in the top pane (in an embedded Internet
Explorer browser control) and its HTML source code appears in the bottom pane.
You can edit the HTML source code in the bottom pane. Click Refresh to see the results in the top
pane of your HTML changes.
Press ESC to exit from the HTML editor.
(Optional) To convert the HTML to a Notes format, place the cursor anywhere in the HTML source
code in the top pane and choose Edit - Convert to Notes Format.
Note that the conversion to Notes format is an approximation. You should check your conversion
results. If you convert to HTML and then back to Notes, you may get unexpected results.
To import HTML
To
1.
2.
3.
import HTML you must first save it as a file that you can access.
Open a page, form, or subform.
Choose File - Import.
Select the file containing the HTML you want to import and click OK. Designer translates the HTML
and then adds it to the page, form, or subform.
To paste HTML
1.
2.
3.
4.
Select the content you want to paste from the source of an existing Web page, form, or subform.
Copy the content to the clipboard.
Open a page, form, or subform.
Choose Edit - Paste.
5. Open the Properties box for the page, form, or subform (Design - <design element> Properties).
6. At the Info tab, check Render pass through HTML in Notes.
64
When you check Render pass through HTML in Notes, Domino passes all data on the page, form, or
subform directly to the browser. Domino ignores embedded navigators and folders and any embedded
views that dont have Render pass through HTML in Notes selected.
1.
2.
3.
4.
65
Layers
Layers let you position overlapping blocks of content on a page, form, or subform. Layers give you
design flexibility because you can control the placement, size, and content of information. You can create
and stack multiple layers beneath and above one another. Transparent layers reveal layers underneath;
opaque layers conceal layers underneath.
The content of a layer depends on whether you create a layer on a page or a form. When you create a
layer on a page, a layer can contain the same elements that a page can contain; for example, you can add
text and graphics, and so on. When you create a layer on a form, a layer can contain the same elements
that a form can contain; for example, you can add text and graphics, as well as controlled-access sections,
fields, and subforms.
After you create a layer, you can change the following properties of the layer:
v Position
v HTML properties
v Background color and image
Creating a layer
If the layer you need is similar to one that exists in the same database, another database, or a Designer
template, you can copy and paste the layer and then modify it. If no existing layer suits your purpose,
create a new layer.
66
To delete a layer
1. Select the layer that you want to delete.
2. Press Delete or choose Edit - Cut.
Layer anchors
Each layer has its own anchor. If you move the layer, the anchor remains in place. To display or change
the name of the layer, right-click the layer anchor. The Layer Anchor Properties box appears with the
current name of the layer.
To hide a layer
You can hide a layer by changing the Hide When properties of the paragraph containing the layer
anchor. Move the cursor to the paragraph containing the layer anchor, choose Text - Text Properties, and
click the Hide When tab.
If a layer anchor is contained in a collapsed section or in a non-current row of a tabbed table, the layer
and its contents are not visible until the collapsed section is expanded or until the row is current.
Description
Default value
Top
Left
Width
Specifies the width of the layer, a value based on the One-third of the width of the window or the
location of its right edge relative to its left edge.
parent element, whichever applies.
67
Layer
Position
Description
Default value
Height
Specifies the height of the layer, a value based on the One-third of the height of the window or the
location of its bottom edge relative to the top edge.
parent element, whichever applies.
Z-Index
Description
Top
Pixels
The location in pixels from the top edge of the parent element.
Inches
The location in inches from the top edge of the parent element.
Ems
The location in em units from the top edge of the parent element.
Percent
The location from the top edge of the parent element, computed as a percentage
of the height of the parent element.
Characters
The location in characters from the top edge of the parent element.
Auto
The default location of the top edge. The layer top edge is aligned vertically
with the top edge of the original insertion point.
Pixels
The location in pixels from the left edge of the parent element.
Inches
The location in inches from the left edge of the parent element.
Ems
The location in em units from the left edge of the parent element.
Percent
The location from the left edge of the parent element, computed as a percentage
of the width of the parent element.
Characters
The location in characters from the left edge of the parent element.
Auto
The default location of the left edge. The layer left edge is aligned horizontally
with the left edge of the original insertion point.
Pixels
Inches
Ems
Percent
The layers width, computed as a percentage of the width of the parent element
Characters
Auto
Pixels
inches
Ems
Percent
Characters
Auto
Left
Width
Height
68
Description
Z-Index
A layer with a higher Z-Index value (for example, layer A) is located closer to
the user; that is, it is stacked in front of a layer with a lower Z-Index value (for
example, layer B). If the layers overlap and layer A is opaque, the contents of
layer A obscure the contents of layer B. In addition, the contents of layer B
cannot be clicked or selected, even if layer A is tranparent.
Integer
A negative Z-Index is placed behind the parent elements contents (so that it
cannot be clicked or selected); a positive Z-Index (>=0) is placed in front of the
parent elements contents (and prevents overlapped parent element content from
being clicked or selected).
Description
ID
Class
Use the Class attribute to apply a CSS class for a defined object. For example, if the objects
name is ZipCode, the class could be Numeric. CSS styles are defined in the HTML Head
Content event for a form or page.
Style
Use the Style attribute to apply a specific CSS style to an object using inline CSS. For example, if
the objects name is ZipCode, the class is Numeric, the style could be font-size:10pt. If you have
more then one value, separate them with a semicolon; for example, font-size:10pt; color:blue.
Title
Generally use the Title attribute in Explorer 4.x and later to provide the user with a tip or
prompt. For example, if the objects name is ZipCode, the class is Numeric, the title could be:
Enter your Zip Code.
Note that the title displays differently on different browsers.
Other
Use the Other attribute for additional HTML tag attributes, which must be written as pure
HTML code. For example, instead of writing ZipCode in the Name/ID box, you write
ID=ZipCode.
69
Select a layer.
Choose Layer - Layer Properties and click the Background tab.
Click the folder icon. The Insert Image Resource dialog box appears.
Select an image resource and click OK. The image becomes the background for the layer.
The image
Tile
Repeat once
Repeat vertically
Repeat horizontally
Center
Size to fit
70
8. (Optional) To view the name of the inserted style sheet resource or to change to another style sheet
resource, choose Style Sheet - Style Sheet Properties. The Style Sheet Properties box appears with the
name of the style sheet resource. To select a different style sheet resource, click the Locate Object
folder.
update a file you have copied as a shared resource, you can refresh the style sheet resource.
Expand Shared Resources in the Design pane.
Select Style Sheets from the list of resources.
Select a style sheet resource.
Click Refresh. The Open dialog box appears.
Select the CSS file to refresh your style sheet resource and click Open. The style sheet resource is
updated.
Layer
Paragraph
List Item
Table
Cell
Graphic
List of Properties
<Body>
<DIV>
<P>
<LI>
<TABLE>
<TD>
<IMG>
background-color
Yes
Yes
N/S
N/S
Yes
Yes
N/A
N/S
N/S
N/A
background-image
N/A
Chapter 4. Designing pages
71
List of Properties
Document
Layer
Paragraph
List Item
Table
Cell
Graphic
<Body>
<DIV>
<P>
<LI>
<TABLE>
<TD>
<IMG>
N/S
N/S
N/A
background-repeat
N/A
border-bottom-width N/A
N/A
Yes
Yes
Yes
Yes
Yes
border-color
shorthand
N/A
N/A
Yes
Yes
Yes
Yes
Yes
border-left-width
N/A
N/A
Yes
Yes
Yes
Yes
Yes
border-right-width
N/A
N/A
Yes
Yes
Yes
Yes
Yes
border shorthand
N/A
N/A
Yes
Yes
Yes
Yes
Yes
border-style
shorthand
N/A
N/A
Yes
Yes
Yes
Yes
Yes
border-top-width
N/A
N/A
Yes
Yes
Yes
Yes
Yes
border-top-color
N/A
N/A
Yes
Yes
Yes
Yes
Yes
border-top-style
N/A
N/A
Yes
Yes
Yes
Yes
Yes
border-width
shorthand
N/A
N/A
Yes
Yes
Yes
Yes
Yes
color
Yes
Yes
Yes
Yes
Yes
Yes
Yes
font-family
Yes
Yes
Yes
Yes
Yes
Yes
Yes
font-size
Yes
Yes
Yes
Yes
Yes
Yes
Yes
font-style
Yes
Yes
Yes
Yes
Yes
Yes
Yes
font-weight
Yes
Yes
Yes
Yes
Yes
Yes
Yes
height
N/A
Yes
N/A
N/A
N/A
N/A
N/A
left
N/A
Yes
N/A
N/A
N/A
N/A
N/A
margin-bottom
N/A
N/A
Yes
Yes
Yes
N/A
Yes
margin-left
N/A
N/A
Yes
Yes
Yes
N/A
Yes
margin-right
N/A
N/A
Yes
Yes
Yes
N/A
Yes
margin shorthand
N/A
N/A
Yes
Yes
Yes
N/A
Yes
margin-top
N/A
N/A
Yes
Yes
Yes
N/A
Yes
padding-bottom
N/A
N/A
Yes
Yes
Yes
N/A
Yes
padding-left
N/A
N/A
Yes
Yes
Yes
N/A
Yes
padding-right
N/A
N/A
Yes
Yes
Yes
N/A
Yes
padding shorthand
N/A
N/A
Yes
Yes
Yes
N/A
Yes
padding-top
N/A
N/A
Yes
Yes
Yes
N/A
Yes
position
N/A
Yes
N/A
N/A
N/A
N/A
N/A
text-decoration
Yes
Yes
Yes
Yes
Yes
Yes
Yes
top
N/A
Yes
N/A
N/A
N/A
N/A
N/A
width
N/A
Yes
N/A
N/A
N/A
N/A
N/A
z-index
N/A
Yes
N/A
N/A
N/A
N/A
N/A
72
73
function doCookie() {
var index = -1;
if(document.cookie) {
index = document.cookie.indexOf(cookieName);
}
if (index == -1) {
document.cookie = cookieName +
"=1; expires=Saturday, 03-Apr-2010 08:00:00 GMT";
} else {
var countbegin = (document.cookie.indexOf("=", index) + 1);
var countend = document.cookie.indexOf(";", index);
if (countend == -1) {
countend = document.cookie.length
}
var count = eval(document.cookie.substring(countbegin, countend)) + 1;
document.cookie=cookieName+"="+count+"; expires=Saturday, 03-Apr-2010 08:00:00 GMT";
}
}
function getTimes() {
if(document.cookie) {
var index = document.cookie.indexOf(cookieName);
if (index != -1) {
var countbegin = document.cookie.indexOf("=", index)+ 1);
var countend = document.cookie.indexOf(";", index);
if (countend == -1) {
countend = document.cookie.length;
}
return document.cookie.substring(countbegin, countend);
}
}
return 0;
}
74
Form elements
You can use the following elements in a form or subform. Many of these elements can also be used in
pages.
Element to use on a form
or subform
Description
Actions
Actions automate tasks for the user. Add actions to the menu in the Notes client, or add
actions with buttons or hotspots on a form, subform, or page. For more information, see
the topic Actions in the chapter Adding Automation to Applications.
Applets
Attachments
You can attach files to a form, subform, or page so users can detach or launch files
locally.
Automation
You can create form actions, buttons, or hotspots on a form, subform, or page to
automate simple or complex tasks. For more information on creating these elements see
the chapter Adding Automation to Applications.
Computed text
75
Fields
Fields are the design elements that collect data. You can create fields only on forms or
subforms. Each field on a form stores a single type of information. A fields field type
defines the kind of information a field accepts. You can place fields anywhere on a
form. For information on fields, see the chapter Designing Fields.
Graphics
You can place a graphic anywhere on a form, subform, or page. The graphic appears on
the page or on any document created with the form or subform. For example, on a form
for correspondence, placing your company logo at the top of the form creates a
letterhead. For more information on using graphics on a page, form, or subform, see the
topic Using graphics in the chapter Designing Pages.
Horizontal rules
You can add horizontal rules to separate different parts of a form, subform, or page.
HTML
You can use HTML on forms, subforms, and pages. You can either write your own
HTML or use existing HTML by importing or pasting the HTML. You can also convert a
form or page to HTML and use the HTML editor.
Imagemaps
Imagemaps are graphics you enhance with programmable hotspots that perform some
action when clicked by a user. Imagemaps are often used as navigational structures in
an application. You can use them on a form, subform, or page.
JavaScript libraries
You can find and insert JavaScript libraries into a page, form or subform. For more
information on inserting JavaScript libraries, see the topic Inserting a JavaScript library
in the chapter Designing Pages.
Layers
Layers let you position overlapping blocks of content on a form, subform, or page.
Layers give you greater design flexibility because you can control the placement, size,
and content of the information. For more information on layers, see the topic Layers
in the chapter Designing Pages.
Layout region
A layout region is a fixed-length design area in which related elements can be moved
easily and be displayed in ways not possible on regular forms and subforms. A layout
region can contain static text, graphics, buttons, and all fields except rich text fields. You
can hide or collapse a layout region and all its components under certain conditions.
Layout regions are not supported for Web applications. For more information on layout
regions, see the topic Layout regions in this chapter.
Links
Within a form, subform, or page, you can add links to databases, views, specific
documents, or URL links that open pages on the Internet.
Sections
76
You can find and insert a cascading style sheet (CSS) as a shared resource on a page,
form, or subform. For more information on style sheets, see the topic Creating style
sheets as shared resources in the Designing Pages chapter.
Subforms
Tables
Use tables in forms, subforms, and pages to summarize information or to align elements
such as fields and graphics in rows and columns. For information on creating
programmable tables, see the topic Creating programmable tables in the chapter
Designing Pages.
Text
Text is often used to label fields so users understand the purpose of each field. For more
information on formatting text, see Lotus Notes Help.
For information on creating and formatting tables, see the topic Creating tables in Lotus Notes Help.
You can also press F1 while you are creating a table to get online help.
The form that was used to create the document. The original form
name is stored in a hidden field called Form in the document.
To find the value of the field you can check the Document
Properties box under the Fields tab.
77
Condition
The default form for the database. Each database can have only
one default form, which is marked with an arrow in the Forms
list.
Form formulas
To override the default form selection, write a form formula for a particular view. For example, you can
write a form formula that uses one form to display all fields when a user edits a document and a
different form that re-sequences or omits fields when a user reads a document. Since form formulas
apply only to a specific view, documents created in other views do not use the form formula.
For more information on writing form formulas, see the Domino Designer Programming Guide.
78
If you are copying a form from a different database, resources such as shared fields and shared images
are not sent with the copied form. You must copy shared resources separately to the new database.
To delete a form
Remove a form when users no longer need it. After you delete the form, documents that were created
with the deleted form are displayed with the default form instead. After you delete a form, to prevent
users from receiving a form cant be found message, create an agent that reassigns the form name.
For information on using agents to reassign documents to a new form, see the topic Using agents to
update documents affected by form changes in the chapter Completing an Application and Managing
Design Changes.
Chapter 5. Designing forms
79
1.
2.
3.
4.
Naming forms
Each form in a database must have a unique name. If you make a copy of a form and paste it into the
same database it came from, Designer will automatically prepend Copy Of to the form name to keep
the names unique. If you create multiple databases that contain the same information, use the same
names for the forms. Standard names enable users to recognize commonly used forms; they also make it
easier for users with similar databases to communicate. For example, suppose you have four
customer-tracking databases, one in each regional sales office. If the Southern regional manager wants to
discuss a shared account with the Western regional manager, both managers should know what a
Company Profile document is.
v To name or rename a form, choose Design - Form Properties and enter a name for the form.
Name requirements
Keep the following in mind:
v The name is case-sensitive and can be any combination of characters, including letters, numbers,
spaces, and punctuation.
v If there are no synonyms or cascading name, the maximum length of the form name is 64 bytes. When
the full form name includes all synonyms and the cascading name, the maximum length is 256 bytes. If
youre using multibyte characters, 256 bytes is different from 256 characters.
v Only the first 64 characters of a form name appear in the Create menu.
Creating aliases
A form can have additional names, called aliases. If you create an alias for a form, you can change the
form name that appears on the Create menu without having to rewrite every formula that references the
80
form. You can also reassign existing documents to the new form, and rewrite formulas or reassign
documents if the form name is translated. The form name and its aliases are separated by a vertical bar
(|).
If a form has only one name, it appears on the Create menu and in the documents FORM field. If there
are two or more names, the forms first (leftmost) name always appears on the Create menu, while the
forms last (rightmost) name, which is typically the alias, appears in the FORM field. Sometimes a form
can have multiple names usually due to translation. In those cases the middle names are ignored. As long
as the alias does not change, documents will display using the original form and all formulas referencing
the form will continue to work.
Tip: If you add an alias to a form that is referred to in an existing view (or folder) selection formula, the
formula will not display documents created or edited after the alias is assigned. It is good design practice
to assign an alias at the same time you name a form to avoid such problems.
To add an alias
1. Choose Design - Form Properties to open the Form Properties box.
2. In the Name field (at the Form Info tab), add a vertical bar (|) to the right of any other names. Then
add an alias.
In the following example, Interview is the alias and Main Topic is the original name:
Main Topic | Interview
81
To hide a form
Another way to remove a form from the Create menu is to hide it. Hiding allows you to specify
conditions under which the form is hidden or displayed. For example, you can hide a form from Notes
clients, but display it for Web clients.
1. Close the form you want to hide.
2. In the Design pane, click Forms in the Design pane.
3. From the forms list, select the form you want to hide.
4. Choose Design - Design Properties.
5. Click the Design tab.
6. Select a hide option.
82
@Command([Compose];"":"database";"formname")
83
84
v Select a scrolling option. Auto automatically turns scrolling on when the content of the header
exceeds the space allotted.
v Allow resizing lets users reissue the header area. You can choose this option only when the
border width is greater than 0.
v Border controls the display of the dividing line between the header and the body of the form. You
can change the thickness of the line and the color of the border. You can turn the border off by
setting the width to 0. Select 3D shading to show the border with a 3D effect.
85
v Response form -- Creates response documents associated with a main document. In a view, users select
a main document and then compose a response. The response documents appear under the main
document. Designers often create response documents that inherit data from the main document -- for
example, the topic title.
v Response-to-response form -- Creates response documents associated with either a main document or a
response document.
For information on indenting a response document under its parent document in a view, see the topic
Indenting response documents in the chapter Designing Views.
Version tracking
Version tracking allows you to maintain a history of changes to a document. In order to activate version
tracking, you must designate the form used to create documents as a version-tracking form.
86
3. On the Form Info tab, select one of the following versioning methods, as follows:
Versioning method
Description
Use this when the original document is the most important. The original
document is listed first in the view; all successive versions follow. Choose
this method if the original document is the focal point of the view, with
responses being used for reference.
When new versions become responses, you can prevent replication or save
conflicts in the view. If users on different servers modify and save the
main document, their versions are treated as two separate response
documents when the databases replicate. The two responses are displayed
in the view in chronological order.
Use this method when the new version is the most important. The latest
version is listed first in the view; previous versions and the original
follow. Use this method if the update is the most important or most
frequently read document and you want to store older versions as a
backup or for historical reference.
When prior versions become responses, you cant prevent replication or
save conflicts. If users on different servers modify and save the main
document, the two new versions of the document appear as conflicting
main documents when the databases replicate.
Use this method when all versions have equal importance. The original
document is listed first in the view; all successive version follow as
additional main documents without introducing the risk of replication or
save conflicts.
This method is also useful when revisions arent based on a historical or
subordinate model -- for example, in a form where workgroup members
create their own replacement versions of an original document or where
the original document is used as a template for each new document.
This method is most effective when you dont expect every main
document to be revised, since it is hard to find updates in a view where
many new documents have been created in the updating process. To
distinguish a revised document from the original document, add
identifying information, such as New Proposal or Revised to the field
that displays in the view.
Description
Manually creates a new version of the document only when the user
chooses File - Save As New Version. This option allows the user to choose
when to create a new version and when to overwrite the existing
document.
Make sure users know that version tracking is active, so that they understand the impact of editing
documents. Explain version tracking in the Using Database document.
If there is a response hierarchy set up in the database, responses to version-controlled documents display
as responses to the original document only.
87
This formula uses the field form to refer to the form name instead of hard coding it into the formula.
@Text(@created) + " " + form + " for " + Company Name
If the document has never been saved, New Topic shows in the title bar while the user composes the
document. After the document is saved, the title is the subject combined with the number of responses. If
the subject is Icebox 2000 and there are no responses, the title of the document is Icebox 2000 (No
Responses). With one response, the title becomes Icebox 2000 (1 Response). With two responses, the title
becomes Icebox 2000 (2 Responses).
88
When a user reads the response, the window title displays the total number of responses to the main
document, the response being displayed, and the subject of the main document. For example, if the
response document is the second of four responses to Icebox 2000, the title displays as Response 2 of 4 to
Icebox 2000.
Using subforms
A subform is a collection of form elements that are stored as a single object. Subforms can contain the
same elements as regular forms. Subforms save redesign time. When you change a field on a subform,
every form that uses the subform updates. Common uses of subforms include adding a company logo to
business documents or adding mailing label information to mail and memo forms. A subform can be a
permanent part of a form or can appear conditionally, depending on the result of a formula. For example,
you might offer users a choice of custom mail forms with different graphics and styles for various types
of mail messages, such as memos, alerts, or letters. Note that field names used in the subform cant be
used elsewhere on the form. Changes you make to a subform affect all forms and documents that use the
subform.
To create a subform
You can copy and modify a subform that is similar to the one you need or create a new subform and
design it yourself.
1. Open the database that will have the new subform and click Shared Code - Subforms.
2. Click New Subform.
3. Create the subform using the same elements you use to create a form.
4.
5.
6.
7.
Subform property
Use
Lets you paste HTML directly into the subform. For more information
on pasting in HTML, see the topic Using HTML on a page or form
in the Designing Pages chapter.
Check this setting to prevent new field names on the subform from
being saved in the field index. Checking this setting saves memory.
If you do not check this setting, field names are saved to a table and
then stored in memory. Storing field names in memory allows field
names to appear in places such as the Add Action dialog box.
89
Open a form.
Place the cursor where you want to paste the subform.
Choose Create - Resource - Insert Subform. The Insert Subform dialog box appears.
Select the subform you want and click OK. You can also insert subforms contained in other databases
by selecting a database listed in the Database pull-down list.
Open a form.
Place the cursor where you want to paste the subform.
Choose Create - Resource - Insert Subform.
Select Insert Subform based on formula.
Click OK.
Enter a formula in the Programmers pane that determines which subform to display.
Close, name, and save the form.
Deleting subforms
When a user opens a document that references a deleted subform, the message Subform: <subform
name> not loaded appears on the status bar. The document opens without any representation of the
deleted subform. When a designer opens a form that references a deleted subform, the message
Subform: <subform name> not loaded appears on the status bar. When a designer clicks the deleted
subform area on the form, the message Invalid or nonexistent document appears and the designer cant
open the subform.
To avoid these messages, add another subform to the database and give it the same name as the deleted
one.
90
Layout regions
A layout region is a fixed-length design area on a form or subform. The advantage of using layout
regions is that related elements can be dragged and moved easily and can be displayed in ways not
possible on regular forms and subforms. A layout region can contain static text, graphics, buttons, and all
fields except rich text fields. You can hide or collapse a layout region and all its components under
certain conditions.
Layout regions are not supported in Web applications.
A layout region can contain:
v Text
v Background graphics
v Fields (except for the following fields: color, dialog list, formula, password, rich text, rich text lite, and
time zone)
v Buttons
v Button graphics
You should not add the following elements to a layout region:
v Animated GIF files
v Attachments
v Computed text
v Embedded elements
v
v
v
v
v
v
v
v
v
v
v
v
v
v
v
v
Horizontal rules
Hotspots
Image resources
Inserted resources
Java applets
Layers
Links
Objects
OLE objects
Page breaks
Pop-ups
Sections
Shared actions
Shared fields
Subforms
Tables
You can hide or collapse a layout region and all its components under certain conditions. For example,
you can hide a layout region when Web users view the application, or when users edit the form.
91
92
Embedded controls
There are three types of embedded controls that can only be used on a form:
v The embedded file upload control -- Allows you to create a form so that Web users can attach files to
documents
v The embedded scheduler -- Allows you to create a form that displays the schedules of specified users
v The embedded editor -- Allows you to embed one or more forms into an existing form and can also
allow you to link an embedded editor to an embedded view.
93
Description
A formula that evaluates to a text list of one or more item names. At runtime, the
scheduler displays the set of required people.
If you are writing a LotusScript formula to obtain the data for this attribute, the formula
must evaluate to a text list of one or more field names.
A formula that evaluates to a text list of one or more item names. At runtime, the
scheduler displays the set of optional people.
Rooms items
A formula that evaluates to a text list of one or more item names. At runtime, the
scheduler displays the set of rooms.
Resources items
A formula that evaluates to a text list of one or more item names. At runtime, the
scheduler displays the set of resource rooms.
A formula that evaluates to an item name. At runtime, the time/date value contained in
this item indicates the start date/time of the meeting.
A formula that evaluates to an item name. At runtime, the time/date value contained in
this item indicates the end date/time of the meeting.
94
Attribute
Description
A formula that evaluates to an item name. If this attribute is not specified, the schedulers
busy time grid begins on the current time and date. If the event is specified, the
time/date value contained in this item is examined.
If the time portion of the time/date value is set to ALLDAY, the busy time grid uses the
specified date and the current time. If the date portion of the time/date value is set to
ANYDAY, the busy time grid uses the current date and the specified time.
The value of this field should be a date and time. If the value is not a date and time, the
current date and time of the users system is the default. If the value is a date only, that
date and the current time on the users system are the default. If the value is a time only,
that time and the current date on the users system are the default.
When a user accesses the form, the scheduling information starts from the specified date.
The user can change which week is displayed by clicking on the left and right arrow
keys. Each day will begin at the specified time. The time is rounded down to the nearest
hour.
Note that the schedules are displayed in terms of the users local time zone -- for
example, a Pacific time zone user free between 9 and 5 PST will appear free between 12
and 8 to an EST user.
A formula that evaluates to an item name. At runtime, the number value contained in
this item indicates the number of hours that the busy time grid displays for each day.
This attribute is examined to determine how many hours of each persons schedule to
display. The value of this field should be an integer between 1 and 24, inclusive. A value
less than 1 will be defaulted to 1 and a value greater than 24 will be defaulted to 12.
A formula that evaluates to a text list of one or more item names. When the scheduler
retrieves scheduling data, detailed data is requested for these items.
Displaying a legend
You can create a reserved field on the form that contains the embedded scheduler to allow users to turn
the legend off or on. The reserved field name is $GroupScheduleShowLegend. Valid values are 0 (to turn
the legend off), and 1 (to display the legend).
95
participants from the values of the items on the form. It also updates the meeting start and end
times as well as the hours to display and the display start time. Because problems may occur when
the NotesUIScheduler object has been used to add or remove participants, you may want to disable
this field if a call to AddAttendee or RemoveAttendee is made through the NotesUIScheduler
object.
v Allow filtering -- Checking this field turns on the filtering button that is displayed above the
attendee names.
v Top, Middle, and Bottom titles -- Lets you specify titles for the top, middle, and bottom of the
embedded scheduler. You can click the formula symbol for each title and enter a formula that
evaluates to a title.
3. At the Colors tab of the Embedded Scheduler Properties box, you can customize various foreground
and background colors.
4. At the Layout tab of the Embedded Scheduler Properties box, you can set the width and height
properties for the embedded scheduler.
96
Link appears in the Type field if you selected None in the Insert Embedded Form dialog box. The
field next to the Type field and the Value field are both left blank.
Link requires that you paste a link that youve already copied to the Clipboard. Click the Paste icon
to paste in this link. Note that you can paste only an anchor or a document link. You cannot paste a
view or a database link.
- Named Element
Named Element appears if you selected an existing form in the Insert Embedded Form dialog box.
The field next to Named Element displays as Form. The Value field contains the name of the form
you chose in the Insert Embedded Form dialog box.
v Hide action bar - selecting this causes the action bar of the form you inserted to be hidden. If it is
unchecked, the action bar is displayed.
v Disable scroll bars - selecting this hides scroll bars. If it is deselected, the embedded editor shows
scroll bars when all of its content does not fit on the screen.
Profile forms
Profile forms are useful for collecting user-specific or database-specific values. These values are stored in
Profile documents. What sets profile documents from other documents is the way profile documents are
displayed and the values in the fields passed back. Only one profile document per form can exist for
each user of a database. Or, only one profile document can exist for a database if that form is available to
all users.
Profile documents allow for quick data retrieval, because they are cached while the database that stores
them is open. Profile documents are like other database documents except they are somewhat invisible -they do not display in views and are not included in a document count for the database. Users create
profile documents by using an action button or agent you design that uses LotusScript or the formula
language.
A database can have a single profile document or multiple profile documents that match a key you
specify -- for example, an @username key that creates one profile document for each user of a database,
or a key that specifies a different profile document for each day of the week. Whether you use one profile
document for a database or use multiple profile documents depends on your design needs. Use a single
Chapter 5. Designing forms
97
profile document to contain settings that all documents in the database need, such as environment
variables. Use multiple profile documents for more customizable settings, such as user preferences. A user
must have at least Author access in the ACL of a database to create a profile document that is available to
all users.
You can use any form to create a profile document. After creating the form, you create a button, action, or
agent for the application that uses either @CommandEditProfile in a formula or UIWorkspace.EditProfile
or NotesDatabase GetProfileDocument in a LotusScript program to create or retrieve a document. In each
case, Notes looks for a profile document with the form name you specify, and creates a profile document
if one does not already exist. For an example of a profile document, see the Interest Profile form in the
Discussion - Notes & Web template.
For more information about accessing or editing a profile document using Formula language or
LotusScript, see the Domino Designer Programming Guide.
Create a form with fields to hold the values you want to store in profile documents.
Choose Design - Form Properties and deselect Include in Menu.
Save the form.
Do not include the form in any view.
Create a button, action, or agent that uses either the LotusScript NotesDatabase GetProfileDocument
method or UIWorkspace.EditProfile, or the Formula language @Command([EditProfileDocument]) to
create or access the document.
See the Domino Designer Programming Guide for more information about Formula language and
LotusScript.
98
99
v For button text with multiple words, use initial capital letters. Use ellipses for buttons that lead to
another dialog box or task -- for example, Show Details...
[OkCancelEdit]
This formula fills the Name field with the users response to the prompt. The default value is the users
Notes name. If the user selects Cancel, Notes cancels the formula evaluation.
FIELD Name := @Prompt([OkCancelEdit]; "Enter Your Name"; "Type your name in the box below."; @UserName);
[OkCancelList]
This formula captures the users response in a temporary variable called ComposeType and uses it to
create a new report using the appropriate form.
ComposeType := @Prompt([OKCancelList]; "Report Type"; "Choose a report type."; "Adjustment Report";
"Adjustment Report":"Infant Progress Report":"Toddler Progress Report":"Preschool
Progress Report":"Transition to Kindergarten Report");
@Do(@Command([Compose]; ""; ComposeType));
100
Using @PickList
The @PickList function looks up the values in a view as @DbColumn does, but lets the user pick a value
from one document. This function is similar to using @Prompt in a form, but is specifically for use with
views.
@Picklist offers the following advantages over formulas that use @DbColumn or @DbLookup.
v It is not limited to 64K of data.
v It is faster than @DbColumn or @DbLookup.
v It allows users to type the first few characters of an entry to find it quickly in the view.
For more information on the @Picklist function, see the Domino Designer Programming Guide.
Example
This formula displays the Products view of PROD.NSF in a dialog box:
choice:=@PickList([Custom] ; "":"prod.nsf" ; "Products" ; "Select a product" ; "Please select the
products you want to order" ; 1 );
$ChargeRead
$ChargeWrite
101
To
1.
2.
3.
4.
5.
6.
7.
8. For each of the reserved fields, go to the Objects pane of the Programmers pane, find the name of the
field you just created, and select Value. Then, click in the Script area and enter the appropriate value.
Enclosed the value in quotes. See the following table for information on the values you can enter for
each reserved field.
Reserved Fields for Print
Listings
Reserved field name
$SectDataName
Enter a name for the sectioning type and enclose it in quotes (for example, 2 x 7
Labels, 1-1/3 x 4 in). The name you enter as the value is the name shown for the
sectioning type (or Paper type) on the Documents Style tab of the Print view
dialog box in Lotus Notes. This name also appears in form error messages.
The sectioning type can have multiple entries, but they must be separated by a
colon (for example, 2 x 10 Labels, 1 x 4 in : 3 x 10 Labels, 1 x 2-5/8 in). If the
sectioning type has multiple entries, other contact printing reserved field (except for
$SectDataOptions) must have the same number of entries.
102
Choose options for printing the listings or leave the value blank by specifying
double quotes with no characters between them ().
Separate multiple options with spaces (for example, Debug Inches). Note that, for
this field only, you do not have to match the number of entries with the number in
other print listings reserved fields.
Only the following options are valid:
v Fullsheet -- Sectioning is turned off and the whole sheet of paper is taken to be
the section. The form still determines the content and layout of the listing
produced for each document. This option is useful for print merges. Usually,
print headers, print footers, and page settings are ignored in print listings;
however, the Fullsheet option prints normal print headers, print footers, and
page settings. If you specify the Fullsheet option, the next four reserved fields are
ignored.
v Debug -- Causes a rectangle to be drawn around the perimeter of each printed
section and around the inner margin of each printed section. You can use this
option to debug the data for a sectioning type because you can see on the
printed paper where each section prints and where the inner margin of each
section lies. This option also lets you preview the labels.
v Centimeters -- Causes the values in $SectDataWidthAndHeight,
$SectDataInnerMargins, and $SectDataOriginXandY, to be interpreted as 1/100th
of a centimeter rather than the default of 1/1000th of an inch. In other words,
this option turns on metric units.
v Inches -- Causes the values in $SectDataWidthAndHeight,
$SectDataInnerMargins, and $SectDataOriginXandY to be interpreted as 1/1000th
of an inch. This is the default. If both inches and centimeters appear in
$SectDataOptions values, the last one on the right takes precedence.
v Relaxrowsandcols -- Looks at the number of rows and columns specified in
$SectDataRowsAndCols and, if necessary, reduces the number of rows and
columns to what actually fits fully within the paper. If this option is not
specified, the number of rows and columns specified in $SectDataRowsAndCols
is taken literally, even if the specified number of rows or columns does not fit
within the paper.
$SectDataRowsAndCols
The value in this field always contains two options separated by a space. For
example: 7 2. The first option is the number of rows and the second is the
number of columns. Both values must be 1 or greater. If you have two entries for
other fields, you must have two entries here. For example: 10 2 : 10 3
Note: For this field (and the remaining reserved fields):
v If fewer options are given than the item requires, the remaining options are
interpreted to be zero (0). If no options are specified, 0 is assumed for all
options. If extra options are specified, they are ignored.
v For a sectioning scheme where there is only one section per sheet of paper,
specify 1 1. If you have specified the Fullsheet option, enter an empty value in
double quotes ().
$SectDataWidthAndHeight
Specifies the width and height of each section. The value in this field takes two
options. The first option gives the width of one section and the second option gives
the height (for example: 4156 1000). Both values are in 1/1000th of an inch. For
example, 1-1/2 inch would be written 1500. The value must be one or greater.
If you have two entries in other fields, there must be two entries in this field (for
example : 4156 1000 : 2781 1000).
103
Specifies an inner margin for each section. The value in this field must contain four
numbers, separated by spaces, and specifies an inner margin for each section. In
order, the options are left, right, top, and bottom margins (for example: 156 0 0 0).
The inner margins are measured inward from the sections overall width and
height ($SectDataWidthAndHeight), within which the listing is placed. You can also
use the inner margins to avoid printing in preprinted areas and pre-punched holes.
You can enter any value including zero. The only restriction is that the sum of the
inner margins in each direction must not exceed the size of the section itself in that
direction. For example, you cannot specify a section width of 1.5 inches, a left inner
margin of 1 inch, and a right inner margin of 1 inch.
If you have two entries in other fields, you must have two entries in this field (for
example: 156 0 0 0:156 0 0 0).
$SectDataOriginXandY
Specifies the exact location, measured from the upper left corner of the physical
page, for where the data begins on the page. The value for this field contains two
options. The first option gives the beginning horizontal position and the second
option gives the beginning vertical position (for example: 100 835). Both are in
1/1000th inch and any value including zero is valid. Remember that if you have
multiple entries in other fields, you must have multiple values in this field (for
example: 100 835:100 835).
The first option not only gives the location of the upper-leftmost section, but also
implicitly positions all other sections (because all sections abut each other with zero
pixel separation between each). The sections step horizontally by the
$SectDataWidthAndHeight width value and step vertically by the
$SectDataWidthAndHeight height value. The stepping proceeds through the
number of rows and columns given in $SectDataRowsAndCols. However, if you
previously specified Relaxrowsandcols, the stepping proceeds for as many rows
and columns as fully fit within the physical sheet of paper.
Be careful when you use zero as a value. For most printers, the printable portion of
the paper begins 1/8 to 1/4 inch inward from the upper left corner of the physical
paper.
Example
In Designer, you can view examples of contact printing forms and fields by opening your Lotus Notes
Personal Address Book (NAMES.NSF) and viewing forms such as Address labels 20 or 30, business.
In
1.
2.
3.
4.
5.
6.
Lotus Notes, you can see an example of how contact printing works for the end user:
From the Notes client, open the Personal Address Book (NAMES.NSF).
Choose the Contacts view.
Choose File - Print. The Print View dialog box appears.
At the Printer tab, click Selected documents. The Documents Style tab appears.
At the Document Styles tab, click Print multiple documents on each page.
Next to Label format, you can view a list of the contact printing forms. For example, Address
labels 20 or 30, business is a form enabled for contact printing and was created using the contact
printing reserved fields.
7. Next to Paper type, you can view the values set by the contact printing reserved fields. For the
Address labels 20 or 30, business form, you have two paper sectioning entries: 2 x 10 Labels, 1 x 4
in or 3 x 10 Labels, 1 x 2-5/8 in. (These two paper sectioning entries were specified in the
$SectDataName field.)
104
Condition
$$ReturnAuthenticationFailure
$$ReturnAuthorizationFailure
The user does not have a sufficient access level for the database.
$$ReturnDocumentDeleted
$$ReturnGeneralError
105
For example, this formula for a field named CustomString on a $$ReturnAuthenticationFailure form
gives more information to the user if authentication fails. The formula takes the value from the default
MessageString field if it contains unauthenticated and replaces it with instructions to the user. If the
MessageString field does not contain the word unauthenticated, Domino uses the value of
MessageString instead.
@If(@Contains(messagestring;"unauthenticated");"Sorry, the name and password you entered are unknown in
our system. If you are new to our site, return to the home page and follow instructions for registering.";
messagestring)
Description
Default Value
Query
none
106
Optional
arguments
Description
Default Value
SearchWv
FALSE
SearchOrder
1 = by relevance
SearchMax
2 = by date ascending
3 = by date descending
4 = use view order (SearchView only)
SearchThesaurus
FALSE
FALSE
SearchEntry
ResultEntry
Count
Scope
Scope of search:
If you are customizing search forms for Notes clients, you must use the FTDomainSearch method.
For more information about using the FTDomainSearch method, see the Domino Designer Programming
Guide.
Item name
CREATION DATE
_CreationDate
REVISION DATE
_RevisionDate
_Title
DbCategories
NOTE TITLE
_Note_Title
AUTHOR
_Note_Author
For example, to find all documents created before 5 January 2000, use the following query:
Chapter 5. Designing forms
107
There are no field names stored in the document; the dates actually come from the documents header,
not from fields. So you can use these reserved names with any document, even though they wont appear
among the field items in the Document Properties dialog.
There is no syntax corresponding to the search builder functions to find documents based on a difference
from todays date, for example -- is in the last n days. Your agent will have to supply actual dates at
runtime (which it can calculate by adjusting todays date). Keep in mind that date formats vary based on
user settings, and you must use a format that matches the workstation or server that will evaluate the
query.
Description
DSCreationTime
DSModifiedTime
DSURL
URL to document
DSDBTitle
Database title
DSDocSummary
Document summary
DSDocTitle
Document title
DSDocAuthor
Document author
DSScore
Relevance score
DSSServer
DSType
You can name your results form whatever you want and then specify your chosen name in the
SearchDomain URL or to the FTDomainSearch LotusScript call. The Web will look for a form named
$$SearchDomainTemplate if you dont name one in the URL.
When designing or viewing a Domain Search results form, it can be helpful to know where the Domain
Indexer finds the titles that it displays in the results. The Indexer checks each document for the following
Notes fields or items, in the order they are listed here, to use to represent the documents title: Title,
Subject, Headline, and Topic field; window title (as designated by the developer of that Domino
application); and view summary (using the default form and default view). If none of these items can be
found, the Domain Indexer displays Document has no title in the results.
In file systems such as Lotus SmartSuite or Microsoft Office, the title and author are extracted from the
document properties fields. For HTML files, TITLE and AUTHOR tags are used.
108
Tip: You must select the Generate HTML for all fields option in the Form properties box to preserve
field values when data is passed between a Web browser and the server.
109
1. Create a form and assign it one of the form names shown in the following table.
Form name
Field required
Comments
$$SearchTemplate for
viewname
$$ViewBody
$$SearchTemplateDefault
$$ViewBody
Description
Query
Start
Count
Hits
Actual number of results returned this page, which may be less than Count requested.
This field is useful in determining the Start parameter for a Next button.
TotalHits
SearchMax
110
Field
Description
SearchEntry (Domain
Searches only)
Text unique identifier of the view being searched. This identifier is useful in building
subsequent SearchView URL commands.
The fields in the table below are available for use with the Start and Count parameters and should be
added to the results form as needed.
Field
Description
Hits
The actual number of hits returned. This field is useful in determining the Start
parameter of Next.
TotalHits
The total number of hits found without regard to the number of pages.
Designing forms
v Avoid using large bitmaps or graphics.
v Avoid using the form property Automatically refresh fields. Instead, use the Refresh fields on
keyword change for a choice field, or write a LotusScript field event to recalculate the document or
update other fields when users move from a specific field.
v Avoid creating long tables with many computed fields.
Designing fields
v Use @DbColumn or @DbLookup formulas sparingly, or replace them with LotusScript programs which
are generally faster and support error checking.
v Use simple formulas for hide when conditions.
v Avoid recalculating fields, if possible. Otherwise, change such fields to computed-when-composed
fields. While these fields calculate only when the document is composed, they can be updated later if
needed through buttons, actions, or agents.
v Use LotusScript form events rather than conditional formulas in the field itself to set field values.
For example, to reset the status field if the document is being saved, create a script for a QuerySave
event, rather than write a formula that uses @If(@IsDocBeingSaved;x;y).
v Minimize the number of fields, especially hidden fields, and use form events rather than field formulas
to execute processing logic. You can avoid unnecessary recalculations in this way.
For example, suppose a form contains a hidden computed field called State, which determines where
documents are in the workflow and where they need to be sent. By replacing the field with a
LotusScript program that sets a field value during the QuerySave form event, the field value is set only
when a document is saved, not when it is opened or refreshed.
For more information on writing lookup formulas, or hide-when formulas, see the Domino Designer
Programming Guide.
111
112
To copy fields
If you copy a field from one place on a form to another, each copy of the field has a sequential number
appended to its name to preserve name uniqueness. You can rename the field after copying it.
Note: If you copy a shared field and paste it into the same form, the new field becomes a single-use
field. However, if you copy a shared field and paste it into a different form, the copied field remains a
shared field.
To delete fields
To delete a field, select the field on the form and press the Delete key, or choose Edit - Delete.
Deleting a field from a form means that data for that field is no longer displayed in documents. The data
still exists, however, and you can display it by adding a field with the same name to the form. To delete
the field data, use the @DeleteField function to remove the field and its data from all documents
containing the field.
113
For example, to purge the AssignedTo field and its data from all Schedule documents, create an agent or
action that uses the form name and @DeleteField:
SELECT Form=Schedule;
Field AssignedTo:=@DeleteField;
114
and insert the new shared field. Also revise all formulas that refer to the former field name. If you
already used the form to create documents, create and run an agent to reassign field data to the new field
name and to computed fields.
When users click OK, they see the contents of the shared field as non-editable text.
To prevent this message, modify each form to convert the old shared field to a single-use field (by cutting
it and pasting it back on the form). The field definition is stored within each form, rather than in a
central location, and documents can be displayed as they were when they referred to a shared field
definition.
115
v On the Design tab, select a language for that version of the shared field. Depending on the
language you choose, you may also need to select a region for the selected language.
6. Repeat the previous step for each copy of the shared field and specify the appropriate language.
Naming a field
A field name must begin with a letter and can include letters, numbers, and the symbols _ and $. The
name can contain up to 32 bytes. (If youre using multibyte characters, remember that 32 bytes is
different than 32 characters.) Use short, descriptive field names that you will remember when you write
formulas that refer to the fields.
Field names cannot contain spaces. Run multiple words together, for example, ModifiedDate, or separate
them with an underscore: Modified_Date. The Designer templates use the naming convention of an initial
capital letter followed by lowercase letters, for example, SendCopyTo.
If several fields on forms in a database contain similar information, for example, the date of creation and
the authors name, use the same field name for all of them. This makes sharing information between
forms easier as you continue to develop the application. Establishing and maintaining naming standards
simplifies application design throughout your organization.
Renaming a field
Unlike forms and views that can have aliases, a field can have only one name. Renaming a field has the
same effect as deleting a field from a form. For example, if you have a field called Comments, and
users enter text into many instances of this field in documents, and you then rename the field to
Observations, all of the data in Comments will no longer appear when you display the document. If
you must rename a field and need to transfer data, create a new field, create and run an agent to reassign
data to the new field, then delete the old field. Remember to update all formulas to refer to the new field
name.
Field types
The fields field type determines what type of information it can contain. You define the field type in the
Field Properties box. The field types are:
v Authors
v Checkbox
v Color
v Combobox
v Date/Time
v Dialog List
v Formula
v Listbox
v
v
v
v
Names
Number
Password
Radio button
116
v
v
v
v
v
Readers
Rich text
Rich text lite
Text
Time Zone
117
v Calendar
v Inbox
v Links
Note: Links is a new type with Notes Designer 7.0. It allows links to documents, views, databases, and
URLs.
In addition, you can check the following options:
v Help - checking this lets the user choose to display brief help on an object type. The help changes
depending on the object type the user selects.
v Clear - checking this gives the user the option to clear the contents of the field.
At the First display field, select the object you want as the default icon when a document is first
created. For example, if a rich text lite field is limited to Pictures, DatePickers, and Shared Images, you
can choose to display Pictures as the first icon (indicating the intended use of the field while still giving
users the opportunity to add other types). If the user chooses another object type from the drop-down
menu, the icon changes.
The Field help field lets you add help for each object type. Note that you must enter help in the order
the fields are listed in the listbox. Also, you must separate each help text with the vertical bar character
(|). For example, to add help if you have selected pictures, shared images, and a datepicker, enter the
following in the Field Limit Help field:
Picture help|Shared Image help|||DatePicker help|
Note the extra vertical bar characters between Shared Image help and Date Picker help. These extra
characters indicate that no help text exists for attachments and views.
This is what happens when a user clicks on an icon next to the rich text lite field:
v For datepicker, inbox, and calendar, the object is inserted into the field immediately.
v For pictures, shared images, attachments, views, shared applets, text, and OLE objects, the
corresponding dialog box appears. Once the user selects from the choices in the dialog box, the object
is inserted into the field.
118
Note: Web users cannot paste text from outside the editor because of the limitations of the JDK,
Release 1.0.2.
v Enter international characters
Note: Not all international characters can be displayed in the editor applet. The ability to display
international characters depends on the fonts installed on the users workstation and the version of the
browser the user is working with. Most characters entered in the editor will be correctly transferred to
Domino (depending on the browser).
If the same document is edited by both a Web browser and a Notes client, there are some additional
caveats. For example, it is possible to format a document in the Notes client using a formatting feature
that is not supported in the editor applet. Also, there are features that, once opened and edited in the
editor applet, will subsequently not format properly if opened for editing in the Notes client. These are
the formatting features to avoid if editing a document with both the Notes client and a Web browser:
v First line indent or outdent
v Full justification paragraph alignment
v Tabs
v Images
v Ordered lists
v Tables
In addition, any features that the editor applet cannot interpret are displayed as HTML in green on the
document.
Note: Make sure you test your design ahead of time on different browsers. Depending on the users
browser, there may be display problems.
119
Number fields
Use Number fields for numeric and currency data.
Numeric fields
The Number field type lets you limit a field to numerical values and define how the numbers display in
a form. For example, a Monthly Total field in a Budget form adds together all of the numeric values from
the fields listed in the following formula to arrive at a total budget figure:
Advertising + Entertainment + Miscellaneous + Overhead + Salaries + Travel
If you dont want users to change the value of a numeric field, select a Computed option in the Field
Properties box. In the example above, the Monthly Total field is computed so users cannot edit the value.
Fields used in calculations must have default values. Otherwise, the message Incorrect data type for
operator or @Function: Text expected appears.
On the Control tab of the Field Properties box, you can specify whether the field should display formats
according to the custom settings you specify, or whether it should use the default settings of the users
workstation.
Choose any of these number formats on the Control tab:
v Decimal displays numbers either as they are entered (zeroes to the right of the decimal point are
suppressed), or with a fixed number of decimal places, depending on what you specify. To base the
decimal symbol and thousands separator display on the type of measurement (Imperial or Metric)
users set in the operating systems International User Preferences, choose Client. To set the decimal
symbol and thousands separator yourself, choose Custom.
Note: A number field can store up to 8 non-zero decimal digits without loss of precision. Notes
implements floating point arithmetic using the IEEE64 industry standard. In cases where a user enters
more than 8 non-zero decimal digits, rounding may occur and the number may display and be stored
differently from the number the user entered.
v Percent displays a number as a percentage. For example, .12 displays as 12% and 12 displays as 1200%.
v Scientific displays numbers using exponential notation. For example, 10,000 displays as 1.00E+04. Select
the number of decimal places from the Decimal Places list.
v Currency displays values with the currency symbol you specify. The default is the American dollar
sign. For example, $15.00 is displayed when the value is 15 and 2 is selected in the Decimal Places
list. You can select a different currency symbol from the list, or enter a custom currency symbol and
country code. See the next section for more on currency fields.
Designer recognizes the following formats for numbers:
Type
Format
Integers
123, 123
Decimal fractions
Scientific notation
1.23E2, 1.23E12
Currency
$2.50, ($600.09)
Domino can store numbers from 2.225E308 to 1.798E308 with 14digit accuracy.
120
Currency fields
To choose currency as the type you want for the number field, check Currency at the Control tab of the
Fields Properties box. For currency, you may want different fields to display different currency formats
and you can do that at a field level.
If you want to use the currency defined in the users preferences, select Use preferences from: User
settings. If you want to define a custom currency, select Use preferences from: Custom.
If you have selected Use preferences from: Custom, you have additional options in the Currency
symbol section of the Control tab. You can choose a currency symbol from an extensive pull-down list. If
you decide to check Custom, the currency you have chosen appears in the first box next to Custom (or
you can choose another currency symbol) and the country code associated with this currency appears in
the second box. You can then modify the country code. For example, the dollar sign ($) as a currency
symbol is used in many countries, including Canada, Jamaica, and the United States, and has different
values in each of these countries. For this reason, you may need to change the country code to one you
want to associate with this currency symbol. For a full list of countries and their ISO country codes, see
http://www.chemie.fu-berlin.de/diverse/doc/ISO_3166.html.
If the symbol you need is not included in the list, you can create a custom currency symbol by pasting in
the ASCII character for the currency symbol and then choosing a corresponding country code from the
pull-down list of country codes.
CAUTION:
Applying different currency formats, such as displaying British pounds in one field and American
dollars in another, might result in unexpected results if you combine values using the formula
language or a scripting language.
Date/Time fields
Date/Time fields display time and date information in a variety of formats. You can define a date or time
field as editable by the user, or you can choose a computed option so the user cannot change the field
value.
Dates may range from 1/1/0001 through 12/31/9999. Entering two-digit years between 00 and 49
assumes the century starting in the year 2000. Entering two-digit years between 50 and 99 assumes the
century starting in the year 1900. If you want users to enter a four-digit year in the field, on the Control
tab of the Field Properties box, select On input Require user to enter four digit years.
Times may range from 00:00:00:00 through 23:59:59:59 in the 24hour format and from 12:00:00 AM
through 11:59:59 PM in the 12hour format.
To display a date
1. Select or create a Date/Time field.
2. On the Control tab, choose one of the following next to Use preferences from:
v User setting to use the preferences from the users workstation.
v Custom to customize the display.
121
Tip: If you are creating a custom Date/Time field, make sure to test your application with the user
preference Strict Date/Time Input checked and with it unchecked (File - Preferences - User
Preferences).
Also, if you are creating a custom Date/Time field, you may want to include field help text
(Advanced tab of the Field Properties box) to describe how the user should enter the date. You may
want to provide a brief example as part of the help text.
3. Check Display Date and then choose date options. As you select options, the sample will change to
show you what the user will see.
The following are the display date options:
Show:
v All
v Only month, day, and year
v Only weekday, month, and day
v Only month and year
v Only month and day
v Only year
v Only month
v Only day
v Only weekday
Special:
v Show today when appropriate
v Always show 4 digit year
v Show 4 digit year for the 21st century
Note that this setting takes precedence over 2-digit year formats chosen elsewhere in the Control
tab of the Field properties box.
v Show year only if not this year
Calendar:
v Gregorian calendar
v Hijri calendar
Format (appears if you selected Custom):
v YMDW - Year, month, day, weekday. For example, 98 12/17/Thu.
v WMDY - Weekday, month, day, year. For example, Thu 12/17/98.
v WDMY - Weekday, day, month, year. For example, Thu 17/12/98.
Separators (appears if you selected Custom):
v Enter the separators to use between the day, month, and year. For example, you can enter
backslashes (/) to present the date as 06/06/02.
Note that if you specify a comma as a date separator (for example: 11,15,98) then you must use a
semicolon if you are separating multiple dates in a list (for example: 11,15,98; 12,15,98; 1,15,99). If
you specify a semicolon as the date separator, then you must use a comma to separate multiple
values in the list.
Day, Month, Year, Weekday:
v Choose a format for the day, month, year, and weekday from the drop-down lists.
To display a time
1. Select or create a Date/Time field.
2. On the Control tab, choose one of the following from Use preferences from:
v User setting to use the preferences from the users workstation.
122
@Created
@Modified
@Accessed
Current date
Date
@Today
@Now
123
124
Names fields
Create a Names field to display user names. A Names field can be computed or editable. If you associate
the formula @UserName with a Names field, the name will appear the way it appears in Notes IDs -- for
example, Sara Ryan/Acme/US. If you enable online awareness for a Names field, users will see the
online status of Lotus Instant Messaging users listed in a Names field and can initiate an instant message
chat with an available user.
To display only the common name portion of names, use the [CN] parameters with @Name. For example,
in an editable names field called Members use this formula as the default value:
@Name([CN];Members)
This formula displays the name Sara Ryan if the users hierarchical name is Sara Ryan/Acme/US
For more information about formulas for displaying user names, see the formula language chapters in the
Domino Designer Programming Guide.
125
Lookup options
v Use Address dialog for choices -- This option displays the Names dialog box so users can select names
from a Personal Address Book or Domino Directory. Select Look up names as each character is
entered to help users fill in a name quickly. Notes looks up a match for the typed letters in the open
Address Book or directory.
v Use Access Control List for choices -- This option brings up a list of people, servers, groups, and roles
in the access control list.
v Use View dialog for choices -- This option brings up a dialog box containing entries from a column in
a database view. Select the database to look up, select a view, and select a column number.
For information on the access control list for a database, see the topic The database access control list
in the chapter Security in an application.
Tips
v You can use the same Contact List Group label for multiple fields on a document to build a group of
all the users listed in the fields. For example, you might want all of the users listed in the Reviewer
and Editor fields in a discussion application added to a single group named Project Team.
v Users can see the online status icons for names that you enable for online awareness if the User
Preference Show Instant Messaging Status is enabled for their client. If this preference is disabled, a
user will need to click a name to see if a user is available for chat.
126
Because these fields work with the overall Designer security model, they are described in the chapter
Security in an Application.
Allow
multivalues
Available
Available
Field Type
Usage
Dialog list
Checkbox
Available
Radio button
Not available
Listbox
Not available
Available
127
Field Type
Usage
Combobox
Allow values
not in this list
Allow
multivalues
Available
Not available
Description
Type a list of choices in the edit box. Select Sort to display the list in
alphanumeric order. Click the green check mark to save your entries.
Choices can contain letters, numbers, and all punctuation characters except
commas.
This option displays the Names dialog box so users can select names from
a Personal Address Book or Domino Directory. Click Look up names as
each character is entered to help users fill in a name quickly. Notes looks
up a match for the typed letters in the open Address Book or directory.
This option brings up a list of people, servers, groups, and roles in the
access control list for the database.
128
To retrieve information from Domino or non-Domino databases you can use @DbColumn and
@DbLookup formulas instead of using a View dialog lookup.
For more information on @DbColumn and @DbLookup, see the Domino Designer Programming Guide.
If you use aliases, the leftmost name is displayed in the document, but the rightmost name is stored
internally.
This can be confusing to users. To display the full names as category names, you must use a hidden field
or column formula that converts the aliases back to their full names. For example, the following is a
column formula for the view to convert the alias back to their full names for display in the categorized
column:
@If(RequestType="HW";"Hardware Request";RequestType="SW"; "Software Request";"Service Request");
129
Password fields
A Password field is a text field that maintains a users privacy by displaying each character a user enters
as an asterisk on the screen. The contents of the Password field are not secure, and the data is visible in
the Document Properties box from the Notes client. There are several ways to secure the contents of a
Password field. If you are using the Password field as a method for securing an application, the best way
to secure the contents of a Password field is not to save the contents after the entry is verified. This can
be done using a formula that clears the field once its been verified. You can use the input translation
event or a LotusScript QuerySave event.
130
Set db = session.CurrentDatabase
Set uidoc=Source
Set doc=source.Document
If doc.GetItemValue("Password")(0) <> "" Then
Set PkName = New NotesName(doc.GetItemValue("Author")(0))
Call doc.ReplaceItemValue("PublicEncryptionKeys", PkName.Abbreviated )
End If
Formula fields
Formula fields are used to populate a subscription list, which works in conjunction with the
Headlines.nsf database. The Headlines database is used as the home page of a Notes client. The
Headlines database includes a feature called subscriptions. Each database designer has the option
enabling a database for subscriptions. When a user subscribes to a database (by choosing Create Subscription), it triggers a server task that will notify the user whenever a document of interest is saved
in that particular database. The criteria that the server looks for is contained in a formula field on the
subscription form. Although users fill out the subscription form in the database they want to subscribe to,
the subscription documents are stored in users headlines databases (the default is headlines.nsf) on their
local client.
If you want to create a custom subscription form for your database you can start with the default
subscription form, named $Subscription, in the HEADLINES.NSF or HEADLINES.NTF database that is
included with Designer. First copy and paste the form into your database, then customize it. When you
customize a subscription form you must include the formula field. The formula field on the $Subscription
form is named $HLFormula and is on the second tab of the tabbed table on the right side of the form.
The $HLFormula field is a computed field. If you choose to keep the formula field computed, you write a
formula that resolves to a selection formula for a subscription list. A formula field must resolve to a
selection formula in order for the server to be able to retrieve the subscription criteria for the user.
Another option for the formula field is to choose Literalize fields on the Field Info tab of the Field
Property box. When you select the Literalize fields option, you are programming the formula field to
131
accept the formula you put in without compiling it. If you literalize a formula, the field references must
be: text, text list, number, number list, date, date range, or date list. If the field referenced is of any other
field type, it will be left out as a field reference.
The following is an example of a formula for a formula field for which Literalize is selected as an option:
Select (Names = ExampleNames) & (Numbers = ExampleNumbers) & (Categories = ExampleCategories) &
(Dates = ExampleDates)
Value
ExampleNames
ExampleNumbers
1: 2: 3
ExampleCategories
ExampleDates
[3/26/82]:[10/08/86]:[5/30/98]
If you choose the computed option, the formula you enter must resolve to another formula. This provides
the ability to optimize complicated formulas before they are saved. After the formula is evaluated, the
resulting formula is saved.
If the resulting formula is invalid, the field is saved with a value of type error. In some cases, the user
would never be able to exit out of the document. To differentiate between success and failure, you should
test in the QuerySave event to determine if the Formula field is indeed a formula. If it is not, then the
computation did not result in a valid formula.
For example, a computed formula field has the following formula:
tLitNames := "\"" + @Implode( ExampleNames; "\" : \"") + "\"";
tLitNumbers := @Implode( @Text(ExampleNumbers); " : ");
tLitCategories := "\"" + @Implode( ExampleCategories; "\" : \"") + "\"";
"Select (Names = " + tLitNames + ") & (Numbers = " + tLitNumbers + ") & (Categories = " +
tLitCategories + ")"
Value
ExampleNames
ExampleNumbers
1: 2: 3
ExampleCategories
Color fields
A color field lets you display a color picker on a form. When the user clicks the down arrow of a color
field, a color chart appears with two tabs. The user can choose a color using either tab.
132
v At the Notes/Web tab, the user can choose from a Lotus Notes color palette or a Web color palette.
Note that the Notes tab becomes the Web tab only if the user has enabled Use Web palette (File Preferences - User Preferences).
The RGB (Red, Green, Blue) value appears at the bottom of the palette for each color. If you are using
the Notes palette, the name of the color also appears.
v At the RGB tab, the user can either enter values from 0-255 for Red, Green, and Blue or can use the
RGB sliding arrows to choose a value from 0-255. The mixed color appears in the box to the right of
the RGB values. The user can also use the color matrix bars at the bottom of the pane to define a color.
Note that the user must be running in a color mode greater than 256 color to see the real color. If a user
enters an RGB not in the palette and the user is in 256 color mode, then the closest color in the palette
will be displayed for the RGB. The correct RGB will be stored and will appear correctly on systems with
greater than 256 colors.
The chosen color is stored in RGB hexadecimal format.
133
Formula calculates
Computed
A computed field formula calculates each time a user creates, saves, or refreshes
a document.
134
Input Enabled appears in the Object list of the Programmers Pane for all field types except rich text
and rich text lite.
@Failure prevents the user from saving the document until the user enters a value that meets the criteria.
As part of the formula, include text that clearly indicates what is wrong and how the user can correct it.
For information on writing formulas for fields, see the Domino Designer Programming Guide.
135
Property
Choose one
Width
Height
If you check Align controls baseline with paragraphs, the baseline of the characters in the field is
aligned with the baseline of the characters in the paragraph containing the field. This setting is especially
useful if you have no border around the field. The text in the borderless field will be on the same
baseline as the text in the paragraph containing the field.
136
Hiding fields
Use hidden fields to perform interim calculations or to store information you do not want users to see. In
the Designer templates, hidden fields appear at the bottom of forms, preceded by the heading Hidden
fields.
Hiding fields is not a security feature. Users can see the value of hidden fields on the Fields tab of the
Document Properties box in the Notes client. To keep the data fields safe, encrypt, rather than hide, the
fields.
Hiding options
When you hide a field, you are actually hiding the paragraph on the form that contains the field. If there
is text, such as a field label or graphics, in that paragraph, Designer hides them with the field. You can
hide a field and any associated text or graphic all the time or only at certain times. For example,
information useful only when users create or edit documents can be hidden during reading, printing, and
copying; information that is used for display, such as a computed field that displays the result of an
authors choice in an editable choice list field, can be hidden during editing.
The following are options for hiding fields:
v Hide paragraph from Notes 4.6 or later
Information is hidden when the application opens on a Notes 4.6 workstation.
v Hide paragraph from Web browsers
The information is hidden when the application opens on a Web browser.
v Mobile
The information is hidden for Mobile users.
If the paragraph is hidden when
Then
The hidden information isnt visible when users read documents in the
document preview pane.
The hidden information isnt visible when users open documents in Read
mode. A field that cant be read cant be printed either.
Printed
Embedded
To hide a field
If you have computed fields that users dont need to see, or if you create two fields -- one for display
when reading and one for use when editing -- you can stipulate when to hide the fields.
1. Select the field you want to hide.
2. Choose Design - Field Properties.
3. On the Hide tab, do one of the following:
137
v Select Hide paragraph when document is: and click all situations when users dont need to see
the field information.
v Select Hide paragraph if formula is true and write a formula in the formula window on the
Properties box to describe the situations when users dont need to see the fields.
For more information on using a formula to hide a paragraph, see the Domino Designer Programming
Guide.
Choosing Refresh fields when keywords change displays documents faster than the form property
Automatically refresh fields. It is useful for showing or hiding parts of the form when you have
hide-when formulas that are dependent on values in the field.
Examples
To make documents more readable, you decide to modify the Marketing Ideas form to show only the
model name for the product that the author selects.
The Models field is a radio button field that displays these choices for refrigerator models:
Econo-Freeze
Icebox 2000
InstaFreeze
Premium
The Chiller
You hide the Models field when previewed and opened for reading.
You create a computed text field called SelectedModel and locate it under the Models field.
SelectedModel uses the value from the Models field. You hide the SelectedModel field when opened for
editing.
Now when users create a new document, all model names are shown. When users read a document, they
see only the model name chosen by the author.
138
To resize a field
Placing a field in a layout region allows you to adjust the way field values appear or to limit the number
of characters users can enter in a field. To resize a field, drag the borders of the field.
The maxlength value defines the length of the text content a user can enter into the field. Keep the
maxlength value approximately 30 percent larger than the size value to enable a user to completely
fill a field with text.
4. Save the form.
139
For more information on Domino URL commands, see the appendix URL commands for Web
applications.
140
When Web users open the Company Profile document and click a button to create a Letter document, the
Letter is already filled in with the recipients name, address and the correct salutation.
For more information on creating a response hierarchy, see Creating a response hierarchy in the
chapter Designing Forms.
Field purpose
Body
ComposedDate
From
Subject
141
Contains
$$ViewBody
An embedded view.
$$ViewList
$$NavigatorBody
An embedded navigator.
$GroupScheduleRefreshMode
$GroupScheduleShowLegend
$ChargeRead
$ChargeWrite
Use
Categories
Categorizes documents.
$VersionOpt
FolderOptions
SecretEncryptionKeys
HTML
$$HTMLHead
$$Return
After Web users submit a document, Domino responds with the default
confirmation Form processed. To override the default response, add a
computed text field to the form, name it $$Return, and use HTML as the
computed value to create a customized confirmation.
142
Values
Comments
BlindCopyTo
CopyTo
DeliveryPriority
L, N, H
DeliveryReport
N, B, C, T
Encrypt
1, 0
MailFormat
B, E, M, T
MailOptions
1, 0
ReturnReceipt
1, 0
SaveOptions
1, 0
143
Values
Comments
SendTo
Sign
1, 0
Tip: If you write a LotusScript program that uses the Send method of the NotesDocument class or a
formula that uses @MailSend, you can include many of the above mailing options in the script or
formula.
For more information on using LotusScript, see the Domino Designer Programming Guide.
MailFormat
A computed MailFormat field can have one of the following values:
Value
Description
Encapsulated (E)
Text (Text)
The contents of the document are rendered as text and pasted into the body of the
cc:Mail memo. The cc:Mail recipient can read the document without using Notes. Since
the document is rendered as text, you do not need to store the form in the document.
Both (B)
The document is both rendered as text and encapsulated in a database. This ensures
that cc:Mail recipients can read the document even if they do not use Notes.
Mail (M)
The Body field of the document is rendered as text and pasted into the cc:Mail memo.
Use this format only with documents that were created using a form that contains a
field named Body.
MailOptions
The MailOptions field with a value of 1 overrides the property On Close: Present mail send dialog in
the Form Properties box. With a MailOptions field set to 1, users can click Yes to save the document, No
144
to close without saving, or Cancel to return to the document. To add the mail signing and encryption
options, create editable keywords fields named Sign and Encrypt.
SendTo
The Allow multi-values and Allow values not in list are useful for SendTo fields.
Type of tracking
No version tracking
New versions become responses if users choose File - Save As New Version when they save a
document
Prior versions become responses if users choose File - Save As New Version when they save a
document
New versions become siblings if users choose File - Save As New Version when they save a
document
145
3. For a computed field, select Value from the Objects tab of the Info List in the Programmers pane.
For an editable field, select Default value from the Objects tab of the Info List in the Programmers
pane.
4. Write a formula in the Script area of the Programmers pane.
The FolderOptions field must contain the value or default value 1 or 2.
1 (Prompts user to choose folder)
This value prompts the user with the Move to Folder dialog box. Selecting a folder and clicking
Add puts the new document in a folder. Selecting Cancel saves the document without putting it in a
folder.
2 (Save to current folder)
If the user is creating the document from an open folder, this value saves and adds the document to
that folder. If the user is not creating the document from a folder, the document is saved but not
added to a folder.
146
Creating a frameset
1. Open Designer and choose Create - Design - Frameset. The Create New Frameset dialog box appears.
2. At the Number of frames drop-down box, select two, three, or four frames. You can make
adjustments later.
3. Next to Arrangement, click one of the arrangements for the frames.
4. Click OK. The frameset with the chosen layout appears.
5. (Optional) Use the Frame action buttons, the Frame menu options, or keyboard keys to further refine
your frameset. You can:
v Save the frameset.
v Split the selected frame vertically by choosing Split into Columns (SHIFT+INSERT key).
v
v
v
v
Split the selected frame horizontally by choosing Split into Rows (INSERT key).
Delete the selected frame by choosing Delete Frame (CTRL+DELETE key).
Refresh the content of the selected frame by choosing Refresh Content.
Remove the content of the selected frame by choosing Remove Frame Content (DELETE key).
147
148
Make sure that each frame has a unique name. Using the same name for frames in different framesets
is not recommended. For example, if you have a frame named Banner in more than one frameset, you
may get unexpected results when you set it as a target frame.
Note that you should not use HTML predefined target names to name a frame ( _self, _top, _parent,
and _blank).
4. At the Type field of the Basics tab, choose one of the following ways to provide content for the frame:
v Link
Link requires that you paste in a link that youve already copied to the Clipboard. Click the Paste
icon to paste in the link. There are three kinds of links you can paste in from the Clipboard: View,
Document, or Anchor. (Database links are not supported in framesets.)
For more information on links, see the topic Creating Links in the chapter Designing Pages.
v Named Element
A named element is a design element that you have already created and named. A named element
can be a page, form, frameset, view, folder, or navigator.
Enter a value (for example, if you already created a page named PAGE1, enter it into the Value
field). Alternately, you can click one of the following icons:
v Formula icon (@) to use a formula that evaluates to a name.
v Paste icon to paste in a name which you previously copied to the Clipboard.
v Folder icon to open the Locate Object dialog box and select a design element from a list of
elements.
If you choose Named Element - View or Folder, several options appear:
v Show action bar displays the View action bar when the view or folder is loaded into the frame.
v Show header displays the column headings.
v Selection tracks mouse movement - as you move the mouse over the view, the view selects the
document the mouse is pointing to.
v Basic simple appearance - enables several miscellaneous options, including such options as showing
strike-through text when an item is marked for deletion, not allowing the scroll bar to be hidden,
not extending selection in the selection margin when the mouse moves, using a simple grid for
calendar views, and defaulting to a 1-day format for calendar views.
v If you want a view or folder on the Web, consider first embedding the view or folder on a page or
form. If you choose to make the embedded view an embedded view applet, you preserve much of
the HTML view functionality and provide features such as resizeable columns, multiple document
selection, and scrolling.
v URL
To put a Web page into a frame, choose URL and enter the full URL specification (for example,
http://www.lotus.com). You can also paste in a URL or use a formula that evaluates to a URL. You
receive an error in the frame if the URL you specify is not accessible. Note that all content rendered
in framesets in Designer uses the native Notes Web browser even if your current browser selection
is something else.
When you click a link in a Web page (in the Notes client or in a Web browser), the link may open
within the same Web page or in a new window, depending on the setting for that Web page.
5. (Optional) Enter the target frame for links activated within the current frame.
149
Property
Description
Choose relative, percent, or pixel to specify the frame width and height:
v Relative -- sizes the frame relative to the other frames in the frameset. For
example, a frame with no frames above or below it is automatically set to
relative and is the height of the frameset.
v Percent -- sizes the frame as a percentage of the frameset. A frame set to
50 Percent width is half the width of the frameset.
v Pixel -- sizes the frame exactly in pixels.
Note: If you change the width and height properties for one frame, the
width and height of adjacent frames will change; however, the properties of
adjacent frames are not automatically adjusted. Adjacent frame properties are
adjusted if you drag the borders.
Frame Border
tab
Scrolling
Choosing On forces a scroll bar for the frame; choosing Off causes no scroll
bar to appear. If you choose Auto, the scroll bar appears if it is needed. The
default is Auto.
Allow Resizing
Allow Resizing. If you choose Yes, you allow users in the Notes client or
Web browser to change the height and width of frames by dragging their
borders. If you choose No, users cannot drag borders to re-size the frame.
Checking this box causes the focus to be on this frame when the frameset is
launched in the Notes client. This feature works only with Lotus Domino
Designer 6 and later and is ignored by previous versions. If this property is
enabled for more than one frame in a frameset, the first frame found is
enabled. If this property in enabled on a frame that either has no content or
has content which cannot be found, there is no frame focus.
Border Style
(Applies to this
frame)
Border style
(Applies to all
borders in
frameset)
v Border width (in pixels). The default is 7 pixels. Checking Default means
that the frame displays according to the users browser settings. Each
browser renders design elements differently, so be sure to preview your
work in each browser if you are choosing this setting.
v Border color -- choose a color from the drop-down color chart. Click on
the system (monitor) icon at the top of the color chart to get the default
color. Click on the wheel icon at the top of the color chart to create a
custom color.
150
Tab
Property
Description
Border Caption
(Notes Client
Only)
Advanced tab
Frame Spacing
The default is minimal space between frames. You specify spacing between
frames in pixels. Checking Default means that the frame displays according
to the users browser settings. Each browser renders design elements
differently, so be sure to preview your work in each browser if you are
choosing this setting.
Margin Height and The default is minimal space between the frame border and the frame
Width
content. You specify height and width in pixels. Checking Default means
that the frame displays according to the users browser settings. Each
browser renders design elements differently, so be sure to preview your
work in each browser if you are choosing this setting. This property is not
supported in the Notes client.
151
If you have not specified a target frame anywhere in this hierarchy, the link opens in the frame that
contains the link. If you specify a target frame that does not exist, the link opens in a new, top-level
window.
Note that an embedded view and a view have the same level of precedence. Note also that if a frame
contains a page with an embedded view applet, then clicking a document in the embedded view applet
actually opens a new window which overwrites the original window.
For more information on specifying a target frame for an individual link or element, see the online help
for that elements properties box.
Note: Remember to specify a name in the Frame Properties box for any frame that is going to be a target
frame.
152
Note that you can select only framesets that are located in the same database as the view or folder on
which you are working. Make sure that you have already saved the frameset and given the frame a name
in the Frame Properties box.
153
154
Folders
Folders are containers used to store related documents or groupings of documents. Folders have the same
elements as views and are designed much the same way. For more information on designing folders, see
Notes Client Help.
155
To open a document in a standard view, Notes users double-click a row; Web users click a document link
in one of the columns.
A standard view on the Web maintains the column and row format of standard Notes views (unless you
use HTML formatting to customize a view), except that on the Web, a navigation bar on the top or
bottom of the screen contains buttons that users click to expand, collapse, and scroll the view.
156
On the Web, each time a user opens, scrolls, expands, or collapses a view, Domino converts the view to
an HTML page. Each snapshot of the view is a newly generated HTML page. The concept of a selected
document in a view in Notes does not apply to a view on the Web.
Calendar views
A calendar view groups and displays documents in a calendar format. Such views are useful for
organizing documents that keep track of schedules, meetings, and appointments.
When you create a calendar view, you can give users the option to display the calendar in a variety of
formats, such as Two-Day, Work-Week, Week, Two-Week, or Month. Calendar views also let users:
v Navigate among days, months, and years.
Chapter 8. Designing views
157
Shared views
Shared views are available to any user with at least Reader access to the database. Most views that you
design for databases are shared views. Users with Designer or Manager access can create shared views,
as can Editors for whom the manager has selected Create personal folders/views in the access control
list.
In addition to a basic shared view, you can create the following specific types of shared views:
v Shared, contains documents not in any folders
v Shared, contains deleted documents (used in conjunction with Allow soft deletions in the Advanced
tab of the Database Properties box)
v Shared, private on first use
v Shared, desktop private on first use (saves private views in users desktop.dsk files rather than in the
database)
158
assumes that the database manager has already selected Allow soft deletions at the Advanced tab of the
Database Properties box. The Allow soft deletions property keeps deleted documents in the database
for a set number of hours. The hours are set by the database manager in the Advanced tab of the
Database Properties box. After that time, the document is permanently deleted from the database.
Private views
Users can create private views to organize documents in personalized ways by choosing Create - View.
If a user has rights to create private folders/views in the database access control list, private views are
stored in the Notes database. If the user does not have the access control list right to create private
folders/views, the user can only create and save private views in the users personal workspace file
(desktop.dsk).
Private views are not supported on the Web.
159
To delete a view
1. Click Views in the Design pane.
2. Select the view you want to delete, either in the Design pane or in the Work pane.
3. Press the DEL key or choose Edit - Delete.
160
1. In Designer, open up the view or folder you want to use as a standard. You must use a shared view
or folder, not a private one.
2. Choose Design - View Properties.
3. Click the Options tab.
4. Select Default design for new folders and views.
Designing folders
Folders are containers used to store related documents or groupings of documents. Folders have the same
design elements as views. You can design folders in much the same way as views, using the Create Design - Folder command. The difference between folders and views is that views always have a
document selection formula that collects and displays documents automatically. A folder remains empty
until users or programs add documents to the folder.
Note that Web users cannot drag documents into folders.
For more information on folders, see Lotus Notes Help.
Naming tips
Keep these things in mind when naming views:
v The name is case-sensitive and can be any combination of characters, including letters, numbers,
spaces, and punctuation.
v The full name, including all aliases, can have up to 64 characters.
v Views appear in alphabetical order in the View menu in Notes and in the View lists on the Web. To
force names to appear in a different order, number or letter them. For example:
1. Zebra
2. Antelope
Note: Using an outline to organize views gives you greater control over the order in which views
display.
v If you start a name with a hyphen (-), the name appears before both numbers and letters.
v When possible, assign a name that indicates how the view sorts documents -- for example, By
Company Name or All by Category -- or specifies which documents it includes, for example, New
Customers.
v Use consistent names across databases to make it easier for users to recognize views.
Aliases
An alias is another name, or synonym, for a particular view or folder. Use an alias to change or translate
the view name without causing lookup formulas that reference the view to stop working if the view
name is changed. Aliases follow the same naming rules as view names.
Note: If you are designing a multilingual database, limit yourself to one alias per view.
Enter an alias in the Alias field of the Info tab of the View or Folder Properties box. You can append
more than one alias by entering the vertical bar symbol (|) followed by the alias. Make sure you keep the
original alias as the rightmost name.
Main View | Top View | View1
Chapter 8. Designing views
161
Hidden views
When you surround a name with parentheses -- for example, (All) -- the view does not appear to Notes
users in the Notes View menu or to Web users or Notes users in the list of folders and views.
CAUTION:
Users can see hidden views by holding CTRL+SHIFT while selecting View/GoTo. Hiding a view is
not a security measure, but simply a design option.
For other ways to hide views, see Hiding a view later in this chapter.
Shortcut keys
Windows users can type shortcut letters to select a view or folder. The default shortcut, an underlined
letter in a view name, is the first letter in the name that has not already been used by a preceding name
on the menu. But if views or folders begin with the same letter, the default shortcut is the first letter that
has not already been used by a preceding name. If views or folders begin with the same letter, the
shortcut letters may be difficult to see and remember. For example, the shortcut letters (underlined) for
these views are
By Author
By Date
You can rename the views or folders and omit the repeated word, but in some cases the word is needed
to make the names understandable.
Authors
Dates
If you cant change the names, you can specify a shortcut by typing an underscore before a letter to make
that letter the shortcut. For the By Date view, you can make the letter D the shortcut in this way:
By _Date
Cascading views
Creating cascading views lets you arrange lists of views in a hierarchy; that way, a group of related menu
items are organized under one item. A user clicks on the higher-level name to display the cascaded list.
You probably want to cascade views when you have long lists of views or when you have related views
that should be grouped together.
To create a cascading view, enter the name you want to appear on the Create menu followed by a
backslash (\), and then add the view name. For example, the Personal Address Book template has two
views related to servers:
Server\Certificates
Server\Connections
162
1.
2.
3.
4.
5.
6.
7.
8. Edit the properties of the inbox style and change the name to ($Inbox-xxx), where xxx is a unique
identifier.
163
Simple Search
Easy allows you to create a conditional document selection without knowing a programming language.
In the InfoList of the Programmers pane, click the Run list box and select Simple Search. Then click
Add Condition for each selection you want to include. To delete a condition, click it and choose Edit Delete.
Formula
Formula allows you to create a program for selecting documents using the @function formula language.
In the Programmers pane, click Formula and write the formula in the Script area.
164
Condition
Selection 1
Selection 2
By Author
is any of
is not any of
By Date
date created
is on
date modified
is after
is before
is not on
is in the last <n> days
is in the next <n> days
is older than <n> days
is after the next <n> days
is between
is not between
By Field
<field name>
contains
does not contain
is on
is after
is before
is not on
is in the last <n> days
is in the next <n> days
is older than <n> days
is after the next <n> days
is between
is not between
is equal to
is greater than
is less than
is not equal to
is between
is not between
By Form
<form name>
In folder
<folder name>
lets you fill out a form with field values to search for
165
Condition
Selection 1
Selection 2
Multiple words
For example, to select documents that have the field Research, use the formula:
SELECT @IsAvailable(Research)
By form name
The By Form condition works only with forms that are part of the database design, not with forms
stored in documents.
CAUTION:
If you add an alias to a form that is referred to in an existing view or folder selection formula, the
formula will not display documents created or edited after the alias is assigned. You can fix this by
modifying the selection formula to include the alias, for example, changing the selection formula
from:
Form = "MyFormName"
to:
Form = "MyFormName" | Form = "MyFormAlias"
166
If you are using the Simple Search feature to select the form you can resolve the problem in this way:
1. Open the view in Designer.
2. Inspect the View Selection formula in the Programmers pane.
3. Click the Add Condition button to reselect the form name to include the new alias.
4. Save the view to update the selection formula.
Tip: It is good design practice to assign an alias to a form at the time of creation to avoid this problem.
167
To use a shared column in a view, open the view and choose Create - Insert Shared Column or Create Append Shared Column. Select the shared column from the displayed list. Check the Use Formula Only
box if you want to override the shared column display properties, such as font and column alignment, in
the view. Leave the box unchecked to lock the display properties. The column programmatic name can
always be modified even if the Use Formula Only box is not checked, but you should change this name
only if it duplicates the programmatic name of another column in the view. You cannot modify the
column value (formula).
To see the names of the views using a shared column, select the shared column in Columns under Shared
Code and click Who is using this Shared Column.
To edit a shared column, double-click the Shared Column design element in Columns under Shared
Code. You can also edit a shared column by selecting it in a view and choosing Design - Edit Shared
Column.
When an existing shared column is edited and saved, all views containing the column are updated. These
views are resaved with the current user ID. Where Use Formula Only is checked, only the formula is
updated.
To delete a shared column, select the Shared Column design element. Press Delete or choose Edit Delete. When a shared column is deleted, the shared column is changed to an unshared column in all
views containing the column.
Shared columns may be used in DB2 Query views.
Shared columns, like shared fields, are not multilingual elements.
Omitting a title
If
v
v
v
v
v
you leave the title blank, the column doesnt have any identifying text. Omit a title if the column is:
A responses-only column that indents response documents
A categorizing column for grouping related documents
Hidden (and designers dont need any identifying text when the view is Designer)
Not relevant to users
A column for displaying icons
Note: If users will be customizing the view, you can assign a column title, make the column editable, and
click the option Do not display title in column header on the Column Styles properties box. This will
suppress the display of the title in the view but display the title when the user chooses View - Customize.
Guidelines
v Column titles can contain up to 80 characters in any combination of letters, numbers, and punctuation.
v To change the font, size, or color of a column title, choose styles from the Title tab of the Column
Properties box.
v To allow long titles to wrap to several lines in Notes, set the Lines per heading in the Style tab of the
View Properties box to a number greater than 1.
168
Note that long titles do not wrap on the Web. To prevent line wrap on the Web, specify 1 in the Lines
per heading setting in the View Properties box. Domino converts this setting to a NOWRAP HTML
attribute. Specifying a number greater than 1 causes lines to wrap on the Web. The same guidelines are
true for the Lines per row setting.
v The number of characters that fit on one line depends on the font and size you select, as well as the
width of the column. If a title is not set up to wrap to more than one line and the text is too long for
the width of the column, the text is truncated.
Description
Title
Width
Resizable
Allows a user to change the size of the column. Uncheck this if you want a
fixed-width column.
Turns off the display of main topics and displays responses only.
Multi-value separator
For any documents that display multiple values in the column, separates
each value with punctuation or a new line.
If you choose new line as a separator, make sure you adjust the number of
lines/row to accommodate the values or they will not all display.
Editable column
Allows users to edit or create documents from a view. The column value
must be an editable field for this option to be available.
For an example of this, see the calendar view in the R6 mail template. Users
can edit calendar entries without opening a document.
Do not display title in column header Use this option for suppressing the column title -- for example, when you
want a column to display icons. This also makes it easier for users to
customize columns that do not display titles. If you designate the column as
a resizable column, the title will display when the user chooses View Customize.
Show twistie when row is expandable Displays collapse and expand icons for a categorized view. In the Notes
client, you can supply your own image pair to create a customizable twistie.
For details on creating the images for customizable twisties, see
Customizing the expand and collapse icons.
169
Selections
Description
Display Date
All
If you do not want the entire date displayed, you can select a
subset of the date information. Deselect Display date if you
only want time information displayed.
None
Show today when
appropriate
month/day
month/year
month/day/year
Display Time
All
Hours, minutes, and seconds
hour:minute
hour:minute:second
All
170
Option name
Selections
Description
Time zone
Always show time zone displays the time zone where the
document was created. With this option, the creators time
zone is always shown. If a document is created in New York
at 3:00 PM, a user in Los Angeles sees the creation time as
3:00 PM EST. A user in New York also sees the creation time
as 3:00 PM EST.
Show only if zone not local displays the time zone where
the document was created only when the document is read by
someone in a different time zone. A document created in New
York at 3:00 PM displays to all users in the U.S. Eastern
standard time zone as 3:00 PM. Users in all other time zones
see the creation date as 3:00 PM EST.
171
3. Enter a column formula that evaluates to a name in the abbreviated form of the full hierarchical name
-- for example, Jill Patton/ACME/US. This name is required as a look-up value to retrieve a users
instant messaging status.
Note: Online status only displays for a single name displayed in a column. You can define a field to
accept multiple values, but if more than one name displays in a column, status icons do not display.
Tips
v Users can see the online status icons for names that you enable for online awareness if the User
Preference Show Instant Messaging Status is enabled for their client. If this preference is disabled, a
user will need to click a name to see if the user is available for chat.
v If you do not want to display the abbreviated hierarchical name in the column a user sees, you can
create a column that displays a users short name and link that column to a hidden column containing
the abbreviated hierarchical name using the hidden columns programmatic name. Using this
technique, the user sees the short name, but the lookup is done using the abbreviated hierarchical
name, reducing the likelihood of ambiguous names.
Note that because the formula evaluates when the view first displays, a hide-when formula that matches
a certain condition will fail if the condition is met subsequent to opening the view.
172
CAUTION:
Hide-when formulas are not a security measure. Users can still get information by viewing the
document properties. Use this feature as a method for controlling the display of information in a view.
Note: Because the ability to selectively hide a column based on a formula is new in Designer 6, columns
hidden in this way will display in earlier releases of the client unless you also check the option Hide in
Notes R5 or before.
173
Simple functions
Simple functions let you add programming without knowing a programming language. The default
selection for a new column is # in View, which numbers documents according to their internal sequence
(for example, 3.1.2).
Field
Field lets you populate the column with certain types of field values without writing a program. This
technique works with text, number and date fields.
Formula
Formula lets you create a program for a column using the @function formula language. This is useful
when you must process values in a document (such as changing field values to a text value) or calculate
a value. Typical uses for formulas include converting field data to a text value (because only text values
display in columns), writing a formula that displays an icon instead of a value, and adding text to field
values.
Click the Field button or the Simple Function button to paste fields, @functions, or @commands into the
formula. Always convert information to the data type that your formula expects. For example, to append
a numeric value to a text value in a column, use a formula like:
Product + ": " + @Text(Quantity)
Determining text, based on the form name: The Subject column in the All Documents view of the Mail
template uses the following formula. It displays a subject line based on the form the document was
created with.
@If(Form = "NonDelivery Report"; "DELIVERY FAILURE: " + FailureReason; Form = "Delivery Report";
"DELIVERED: " + Subject; Form = "Return Receipt"; "RECEIVED: " + Subject; Form =
"ReturnNonReceipt"; "NOT RECEIVED: " + Subject; Subject)
Combining text and dates: You can combine text and field values in a column in a scheduling database
to add an explanation about the documents. The formula below displays a text message and a date, with
two variations that depend on the value in the Sched field. The D1S0 part of the @Text formula is a
formatting option that removes clutter from the view by showing the month and day portion of the date
field only and omitting the exact time.
@If(Sched = "Special schedule"; "Special schedule for the week of: " + @Text(Date; "D1S0"); "My regular
schedule, as of " + @Text(@Modified; "D1S0"))
Combining text and names: The following formula results in three possible results, based on the status
of a request:
@If(Status=Rejected;Rejected by + LastApproveName; SignatureCount=0; Original
Request;Approved by + LastApproveName)
v If the request has been rejected, the column displays Rejected by and the name of the person who
last signed the form.
v If the request has no signatures (meaning that no approver has acted on the request), the column
displays Original Request.
174
v If the request has been approved, the column displays Approved by and the name of the person who
last signed the form.
Showing when a document was created: The Created column in the By Author view of the Document
Library template uses the following formula to display the date on which the document was created:
@Created
Expandable levels (variation on the simple function): The simple function Collapse/Expand (+/-) uses
@IsExpandable without any arguments. If you want to display a plus symbol (+) when a document has
responses, but suppress a minus symbol (-) when responses are expanded, use the formula:
@IsExpandable("+";"")
Displaying two field values in one column: To show peoples names and phone numbers together in
one column, create a column that is sorted in ascending order (the recommended order for alphabetical
listings). The following formula separates the two field values with a blank space:
Name + " " + Phone
Creating fake indenting: When Notes indents response documents, the indentation is always the
same. If you want to make a document in a flat view appear indented without using response
documents, or display document titles in the same column at different indentations, you can use a field
on the form to determine how much each document indents and use a column formula that appends
space characters to the document titles in the view. The following formula indents documents in three
different ways depending on the value in the Indent field. For example, if the value of the Indent field is
2, Notes prepends 18 space characters to the Subject of the document in the column.
@If(Indent = 1; @Repeat(" "; 12) + Subject; Indent = 2; @Repeat(" "; 18) + Subject; @Repeat(" "; 6) + Subject)
Numbering documents: In a By Author view, the following formula numbers (as in 1., 2., 3.) each of the
documents within each authors category:
@IsCategory("";@DocNumber("") + ". ")
If the row is a category (the authors name), @IsCategory returns a null string (). If the row isnt a
category, then the row represents a document, and @DocNumber returns a string that represents the
entry number of the document. The documents full entry number is something like 1.1, 1.2, 1.3, and so
on, but when used with the null string (), @DocNumber returns the rightmost component of the entry
number. The formula then adds a period and a space . after the number.
Setting column colors programmatically: In Notes client applications, you can set a columns
background color and text color programmatically by selecting the Use value as color option on the
Info tab of the Column Properties box and then supplying RGB coordinates in the Programmers pane as
the value for the column.
Note: This feature is supported on the Web, but you must supply the RGB coordinates of the color as a
number list (e.g. 255:0:255). Text color values (e.g. FF00FF) are not supported.
If you specify one set of coordinates (three numbers separated by colons), the color defines the
appearance of the text. If you specify two sets of coordinates (six numbers separated by colons), the first
set of coordinates defines the background color for the column, and the second set of coordinates
specifies the text color. The color affects the column where you set the color value and all columns to the
right of that until another color is set.
Note: Setting colors to -1:-1:-1 reverts to the view and column properties.
For example, the following formula example shows how RGB coordinates can be used in both single and
paired sets.
175
red := 255:0:0;
blue := 0:0:255;
yellow := 255:255:0;
pink := 255:193:253;
white := 255:255:255;
black := 1:1:1;
apricot := 255:155:133;
plain:= 0:0:0;
@If (category = "cats";blue:red ;subcategory = "collars";pink;subcategory
="leashes";black:plain;0:0:0);
Note: You do not need to define the color names -- you can enter the numeric combinations directly into
a formula. However, defining the colors makes it easier to see what you are doing and reduces the
possibility of a typing error if you are using the same color more than once. While defining the colors
makes it easier for you to use words rather than number combinations, the color column sets does not
display the data itself. To display the category cats in red, for example, you would need a subsequent
column that is set to display the category.
You can also set the column value equal to a field value that supplies RGB coordinates. You can use this
feature in conjunction with the color field to allow a user to set a color with a color picker. You can then
apply that color to a view component -- for example to the text in a column. For information on using
this feature to make view colors customizable, see Allowing users to set colors in a view.
Description
Attachment Lengths
Attachment Names
Attachments
Author(s) (Distinguished
Name)
176
Example
Function name
Description
Collapse/Expand (+/-)
Creation Date
Last Modified
Size (bytes)
# in View
# of Responses
(1 Level)
Example
177
Function name
Description
# of Responses
(All Levels)
Example
Use 0 as the false case when you want to leave the column blank. The formula above returns 0 when
the document has no attachments, so nothing is displayed. A column can display multiple icons, so in
this example you might replace the 0 with a different icon value, or use nested If statements to establish
conditions for displaying various icons. A column can display up to 10 different icons. All of the icons
must be predefined icons. Domino cannot display predefined icons and custom icons in the same column.
An image resource can be a GIF, BMP, or JPEG graphic. The recommended size for a column icon is .2
inches wide and .18 inches high. For information on creating an image resource, see Creating an Image
Resource.
A column that displays icons cant display anything else, such as a plus (+) sign for an expandable
categories column. Also, a column can only display one type of icon -- either a predefined column icon or
a custom icon, but not both.
Note: Icons are accessible to vision-impaired users who use screen reader software. The software reads
the string names of the icons. Custom icons display on both the Notes client and Web client.
178
179
v Accented letters
v Punctuation/special characters
Case-sensitive and accent-sensitive sorting rules for Release 5 and greater differ from sorting rules in
previous releases in the following ways:
v Both case-sensitive sorting and accent-sensitive sorting are turned off by default (in previous releases,
they were on by default).
v Case-sensitive sorting sorts lowercase letters before uppercase letters -- for example, ab sorts before
Aa.
v Accent-sensitive sorting sorts accented characters after non-accented characters. For example, ab
sorts before a.
To list multiple entries from a document together, you must sort a column to the left. In this example,
sorting the Author column creates the following display:
And finally, to streamline the display, you can categorize the Authors column to produce the following:
180
User-sorted columns
Users see a triangle next to a column title whose values can be resorted. Users click the column and
choose a sorting method to see the documents in the order they choose.
To set up a user-sorted column, select the option Click on column header to sort on the Sorting tab of
the Column Properties box. Then select Ascending or Descending order, or select Both to allow users to
cycle among ascending sort order, descending sort order, and no sort order for the column.
Auto-sorted columns
To set up automatic sorting, select the option Sort: Ascending or Sort: Descending on the Sorting tab
of the Column Properties box. The sorting column is usually one that appears on the left side of the view.
181
You want the By Priority view to sort documents by the value in the Priority field, but you dont want
them to appear in ordinary alphabetical order (High, Low, Medium, Urgent). You want users to see
Urgent-priority documents at the top of the view, High-priority documents next, and so on.
You create a column that:
v Is hidden
v (Optional) Has no title
v (Optional) Is one character wide
v Uses this formula to determine the order of each priority:
@If(Priority="Urgent";"1";Priority="High";"2";Priority="Medium";"3";"4")
182
183
Option name
Description
Body
Choose a color for the view background. To set alternate colors for rows in a view,
choose an Alternate rows color.
Use Image option to specify an image resource as a view background for Notes client
users. Choose one of the Repeat options to display a single copy of the image or to
tile multiple copies of the image for the view background.
Can also specify a formula for displaying an image based on a certain condition. The
formula evaluates when the view first displays. Avoid using an animated GIF file.
Grid
Specify a grid style for the view. Use Color option to set a color for the grid lines.
Note: Non-resizable columns and response only columns do not display gridlines.
Categorized views, views with flat headings, and views with simple headings only
display horizontal gridlines.
Header
Shows a bar at the top of the view with column titles in a beveled, flat, or simple look.
Beveled--background is gray; Simple--background matches view color. Use the Color
options to set a color for the header. Use the Height option to set a header height from
one to five lines to specify how many lines a column title can wrap. Useful for long
column titles or instructions placed in a column title.
Rows
Specify how many lines a column can contain. Increase this value if you are using
newline to separate multiple values in a view. Shrink rows to content and setting a
color for alternate rows are useful accompaniments to multi-line rows. Row spacing
sets the vertical space between rows in a view. Default is single-spaced rows.
Dont show categories suppresses the display of categories with no documents.
Colorize view icons colors the pre-defined Domino view icons to match the header
color.
Color options let you set colors for unread documents and for column totals. Red is
used in Domino templates for unread documents. Since Bold does not display in R5
clients, you can specify an Unread color and check the Transparent option so that R5
users will see unread rows in a color while Notes Release 6 and later users see unread
rows as bold.
Other
Shows the document selection margin. Deselect for cleaner-looking rows. If you deselect
Show selection margin, users can still select documents by pressing and holding
SHIFT as they click document names. The selection margin appears temporarily while
documents are selected, and hides again when all documents are deselected.
Hide selection margin border turns off the border separating columns.
Extend last column to window width fills out the last column to avoid empty space in
the view. This makes view easier to read.
Margin
Sets margins for a view in pixels (1 to 100.) If you deselect Show selection margin,
users can still select documents by pressing and holding SHIFT as they click document
names. The selection margin appears temporarily while documents are selected, and
hides again when all documents are deselected.
Use Color to set a color for the view margin. Useful for off-setting a view with a
contrasting background color.
184
185
Refreshing a view
The On Refresh options let you specify what a user sees when a view is refreshed. For more information,
see Refreshing view indexes.
To categorize a view
1. Create a column to display categories.
2. Select the option Type: Categorized on the Sorting tab of the Column Properties box. Choose a sort
order of Ascending or descending. (Ascending order organizes the categories in alphabetical order
and descending order in reverse alphabetical order.)
186
The resulting column, called a categorized column, groups documents with matching values and
converts the common value to a category name. The column is usually one that appears on the left
side of the view. This column must always appear to the left of any sorted columns.
Other options include:
v (Recommended) At the Font tab of the Column Properties box, choose a different color for column text
and use bold face to make categories stand out.
v (Recommended) At the Column Info tab of the Column Properties box, select Show twistie when row
is expandable to display a triangle that users click to see categorized documents.
v (Optional) At the Options tab of the View Properties box, select Collapse all when database is first
opened to show only the category names when users open the view.
v (Optional) At the Style tab of the View Properties box, select Dont show empty categories so that
categories without documents are not listed.
187
188
v Show response documents in a hierarchy is selected in the Options tab of the View Properties box
and the document selection formula uses SELECT @All or contains a formula that allows response
documents to be included, such as:
SELECT Form = Action Item | @IsResponseDoc
v The view has a responses-only column. Create the responses column directly to the left of the column
under which responses are to be indented. Leave its title blank, make its width 1, and select Show
responses only in the Column Info tab of the Column Properties box. Write a column formula that
displays information about the response documents shown in the column, such as their authors or
creation dates.
Tip: You should create only one response column in a view.
"
If the response uses an Exit form, the response row might look like this:
Exit Form, mailed to employee 08/26/97
If the response uses a New Hire Information form, the response row might look like this:
New Hire Information, not yet mailed
If the document is a main document, the column displays the contents of the Subject field, the author
name, and the number of response and response-to-response documents. If there is one response, the
column displays response. Otherwise, it displays responses. Main document rows might look like this:
Need Help with Trade Show (Indy Montoya, 1 response)
Changing the Product Name (Sandy Braun, 2 responses)
Chapter 8. Designing views
189
Default views
A default view is the view users see when they open the database for the first time. Each database has a
default view, which appears with an * (asterisk) in the Views list.
The default view typically has unrestricted access and contains all documents in the database, sorted by
category, by date, or by author. In the Designer templates, the default view usually includes all
documents in chronological order and shows main documents associated with responses or supporting
documents.
To specify the default view, use the option Default when database is first opened in the Options tab of
the View Properties box.
190
Usage Notes
v InViewEdit events will work for embedded views as long as the Selection tracks mouse movement is
not checked on the Display tab of the Embedded View Properties box. InViewEdit events are not
triggered in an embedded view if this feature is enabled.
v This feature is not supported in views from another database that are embedded in a rich text field.
For example, trying to create or edit a document in a view from a discussion database embedded in a
mail message results in an error.
v The InViewEdit event works for folders as well as for views. However, if a user presses Ctrl-Click to
create a new document in a folder, the new document is created, but is not put into the folder. Instead,
it will appear in views for which it meets the selection criteria. As with other cases, the document must
be explicitly dragged, moved, or added to the folder.
Note: Users will be prompted to Ctrl-Click to create a document when there is at least one document
already in the view. If the Ctrl-Click line on a view is not entirely visible, and there is no vertical
scrollbar to scroll down further, users can press Ctrl-End to make it more visible.
Select the view from which users can create new documents.
Choose Design - View Properties.
Check Create new documents at view level on the Info tab (i) of the View Properties box.
Click the Inviewedit event in the View objects list in the Programmers pane.
5. Enter code to create the new document, set the form value and to check and validate entries for the
new document, as described in the programming topic InViewEdit event.
Coding notes
v There is only one InViewEdit event per view. The event is called multiple times for each edit and uses
a parameter called RequestType to determine whether Notes should be providing default information,
validating data, or saving changes to documents in the view.
v More than one column can be marked as user-editable.
Chapter 8. Designing views
191
v Use the programmatic name as set in the Advanced tab of the Column Properties box as the name of
the field that gets updated when the column is edited. This will make coding the InViewEdit event
easier to identify the column you are marking as editable.
v Code the RequestType parameter with a value of 4 to handle document creation.
For a complete description of how to code the InViewEdit event, see the Lotus Domino Designer
Programming Guide.
3.
4.
5.
6.
Note: If you want the user to be able to set both a text color and a highlight color, you will need two
color fields, and the $3 field will need to combine the two colors.
For information on creating a color field, see Color fields in the chapter Designing Fields. For
information on the programmatic name for a column, see Adding programming to columns in this
chapter.
Select the view column you want to make customizable and choose Design - Column properties.
On the Column Info tab, check Use value as color and User defined.
In the field next to User defined, enter the name of the profile form.
In the programming pane, choose Formula as the column value and enter a valid formula, such as
@UserName, as the column formula.
192
193
The first column of a calendar view defines the Date/Time the entry will display and should be
hidden.
5. In the Programmers pane, choose one of the following and enter a value for the first column that will
evaluate to both a date and time:
v Simple function - Select a value from the list that evaluates to a date and time -- for example,
creation date.
v Field - This displays a list of all the fields in the database. Select a date/time field from the form
you will use with the calendar view.
v Formula - Write a formula in the Programmers pane that evaluates to a date and time.
6. Open the Column properties box and click the Sorting tab. Choose the sort option Ascending.
Note: If you have a field on your form that allows multiple values, and you want each value to
display as separate entries in the calendar view, select the column sorting option Show multiple
values as separate entries for the first column. For example, the Mail template uses this technique for
displaying repeating events. Otherwise, the entries display under the first matching date only.
7. Click the Date and Time tab of the Column properties box and check the Display Date and Display
Time options.
Tip: The column settings for this column allow you to specify Always show time zone, but this
setting (along with the other column display settings) is not used by the calendar display. If you want
the time zone to always be displayed, add another (visible) column to the view and put the time zone
information in that column.
8. Create a second column or click the second column of the existing view. The second column must
map to a field or formula on the document that specifies, in minutes, the duration of the event and it
should be hidden. In the Column properties box, select Hide column.
9. Create a view selection formula that will select the documents to be displayed -- for example,
_Calendar Entry.
194
12:00pm
Appointment 1 12:00pm
Appointment 1
Apppointment 2 12:00pm
Appointment 2
Appointment 3 1:00pm
1:00pm
Appointment 3
Description
Body
Choose a color for the view background and the grid lines.
Use Image option to specify an image resource as a view background for Notes client
users. Choose one of the Repeat options to display a single copy of the image or to
tile multiple copies of the image for the view background.
Can also specify a formula for displaying an image based on a certain condition. The
formula evaluates when the view first displays. Avoid using an animated GIF file.
Header
Specify the type of header you want for the calendar view. Choose None for no
header, Plain for simple labels with lines between them, or Tabs for a tabbed display.
Use the Background option to set a color for the header. The Display list lets you
choose what header components to display. Note that you can now display the Trash
and All documents folder using this control.
Date area
Choose colors for the calendar background, the ToDo area, and for todays date. Check
the large numbers options if you want a DayPlanner look for your calendar view.
Daily
When looking at a daily page, you can highlight work hours with one color and
non-work hours with another.
Monthly
When the calendar is displayed in 31-day format, sets the background and text color for
days that start a new month.
195
Option name
Description
Entry
Choose a background color for entries and a color for unread entries. Red is used in
Domino templates for unread documents. Specify how many lines an entry can contain.
Increase this value of Height (lines) if you are using newline to separate multiple
values in an entry. Shrink rows to content automatically suppresses extra blank lines
and Spacing sets the vertical space between rows in a view. Show conflict marks
displays a conflict bar when two or more entries overlap or conflict in a calendar view.
Unread transparent provides backwards compatibility for R5.x users who will not see
unread marks in bold if Bold is checked. Instead, they will see them in a color you
specify if Unread Transparent is checked.
Other
Shows the document selection margin. Deselect for a cleaner-looking view. If you
deselect Show selection margin, users can still select documents by pressing and
holding SHIFT as they click calendar entries. The selection margin appears temporarily
while documents are selected, and hides again when all documents are deselected.
Extend last column to window width fills out the last column to avoid empty space in
the view. This makes the view easier to read.
Margin
Sets margins for a view in pixels (1 to 100). If you deselect Show selection margin,
users can still select documents by pressing and holding SHIFT as they click document
names. The selection margin appears temporarily while documents are selected, and
hides again when all documents are deselected.
Use Color to set a color for the view margin. Useful for off-setting a view with a
contrasting background color.
196
Tips
v To delete an embedded view or folder pane, click the embedded view or folder pane in the Work pane
and choose Edit - Delete.
v Domino prevents the view opening if there are create or read access lists on a form in which views are
embedded.
v For compatibility with previous releases, the reserved fields $$ViewBody and $$ViewList still work on
forms.
Chapter 8. Designing views
197
v When you embed a calendar view, the embedded view property Disable scrollbars has no effect.
Scrollbars for calendars always display -- the horizontal scrollbar is used to change dates, and the
vertical arrows appear if there are too many entries to fit the vertical space.
v If you are embedding a calendar view, make sure the embedded view has enough height to display as
much of the calendar as you want displayed. The user will not have a vertical scroll bar to move lower
in the view. Also, if the embedded view is too short, the bottom footer indicating which week/month
of the year is being shown will not display.
v After embedding a view, you can change the view by clicking the Formula button in the Programmers
pane, then clicking the View button. You will see a list of views from the database where the original
embedded view came from. For example, if you embed the Inbox view from your mail database, then
you want to change the view, your choices are limited to the other views in the mail database. To
embed a view from a different database, you must first delete the embedded view and embed the view
you want.
v You can display a discussion thread in an embedded view from another embedded view (see the Notes
mail template for an example). Then, when a user opens the page or document, both views launch,
displaying the current document and the associated thread.
To do this, create an embedded view with threads on a page or form and assign it a name in the
Embedded View. Check the Show only current threads option on the Embedded View Properties box.
Then, create another embedded view on the page, form, or document, and in the Single Click target
field on the Embedded View Properties box for the second view, enter the name of the first embedded
view.
198
in the embedded view. For example, if you check the Show Single Category box for a category named
Kitchen, the embedded view will not have a line named Kitchen. Instead, you will see under Kitchen
documents such as Stove, Refrigerator, and so on.
Also, if the Show Single Category formula evaluates to an asterisk (*), all categories are shown. This is
useful if, for example, you want to restrict an embedded view to a single category for Web users and
show all categories for Notes users.
1. Open a form in Designer.
2. Choose Create - Embedded Element - View. The Insert Embedded View dialog box appears.
3. Highlight the view you want and click OK.
4. Choose Show Single Category as the event in the object list in the Programmers pane.
5. Enter a formula to compute the category. The formula can make use of information about the current
user and information from the current document (the one embedding the view).
Note: You cannot use @Commands with Show Single Category.
Embedded view or $$ViewBody field. Associates the form with a specific view.
The form name includes viewname, which is the alias for the view or when no
alias exists, the name of the view.
$$NavigatorTemplate for
navigatorname
199
Form name
$$ViewTemplateDefault
$$NavigatorTemplateDefault
200
201
Collapse and expand views without the browser regenerating the page
Select multiple documents
Scroll vertically to view additional documents in the view
Press F9 to refresh the view
Press DEL to mark documents for deletion from the database
Place the cursor where you want the embedded view to display.
Choose Create - Embedded element - View and select the view you want to embed.
Choose Element - View Properties to open the properties box.
Click the Info tab. In the Web Access field, specify whether this view should display as an applet by
choosing one of the following:
Using Java Applet indicates that the view applet is used in this embedded view regardless of the
views setting.
Using HTMLindicates that the view applet is not used regardless of the views setting.
Using Views display property indicates the views settings are used for this embedded view.
Description
ViewCollapse
ViewExpand
ViewCollapseAll
ViewExpandAll
ViewRefreshFields
Refreshes view
Upon refresh, the view applet does not delete documents marked for deletion.
MoveToTrash
202
@command
Description
EmptyTrash
Folder
RemoveFromFolder
Hiding a view
Designer includes several ways to hide a view from users.
203
Hiding a view from Web clients is useful when you have a Notes-only view, or when you want to
remove the view from the folders pane and the Open Database Views list.
v Give the view a name and surround it with parentheses -- for example, (All).
204
v Refresh display
Refreshes the display automatically before showing the view to users.
v Refresh display from top row
Updates the view from the top down. This is useful in a reverse chronological display where users are
likely to look for changes at the top of the view first.
v Refresh display from bottom row
Updates the view from the bottom up. This is useful in a chronological display where users are likely
to look for changes at the bottom of the view first.
205
To add a trash folder to an application, create a new folder and assign it the name ($trash). You then
need to write code for the folder events to handle the document deletions. For an example of how to
program the events for the $Trash folder, see the Notes Release 6 mail template (mail6.ntf).
Example of programming a $Trash file
The following examples are taken from the $Trash folder in the Notes Release 6 mail file:
Events
In the QueryRecalc event, the formula is:
@Command([MoveToTrash])
The Restore action uses the following code:
@Command([MoveToTrash])
{for Web}
@Command([ToolsRunMacro];"(Restore Document)")
{for Client}
The agent for the restore action uses the following code:
@Command([EditRestoreDocument]);
@All
Delete
@Command([MoveToTrash])
{for Web}
Empty Trash
@Command([EmptyTrash])
206
the user with an action programmed to un-delete documents and restore them to the database. In the
Notes client, you can program the action with the formula @UndeleteDocument. In the Notes client, the
Remove from Trash action in the Trash folder restores deleted mail messages.
A user can permanently delete documents from the Trash folder by selecting one or more documents and
choosing Edit - Delete or by pressing the DEL key. You could also provide an action that uses the
@HardDeleteDocument command to permanently remove documents from the Trash folder. For an
example of this, see the Empty Trash action in the Trash folder.
Form more information on the @UndeleteDocument and @HardDeleteDocument commands, see the Lotus
Domino Programming Guide.
207
v If the query is based on federated, or non-Domino data, you cannot perform a Note Open of the Notes
view, as the view data does not correspond to data in a note.
v If the query view references Domino data through a DB2 Access View and selects the noteID from the
DAV, you can open the note.
v A query can be composed dynamically in the Notes client application by using the @prompt.
Action
View name
208
Field
Action
View type
If you want the view to appear at the top level in the list of views, do not select
anything in this field. Otherwise, click the name of the view under which you
want the new view to appear.
Selection conditions
4. Click Query Window. Type your SQL query in the Edit SQL Query Formula dialog box. Make sure
the query is contained in quotes. For example:
"Select * from acmedb1.dav1"
where acmedb1 is the schema name of the DB2 table/view and dav1 is the name of the DAV that
contains the information you want to query.
Note: You can determine the schema name for your query (which is usually the same as the DB2
enabled Notes database filename) from DB2. Issue the query by selecting nsfschema from the Domino
Catalog, where the filepath = myfile.nsf (substitute the name of your Notes database for myfile.nsf.)
This file name is relative to the data directory. You need to have Read access to the catalog.
If you delete a DB2 enabled Notes database and create a new one with the same name, Domino will
reuse the same schema name if possible. However, if this is not possible, Domino may add a number
to the schema name. For example, if acme.nsf is deleted, and a new acme.nsf is created, the fully
qualified name of the DAV for the new database may change from acme.dav, for example, to
acme2.dav in DB2.
The new @function @DB2Schema can be used in a Query View SQL query to eliminate the guess
work of the actual DB2 schema name being used. See the topic @DB2Schema for more details on this
new function.
5. (Optional) Click Functions to obtain a list of functions to copy and paste into your query.
6. When you are finished, click Done.
7. Click Save and Customize. This opens the Designer View workpane. From here, you may continue to
customize your view.
Note: You can specify the maximum number of rows returned by an SQL query in View Properties.
However, there is also a row limit set by the administrator at the server level, so you should know this
limit prior to setting up any query views. As a designer, you can still set a row limit (in the View
Properties) less than that set at the server. The default limit is 500 rows.
Note: DB2 column names that have disallowed Notes field name characteristics (for example, columns
starting with a digit) are reported when the query is run. You will get the following Designer error
dialog:
Field names must begin with a letter or the symbols _ and $ and . The rest of the name may contain the
letters A-Z, the digits 0-9, or the symbols _ and $ and . Spaces are not allowed.
and the console will report something like:
05/02/2005 10:25:57 AM
209
Additionally, the #UNID and #MODIFIED fields are not created. However, you will not get an invalid
field name warning in these cases.
If you want to use the values returned by any of these invalid columns, use the AS syntax in the Query
Views SQL formula to rename them.
Where updated
Notes data
Federated
In DB2
210
However, having to do this each time a schema name is needed can be inconvenient.
Moreover, if the DB2 enabled Notes database is copied using File - Database - Copy, the new copy still
refers to the original databases Domino tables. So any query views executed against these DB2 enabled
Notes databases would refer to the original table source.
A quicker and easier way to determine the schema name of a DB2 enabled Notes database is to use the @
function @DB2Schema, which, when used in a query formula, returns the name of the DB2 schema for a
specified DB2 enabled Notes database. In query views, @ functions may be incorporated in the
construction of the query formula, the evaluation of which results in a text string. All contexts in which
an @function may be used are supported. This includes view selection formulas and column formulas.
A sample query formula using @DB2Schema:
SELECT firstname, lastname FROM " + @DB2Schema( @DbName ) + ".dav1
Note: Use of @DB2Schema in, for example, column names causes @ERRORs if the user has replicated to
a native Notes database. Proper handling of errors via @IF, or other means, is recommended.
@IsDB2
The @IsDB2 function accepts a text argument representing the path, with the same rules that govern the
use of @DB2Schema. It returns either TRUE, meaning the DB2 enabled Notes database is stored in DB2,
or FALSE, meaning it is stored in native NSF format (or that the nature of source database cannot be
determined).
211
212
Outlines
Outlines, like imagemaps and navigators, provide a way for users to navigate through an application.
Unlike imagemaps or navigators, outlines let you maintain a navigational structure in only one place. As
your site or application changes, you make only one change in the source outline. Each navigational
structure that uses that outline source is dynamically updated.
You can create an outline that lets users navigate to the views and folders in your database, perform
actions, or link to other elements or URLs outside of your application. You can create an outline that
navigates through your entire application or site or through part of it.
Important features of outlines include:
v Outlines allow great flexibility of design. You can order how items appear and create different levels of
hierarchy, and you can use framesets to include multiple outlines that launch links in target frames.
v Outlines are customizable. You can control how the outline appears to users by changing text and
button styles and adding icons from your databases shared resources.
v Outline entries are fully programmable. You can add logic that controls how outline entries are
rendered by the Notes client or Web browser.
Once you create the source outline, you embed it on a page or form to create an outline control, which
displays the outline to users as a site map or navigational structure. Users can click on the outline entries
to take them where you want them to go.
213
Creating an outline
You can create a new outline or generate a default outline.
If you are using the outline to plan your application, you can create the outline entries prior to designing
the actual design elements. Begin by creating a new outline and then adding entries for each element you
plan to include in your application. You can include outline entries for any element that will be part of
your application or site, such as jumps to pages, documents, views, folders, Web pages, or other Domino
databases. Outline entries represent each piece or planned piece of your application or navigation
structure. Outline entries can also be clickable actions, or can be top-level categories that organize other
entries. You can also choose what icons display with the entry. You can organize your application into
units and create multiple outlines to represent the different portions of your application.
If you have already created all of your design elements or are working with a database created from a
template, you can begin by creating a default outline and customizing it.
214
3.
4.
5.
6.
Note: You can also cut and paste outline entries from other outlines.
In the Outline Entry Properties box, enter the label you want to appear in the outline, for example,
Home Page or Main View.
In the Outline Entry Properties box, type the popup text that you want to appear. Popup text appears
if the window is not wide enough to display the entire label and the user moves the mouse over the
outline entry.
(Optional) Specify an alias for the outline entry.
Specify a type for the element in the Content field. Types include:
v None - use this to create a top-level category for nesting entries.
v Action - choose this if you want the outline entry to perform an action such as open or create a
document. To enter an action, click the @ button, and enter a formula using the formula language.
v Link - such as to an anchor, document, view, or database link.
v Named element - such as a Page, Form, or View.
If you are creating a link to a named element that does not exist, Designer displays a prompt
saying that you will need to create the element later.
v URL.
7. (Optional) In the Value field, specify or paste in a value that corresponds to the Type that you have
chosen (for example, paste in a URL, if you have chosen Link; a formula, if you have chosen Action).
If you paste in a URL link, make sure the entire URL, including protocol, is available. For example
http://www.lotus.com.
8. (Optional) In the Frame field, specify the target frame where you want the action or link to be
displayed.
If you have not yet created a frameset, you can either enter the name you are planning to use in your
frameset or you can add this entry later, after you have created your frameset.
After you have created outline entries for the elements that you are including in your application, you
can reorder the elements or create a hierarchy that structures your content. The order of the outline
entries in the outline will be reflected in the embedded outline control.
215
Embedding an outline
To use an outline as a navigational device, it must be embedded on a form, page, or rich text field of a
document. Whether you choose to embed your outline on a form, page, or document will depend on
how you want to use it. You can embed the outline on a form so that each document created from that
form includes the embedded outline. The outline then presents an easy way for users to navigate to other
views, create a new document, move to the next document, and so on. For example, in a Discussion
database, you can embed the outline on the Main Topic form. When a user creates a document with that
form, the outline appears on the document.
You might want outlines or outline entries to appear under certain circumstances or for only certain
kinds of users. Using the Programmers pane gives you greater flexibility in planning and designing your
outlines. For example, you can supply different outlines to Notes or Web browser users; or you can limit
access to outline entries based on users in different organizations such as sales or manufacturing.
The most common way to use an outline is to embed the outline on a page and use it as part of a
frameset. Embed the outline on multiple pages if you need to have several occurrences of the same
outline with different styles (for example, one outline with only text, another with graphical buttons).
If you want several navigational structures in one application you can do one of two things. You can
create one outline and embed it several times on different pages, or you can create several different
outlines and embed each on different pages.
Description
Outline properties
216
Property
Description
217
A named element is a design element that you have already created and named. A named element
can be a page, form, frameset, view, folder, or navigator.
v URL
To put a Web page into an outline entry, choose URL.
2. In the Value field, type a value for the element type you have chosen. For example, if you already
created a page named PAGE1, type PAGE1 in the Value field. If you chose a URL, type the full URL
specification (for example, http://www.lotus.com). You can also paste a URL or use a formula that
evaluates to a URL. Alternately, you can click one of the following:
v Use the folder icon to select a design element from a list in the Locate Object dialog box.
v Use the formula icon (@) to specify a formula that evaluates to a name. The formula resolves to the
name of an element; using a formula allows you to dynamically specify the outline entry source
(for example, whether the named element links to a page or a view).
v Use the paste icon to paste an element which you previously copied to the Clipboard.
3. (Optional) In the Frame field, type the target frame for the outline entry source.
Read only
If you select Read only, users cannot edit the outline in place.
To hide an entry
You may want certain entries to show up only under certain circumstances. For example, you can
program an entry to be hidden when viewed with a Web browser. To hide outline entries:
1. In the Outline Entry Properties box, click the Hide tab.
2. Select an option for hiding the entry or enter a formula in the formula box.
218
There are two different style properties that control how the embedded outline appears to the user: type
and title.
The first, Type, determines whether the outline shows the hierarchy of the outline entries. The hierarchy
is set up when you outdent and indent outline entries. If you select Tree style for type, then all of the
outline entries that have indented entries below them will show up as expandable sections. You can
choose to have green triangles (or twisties) display next to expandable outline entries, or users can click
on the top-level entry to expand it. In a Tree style outline, all top-level entries show at all times. Users
expand and collapse entries as necessary.
Tree style outline with twisties turned on:
219
A Flat style outline displays one level of entries at a time. Initially, all top-level entries display. When you
click an entry, if it is expandable, the sub-level entries associated with that entry will display. If it is not
expandable, it will jump to whatever link or action is associated with it. If you want users to be able to
navigate back up the outline, select Simple for the title style. The title will continue to display allowing
users to click on it to get back to the previous level. If you choose Hide for the title style you must
provide a button or action if you want users to be able to return to the top-level of the outline.
220
221
OS style - Select if you want the outline to appear in a structure similar to the Design pane in
Domino Designer. Instead of twisties, the user clicks a plus sign (+) to expand and a minus sign (-)
to collapse. This setting is supported on Windows platforms.
Image - Specify a custom twistie image instead of the triangle. Click the folder icon to select a
shared image resource.
Optionally, click the @ button to use a formula to control the image display.
v Columns (Flat Vertical style only)
Show as multiple columns - If you select this setting, the entries at any level automatically display
in columns (instead of using scroll bars) when the outline is longer than the allotted height. For
example, an outline that has entries that would normally require a height of three inches to display
would wrap into columns if the outline had a fixed height of one inch. However, if the outline
height is set to Fit to content, columns do not automatically appear because the outline height
increases to the height it needs.
Column width - Specify the width of the columns in inches.
v Root entry - Specify a root by using the parent entry label or the alias of the parent entry. (For
backwards compatibility with Lotus Domino Designer R5, you should specify the alias.) When you
specify a root entry, the children of the specified entry only are displayed. One use of this field is to
restrict access to elements in your site or database.
If the specified entry does not have any children, then nothing will display in the outline. If you
want to give users a way to navigate back up the hierarchy from the root entrys children, enable
Simple as the Title style for either a Tree or Flat outline. If you want to limit users access to those
children entries only, set the root, and dont enable a Title style.
v Outline size
Width
To specify the width of an embedded outline as a percentage of the parent window, choose Fit to
window (%).
To specify the width in inches of an embedded outline, choose Fixed (Size).
To allow automatic sizing of an outline based on its content -- for example, the number of entries
and whether or not the entries are expanded or collapsed -- choose Fit to content.
To specify the width as approximately the specified number of characters based on the average
character width of the specified font, choose Fixed (Chars).
Height
To specify the height in inches of an embedded outline, choose Fixed (height).
To allow automatic sizing of an outline based on its content -- for example, the number of entries
and whether or not the entries are expanded or collapsed -- choose Fit to content.
To allow automatic sizing of the height of an outline based on the size of the window that the
outline is displayed in regardless of its content, choose Fit to window.
Show scroll bar
To display a scroll bar if the embedded outline entries do not fit on the screen, select Show scroll
bar.
v Web access - Select HTML or a Java applet to display an embedded outline to Web users.
v Special
Show folder unread information - If you select this option, folder names in the outline become
bolded when there is new or changed information; the unread count follows the folder name. For
example: Infobox (8). Note that this option works only on Lotus Notes Domino Release 6 or later.
Font tab
Select either Top-level font or Sub-level font to format the font of the outline entries. If Title style is
set to Simple, select the Title Font. You can also select font colors for:
v Normal state of entries
222
223
Navigators
Navigators are objects and graphics that include programmed areas that direct users to specific parts of a
database. They let users find documents or take actions without having to open views. If you are
designing a navigator for the Web, consider either embedding a navigator or importing a navigator into a
form, subform, page, or document.
Navigators usually include hotspots; that is, programmed areas that users click to execute an action. A
hotspot can be text, graphics, or a combination of both.
If you use navigators in an application, you usually want the navigator to display automatically when the
application opens.
To use a navigator in a Web application, you must select Web browser compatible as a navigator
property. With this setting on, Domino converts a navigator to an HTML imagemap. Navigators on the
Web always display as full-screen imagemaps. To control the size and display of a navigator on the Web,
you can embed a navigator in a form.
If your navigator inherits its design from a template, do not make any changes to the design of your
navigator, since any changes you make will be overwritten by the template.
Navigator objects
You create a navigator by combining navigator objects and adding actions to objects. Navigator objects
include graphic backgrounds, hotspot rectangles, hotspot polygons, hotspot circles, graphic buttons,
224
buttons, text, rectangles, rounded rectangles, ellipses, polygons, and polylines. To create navigator objects,
you can import or paste objects from another application or you can use the drawing tools Designer
supplies.
All navigator objects except polylines behave the same on the Web as they do in Notes. Polyline objects
display on the Web, but clicking them has no effect.
Navigator actions
You can add actions to all navigator objects except those pasted or imported as graphic backgrounds.
Designer provides the following simple actions that you can attach to navigator objects:
v Open another navigator.
v Open a view or folder.
v Serve as an alias for a folder.
Click the object to display the contents of the designated folder in the view pane.
v Open a database, view, or document link.
v Open a URL.
To create more complex flexible actions use @function formulas or a LotusScript program. LotusScript
programs can perform tasks that arent possible with @function formulas. For example, manipulating a
database ACL.
For more information on writing formulas and scripts for buttons and hotspots, see the Domino Designer
Programming Guide.
Creating a navigator
If you cant copy and paste a navigator that is similar to the one you need, create a new navigator.
1. Select Other - Navigators in the Design pane.
2. Click New Navigator.
3. Choose Design - Navigator Properties.
4. Give the navigator a name that describes its use.
5. To use the navigator in a Web application, select Web browser compatible.
6. (Optional) Choose an initial view or folder to open along with the navigator.
7. (Optional) Select Auto adjust panes at runtime so that users wont have to manually resize a
navigator that doesnt fit a window.
8. Click the navigator window.
9. Use the Create menu or the SmartIcons bar to draw objects or paste objects from the clipboard.
10. Click each object and choose Design - Object Properties to assign a name and style.
11. In the Programmers pane, select a Run option and assign actions to each object. Run options specify
what happens when users click the object.
v Select Simple action to choose a predefined automation, such as Open a View.
v Select Formula to define an action using the formula language.
v Select Script to define an action using LotusScript.
12. Close and save the navigator.
To edit a navigator
1. Open the navigator in Designer.
2. Choose Design - Navigator Properties and make changes as needed.
Chapter 9. Designing navigation for an application
225
3. (Optional) To change any object, click on the object, select Design - Object Properties, and make
changes as needed.
To import a graphic
1.
2.
3.
4.
To edit a graphic
Double-click a drawn object to edit its properties. For example, you can change colors or widths of lines
on drawn objects.
Use drawing tools available from the Create menu or the SmartIcons bar to enhance existing objects.
To edit an object that is under another object, click the overlying object and choose Design - Send to Back
and then select the object you want to edit. Hotspots are always on top and cannot be sent to the back.
226
Adding hotspots
A hotspot is a programmed area that you click to execute an action. Hotspots are always topmost on a
navigator -- you cannot send them to the back.
To automate a hotspot, attach an action to it. For example, if your navigator is a map, you can create
hotspots so that a user clicking on a region in the map views information about that region.
227
To create a hotspot
1. Create a new navigator, or open an existing navigator.
2. Use the Create menu to add a hotspot. For example, Create - Hotspot Polygon. (Or select a hotspot
tool from the SmartIcons palette.)
3. Click on the navigator and drag to create the hotspot. The polygon tool allows you to create a line
segment each time you click. Double-click to complete the drawing and close the polygon hotspot.
4. (Optional) Double-click the hotspot to edit its properties.
Custom actions
You can use an @function formula or a LotusScript program to define a custom action. A navigator that
runs an @function formula allows you to create specialized actions that arent related to switching to a
view, a folder, a navigator, or a link.
To attach an action
1.
2.
3.
4.
5.
228
4. To add a script, select Run: LotusScript in the Programmers pane. Then, write the LotusScript
program.
5. Close and save the navigator.
For more information on writing formulas and scripts for buttons and hotspots, see the Domino Designer
Programming Guide.
Examples
This section includes examples of automating navigators.
Opening a view
A navigator that switches to another view gives users a graphical way to choose a view so they dont
need to know the name of a view in the view pane. The Main Navigator in the Discussion template uses
objects to open these views: All Documents, By Category, and By Author.
To find out more information, users click a bar that represents an areas sales. Each bar in the first
navigator is a hotspot rectangle that takes users to the Weekly Details by Country navigator. When users
reach the second navigator, they see another bar chart that displays weekly sales by individual country.
Clicking a bar in this chart opens the view for the country (for example, View by country\France). Each
bar in the second navigator is a hotspot rectangle whose Open a view or folder action specifies the
appropriate country view.
229
The action for the icon is Run a formula with the formula:
@Command([Compose];"";"3. Action Item")
Hiding navigators
Designer includes several ways to hide a navigator from users. There may be times when you want to
present one navigator to Notes users and another to Web browser users.
230
231
2. Click the Info tab and select Display navigator specified in form name when this form is used as a
Navigator Template.
Hotspot equivalent
@Command([OpenNavigator];NavigatorName)
@Command([OpenView];ViewOrFolderName)
Alias a Folder
@Command([OpenView];FolderName)
Open a Link
Open URL
Testing navigators
To test a navigator while you design it, switch to Testing mode to see if the simple action, formula, or
script runs.
For navigators that perform multiple steps or complex tasks, split the process into several small tasks and
create an action for each. Test and fix each small task first. When everything is working correctly,
combine the formulas into one, and then test the automation again by creating a sample copy of the
database and testing all navigator behavior. You can preview in either Notes or a Browser to see how the
action actually performs.
To
1.
2.
3.
4.
232
Creating an imagemap
An imagemap is a graphic you enhance with programmable hotspots that perform some action when a
user clicks on them. Image maps are often used as navigational structures in an application. For example,
an imagemap of a plate of food might have hotspots users click to see recipes for the food pictured.
Unlike a navigator, which is an independent design element, an imagemap resides on a page or form, so
you can easily combine an imagemap with text and other page or form elements, and you can control the
display of an imagemap using a hide-when or computed-for-display formula. If you plan to create a site
map or navigator that combines several graphics with text and action buttons, create a navigator instead
of an imagemap.
An imagemap can be any graphic you can paste or import into a page or form, with the exception of
graphics in PI format. If you create an imagemap and then need to change the graphic, you can change
the graphic while keeping the hotspots intact.
To create an imagemap
1. Paste, create, or import a graphic or image resource on a page or form.
2. Select the graphic.
3. Choose Picture - Add Hotspot <hotspot shape>.
4. Click and drag to draw the hotspot on the graphic.
Note: To draw a polygon hotspot, click the points of the polygon, double-clicking to close the shape.
To draw a hotspot around the entire graphic, select Default Hotspot.
5. Do one of the following:
v Choose Picture - Hotspot properties. On the Hotspot Info tab of the Hotspot <shape> Properties box,
specify a link, named element link, or URL link. For information on linking, see the topic Creating
links in the chapter Designing Pages.
v In the Script area of the Programmers pane, specify a simple action , formula, or LotusScript or
JavaScript routine to run when a user clicks the hotspot.
6. On the Advanced tab, add alternate text.
7. (Optional) Specify a target frame where the linked document will display when a user clicks the
hotspot.
8. (Optional) On the Advanced tab, specify the Imagemap tab order for the hotspot. The tab order
specifies the order in which hotspots are selected when a user presses the TAB key.
To move a hotspot
Once you create a hotspot you can move it as necessary. To move a hotspot, do one of the following:
v Click and drag the hotspot that you want to move.
v Select the hotspot and use the arrow keys to move one pixel at a time.
To copy an imagemap
You can copy an imagemap from another page, form, or document, and Designer will maintain all of the
hotspots from the original imagemap.
Chapter 9. Designing navigation for an application
233
234
235
Actions
You can create an unshared action in a view, folder, form, page, or subform to provide one-click shortcuts
for routine tasks in a view or document. Actions become part of a design elements design and are not
stored with individual documents.
You can also create a shared action in a database that can be used in multiple views, folders, pages,
forms, and subforms. Shared actions are stored as shared resources in the database.
To build an action, you can use any of the following:
v Simple actions that you select from a list
v Formulas
v LotusScript
v JavaScript
v Common JavaScript
Examples of actions
v View actions -- Let users create, print, delete, or categorize documents.
v Form actions -- Process an approval; mail a document; or give Web users, who dont have access to
Notes menus, a way to click to edit, save, or close documents.
v Simulate Notes menus for Web users.
v Automatically send documents to reviewers.
v Automatically process employee requests.
Notes on actions
Some views and forms in databases contain system actions, available either in the Actions menu, as
buttons, or both. You cant change the System actions functionality, but you can customize their
appearance in the action bar. Open the view or form. Click Objects and the system actions are displayed
in the list.
Hotspots
Hotspots are associated with text or an image in the body of a document and can complete any of these
types of automated tasks:
v Link
Open a Web site, a database, or an element in a database (a page, view, frameset, form, document,
folder, or navigator).
v Text pop-up
Display information in a pop-up.
236
v Button
Complete a programmed task, using simple actions, formulas, LotusScript, JavaScript when the button
is used in the Notes client. In addition, you can code the same button to run JavaScript when the
button is used in a Web browser.
v Formula pop-up
Complete a programmed task using only formulas, with the results displayed in the pop-up.
v Action hotspot
Complete a programmed task using simple actions, formulas, LotusScript, or JavaScript when the
action hotspot is used in the Notes Client. In addition, you can code the same action hotspot to run
JavaScript when the action hotspot is used in a Web browser.
Examples of hotspots
v Use a document or database link to provide a cross-reference for more information that is stored in a
document in other database.
v Use a URL link to cross-reference a Web site for downloading software.
v Use a text pop-up to provide help information about what values to specify in a field.
v Use a button to submit a completed document for processing or add a database to a users workspace.
Agents
Agents are stand-alone programs that perform a specific task in one or more databases. Agents are the
most flexible type of automation because they:
v Can be run by users in the foreground or run automatically in the background as scheduled agents.
v
v
v
v
v
v
Because agents are so flexible and powerful, you might consider their characteristics first to decide the
type of agent you want to build, and then build it.
The Agent Manager supports all aspects of running and troubleshooting agents. The Agent Manager
checks security, manages agent scheduling, monitors events and starts the appropriate agents when their
associated events occur, records information in a log (the Agent Log), and performs database operations
to run the automated tasks associated with the agent. Although you dont work directly with the Agent
Manager, you use its components for troubleshooting an agent.
237
See Agents to run before Web users open or save documents for an example.
Notes on agents
Some databases and templates have built-in agents. For example, the mail template has several built-in
agents that let users manage their messages and customize their mail databases.
To see the agents in a database, select the database and choose View - Agents.
Events
When users work in Domino design elements, Domino tracks their operations as events (for example,
opening a database, opening a view, opening a document). You can attach programming tasks to these
events.
To build a program for an event, you can use:
v
v
v
v
v
Formulas
Simple actions
LotusScript
JavaScript
Common JavaScript (which works on both the Web and the Notes client)
Types of events
Every design element has events that you can program, but they vary according to the design element. In
the Programmers pane, click the Objects tab to review the events you can program.
Database events
Database events pinpoint database-wide activities such as opening and closing a database or deleting and
undeleting documents.
Examples:
v PostOpen -- open a specific view to direct users to action items
v QueryDocumentDelete -- prevent users from deleting a particular document when the value of a status
field on an action item is Open.
v PostDocumentDelete -- archive a deleted document.
238
v QueryClose -- prevent users from closing a database when there are still action items in the action item
view assigned to them.
Form events
Form events occur at the document level when users open or close a document. They are useful for
speeding up document display times because they execute only when a specific form event occurs, unlike
field recalculations that occur each time a document is saved, opened, or refreshed.
Examples
v Initialize -- load an additional program before a document displays.
v QueryClose -- check for errors and validate fields before closing a document.
v QuerySave -- reset a field value when users save documents rather than using conditional formulas in
the field itself. For example, to reset the status field if the document is being saved, create a script for a
QuerySave event rather than include a formula that uses @If(@IsDocBeingSaved;x;y).
With QuerySave, you can also execute processing logic and avoid the unnecessary recalculations
inherent in computed fields. For example, you have a form with a hidden computed field called State
that determines where documents are in the workflow and where they need to be sent. By replacing
the field formula with a LotusScript program that sets a field value during the QuerySave form event,
set the field value in the document only when it is saved, not when it is opened or refreshed.
Field events
Field events capture users movements into or away from a field.
Chapter 10. Adding automation to applications
239
Examples
v Entering -- refresh hide-when formulas
v Exiting -- guide users to a certain field
v Exiting -- verify that users supplied valid information
Click events
The Click event occurs when users click actions or hotspots, or choose tasks from the Actions menu.
Other events for actions, buttons, and hotspots allow you to add programming to other events. After the
object is loaded, the initialize event is triggered and then the click event is triggered.
Examples
v Compose a new document
v Save a form
v Make a calculation
Agent event
The Initialize event stores all the programming associated with the agent. Always add the programming
to the Initialize event for an agent.
240
v Check Right align action control to have the action control aligned on the opposite side of
whatever is set in the Action Bar Properties box. Note that it may not necessarily be right aligned.
For example, If you choose Buttons start at left in the Action Bar Properties box and Right align
action control in the Action Properties box, then the button appears on the right. However, if you
chose Buttons start at right in the Action Bar Properties box and Right align action control in the
Action Properties box, the button is actually aligned on the left, that is, on the opposite side of the
setting in the Action Bar Properties box.
v Check Include action in Action menu to make the action available as a menu item in the Actions
menu.
v Check Include in right mouse button menu to make the action available as a right mouse click
menu item for views. The action will be listed in a new section at the bottom of the right mouse
click menu. When the action is hidden on the Action menu, it will be hidden on the right mouse
click menu. If the action is a shared action, it will be visible on the right mouse click menu of all
views using that shared action.
v You can select an icon to appear on the action button. The icon will not appear on the right mouse
click menu. If you prefer a Notes graphic, select Notes and then click Image to select a graphic for
the icon from a set available in Notes.
If you prefer a customized graphic, select Custom. In the Image field, specify the name of an image
resource or click the folder icon to browse for an image resource. The image resource must reside in
the current database. You can specify the name of an image resource that does not yet exist.
Designer warns you that the image does not exist and that you must create it later. Click @ and
specify a formula (or set of formulas) to display an image programmatically.
Tip: If you do not specify a name or label for the action, Notes will use the graphic for the whole
button. You wont be able to see the action in the action list, because theres no name for it, but you
can click on the space at the end of the action list to access it.
4. (Optional) On the Action Hide When tab, specify when to hide the action.
5. (Optional) On the Advanced tab, specify how Notes workflow proceeds after the user activates the
action.
6. In the Info List of the Programmers pane, click Objects and select the action you just created.
7. To program the action to run one of the client or one of the Web program code types, choose either
Client or Web at the Run pull-down list.
Choose Client when the automated task will run in the Notes client. You can then select one of the
following Client code options:
v Simple actions
v Formula
v LotusScript
v JavaScript (runs only on the Notes client)
v Common JavaScript (runs on both the Notes client and the Web)
Choose Web when the automated task will run in a Web browser. You can then select one of the
following Web code options:
v JavaScript (runs only on the Web)
v Common JavaScript (runs on both the Notes client and the Web)
8. Save the form, subform, page, view, or folder.
241
2. Choose Create - Action - Action with Sub Action. A main action with an indented sub-action appears
in the Action pane. The Actions Properties box also appears.
3. Define the main action and the sub-action.
You can also drag and drop other actions so they are subactions of the main action.
Actions menu
The Actions menu is a context-sensitive list of any actions and agents available for a particular part of an
application, as well as some menu commands included with the Notes software. From an open view,
Notes users see only those actions associated with the view, plus any manually run agents. From an open
document, Notes users see the actions associated with the form used to create the document, plus any
manually run agents. Web users dont see the Actions menu.
Calling an agent
You can use a form or view action to run an agent. Use the @Command([RunAgent]),
@Command([ToolsRunMacro]), or the OpenAgent URL command to call an agent.
Action bar
The action bar is a horizontal button bar that lies below the SmartIcons bar. If there are system actions or
actions you created to be displayed as buttons, users see the buttons when they open the view or create a
document using the form.
The Action Bar Properties box lets you set the style of the action bar and its buttons. You can also enable
the Domino action bar applet for Web users.
1. Choose Design - Action Bar. The Action Bar Properties box opens.
2. On the Action Bar Info tab, select one or more of the following:
v Alignment - lets you choose whether to have the action bar buttons align from the left or the right.
242
v Web Access - lets you use the Domino action bar applet so that the action bar displays better to
Web users.
- To enable the applet, select Using Java Applet. The applet lets Web users:
Scroll across the action bar, when needed.
For actions that have pull-down list selections for Notes client users, the action selections are
displayed as a second row of buttons when the user clicks the main action. The second row of
buttons is displayed at 75% the size of the main action buttons. Web users can view all the
selections and click one to select it.
- To disable the applet, select Using HTML.
3.
4.
5.
6.
Note: If you want buttons to align from the right on the Web, you must choose Using Java
Applet.
On the Action Bar Size tab, select one or more of the following:
v Bar height - choose one of the following:
- Default - automatically determines the appropriate height for the action bar.
- Exs - specify the size of the action bar in exs. An exs is equal to the size of the lower case of the
font that you have chosen. A height of three exs is equal to three times the size of the lower case
font you have chosen.
- Fixed - specify an absolute bar height in pixels.
v Font, Size, and Style - if you selected Exs, specify the font, the size of the font, and the style of the
font (for example, bold or italic) for the items in the Action Bar.
On the Action Bar Background tab, select one or more of the following:
v Color - specify a color for the background of the action bar.
v Image - you can also choose to use an image for the background. To use an image, click the folder
icon and select the name of a shared image resource that you have created and stored in the
database as a Resource, or click @ and specify a formula (or set of formulas). Note that using an
image may not be supported on the Web.
v Options - lets you choose how to present the background image. For example, you can center it, tile
it, repeat the image vertically, and so on.
On the Action Bar Border tab, select one or more of the following:
v Border style and color - choose the style and color of the action bar border. For example, you can
choose a solid line border or a border with a ridge or no border at all.
v Border effects - lets you choose to have a drop shadow border and set its width in pixels.
You can also set the thickness of the border (as well as the thickness of the outside and inside
border, if applicable).
On the Button Properties tab, select one or more of the following:
v Button Size - lets you set the height, the width, and the margin for all the buttons on the action bar.
If you choose Fixed size, you can specify the size in pixels.
If you choose default for the height, for the width, or for the margin, its size is automatically set.
Note that if you have images that are much taller than the font, you should not choose a default
height, but should specify a fixed height.
v Button Options:
- Display border - controls when the button border displays. You can choose to display the button
border On Mouse Over, Always, or Never.
- Align text - choose whether to have button text aligned center, left, or right.
- Internal margins - set the margins within the button in pixels.
- Always show drop-down - checking this causes the drop-down character (down caret) to display
inside the Action button. If this is not checked, the drop-down character displays only on mouse
over.
Chapter 10. Adding automation to applications
243
v Button Background - lets you either select a color for the button background or use an image for
the background. To use an image, click the folder icon and select the name of a shared image
resource that you have created and stored in the database as a Resource, or click @ and specify a
formula (or set of formulas). Note that using an image is not supported on the Web.
7. On the Button Font tab, select the font properties for the buttons on the action bar. You can set the
font, the size of the font, the color of font, and the font style.
244
6.
7.
8.
9.
v Check Include action in Action menu to make the action available as a menu item in the Actions
menu.
v You can select an icon to appear on the action button. If you prefer a Notes graphic, select Notes
and then click Image to select a graphic for the icon from a set available in Notes.
If you prefer a customized graphic, select Custom. In the Image field, specify the name of an
image resource or click the folder icon to browse for an image resource. The image resource must
reside in the current database. You can specify the name of an image resource that does not yet
exist. Designer warns you that the image does not exist and that you must create it later. Click @
and specify a formula (or set of formulas) to display an image programmatically.
Click the Hide When tab to specify when to hide the action.
Click the Advanced tab and specify how Notes workflow proceeds after the user activates the action.
In the Info List of the Programmers pane, click Objects and select the shared action you just created.
To program the shared action to run one of the client or one of the Web program code types, choose
either Client or Web at the Run pull-down list.
Choose Client when the automated task will run in the Notes client. You can then select one of the
following Client code options:
v Simple actions
v Formula
v LotusScript
v JavaScript
v Common JavaScript
Choose Web when the automated task will run in a Web browser. You can then select one of the
following Web code options:
v JavaScript
v Common JavaScript
245
v Make sure the Action ID for a shared action is the same across shared action notes. For example, if
a Cancel action contained in the Danish shared action note is set to Action ID 16, the Cancel action
contained in the Turkish shared action note should also be set to Action ID 16.
Creating a button
1. Open the design element to which you want to add the button (a page, view, frameset, form, folder,
or navigator), or edit a document.
2. Click where you want to add the button and choose Create - Hotspot - Button.
3. On the Button Info tab of the Button Properties box, you can set the following properties:
v Label: Enter the text you want to appear in the button.
If you enter text that is wider than the button and you want it to wrap automatically, check Wrap
label text as needed.
v Width: Specify a value, in inches, for the width of the button.
You can also choose one of the following width options:
Maximum width -- specifies that the value in the Width field is the maximum width for the button.
The width may be less if the width of the button text is less.
Minimum width -- specifies that the value in the Width field is at least the width specified. The
button may be wider if the button text is wider.
Fixed width -- specifies that the value in the Width field is the actual width of the button. If you
checked Wrap label text as needed, any text wider than the fixed button width wraps
automatically. If you have not checked Wrap label text as needed, any text wider that the fixed
button width may disappear.
Fit Content -- sets the width of the button to fit the width of the text you specified in the Label
field. If you choose this option, you cannot set the width manually.
v Style: Specify a color for the button background. You can also choose to have a button with square
edges or rounded edges.
v Type: Use this setting if you are creating a hotspot button for a template dialog box and you want
the button to behave in a certain way (such as closing the dialog box after the button is pressed).
You can create the following types of buttons:
246
Type of button
Description
Normal
Normal is the default button. Pressing a normal button performs the button action
but does not close the dialog box it is part of.
OK
When clicked in a template dialog box, this button closes the dialog box with an OK
operation and displays a standard Windows OK message. This button is not
compatible with Lotus Domino Designer Release 5 and earlier.
Cancel
When clicked in a template dialog box, this button closes the dialog box with a cancel
operation and displays a standard Windows Cancel message. This button is not
compatible with Lotus Domino Designer Release 5 and earlier.
Help
This button is active on Macintosh platforms only. When clicked, it displays a help
message. This button is not compatible with Lotus Domino Designer Release 5 and
earlier.
Default
Check this box for the hotspot button you want to become the default button for the
template dialog box. If the user presses Enter when the focus is not on a button, this
is the default button that is pressed instead. Note that a dialog box can have only one
default button.
The advantage of using the OK, Cancel, and Help buttons is that you can place the buttons
anywhere you want. Previously, these buttons could be aligned only vertically on the right or
horizontally on the bottom of the dialog box. In addition, you can associate some LotusScript with
these buttons; however, the buttons always close the dialog box despite any code.
If you use the OK or Cancel buttons, the template dialog box must be invoked using @DialogBox
with the [NOCANCEL] and [NOOKCANCEL] paramaters.
4. (Optional) On the Hide When tab, specify when to hide the button.
5. In the Info List, click Objects and select the button you just created.
6. To program the button to run one of the client or one of the Web program code types, choose either
Client or Web at the Run pull-down list.
Choose Client when the automated task will run in the Notes client. You can then select one of the
following Client code options:
v Simple actions
v Formula
v LotusScript
v JavaScript
v Common JavaScript
Choose Web when the automated task will run in a Web browser. You can then select one of the
following Web code options:
v JavaScript
v Common JavaScript
7. Save the design element or document.
Steps to perform
To change properties
To change automation
In the Info List, click Objects, select the button in the Objects list and edit the
programming tasks in the script area.
To delete
Call an agent
247
Steps to perform
To change properties
248
6. In the Info List, click Objects and select the hotspot you just created.
7. Enter its formula.
8. Save the form or document.
Note: Consider using formulas that display information, such as @Time. Also, do not use formulas that
take action, such as @OpenView.
Steps to perform
To change properties
Click the Hotspot entry in the Objects list and edit the
formula in the script area.
Steps
To change properties
249
Steps
To change automation
Click the Hotspot entry in the Objects list and edit the programming
in the Script area.
To call an agent
Creating an agent
Before you begin, plan your agent carefully. For example, decide what type of agent you want (simple
action, formula, LotusScript, imported Java, or Java), what it will act upon, where it will run, how it will
be invoked, whether it will perform restricted or unrestricted operations, and under whose ID it should
run (run on behalf of).
1. In Designer, open the database in which you want to create an agent.
2. Choose Create - Design - Agent. The Agent Properties box appears.
3. On the Basics tab, enter a name for the agent in the Name field.
Note that names and aliases should be unique. (Agents that call other agents look for the first
instance of a name and will attempt to run that agent. If more than one agent has the same name,
you may run into problems.)
4. Optionally, enter a comment in the Comment field. The comment appears when you view the list of
agents.
5. Click Shared if this agent will be used by other users. A shared agent is one that other users have
access to. Note that ownership of a shared agent can be reassigned to another user who saves or
re-signs the agent.
Click Private if you want the agent to be an agent that only you can run. In Lotus Notes, private
agent are not available on the Actions menu. In Domino Designer, anyone with Designer level access
or higher can see and run a private agent.
Beginning with Lotus Domino Designer 6, you have the option of converting a private agent to a
shared agent or a shared agent to a private agent.
6. If the agent searches for text in documents, you can specify the following settings in the Options
section:
v Check Store search in search bar menu to display your search query in the search bar.
250
7.
8.
9.
10.
11.
v Check Store highlights in document so that your search matches are highlighted in the searched
documents.
To run an agent without having to wait until it completes, check Run in background client thread.
Note that you should check this option only if the agent (or the top-level agent that calls this agent)
is triggered by On event - Action menu selection.
To get the full benefit of this feature, the database should reside on a server and the agent must be
invoked via the client.
If you check this box and the agent references front end classes, the user receives a run-time error.
In the Runtime section of the properties box, choose one of the following triggers for the agent.
Different options appear depending on the trigger you choose.
v On event - see the topic Triggering an agent on an event for more information on the event
options.
v On schedule - see the topic Triggering an agent on a schedule for more information on the
schedule options.
Click the Security tab of the Agent Properties box to set up security for the agent.
Close the Agent Properties box after you have filled in the necessary fields.
From the Run list in the Programmers pane, choose one of the following to define the agents
automated components:
v Simple actions
If you choose Simple actions, click the Add Action button to add a simple action.
v Formula
v LotusScript
v Java
v Imported Java
12. If you want to create a search, select the Object tab and then the Document Selection event in the
Programmers pane. Then use the Add Condition button to invoke the Add Condition dialog box.
Note that this way of creating a search replaces the Search button found in earlier versions of
Designer.
13. Save the agent.
Note that the agent is being saved and signed with your current ID.
Scheduled agents are enabled by default when first created and existing scheduled agents that are edited
are saved with their current state of enabled or disabled.
For additional information on using the Enable, Disable, and Sign buttons, see the topic Useful agent
procedures later in this chapter.
For additional information on agent security, see the topic Security for agents on servers and the Web
later in this chapter.
For troubleshooting information, see the topic Troubleshooting agents later in this chapter.
251
Use for
Agents that are only to be called by other agents and for agents that are still being
developed or are run from Designer.
Processing mail before it is deposited in the mail databases; for example, to move
incoming mail to a folder.
With this option, the agent runs before the message is listed in the database.
Therefore, be careful what other options you choose. For example, do not use the
Mark Documents Read simple action because documents will always be marked
unread when they are listed in the database.
Note that this option is limited to one agent per database.
After documents are created Workflow tasks where a task is performed based on new or changed documents. This
or modified
trigger is actually a scheduled agent handled by the Agent Manager and can execute
either on the local Notes client or on a server.
When you select After documents are created or modified, an Edit settings button
appears. If you click the button, the Schedule dialog box appears. Here you can set a
start and end date for the agent, tell the agent not to run on weekends, and either
choose a server for the agent to run on or choose the local Notes client. You can also
specify that the server is chosen when the agent is enabled.
The delay time using this agent varies between 5 to 30 minutes, depending on the
server load.
When documents are pasted Documents that are pasted into the database and need to be modified as they are
being pasted. Note that this event requires action by the user and does not happen in
the background.
Paste-activated agents cannot use @Command or @PostedCommand.
3. If you selected Agent menu selection or Agent list selection, choose one of the following targets
from the Target list. These are the documents on which the agent will run.
v All documents in database
v All new and modified documents
v All unread documents in view
v All documents in view
v All selected documents
v None - choose None for any agent that is not working with a specific set of documents. For
example, choose None if you have an agent that displays a message to the user. None also lets you
use @commands.
Note: Beginning with Lotus Domino Designer 6, Run Once is no longer listed as an option on the
Targets pull-down list. (Run Once was often used to set up Web agents.) Choose None instead.
252
Use for
High-priority databases, such as those critical to a business process and for databases
that replicate several times a day, such as workflow applications that route documents for
approval.
Be aware that if you schedule very frequent runs (for example, every 5 minutes), the
servers performance could be adversely affected.
Daily
Activities that are important but that will not cause a delay if they are only generated
once a day. Examples include mailing news wire articles or generating low-priority
assignments.
Weekly
Monthly
Never
Agents that you do not want to run in particular circumstances. For example, use this
run option for agents that do run on the Web or for agents that are called by other
agents.
3. Once you make a choice from list, click the Schedule button to display the Schedule dialog box. You
can add more details about running the agent. For example:
v If you specified More than once a day, you can specify how often you want the agent to run on
each day. You can also specify that the agent not run on weekends.
v If you specified Weekly, you can specify the day of the week and time of day for the agent to run.
v If you specified Monthly, you can specify a day of the month and time of the day for the agent to
run.
4. In the same Schedule dialog box, you also specify the servers on which you want the agent to run.
You can choose from the Run on list. Alternatively, you can have users choose the server.
Server agent runs on
Use
Local
The agent runs only on the client. Use this option to schedule agents to run in the
background on the local Notes client. The database containing the agent must be a
local database. The agent will run with the rights of the current Notes ID.
Note that for scheduled agents to run on the local Notes client, the user must first
select Enable scheduled local agents on the Basics tab of the User Preferences dialog
box (Choose File - Preferences - User Preferences).
Any server
The agent runs on any server that the agent is available on. When agents run on
multiple servers and they are changing documents in databases that are replicated,
you should specify the servers they run on to prevent replication conflicts. Then, set
up the databases replication schedules so they dont interfere with the agents
scheduled runs.
Note that this option does not cause problems if you are using copies (instead of
replicas) of the database.
Specific server
The agent runs only on the single server you select from the list of available servers.
253
Use
Checking this option prompts users to select a server when the agent is enabled. This
option is useful for distributing agents in ready-to-use applications.
5. From the Target pull-down list, select the documents in the database the agent will run on. You have
two choices:
v All documents in database
v All new and modified documents
These options are not supported on the Web.
If you paste, modify, or enable a scheduled agent, the agent will run immediately if it has missed running
on the day of the changes.
Note: Agents are scheduled according to the interval you set up, not the exact time of day. For example,
if you schedule an agent to run hourly, it runs about one hour after the last time it ran.
To copy an agent
1.
2.
3.
4.
254
To delete an agent
1. Click Shared Code - Agents in the Design pane. A list of agents appears in the Work pane.
2. Select the agent.
3. Choose Edit - Cut.
To sign an agent
1. Select the agent.
2. Click Sign.
255
WebQueryOpen events
A WebQueryOpen event runs the agent before Domino converts a document to HTML and sends it to the
browser. Domino ignores any output produced by the agent in this context.
Examples for using this agent include performing large computations that arent possible with
@commands or collecting statistics about who opened documents and when they did so.
Note: WebQueryOpen agents run when the user opens a form or document, but do not run when the
user saves a document. This means that computed fields set by a WebQueryOpen agent are not saved
when the user submits a document. To make sure computed fields are saved, you can either recalculate
them in the WebQuerySave agent or set the form property Generate HTML for all fields.
WebQuerySave events
A WebQuerySave event runs the agent after field input validation formulas are run and before the
document is actually saved to disk or mailed. The agent can modify the document or use the document
data to perform other operations. The document is automatically saved after the agent runs. Do NOT
have the agent explicitly save the document (for example, by calling NotesDocument.Save) because an
explicit save could cause incorrect results.
A WebQuerySave agent can produce output to be sent back to the user. For example in a LotusScript
agent, you can use the Print command to return raw HTML. If the agent produces output, then the form
should not have a $$Return field because Domino will return only the agent output and ignore the field.
Examples for using this agent include:
v Performing complex field validation. If the document does not pass validation, you can prevent
Domino from saving the document by changing the value of the SaveOptions field to 0 on the form.
v Simulating CGI programs that run on user-supplied data by programming a WebQuerySave event and
changing the value of the SaveOptions field to 0 on the form. When the agent runs, you can collect
field values from the filled-out form without generating a new Notes document.
v Collecting statistics based on data submitted by browsers, such as CGI variables, by writing a program
that uses CGI variables and attaching it to a WebQuerySave event.
Note: The SaveOptions field must be an existing field on the form, which the WebQuerySave agent
changes the value of. If the agent creates the SaveOptions field, the form will be saved regardless of the
value in that field.
Description
Checking this causes the agent to run with the effective user name of the Web user.
256
Option
Description
Run on behalf of
Lets you specify on whose authority this agent can run. Note that restricted signers
can run agents only under the same authority as their own (that is, the restricted
signers enter only their own name or else the agent returns an error at run time).
Unrestricted signers and signers with rights to run On behalf of anyone can run
agents on behalf of anyone. Whoever you specify in this field has to be included in
the ACL of any database being accessed.
If the agent is sending mail or creating documents, this name is used as the mail
sender or document author.
Note: This feature is not supported on releases earlier than Lotus Domino Designer
6.
Checking this enables the agent to be debugged through a remote debugger. This
property applies only to LotusScript agents.
Restricted operations
Lets users who have unrestricted rights specify whether the agent should run in
restricted mode, unrestricted mode, or unrestricted with full administration rights
mode. By default, the value is set to restricted mode because this is the safest
setting. For users who have restricted rights, this option has no effect on the agent.
You have the following choices from the drop-down list:
v Do not allow restricted operations -- the agent is not allowed to perform
restricted operations. Note that this is the most secure choice. The reason the
agent cannot perform restricted operations is that the agent has rights that are
restricted.
v Allow restricted operations -- the agent can perform restricted operations because
it is has been granted unrestricted rights. Note that this is a less secure choice
than the previous one and grants the agent more power.
v Allow restricted operations with full administration rights -- the agent can
perform restricted operations and can do so with full administration rights. This
choice grants even more power to the agent because the agent now has been
granted unrestricted rights and given full administration rights. Use this choice
with caution.
For more information on restricted operations, see the topic Restricted LotusScript
and Java agent operations later in this chapter.
Check this box to monitor calls to Domino Objects in agents and their elapsed
times. For agents written in LotusScript or Java only.
Checking this enables the Java code to be debugged through a remote debugger.
This property applies only to Java agents.
Checking this box allows users with ACL editor access to enable this agent. This
allows a scheduled agent on the server to be enabled or disabled without resigning
the agent.
Note: If this box is checked and someone enables the agent, the agent is not
re-signed. If this box is not checked and someone (with Designer access or above)
enables the agent, the agent is re-signed.
Default access for viewing and The default level for viewing and running the agent is All readers and above. You
running this agent
can deselect this field and choose who you want to have default access for viewing
and running the agent.
Allow public access users to
view and run this agent
Lets users who have public access to documents in a database view and run the
agent.
257
Access needed
Private agents
Reader access or higher and must have Create private agents enabled
in the ACL
Reader access or higher and must have Create private agents and
Create LotusScript/Java agents enabled in the ACL
Private agents
To control who can run private agents, open the Server document in the Address Book and click the
Security tab. In the Programmability Restrictions section:
v If everyone who can access the server can run private agents, leave Run private agents blank.
v If only specific users can run private agents, specify their names in Run private agents.
Web users cannot run private agents.
Shared agents
To control who can run shared agents, use the database ACL. Users with Reader access or higher can run
shared agents.
v If users are allowed to run shared agents, assign them Reader access or higher.
v If users are not allowed to run shared agents, do not list them in the ACL or assign them Depositor
access.
LotusScript/Java agents
LotusScript and Java include operations that have full access to the servers system and can manipulate
system time, file I/O, and operating system commands. Users or groups with unrestricted access can run
an agent that includes any of these operations in the LotusScript and Java components. Users or groups
with restricted access can include most operations. The only restricted commands are those that allow
access to the servers system.
CAUTION:
Unrestricted Java and LotusScript agents can potentially violate security. Only a limited number of
trusted users should have unrestricted rights.
258
v If everyone running an agent that accesses the server is allowed to access the server, leave Access
server blank.
v If you dont want users accessing the server either directly or through agents, specify the user names in
Access server. Then, if a user who is not specified attempts to run an agent that accesses the server,
the agent is not run. You can also specify user names in Not access server.
Note: These restrictions apply to agents running from other servers or from a client. Agents that are
already scheduled to run on the server will not be affected by the Server Access section.
Locally on Notes
An agent runs locally when:
v It runs within a Notes client database.
v You choose Local from the Run on list for a scheduled agent.
v A user starts the agent from the Actions menu in the Notes client, from the Agent - Run menu in
Designer, from the When documents Have Been Pasted trigger, or from calling the agent by
agent.run.
When an agent runs locally, Notes does not check security restrictions, unless you have set the Enforce
ACL option. (To set the Enforce ACL option, choose File - Database - Access Control and then click the
Advanced icon.)
On the server
An agent runs on the server when it is running in a database stored on a server and it is started by one
of the following:
v Before new mail arrives
v After new mail arrives
v If documents have been created or updated
v On schedule more than once a day
Chapter 10. Adding automation to applications
259
v
v
v
v
On schedule daily
On schedule weekly
On schedule monthly
Called by an agent via agent.runonserver (the agent being called must reside on the server)
Foreground or background
An agent runs in the foreground when a user starts it from the Notes Actions menu, selects it from the
Designer Agents list, or clicks an Action button. When agents run in the foreground, security restrictions
are not checked.
An agent runs in the background when it is scheduled or it is triggered by an event (for example, when
documents are modified) or when it is called by agent.runonserver. When agents run in the background,
Domino checks security restrictions.
Effective user
Current user ID
Web agent
Scheduled agent
Either:
v Agent signer (agent owner)
v On behalf of (set in the Security tab of the Agent Properties box).
When a Web user runs an agent, the agent also runs using the rights of the effective user and Domino
checks the effective users rights to access the database. However, you can set up the agent so that
Domino checks the invokers rights to access the database instead of the effective users rights. Checking
the invokers rights can provide more security.
To
1.
2.
3.
specify that Domino verify the invokers access to the database, follow these steps:
Double-click an agent name in the agent list.
Click the Security tab.
Check Run as Web user.
When Run as Web user is checked, Domino prompts Web users for their name and password when
they attempt to run the agent. Domino uses the login information to check for the invokers rights in the
database ACL.
260
Troubleshooting agents
You can experience problems running agents at several points during agent development, deployment,
and implementation. Try the following to help diagnose any problems.
v Run the agent on the Notes client.
v Simulate an agent run (for all types of agents).
Before running an agent on a live database, test it by simulating a run. The test also diagnoses whether
the agent will run by checking security and schedule settings.
v Review the Agent Log (for all types of agents).
The Agent Log displays information about when the agent last ran and whether it ran successfully.
v Use the Notes server console (for all types of agents).
There are three server console commands available to display information about agent scheduling,
status of agent queues and control parameters, and status of agent debugging settings that are in effect.
v Set up the Agent Manager debug information (for all types of agents).
You can specify that the Agent Manager record debug information about any combination of the
following: control parameters, events, loading reports, memory warnings, performance statistics,
execution reports, and scheduling. Messages appear on the server console and are recorded in
LOG.NSF.
v Run commands in the LotusScript debugger (for foreground agents built with LotusScript.)
Choose File - Tools - Debug LotusScript and run the agent. The LotusScript debugger appears and you
can run any debugging command in the agent as you would for any LotusScript program.
v Track information with the NotesLog classes (for background agents built with LotusScript or Java).
The NotesLog class is added to your agent code and can capture information you want to track. The
NotesLog class records the information in the Agent Log.
v Check the Notes log database (LOG.NSF).
Testing agents
You can test an agent in the following ways:
v For agents that do not call other agents, use the Test menu command.
v For agents that use LotusScript, use the LotusScript debugger.
v For more complicated agents, create a test copy of the database you can work with before you work
with the original database.
261
262
Description
First column:
ESV
E: Eligible to run
S: Scheduled to run
V: Waiting to run
263
Display
Description
Second column: S
MU
Time of day
Today
Agent Name
Database Name
264
Note: If you specify that the Agent Manager display all possible debugging information, agent
performance can be significantly affected.
v Specify Log_AgentManager in NOTES.INI
Use this statement to provide a subset of the information recorded with Debug_AMgr.
Log_AgentManager does not affect agent performance as much as Debug_AMgr could.
If you specify both statements, the Debug_AMgr settings take precedence.
Debug_AMgr
To specify that the Agent Manager record debug information, edit NOTES.INI and add the following
statement:
Debug_AMgr=option
After you specify Debug_AMgr in NOTES.INI and you run an agent on a server, check the Notes console
and Notes Log (LOG.NSF) for the debugging information. Optionally, you can redirect the debug
information to be recorded in a separate file on the server. When you redirect the debugging information
to a separate file, performance can be affected. To redirect information, edit NOTES.INI and add the
following statement:
DEBUG_OUTFILE=<file-name>
If you run an agent on a database stored on your local workstation, you must redirect the output because
the Notes console is only on the server.
Log_AgentManager
To specify that the Agent Manager record less debugging information than with Debug_AMgr, edit
NOTES.INI and add the following statement:
Log_AgentManager=option
where option can be one of the following (but not more than one):
v 0 -- do not list debugging information
v 1 -- list partial and complete information about successful agent runs
v 2 -- list complete information about successful agent runs
NotesLog Class
Use the NotesLog class in LotusScript and in Java agents that run in the background. Add the NotesLog
class to your agent code to record run-time information. It is particularly helpful for capturing variable
values, error handling, and verifying code logic. By default, the NotesLog class records information to the
Agent Log. When you set up items you want recorded, make sure you dont exceed the Agent Log limit.
265
To use NotesLog, follow this LotusScript example that tracks the documents an agent is processing by
capturing the documents subject. The information is recorded in the Agent Log.
Dim agentLog As new NotesLog("Agent log")
Dim collection As NotesDocumentCollection
Dim db As NotesDatabase
Dim s As NotesSession
Dim count As Integer
Call agentLog.OpenAgentLog
Set s=New NotesSession
Set db = s.CurrentDatabase
Set collection = db.UnprocessedDocuments
Set note = collection.GetFirstDocument
count = collection.Count
Do While (count >0)
Subject = note.Subject
Call agentLog.LogAction("Processing:"+Subject(0))
Set note = collection.GetNextDocument(note)
count = count-1
Loop
Call agentLog.Close
Copy to Database
Copies the selected document to the database you specify. You can copy and paste selected documents
within the same database or to another database on the same server or another server. They are marked
as read in the target database.
To specify:
1. Click Choose Database.
2. Select the server and target database.
Copy to Folder
Copies the selected document to the folder you specify. You must create new folders before you can select
them. Copying a document from one folder to another does not remove the document from the source
folder. A duplicate of the document is not created; instead the document is displayed in a new place.
266
Modify Field
Replaces or appends a single field value with a new text value you specify. This action replaces only text
values for documents in Edit mode. To replace a value with something other than text, use an @function
formula or LotusScript program. This action can modify the value of a hidden field, if you can specify
the fields name.
The Append Value option does not work for rich text, number, or time fields or for fields that are not
available within documents already saved in the database. Also, Append Value is not available if a
database does not contain any documents (for example, a database template).
To
1.
2.
3.
To
1.
2.
3.
specify a value:
Select the field to be modified from the Field pull-down list.
In the Value text box, enter the new value.
Select Replace value or Append value.
267
Move to Folder
Moves the highlighted document in a view or folder to a different folder. This action removes the
document from the source folder and adds it to the specified folder. The document is not deleted from
the database.
Reply to Sender
Sends a reply to a mail memo automatically. Replies are not sent to a mail memo that was generated by
an agent. The Body field accepts only plain text. It does not accept styled text, graphics, or attachments.
To
1.
2.
3.
4.
specify:
Select Reply to sender only or Reply to all.
In the Body field, enter the reply text.
(Optional) Click Include copy of document to append the original message to your reply.
Select Reply only once per person if a person is included in multiple mailing groups.
Run Agent
Allows you to chain agents together with other agents or combine LotusScript programs, @function
formulas, and Java in one agent. The agent to be run must already exist in the database.
The documents that additional agents process are determined by the first agent. All subsequent agents
use the same documents, regardless of their own settings. The first agent completes its search and actions
first and then passes that information to the second agent. For example, Agent A searches for all
documents with the word green, replaces green with yellow, and then runs Agent B. Agent B
launches its own search queries and actions only on the documents that Agent A processed.
Send Document
Mails the current document to the recipients designated in the documents SendTo field. This action
works like the @MailSend function. To predict the recipient, the document must have a SendTo field. If it
doesnt, Notes uses the contents of the internal $UpdatedBy field as the recipient. If the document also
contains the CopyTo or BlindCopyTo fields, it is routed to those recipients at the same time.
If the document contains the DeliveryPriority, DeliveryReport, or ReturnReceipt fields, they control the
delivery priority, generation of a delivery report, and generation of a return receipt. If the document
doesnt contain these fields, they default to normal priority, no delivery report, and no return receipt,
respectively.
268
@Function Formula
Adds a customized @function formula.
269
LotusScript
Java
Using a disk-based
log file
NotesLog OpenFileLog(path)
Log openFileLog(path)
Using Environment
variables
NotesSession GetEnvironmentString()
Session getEnvironmentString()
NotesSession SetEnvironmentVar()
Session SetEnvironmentVar()
NotesSession
GetEnvironmentValue(SystemVariable, true)
Session GetEnvironmentValue(SystemVariable,
true)
Encrypting or
signing
NotesDocument Sign()
Document sign()
NotesDocument Encrypt()
Document encrypt()
Embedded Object
manipulation
NotesRichTextItem EmbedObject()
RichTextItem embedObject()
NotesEmbeddedObject ExtractFile(path)
EmbeddedObject extractFile(path)
270
LotusScript statement
Java
File I/O
Chdir
Chdrive
close
curdir
dir
eof
fileattr
filedatetime
filelen
freefile
get
getfileattr
input
input #
inputb
line input #
loc
lock s
lof
mkdir
Open
reset
rmdir
seek
setfileattr
unlock
width
write
Network I/O
N/A
N/A
271
Task
LotusScript statement
Java
Calling a C routine
ActivateApp
Not allowed
Shell
272
Form Action
Shared Action
- Form
View Action
Internet
IE
Explorer (IE),
Netscape
IE
IE
IE
Notes
browser,
Notes client,
Netscape, IE
Notes
browser,
Notes client,
Netscape, IE
Notes
browser,
Notes client,
Netscape, IE
Netscape, IE
Netscape, IE
Netscape, IE
Netscape, IE
IE, Netscape
IE
IE
IE
IE
Button
Action
Hotspot
onBlur
Works in
IE
onClick
Works in
onDblClick
Works in
onFocus
Works in
IE
273
JavaScript Object
Button
Action
Hotspot
Form Action
Shared Action
- Form
View Action
IE
IE
IE
IE
IE
IE
IE
IE
IE
IE
IE
IE
IE
IE
IE
IE
IE
IE
IE
IE
IE
IE
IE
IE
Netscape, IE
Netscape, IE Netscape, IE
Netscape, IE
Netscape, IE
Netscape, IE
IE
IE
IE
IE
IE
IE
Netscape, IE Netscape, IE
Netscape, IE
Netscape, IE
Netscape, IE
IE
Netscape, IE Netscape, IE
Netscape, IE
Netscape, IE
Netscape, IE
Netscape, IE
Netscape, IE Netscape, IE
Netscape, IE
Netscape, IE
Netscape, IE
onHelp
Works in
onKeyDown
Works in
onKeyPress
Works in
onKeyUp
Works in
onMouseDown
Works in
onMouseMove
Works in
IE
onMouseOut
Works in
onMouseOver
Works in
onMouseUp
Works in
Naming tips
v Choose short names for form and view actions that you design to appear as action bar buttons.
v Choices on the Actions menu appear in alphabetical order. To force names to appear in a different
order, number or letter them.
v Use consistent names across databases to enable users to recognize identical agents and actions.
Naming techniques
Aliases
You can use an alias with agents. An alias is another name, or synonym, for a particular agent. Using an
alias, you can change or translate the name that users see without disabling formulas that reference the
original name. Aliases follow the same naming rules as regular names.
To create an alias, add a vertical bar (|) symbol and the alias name to the right of the original name.
Always keep the original name as the leftmost name.
Agent1 | Agent1_Alias
You can have more than one alias. Separate each with the vertical bar (|) symbol.
274
Shortcut keys
A shortcut key is an underlined letter in a choice on the Actions menu. Windows, OS/2, and UNIX users
type only the shortcut letter to select the menu item. To specify a shortcut, type an underscore before the
letter you want to assign as the shortcut. For example, S is the shortcut for this Save action:
_Save
Notes ignores the underline when it displays the name of an action on the action bar.
275
276
To add a tool
1. Select Tools - Add Tool.
2. Enter the name of the tool.
Tip: To make the tool accessible to users with physical disabilities, specify a keyboard accelerator key
for the tool name by putting an underscore (_) before the letter you wish to use as the accelerator key.
3. Do one of the following:
v Select Run program to have a menu item launch a tool from within Designer. Enter the path for
the executable file or browse to select the executable.
v Select Run formula to launch a tool using an @commmand formula.
4. In the Tool Location section, specify one or more contexts when the tool should be available. That is,
if you do not want the tool to be always available, choose the design elements where you might use
the tool in your design work. For example, if you select Form Design, the tool will be available
during form design; if you select Form list, the tool will be available from the tool menu when you
are in the list of forms.
5. Click OK.
The name of the tool appears on the Tools menu for the contexts. That is, if you specified the tool
should always be available, it will always be on the Tools menu. If you specified the tool should only
be available for page design, it will only display when a page has focus in the work pane.
277
To edit a tool
1. Select Tools - Customize Tools.
2. Click the arrow next to the name of a design context to display tools associated with that design
context.
3. Select the tool name and click Edit. You can edit the name of the tool and/or the formula that it
executes. Note that if you had chosen to run an executable program from the menu, the action is
represented as an @command([Execute]) formula. You can change the name of the executable file or
customize the formula.
4. Click OK to confirm your changes.
278
The types of Domino database resources you can access with a WebDAV client are:
v File resources
v Images
v Cascading Style Sheets (CSS)
Setting up WebDAV
Before you use WebDAV, it must be enabled on the Domino server. Check with your system
administrator to make sure WebDAV is enabled in the Web Site document (found under the Internet Sites
view in the Domino Directory).
You must also do the following:
v Provide the user with either Designer or Manager access in the database Access Control List (ACL).
The user also must have both Create documents and Delete documents privileges enabled in the
database ACL.
v On the Advanced tab of the database ACL, set the The maximum Internet name & password field to
either Designer or Manager access.
v Ensure that you have the correct proxy settings configured for the WebDAV client.
Note: If your WebDAV client uses a proxy server to access the Domino server where the WebDAV
database resides, you may experience problems when you try to connect to the WebDAV database. If
so, disable the proxy for access to that server. You can selectively disable the proxy, specifying that the
proxy not be used for access to that one particular server. If you are using Microsoft Windows
Explorer, Internet Explorer 5, or Internet Explorer 6 as the WebDAV client, open the browser and go to
Tools - Internet Options - Connections tab. Choose LAN settings, then click the Advanced button. In
the Exceptions edit box, enter the hostname of the Domino WebDAV server, such as
develop1.acme.com.
v Check with your server administrator to make sure sessions authentication is disabled in the Web Site
document (found under the Internet Sites view of the Domino Directory) that enables WebDAV.
For more information on setting up the Domino server to use WebDAV, see Administering the Domino
System.
279
v If a database has the field Dont allow URL open enabled in the Database Properties box, then you
will not be able to access the database using a WebDAV client.
v Macromedia Dreamweaver 4.01 is required to use WebDAV to access databases on a Domino server.
This upgrade can be downloaded from Macromedias web site at:
http://www.macromedia.com/support/dreamweaver/downloads/dw4_updater.html
v In order for Dreamweaver locks (Check In and Check Out) and Designer client locks to interoperate
correctly, the following must be configured.
In Dreamweaver, under the Remote Sites configuration panel, the user needs to supply a user name to
authenticate -- for example, James Smith/Acme -- and a valid password.
The user must also supply an e-mail address -- for example, james_smith@acme.com. This e-mail
address is what is used for Check In/Out in Dreamweaver. The email address specified in
Dreamweaver must exactly match the e-mail address that is in the Internet Address field in the
Person document in the Domino Directory (names.nsf) for the user James Smith/Acme. Only then will
both clients recognize the user to be the same person.
Limitations
v Microsofts Front Page 2000 is not a supported WebDAV client for use with Lotus Notes Domino.
v WebDAV-enabled clients on MAC PCs are not supported with the Lotus Notes Domino Web Server.
v The following are WebDAV-enabled clients that should work correctly with WebDAV on a Domino
server: Microsoft Internet Explorer 5.0x or greater, Windows Explorer on NT, Windows XP, Windows
98, Windows 2000 Macromedias Dreamweaver 4.01, Microsoft Word 2000 and Excel 2000.
Note: Microsoft uses the term Web Folders to represent their WebDAV client application. Please refer to
Microsofts documentation for how to use Web Folders.
Note: With Macromedias Dreamweaver you configure a Remote Site to use WebDAV in order to access
Domino databases via WebDAV. Please refer to Dreamweavers documentation for more information on
how to configure this.
Virtual collections
When a design element is inserted into a Domino database via WebDAV, Domino creates collection
elements to represent all of the collections in the containment hierarchy of the files inserted. These
collection elements hold properties for the collection and represent collections that may be, or might later
become, empty (that is, have no contained elements). A collection can exist, however, without a collection
element to represent it. This can happen when elements are created or renamed using the Designer client.
In this case, the collection is referred to as a virtual collection. A virtual collection exists when a design
element specifies the name of a collection in its path name, but a collection element for the collection
does not exist. For example, if the design collection for a database contains an image resource titled
images/logo.gif, but does not contain a collection element named images, then images is a virtual
collection.
Virtual collections behave much like non-virtual collections with the following exceptions:
280
v The properties of a virtual collection are a set of defaults based on the properties of the database. For
example, the creation date of a virtual collection is the creation date of the database.
v A virtual collection that no longer contains elements disappears.
v If a WebDAV client attempts to set properties on a virtual collection, the Domino server attempts to
create a collection element for the collection, transforming the virtual collection to an actual one.
Once you have mapped a database to a WebDAV client, you can use the interface of the WebDAV client
to browse the database and select elements within the database to open.
To display the contents of a resource within a database from a Web browser using a URL, you append
the name of the resource (the value of the associated $TITLE field) to the folder name. For example,
http://servername/sales.nsf$files/images/logo.gif
Note: You cannot use Microsofts Internet Explorer to access a WebDAV database that is located in a
subdirectory of the Domino servers data directory. Use Windows Explorer instead.
Once you have established a connection to a Domino database using a WebDAV client, you can open a
resource, edit it, and save it back to the database. Or you can add an element that you have created using
a third-party editor to the database.
CAUTION:
WebDAV clients do not maintain operating system attributes, such as a read-only state. For example, if
you create a HTML page, and flag it as being a read-only file in Windows, the page will not be
flagged as read-only if you add it to a database and view it from Designer.
281
When a name collision involves a collection element, the collection element name is adorned as described
above. However, if the collection contains any elements, then an unadorned virtual collection will be used
to hold the contents of the collection. The result is that when viewed from a WebDAV client, there will be
both a name-adorned collection which contains no elements, and an unadorned collection which contains
all of the elements in the collection. Collections with adorned names cannot be the target of a move or
copy operation and you cannot create elements in collections with adorned names -- that is, they will
always be empty. You can, however, rename or delete a collection with an adorned name in order to
attempt to resolve the name collision. Deleting a collection with an adorned name only deletes the
collection element that is involved in the name conflict. It does not delete any of the elements that are
contained in the virtual collection with the unadorned name.
Note: The above discussion implies that names that match the adorned name style (Name(NoteID).ext),
where NoteID is the ASCII representation of an eight-digit hexadecimal number, should be avoided in
design element names. While the Domino server will not allow you to create or name a design element
from a WebDAV client with a name that could be confused with an adorned name, the Designer client
will allow you to do this.
282
@DB commands
As in previous releases, you can use @DB commands and the LotusScript Data Object (LS:DO) to
exchange data with relational databases using ODBC.
For more information on @DB commands and LS:DO, see the Programming Guide.
283
Domino Connectors
Domino Connectors are modules that provide native connectivity to external, relational databases. You
can access these connectors through the forms-based development tool in DECS, or through the Domino
object classes using LotusScript or Java languages.
Additionally, Lotus supplies connectors for ERP systems. These are sold separately. For information about
these connectors, visit the IBM Web site, http://www.ibm.com.
For more information on Domino Connectors, see the Domino Connectors Setup Guide.
Description
Domino version
LS:DO - LotusScript Data Object Provides LotusScript access to any ODBC-compliant R4.0 or higher
data sources.
284
Connectivity solutions
Description
Domino version
R4.6.3 or higher
R4.6.3 or higher
R4.0 or higher
R4.0 or higher
285
2. Create the DCR by identifying the type of application you are connecting to and specifying the
existing data source.
3. (Optional) Customize the DCR settings.
4. Set a database property that allows for connection to external data sources.
5. Create fields on a form that map to fields in the external data application using one or more DCRs.
6. Import external records to bring the existing data from an external database into a Notes application.
To create a DCR
1. Launch Domino Designer.
2. In the Design pane, select Shared Resources - Data Connections.
Any existing data connections display in the Work pane on the right.
3. Click the New Data Connection button at the top of the Work pane. The Data connection
Properties box appears.
4. Enter a name for the connection resource.
5. (Optional) Enter an alias to use in place of the name.
6. (Optional) Enter a comment describing the connection.
7. Select the class of application you are connecting to -- that is, the type of database.
8. Select the type of connection. Certain databases, such as DB2 and Oracle, have native drivers that are
listed as an available type of connection. If a specific driver is not available, choose a generic one,
such as ODBC or OLE DB. For example, to access an MS Access database, choose OLE DB as the
connection type.
9. Enter the username and password you use to access the system you are connecting to.
10. Enter the name of the data source that maps to the external application you plan to access.
Depending on the type of database you are connecting to, you may have to supply specific
connectivity information such as aserver name, a host string, or a catalog.
11. Select the type of object to connect to: table, view, or procedure.
12. Enter the User ID for the owner of the table or view. The owner is the creator of the database you
are connecting to. The owner must supply you with the correct owner ID, which is typically in the
format ownername.tablename. In the case of a procedure, you must also enter the procedure name for
any of the document events that will trigger the procedure.
13. Enter the name of the table, view, or procedure. You can click the Browse Metadata button to
browse the external database for the name of the table, view, or procedure.
14. (Optional) Click the Options tab to customize the settings for the DCR.
286
Space trimming
Specify whether to trim trailing spaces only on non-key fields or not at all.
287
Setting
Usage
DB2
Data journaling
Select this option to enable SQL querying for a non-journaled data source.
When the data source is non-journaled data -- for example, an IBM eServer
iSeries database without journaling -- SQL queries are not supported unless
this option is selected. This option sets the access mode to read only
(transaction isolation level of uncommitted read), which enables SQL queries.
The default access level is read-write (transaction isolation level of
committed read).
ODBC
Single threading
OLE DB
Provider
OLE DB
Provider string
OLE DB
Authentication
service
The name of any authentication server used by the provider. This field maps
to the OLEDBDBPROP_AUTH_INTEGRATED property.
288
289
Note: Before you add or edit records, you must enable the Allow connections to external databases
using DCRs database property.
For more information on creating a DCR, see Creating a database connection resource and Using a
data connection resource on a form.
290
Note: For DataLens programs that use Windows 3.1, ensure that the data sources named in those
programs are registered in ODBC.INI (not DATALENS.INI).
Red
Green
Blue
Record 2
Yellow
White
Black
Record 3
Red
Green
Blue
If the property to generate unique keys in index is enabled, the following records will display in the
view:
Column 1
Column 2
Column 3
Red
Green
Blue
Yellow
White
Black
Record 3 does not display because it does not contain unique data.
For more information on using this option with the NotesSQL DISTINCT clause, see the product
documentation for Lotus NotesSQL on http://www.lotus.com/ldd/doc
291
@DbColumn and @DbLookup can only retrieve data. They cant add, delete, or modify data, or perform
other operations. @DbCommand can retrieve data or send other SQL statements that can change data.
LotusScript provides a wider range of capabilities including the ability to update the external database.
For more information about accessing external databases through ODBC and the ODBC versions of
@DbColumn, @DbLookup, and @DbCommand, see the Programming Guide.
292
293
Importing an applet
Before you import a Java applet, you must enable Java applets on your workstation and make sure all the
related files are available on your workstation.
1. Open a page or form, or click in the rich text field of a document.
2. Choose Create - Java Applet.
3. In the Create Java Applet dialog box:
v Select Import an applet from the file system.
v In Base Directory, enter the path for the applet files.
v In Class Name, enter the name of the main class.
To avoid typing the path and class name, click the folder icon to browse for the main class file for
the applet. Clicking the main class file inserts the class and the path in the correct fields.
4. Click Locate to see all related files for the applet.
5. Browse for the applet files from the local file system, or from the Shared Resources list, then do one of
the following:
v If you are using a shared resources applet, specify the database where the applet files reside. Select
the related applet files and click Add/Replace File.
v If you are inserting an applet that is packaged as a JAR file, select the JAR file, and click
Add/Replace File to include the JAR file.
6. Click OK twice.
7. (Optional) Set applet parameters, attributes, and properties.
For example, the main class name for the following Java applet is ArcTest.class.
<applet code=ArcTest.class width=400 height=400></applet>
294
For most applets, you must select all class and resource files. Select the source files only if you plan to
send the applet to another user who wants to export them and change the applet.
If you are inserting an applet that is packaged as a JAR file, you can enter the path and the main class
name as described above. Note that browsing for the JAR file inserts the filename with a CLASS
extension in the Class Name field. In some cases, the file name and the main class name are the same; in
other cases, they are different and you must edit what appears in the Class Name field to be the correct
main class name.
If you have more than one applet in a form, document, or page, Notes stores only one copy of common
files.
instead of
http://java.sun.com:80/applets/Bubbles/index.html
v In the Base class name field, enter the name of the main class. Note that Java is case-sensitive to file
names.
4. Click OK.
5. (Optional) Set applet parameters, attributes, and properties.
295
6. Enter the corresponding value in the Parameter Value window. For example, enter black for the
example HTML tag in Step 5.
3. Select the Java applet and if the Programmers pane is not displayed, choose Java Applet - Java
Applet Parameters.
4. Click Applet Parameters.
5. Click Paste to add the parameters and their values.
Tips
v To change a parameter value, click its name in the Programmers pane. Then change its value in the
Parameter value window.
v The parameter value is a formula; therefore, you must enclose text values in double quotes. In addition
to text strings, a parameter value can be an @function or a field name.
v If you are running an applet through a browser, you can add JavaScript to a form or document to
interact with the applet by calling its public methods or setting/getting its public properties.
296
v Properties specify how an imported or linked applet appears in the page, form. You can also use Java
applet properties to hide the applet under specific conditions.
To set properties, use the Java Applet Properties box.
4. (Optional) Use the Text to display when applet is not running property in the Java Applet Info tab
of the Java Applets Properties box to specify text that a browser displays when it supports Java but
cannot display the Java applet.
Setting properties
Use the Java Applet Properties box to set applet properties (such as height and width). You can also use
the Properties box to hide an applet by condition, or to hide an applet based on the browser accessing it.
Description
Base class
DocBase
CodeBase
CodeBase is the path storing the class files, relative to the base class file. If
you linked to an applet on the Web, the URL of the directory containing
the applet is displayed, and you can edit the URL name. Otherwise, the
field is provided for information only.
Size
The Height and Width fields set the size of the applet display area in the
Domino application where the applet is running. If the applet is too large
to run in the default size, you must reset these settings, using the height
and width settings from the HTML file. To determine the applet size, use
any text editor or Web browser to view the HTML file. Check the width
and height values specified in the <applet> tag. Enter these values in the
Width and Height fields. You can also specify a size for the applet as a
percentage of its parent window.
Domino displays the text you specify when it cant run the applet. Enter a
simple text string, such as This applet is not working at this time.
297
Property
Description
If you select Applet uses Notes CORBA classes, this setting becomes
available.
When a user accesses a document that uses this form, the Web server fills in the field with a string
describing the browser type and version. The format of the string differs according to the browser.
Some examples:
Mozilla/3.0Gold (WinNT; I)
Mozilla/2.0 (compatible; MSIE 3.02; Update a; Windows 95)
4. Select the Java applet and choose Java Applet - Java Applet properties. Click the Hide When tab and
enter a formula that uses this field to hide the applet for a particular browser. Use the
@contains(HTTP_USER_AGENT; string) formula.
For example, use the following formula to hide the applet from Internet Explorer:
@Contains(HTTP_USER_AGENT; "MSIE")
298
To stop an applet
To stop running one or all applets in a page, form, or document, choose View - Show - Java Applets
Running.
To select an applet
1. If the applet is running, you cannot select it. Choose View - Show - Java Applets Running to stop the
applet.
2. Click directly to the right of the applet.
3. Use the left arrow key to select the applet.
To restart an applet
When you open the page, form, or document containing an applet, it starts running automatically. To
restart an applet after you stopped it, double-click it.
299
To copy an applet
You can copy an applet from one page, form, or document to another page, form, or document. When
you copy an applet you have imported, all its related files are copied. When you copy an applet you
have linked to on the Web, only the link is copied.
1. Stop the applet if it is running.
2. Select the applet and choose Edit - Copy.
3. Click in the page, form, or document where you want to copy the applet.
4. Choose Edit - Paste.
5. (Optional) Set applet parameters, attributes, and properties.
To export files
1. Select the Java applet and choose Java Applet - Export.
2. Choose the directory to export the files to and click OK. Domino exports all the applet files and
creates subdirectories as needed.
300
6. Under When applet is signed by, enter the users and/or groups that will have access to the file
system or Notes classes.
7. In the Allow list, select the options the users can use while running the Java applet.
8. Click OK.
When a user runs the applet, Domino checks for execution rights of the person or group that signed the
applet. If an applet is signed by a person or group without the correct authorization, Domino alerts the
user of the illegal operation. The user can stop the operation and not run the applet, trust the signer of
the applet one time, or automatically add the signer to the execution control list.
301
Considerations
Although you can set up an applet for both externalization and serialization, Notes cannot support both.
An error is not reported, but one applet cannot do both.
In the Java applet itself, you must write methods to support the Java Externalize interface. If the applet
does not have these methods, you can still run the applet. However, the data cannot be saved, even if
you set up the parameters.
If you save data, keep these points in mind:
v If the applet is imported in a subform, the data from the subform has precedence over the data in the
form. Therefore, modifying an applet in a subform modifies all of the forms that include that subform.
v Data from an applet contained in a document takes precedence over the data stored in a form or
subform.
If you imported the applet in a document and you are saving data, the data file will be copied if you
export the applet. If you imported the applet in a form, the data file will not be copied if you export the
applet from a document you created with the form.
Externalization
There are three parameters available to direct Notes to save and reuse externalized data:
v ReadExternalData
Directly after reinitialization, the applet uses this parameter to load data previously saved.
v ExternalData
Any time after reinitialization, the applet uses this parameter to load data previously saved.
v WriteExternalData
302
After a Notes save event, the applet uses this parameter to save current data. The data is saved as an
external object with an attachment in the document that references it. The attachment is hidden and
cannot be seen by the user.
Usually you do not need to use both ReadExternalData and ExternalData. Use either one depending on
when you want the applet to load data.
Generally, the values you assign to the parameters are the same.
To set up externalization
1. Select the Java applet and choose Java Applet - Java Applet Parameters.
2. Click Applet Parameter in the Programmers pane.
3. If you want the applet to load data as soon as it has completed initialization, click Add and do the
following:
v In the Parameter Name field, enter ReadExternalData and click OK.
v In the Parameter value window, enter the value for ReadExternalData. Its value is the name of a file
that is attached to the page, form, or document where the applet is stored. For example, enter:
mydata
4. If you want the applet to load data at some other point after initialization, click Add and do the
following:
v In the Parameter Name field, enter ExternalData and click OK.
v In the Parameter value window, enter the value for ExternalData. Its value is the name of a file that
is attached to the page, form, or document where the applet is stored. For example, enter:
mydata
Notes appends the value with the entire URL of the data file.
5. If you want the applet to save data at the end of the session, click Add and do the following:
v In the Parameter Name field, enter SaveExternalData and click OK.
v In the Parameter value window, enter the value for SaveExternalData. Its value is the name of a file
that is attached to the page, form, or document where the applet is stored. For example, enter:
mydata
If the file attachment does not exist, Notes creates it and stores the data in it.
Serialization
There are two parameters available to direct Notes to save and reuse serialized data:
v Object
The applet uses this parameter, a standard HTML parameter, to load (using Java VM and VM)
previously saved applet data in the serialized object. The object must exist before the applet attempts
to load it, or the operation fails.
v WriteObject
After a Notes save event, the applet uses this parameter, a Notes extension, to save the data. The data
is saved as a serialized object in a hidden attachment to the document. The user cannot see the
attachment.
303
To set serialization
1. Select the Java applet and choose Java Applet - Java Applet Parameters.
2. Click Applet Parameters in the Programmers pane, and then click Add.
3. To load the previously saved data, enter the following in the Parameter Name field and click OK:
Object
4. In the Parameter value window, enter the value for Object. Its value is the name of a file that contains
the previously saved state information from the WriteObject parameter. This file is attached to the
page, form, or document where the applet is stored. For example, enter:
mydata
5. To save the applet data, click Add, enter the following in the Parameter Name field, and click OK:
WriteObject
6. In the Parameter value window, enter the value for WriteObject. Its value is the name of the file that
is attached to the page, form, or document where the applet is stored. For example, enter:
mydata
304
v By using the applet class getDocumentBase method to construct a URL relative to the location of the
document in which the applet is found.
v By using the applet class getCodeBase method to construct a URL relative to the code base of the
applet, that is, the location from which the applets files were loaded.
Depending on what method you use, Domino may not be able to locate resource files for the applet. The
getCodeBase method is the most reliable method for specifying resource files. If you experience problems
with applets not finding resource files, modify your applet to use getCodeBase. Recompile the files and
choose Java Applet - Refresh to replace these files in the document.
Using getDocumentBase
The least reliable means of specifying resource files is the getDocumentBase method. The
getDocumentBase method of specifying resource files returns the base URL (that is, the full document
URL minus the document file name) of the document in which the applet is located. For example, if an
applet is running in a document at:
http://www.someplace.com/test/example.html
Some applets use this method to specify a URL for resource files -- for example,
getImage(getDocumentBase(), image.gif). Using the above URL as an example, the applet would be
looking for the image file at the URL
http://www.someplace.com/test/image.gif
Note, however, that the Domino URL for a document does not simply refer to a file; instead, it is a
command for the Domino server to generate the HTML representing a document. If you use the
getDocumentBase method as a Domino URL, you get unexpected results. For example, suppose you
linked an applet with the following Domino URL:
http://www.someplace.com/database.nsf/MasterView/862..12E?OpenDocument
In this case, using the getDocumentBase method in conjunction with the getImage call returns:
http://www.someplace.com/database.nsf/MasterView/image.gif
The applet cannot find the file because the document ID is gone and the image is an attachment to a
document, requiring a $File qualifier as part of its name.
305
Because the documents ID has been removed (and since the image is in an attachment in the document
and thus needs $FILE to qualify the file name), the requested image cannot be found by the applet.
Using getCodeBase
The most reliable means of specifying a resource file for an applet is the getCodeBase method. The
getCodeBase method returns the base URL from which the applet was loaded. The codebase for an applet
can be specified by the CODEBASE attribute in the APPLET tag. When Domino generates the HTML for
an applet which has been inserted into a Notes document, it generates a full URL for the CODEBASE
attribute. For example, given the example above, the getCodeBase method returns:
http://www.someplace.com/database.nsf/MasterView/862..12E/$FILE
When used in conjunction with resource calls, such as getImage calls, getCodeBase correctly specifies the
resource file. For example:
getImage(getCodeBase(), "image.gif")
This results in a URL that allows the applet to successfully find the file.
Since this effectively means that you are providing a full URL when specifying the parameter value, the
getDocumentBase method in the applet is overridden, and the applet will be able to find the resource file.
306
Best uses
Agent
Programs that perform Domino actions when documents are read or posted.
Programs that need to be run on a schedule or when database actions occur, such
as the arrival of new mail.
Servlet
CGI program
307
308
v CGI program: Access to the program can be controlled by file-protection documents in the Domino
Directory. If the program accesses Domino through a C API, it takes the identity of the server ID; if it
uses the CORBA interface, it can specify a user name and Internet password. In both cases, Domino
security applies.
Options
None: (default) The HTTP task does not load the servlet manager or the JVM.
Domino Servlet Manager: The HTTP task loads both the JVM and the servlet
manager.
Third Party Servlet Support: The HTTP task loads the JVM, but not the Domino
servlet manager. This allows the use of third-party servlet managers such as the
IBM WebSphere Application Server.
The path in a URL that signals Domino that the URL refers to a servlet. The default
is /servlet.
309
Setting
Options
Class path
A list of one or more paths which the Servlet Manager class loader will search to
find servlets and their dependent classes. This setting allows you to add additional
paths. You may specify directories, JAR files, and ZIP files. Paths may be absolute
or relative to the Domino data directory. The default is domino\servlet.
Examples:
Relative directory path: domino\servlet
Absolute directory path: c:\apps\MyServlets
JAR file: c:\javamail\mail.jar
ZIP file: domino\servlet\sql.zip
A list of URL file extensions that signal Domino that a URL refers to a servlet. Each
extension in the list must be mapped to a single servlet by a directive in the
servlets.properties file. The default is no extensions.
The following settings control the Domino Servlet Managers runtime support of the Java Servlet API
HttpSession interface. A servlet that does not use this interface is not affected by these settings.
Note: The HttpSession interface support is completely separate from the HTTP session authentication
feature in Domino.
Setting
Options
Enabled: (default) The servlet manager periodically checks the user activity of all
HttpSession instances. Sessions that have been idle for a given period of time are
automatically terminated. The servlet manager calls the instances
HttpSession.invalidate() method to inform the servlet that the session is being
terminated.
Disabled: Sessions will not be checked for inactivity.
The number of minutes of user inactivity to wait before terminating a session. The
default is 30 minutes.
The number of simultaneous active sessions allowed. The default is 1,000 sessions.
When this limit is reached, the sessions that have been idle the longest are
terminated.
Session persistence
Enabled: When the HTTP task exits, the servlet manager saves session data to a
disk file called sessdata.ser in the Domino data directory. The session data will be
reloaded when the HTTP task is restarted. Objects that the servlet has bound to
sessions will also be saved if the objects implement the java.io.Serializable interface.
Disabled: (default) All session data is discarded when the HTTP task exits.
310
Tip: You can also load classes in the NOTES.INI file when a class your servlet requires conflicts with
classes in the Domino-supplied LotusXSL.jar file. If you load and run a servlet and get a Verify Error
message, try moving the JAR files for the servlet from the Servlet Manager classpath to the
JavaUserClasses statement in the NOTES.INI file.
Alias
Initialization arguments
URL extension mapping
Load at Servlet Manager startup
These properties are specified by directives in the servlets.properties file. The general syntax of a directive
is:
servlet(s).<name>.<property>=<value(s)>
Directives are case-sensitive. The servlets.properties file can also contain blank lines and comment lines
starting with the # character. The servlets.properties file is optional. The default properties for servlets
are: no alias, no initialization arguments, no extension mapping, and load servlets on demand.
Servlet aliases
The alias directive has this syntax:
servlet.<alias-name>.code=<class-name>
For example:
servlet.SQLQuery.code=sql.database.query.Servlet
As a security measure, Domino does not allow servlet names containing periods to be used in a servlet
URL. This prevents malicious users from trying to load arbitrary Java package classes through the Servlet
Manager. If your servlet has a package name, you must assign an alias to it. The above example allows
the servlet sql.database.query.Servlet to be invoked by a URL such as
http://acme.com/servlet/SQLQuery?month=june. Aliases are also useful for hiding the actual names of
servlets from users.
You can assign more than one alias to a servlet. The servlet manager will create a new instance of the
servlet on receiving the first URL that refers to each alias. The servlet manager will call the servlets init()
method when a new instance is created. Since the alias name can be used in other directives in the
properties file, the instances can be given different properties. For example, you could specify a separate
initialization argument directive for each alias. Also, because the servlet classes are only loaded once even
if multiple instances are created, the instances of the servlet can share data by using static class variables.
As a security feature, if you give a servlet an alias, the servlet cannot be directly referenced in a URL by
its class name. This allows you to hide the actual name of a servlet.
Initialization arguments
You can specify initial data for a servlet in the properties file. The servlet can access the data by using the
method ServletConfig.getInitParameter. The initialization directive has this syntax:
servlet.<alias or class name>.initArgs=<name1=value1>,<name2=value2>,...
311
You can assign more than one extension to a servlet, separating each from the next by a space. All
extensions must also be included in the Servlet file extensions setting in the Server record. For example,
to cause Domino to call the SQLQuery servlet whenever a URL specifies the extension sql or sq, add
sql,sq to the server setting and add this directive to the properties file:
servlet.SQLQuery.extension=sql sq
This allows a user to invoke the servlet with a URL like this:
http://acme.com/query.sql?month=june
Load on startup
By default, the servlet manager loads a servlets class files into memory the first time a URL is received
that refers to the servlet. However, you can specify that one or more servlets should be loaded
immediately when the servlet manager is started. This prevents users from experiencing delays when
servlets are first requested from URLs.
The startup directive has this syntax:
servlets.startup=<alias or class> <alias or class> ...
Note that servlets is plural and that the servlet names must be separated by spaces.
If you have given a servlet one or more aliases, you can include the aliases in the startup directive. This
will cause the servlet manager to load the servlet classes and then create an instance for each alias.
After the servlet manager loads a servlets classes, they stay in memory until the Domino HTTP task is
stopped by the console command tell http quit or restarted by the console command tell http restart.
Before unloading a servlet, the servlet manager calls the destroy() method for each instance of the servlet,
to give it a chance to clean up resources.
A class that has been loaded by the JVM class loader remains loaded until the HTTP task is stopped. The
tell http restart command will not unload the class.
312
313
For information about creating XML applications, visit the Lotus Web site at http://www.lotus.com/xml.
What is DXL?
DXL is Domino XML-- that is, Domino data expressed as XML according to the tag definitions in the
Domino Document Type Definition (Domino DTD). DXL allows you to see all or part of a Domino
application as XML, much as you might view the source HTML for a Web page. This lets you apply the
advantages of the flexible XML environment to a Domino application.
For example, you can use the DXL Viewer utility to display one or more design elements as DXL or use
the DXL Exporter utility to write that same information to a file. Once exported in this way it would be
possible to integrate all or part of your application design into other XML-aware applications. But what if
the other application has a different definition for elements like forms and views? Thats where the DXL
Transformer becomes useful. This utility can convert the DXL representation of Domino design elements
into other XML formats using definitions in a stylesheet (XSL). Well-formed HTML qualifies as another
XML format so the DXL transformer can function as a type of report writer by importing design elements
as DXL documents, applying an XSL stylesheet to the design elements and reformatting the output as
HTML. For instance, one of the sample stylesheets that ships with Designer (REPORT-AllLSinForm.xsl)
searches for all the LotusScript code contained in a form and presents it in an easy to read outline. For
example, if you select the Memo form from the Lotus Notes mail template and apply the stylesheet
REPORT-AllLSinForms.xsl your output will appear as follows:
Thus, if you need a particular design analysis not available via the standard Design Synopsis feature, you
can design your own report by creating a new XSL stylesheet. The DXL utilities give you full control over
both the content and format of the output document.
For more information on the Domino DTD, see the Programmers Guide.
314
315
with the Extensible Stylesheet Language (XSL) to transform the data into HTML, or you can use a
Cascading Style Sheet (CSS) to style the XML directly on the client.
You can also generate XML data with a view by including XML tags in column formulas. To pass the
view to the server, you must embed it on a page or view in order to wrap the whole view in the correct
XML document definition tags.
You can use agents or servlets to dynamically generate or store XML. Agents are useful for running a
scheduled process in a Domino application. Servlets run on the server based on a request from a Web
browser.
For information about the Domino DTD and how to generate XML using Java methods, see the
Programming Guide.
XML terminology
The following is a list of important XML-related terms and definitions.
attribute: A name and its value which are included inside an XML tag. For example, in the tag <book
isbn=0-395-73679-X>, isbn is the name and its value is 0-395-73679-X (values are enclosed in single or
double quotes).
Cascading Style Sheet (CSS): A style sheet that defines the appearance of an XML or HTML document
directly on the client.
child: An XML element located inside another XML element.
content model: In XML, the expression specifying what elements and data are allowed within an
element.
Document Type Declaration: A declaration that contains, or points to, a Document Type Definition
(DTD).
Document Type Definition (DTD): A collection of markup declarations contained in a single, or multiple
XML files, that describes an XML documents permissible elements and structure. A DTD ensures that a
uniform structure will be used across all documents.
DTDless: Refers to an XML file with no DTD. A browser processes the XML document structure while
its reading the document because it has no DTD to define the structure in advance.
DXL: Domino Extension Language. DXL is the representation of Domino design elements as XML using
the Domino DTD.
element: A block of text in an XML document made up of a start and end tag, and the content between
the tags. Empty tags are also elements. For example, <price>$12.60</price> and <price/> are both
elements.
encoding attribute: An attribute inside the XML declaration that indicates the level of encoding in the
document. For example, <?xml version=1.0 encoding=UTF-8> indicates that a compressed form of
unicode will be used that assigns one byte for ascii characters, two bytes for other common characters,
and three bytes for all other characters.
Hypertext Markup Language (HTML): A markup language consisting of predefined tags used to
describe a documents structure and appearance.
316
parent: An XML element which contains another XML element. The XML element contained by the
parent is the child element.
root element: The element that contains all of the other elements in an XML document.
schema: A technology-neutral term for the definition of the structure of an XML document.
SGML: Standard General Markup Language. A markup language which serves as the basis for XML.
standalone attribute: An optional attribute inside an XML declaration that indicates whether the
complete XML document is contained in the current file, or if it needs to import other files. For example,
<?xml version=1.0 standalone=yes?>.
style: Defines the characteristics of an elements appearance such as font, boldface, italics.
stylesheet: A document specifying the style information for another document.
valid XML: XML that meets the constraints defined by its Document Type Declaration.
version attribute: An attribute inside the XML declaration that indicates the version number of the XML
specification a document conforms to. For example, <?xml version=1.0?>.
well-formed XML: An XML document is well-formed if there is one root element, and all its child
elements are nested within each other. Start tags must have end tags, and each empty tag must be
designated as such with a trailing slash (<emptyTag/>). Also all attributes must be quoted, and all
entities must be declared.
XML: Extensible Markup Language. A standard for building markup languages.
XML application: A markup language created with XML.
XML declaration: The processing instruction that identifies a document as an XML document and
contains the version attribute and the optional standalone and encoding attributes. An XML declaration is
the first line in an XML document.
XSLT: Extensible Stylesheet Language Transformations. An XML application that defines how an XML
document will be transformed from one form of XML to another. XSLT is commonly used to transform
XML data to HTML for rendering on a client.
317
XML tags look very much like HTML tags. There are some different rules for structuring the XML tags
that you must adhere to when marking up data. For example, requirements for nesting XML are more
rigid than those for nesting HTML tags. For information on marking data with XML tags, visit the IBM
XML Web site at http://www.ibm.com/xml
As an example of using XML on a form, the entries for each book in an online book catalog might look
like this:
<?xml version="1.0" encoding="UTF-8"?>
<BOOK>
<bookTitle>Chess for the Master</bookTitle>
<bookCategory>Games</bookCategory>
<bookAuthor>Alice B. Charles</bookAuthor>
<bookPrice>10</bookPrice>
<bookListPrice>12</bookListPrice>
<bookISBN>0-980-38475-81</bookISBN>
<bookDatePublished>April 1997</bookDatePublished>
<bookAbstract>The authority on all the latest chess moves, including the entire Big Blue arsenal.
</bookAbstract>
</BOOK>
Note: XML tags are case-sensitive. The tags <book>, <Book> and <BOOK> are all different. Opening and
closing tags must match case exactly for the XML to be well-formed.
3.
4.
5.
6.
Enter the XML elements, generally a root element with sub elements.
Enter the fields that will hold the data you are marking with XML.
Choose Design - Form Properties.
On the Form Info tab, choose Render pass through HTML in Notes.
This property tells Domino to pass all of the document text to the HTTP requester without generating
HTML tags.
318
To use a stylesheet, insert the stylesheet reference tag immediately after the document type declaration
and before the root element. For example:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/css" href="bookdisplay.css"?>
<BOOK>
If you create a stylesheet on a page, set the page property to Treat page contents as HTML.
An XSL stylesheet that transforms information on books to HTML might look something like this:
<?xml version="1.0" ?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl" >
<xsl:template pattern="BOOK">
<HTML>
<HEAD>
<TITLE><xsl:value-of select="BOOKTITLE" /></TITLE>
</HEAD>
<BODY bgcolor="F0FFF8">
<B><xsl:value-of select="BOOKAUTHOR"/></B>
</BODY>
</HTML>
</xsl:template>
</xsl:stylesheet>
<?xml:stylesheet type="text/xsl" href="/roibooks.nsf/bookform.xsl"?>
A cascading stylesheet (CSS), instead of transforming XML into HTML, provides instructions directly to
the server regarding how to format each XML element. A CSS for books might look like this:
BOOK {
display: block;
border: 1px solid #cccccc;
}
BOOKTITLE {
display: block;
float: left;
margin-right: 10px;
padding: 5px;
}
BOOKAUTHOR {
display: block;
font-style: italic;
}
319
page. A view embedded into a page maintains the same functionality on the Web as a view in a Notes
client application and allows you to control the size and appearance of the view display. For views
displaying XML, the page contains the XML declaration and root element.
Example
The ROI Books application assigns each element and field in a document to a column in the XMLView
using a column formula. The column formula for the first child element also contains the open parent
tag, and column formula for the last child element contains the close parent tag. For example, the column
formula for the first column is:
"<BOOK><BOOKTITLE>"+bookTitle+"</BOOKTITLE>"
The parent element is <BOOK>, the child element is <BOOKTITLE>, and bookTitle is the name of the
field containing the content of the <BOOKTITLE> tag. There are more child elements within <BOOK>
that are included in this view, so the <BOOK> element is not closed until the last child element is added.
In the ROI Books application, the last child element is assigned to the last column of the view. The
formula for the last column is:
"<BOOKPUBLISHDATE>"+bookDatePublished+"</BOOKPUBLISHDATE></BOOK>"
The XML View is embedded into a page that contains the XML declaration and the root element
<BOOKCATALOG>.
SELECT status="Approved"
6. Click Form Formula on the Objects tab and enter a formula that selects your template form.
7. Add columns to the view.
8. Click the first column of the view.
320
9. Enter a column formula in the Script area using the following syntax.
<PARENT><CHILD>+fieldname+<\CHILD> If you have more than one element for any column,
add a semicolon (;) at the end of the first column formula and add the column formula for the next
element below it. <PARENT><CHILD>+fieldname+<\CHILD>; <CHILD>+fieldname+<\CHILD>;
<CHILD>+fieldname+<\CHILD>
Tip: Use the following syntax to make a field an attribute of an element. <CHILD
attributeName=\+fieldname+\>+fieldname2+</CHILD>
1. Click the second column and type a column formula into the Script area using the syntax below.
<CHILD>+fieldname+<\CHILD>
2. Repeat Step 10 for each XML element except the last one.
3. For the last child element, the use the syntax below.
<LASTCHILD>+fieldname+<\LASTCHILD></PARENT>
To delete an embedded view, click the embedded view in the Work pane and select Edit - Clear.
321
The agent could be written to not only print the output, but also to store XML output in a string variable
and write it to a static XML document or to another database system using LS:DO or the DECS connector
APIs.
s As New NotesSession
db As NotesDatabase
doc As NotesDocument
view As NotesView
Set db = s.currentDatabase
Set view = db.GetView( "XML" )
Set doc = view.GetFirstDocument
Print "Content-type: text/xml"
Prevents Domino from sending default headers.
Print "<BOOKCATALOG>"
BOOKCATALOG is the root element of the XML document.
While Not ( doc Is Nothing )
Loop as long as there are document objects available.
Print
Send
Print
Print
Print
Print
Print
"<BOOK>"
the parent element for each book document.
"<bookTitle>"+doc.bookTitle(0)+"</bookTitle>"
"<bookAuthor>"+doc.bookAuthor(0)+"</bookAuthor>"
"<bookPrice>"+doc.bookDiscountPrice(0)+"</bookPrice>"
"<bookCategory>"+doc.bookCategory(0)+"</bookCategory>"
"</BOOK>"
322
In another example of how a servlet can supply meaningful, customized data, consider a real estate
application with data on houses for sale stored in a Domino database. A real estate agent or a potential
buyer uses a Web browser to request information about property for sale from the Domino application.
The user specifies search criteria, such as the desired number of bedrooms. A servlet runs in the Domino
application, finding and assembling all of the documents that match the specified criteria. The servlet
dynamically wraps the data it finds in the correct XML tags -- such as <HOUSE> and <HOUSETYPE>. It
Chapter 15. Including XML in Designer applications
323
then uses the LotusXSL processor to apply styles from an XSL stylesheet and transforms the XML-tagged
data to HTML, pushing the correctly formatted data to the requesting browser.
To export the XML for one or more design elements to a text file
1. Select one or more design elements in the design pane.
2. Choose Tools - DXL Utilities - Exporter.
3. Enter a file name and path for the XML file and click Save.
You can open the file in your favorite text editor and view or edit the XML source.
324
To transform the XML for one or more design elements using an XSL
1. Select one or more design element sin the design pane.
2. Choose Tools - DXL Utilities - Transformer.
3. Select the name of an XSL file to use for transforming the XML.
Designer ships with some sample XSL files that you can select or you can browse the file system to
select another XSL file.
4. Choose a type of output. Either select screen for a screen display, or specify an output file name.
325
326
327
Linking maintains the object in the source application and displays the object in the host application,
which in this case is the Notes form. For example, a form might contain a Lotus 1-2-3 spreadsheet that
you update frequently. The advantage to linking is that you can maintain control over the source. When
you update the object in the source application, all links to the object automatically update. The
disadvantage to linking is that all users must have access to the file containing the object, as well as the
application used to create it. In this example, the users need the spreadsheet file and 1-2-3.
Embedding an object allows you to place the object in a form. The object lives in the form, and users
can modify and update the object from the form. For example, if you embed a graphic in a form, users
need a compatible version of the source application to view the graphic. Designer access is required to
modify the graphic.
328
3. Click OK.
Notice after you embed a custom control that the properties for the control appear below in the
Programmers pane. By default these properties are listed alphabetically. The number of properties
available depends on what the specific control supports. Some controls will support dozens of
properties, others just a few. You will always see at least the standard eight Notes properties while in
a form.
Tip: Use the Remove Control from List and Add Control to List buttons to maintain the list of
custom controls that display in the Object type box.
Note: Some custom controls do not display in the Create Object dialog box. You cannot use this method
to insert these controls. Instead, use LotusScript to insert them because these types of controls do not
support a user interface and are only programmable.
To access an existing control, select it.
When a custom control is active, the Help menu is a combination of Designer (File and Applet) and the
custom control. The control may include one menu item for itself -- for example, Spreadsheet for a
spreadsheet control -- and Help. The controls Help is substituted for Designer Help.
Use the Applet menu choice to:
v Copy and cut the entire object. (Use the Edit menu to copy and cut selected text in the object.)
v Access Notes properties for the control, including the name of the control.
v Access the controls own properties.
v Set the controls mode.
v Freeze and unfreeze the controls events.
If a control is active when you embed it in a form, a list of properties and event appears in the Info List
of the Programmers pane. You can attach scripts to these events.
For information on attaching scripts to a custom control, see the Programming Guide.
329
To edit the OLE object using the properties in the programmers pane
1. With the form in Edit mode, click the object.
Properties for the OLE application display in the Programmers pane.
2. Highlight (SizeToWindow) and double-click the value to toggle it from FALSE to TRUE. Click outside
the Programmers pane to accept the change.
3. Save and close the form.
Note: When the SizeToWindow property is set to TRUE, an OLE object will expand to fit the entire
window after a user double-clicks it. Note that if there is information on the form other than the OLE
object, it will not display when the OLE object is expanded to fit the window.
330
331
332
Nested objects
If the OLE server application is also a client application, an object in a Notes document may have other
objects within it. In this case, when an object is updated, the object in the Notes document reflects the
changes even if they were made in an other application.
When an object that contains other objects is autolaunched, only the application that created the object
embedded in the Notes document is launched.
333
334
document. When people read the document, the 1-2-3 object is visible in the rich text field, but the object
does not autolaunch. To edit the object, the user opens the document in Edit mode and double-clicks the
object to launch it.
Tip: The Hide-When section allows you to decide when to show the modal dialog. You have six options
to hide the modal dialog: Opening create, Opening edit, Opening read, Closing Create, Closing
edit, and Closing read.
For more information about showing form actions, see the chapter Adding Automation to Applications.
335
v
v
v
v
v
The main focus of the document is the object, and users dont need to fill in anything else.
The form contains only one object.
Users arent familiar with Notes and want to work in a familiar application.
The Notes database is functioning solely as a container system for other application files.
All users have access to and can launch the other application and always work in that application.
Example
You create a report-tracking database that allows users to use 1-2-3 to create and update their own
expense reports. When users create or update expense reports, they dont need to see the Notes
document; instead, they want to autolaunch the expense report object in 1-2-3.
To design a form that mirrors your users workflow, create an Expense Report form, embed a worksheet
object in the form, and set the form properties to automatically launch the worksheet. In the Hide when
box, select:
v Opening Create
v Closing Create
v Opening Edit
v Closing Edit.
When users choose Create - Expense Report, Notes automatically starts 1-2-3 and launches the embedded
worksheet object. Users enter information directly into the 1-2-3 worksheet object and never see the Notes
document. When users complete the expense reports and quit 1-2-3, the worksheet object embedded in
the form updates, users are returned to the view level in Notes. If users want to edit their expense
reports, they open the document in Edit mode, and 1-2-3 autolaunches. When they close 1-2-3, users are
returned to the view level of Notes.
Information from the expense report worksheet appears in the Notes document or in the Notes view. The
Notes database contains all of the expense reports.
336
Publishing actions
Actions allow you to integrate file creation and storage in other desktop products with the document
sharing, storage, security, and management tools of Notes. When you publish an action, you make it
available on the Action menu in any open OLE server application. For example, you might automate a
document review process so that a Notes user opens a document that autolaunches a Word Pro file. After
editing the file, the user clicks the Send to Next Reviewer menu choice in Word Pro, which routes the
document containing the Word Pro document to the next user. By publishing actions, you seamlessly
coordinate tasks between applications.
From a designers point of view, publishing actions expands the scope of what you can do with a flow of
work and enhances your ability to control that flow. Teamed with autolaunching, publishing actions
allows you to focus or limit user-access to commands, thereby controlling the flow of work. By
simplifying and automating multistep tasks, you improve the security of your system and reduce the
chance of user error. Actions can incorporate functions, @commands, and LotusScript. Notes also supplies
a number of simple actions, such as Move to Folder, which allow you to incorporate useful actions in
your form design without programming in LotusScript.
For information on actions, see Overview of Automation.
337
Note: The Bring document window to front property applies only when the document window in
Notes has not been hidden.
To publish an action
1.
2.
3.
4.
5.
6.
7.
8.
9.
Examples
A Word Pro document needs to be routed for approval. The Notes form you create has an embedded
Word Pro document set to autolaunch when edited and an action called Send to Next Reviewer. When
a user opens the Notes document in Edit mode, the Word Pro document automatically launches. After
reviewing the Word Pro document, the user selects the Send to Next Reviewer action from the Action
menu. This action sends the Notes document to the next reviewer and closes the object.
To provide other routing options, you can add the actions Ready for Next Reviewer, Return to
Previous Reviewer, and Archive Document to the Notes form.
One-way fields
One-way fields provide information for exchange in only one direction. These fields supply information
about a file -- for example, file size and creation date. One-way fields exist by default in the OLE server
application; you must create the corresponding fields in your Notes form.
For example, Word Pro documents have a field called SizeInK, which contains the size of the Word Pro
document in kilobytes. To exchange the data in this field with a field in a Notes form, create a field
named SizeInK in the Notes form. After you set up field exchange, changes to the Word Pro field
appear in the Notes field; however, changes made to the Notes field do not affect the Word Pro field.
338
Two-way fields
Two-way fields provide information for exchange in two directions -- that is, from Notes to the OLE
application and from the OLE application to Notes. When you change the contents of the field in either
application, both fields update. Fields defined as two-way exist by default in many OLE server
application files; therefore you must create corresponding fields in your Notes form.
For example, the Document Description field in a Word Pro document corresponds to the Subject field in
a Notes document. After you set up field exchange, changes to one field automatically appear in the
other field. The fields must have the same name.
User-defined fields
These fields exchange data in two directions, but you must create these pairs of fields, since they do not
exist by default in the OLE server application file or in Notes. User-defined fields usually exchange
working data, such as text or numbers.
For more information about fields in OLE server applications that exchange data with Notes, see the
documentation for the OLE server application.
Data type
Contents
LastRevisionDate
Time
NumberOfEdits
Number
EditingTime
Number
SizeInPages
Number
SizeInK
Number
DocumentClass
Text
Subject
Text
Categories
Note: If you are using a form copied from a Designer template, fields may already be set up for field
exchange.
Note: You can disable Notes/FX 2.0 field exchange without removing the Notes/FX fields from the form
by checking the Disable Field Exchange property.
339
6. Give the field the same name as the corresponding field in the other application.
7. Close and save the form.
340
When users use the form Trip Report to create reports and activate the 123 object to enter expenses, the
total expenses are automatically inserted back in the Trip report document.
341
342
Planning workflow
Before you select the type of mailing features that suit a workflow application, you should carefully plan
the actual workflow. One way to implement a workflow application is to collect information in a central,
shared database and then distribute the information through e-mail to the appropriate people. Another
way to implement a workflow application is to send documents automatically from one user to another
for review.
343
Sending documents
Sometimes it makes sense to mail documents automatically, as in the following situations:
v You want users to work on documents sequentially
v You want to send documents to a mail-in database for centralized tracking
For these applications, you must create a form with a SendTo field field that specifies the recipients, or
use a formula or program that includes the SendTo information.
Use any of these methods:
v Add a MailOptions field with a value of 1 to force the document to be mailed when it is saved.
v At the Defaults tab of the Form Properties box, select On Close: Present mail send dialog to let users
decide if they want to mail the document.
v Create an agent, event, form or view action, hotspot, or button that uses:
The simple action Send Document
The formula functions @Command([MailSend]) for optional mailing or @MailSend for automatic
mailing
A LotusScript program that uses the Send method of the NotesDocument class or the
NotesUIDocument class
A Java program that uses the Send method of the lotus.notes.Document class
344
In addition, all forms and views contain the default action Send Document that you can display in the
Actions menu or the action bar.
For more information on reserved fields for mailing options, see the topic Reserved fields that control
mailing options in the chapter Designing Fields.
345
Description
Mail-in name
A name that identifies the database in the SendTo fields or in formulas on the form.
Description
Domain
Server
Filename
The database directory name (if the database is in a subdirectory of the Notes Data directory)
and the file name.
For information on all the fields in the Mail-in database document, see Lotus Domino Administrator
Help.
4. Optional) Click Administration. Next to Administrators, enter additional names of people who can
change this document.
5. Give the name of the database to appropriate users so they can enter it in the To field of messages
destined for the database.
6. Close and save the document.
346
9.
10.
11.
12.
13.
14.
15.
17. In the Subject box, click Formula, type the following formula and click OK:
ActionItem + ", due " + @Text(DueDate)
13. Check Include summary for each document in view and click OK.
14. Close and save the agent.
347
348
349
1. Open the main database of the subscription. Even if the subscription has multiple databases, copy
DOLS design elements only into the main database.
2. Open DOLRES.NTF (the DOLS Resource template). DOLRES.NTF is in the Domino Data directory.
3. Copy the following pages from DOLRES.NTF into your database:
v DOLS Request Offline ID. This is a hidden page. Do not do anything else to it.
v One of the following:
DOLS Web Control. This page loads ActiveX and/or plug-ins that enable Go offline and Go
Online menu items in the database. You must either choose this design element or the DOLS
Load Download Page as a way for users to download the subscription. For more information on
downloading the subscription, see the topic Customizing how users install the DOLS
subscription.
DOLS Load Download Page. If you prefer to use an icon instead of the DOLS Web Control in your
subscription, use this page. For more information on downloading the subscription, see the topic
Customizing how users install the DOLS subscription.
v (Optional) DOLS Web Control Bitmaps. Copy this page if you want to change the default bitmaps
built into the DOLS Web Control. For more information on downloading the subscription, see the
topic Customizing how users install the DOLS subscription.
4. Copy the DOLS Offline Configuration form from DOLRES.NTF into the Domino subscription. This
form contains the Offline Subscription Configuration Profile form. Every DOLS subscription must
contain this form.
5. Copy the Edit Offline Configuration agent from DOLRES.NTF into the subscription. This agent
allows you to create an Offline Subscription Configuration Profile document.
Note: Do not copy the agent named Delete Configuration Document. Deleting an Offline
Subscription Configuration Profile document may cause problems for a subscription. The Delete agent
is included in this template for unusual circumstances only, such as a failed upgrade.
6. Copy the following subforms from DOLRES.NTF into the Domino subscription:
v DOLS Configuration Settings. This is a table of Offline Subscription Configuration Profile document
fields. Do not modify this subform. Because this form inherits its design changes from
DOLRES.NTF, any changes you make may be overwritten.
v DOLS Customize. Use this subform to customize the configuration document. This is the only
subform that you should modify and you can leave it hidden or make it visible. You can create
fields and modify fields dynamically in other subforms. For more information on using the
Customize subform, see the topic Customizing fields and design elements in a DOLS
subscription..
v DOLS Download Control. This subform contains the JavaScript that loads the Web Control when a
user installs a subscription. This subform only displays in a browser. Do not modify this subform.
Because this form inherits its design changes from DOLRES.NTF, any changes you make may be
overwritten.
v DOLS Download Instructions. This subform contains the default text that the user sees when a
subscription is installed. Do not modify this subform.
350
The DOLS Web Control page (in DOLRES.NTF) loads ActiveX (in Internet Explorer browsers) or
plug-ins (in Mozilla browsers) that enable Go offline and Go Online menu items in the subscription.
When users click Go Offline or Go Online they can choose several options, including installing the
subscription.
You can cut and paste the contents of the Web Control page to another page or design element, but the
disadvantage of cutting and pasting is that you do not automatically receive changes the next time you
upgrade.
The DOLS Web Control Bitmaps page (in DOLRES.NTF) contains the default images the user clicks to
open the Web Control menu. You can replace these images with your own by giving your files the same
names as the default files, then deleting and replacing the default files with your own.
Your image files must have the following names to override the default image files:
v DOLCONTROLDEFAULT.BMP - the bitmap that appears when no subscription is installed
v DOLGOOFFLINE.BMP - the bitmap that appears when users open the subscription online once its
installed
v DOLGOONLINE.BMP - the bitmap that appears when users open the subscription offline once its
installed
One reason you may want to change the default bitmaps is to replace the default English words in the
images with another language. Or, you may want to say something other than Install Subscription, Go
Offline, or Go Online, or use different colors.
You must create a frame for the Web Control in the main frameset of the subscription. The default height
and width for each bitmap file is 64 pixels by 16 pixels. To change the default height and width of the
bitmaps, edit the JavaScript in the DOLS Web Control page. (Make sure you also adjust the size of the
frame that contains the bitmap.)
Each subscription can have only one Web control.
Using an icon
The DOLS Load Download Page page contains an icon called DOLS.GIF, which loads into a new frame
in the subscription. Unlike the Web Control, there is no popup menu. A user clicks the icon to install the
subscription. Once the subscription is installed, the user must manage the subscription (for example,
synchronize, or open the subscription online or offline) with the Sync Manager.
An advantage of using this page instead of the Web Control is that the subscription downloads faster. Or
you may want to use your companys logo as the icon for downloading the subscription. The
recommended way to use this page is to include it as a frame in a frameset. You can also cut and paste
the JavaScript to another page or design element, but the disadvantage of cutting and pasting is that you
do not automatically receive changes the next time you upgrade.
You can replace DOLS.GIF with your own image by opening DOLRES.NTF, choosing Shared Resources Images, clicking New Image Resource, and adding your image. Then replace references to DOLS.GIF in
the JavaScript contained in the DOLS Load Download Page page with the name of your image.
351
You can change configuration settings even after users have downloaded the subscription.
Action
Select the appropriate boxes so that only files the users actually need
are downloaded to their machine.
MAPI enablement is available only when you use the Extended Mail
Template (MAIL6EX.NTF) for Web mail.
Choose a default language for the Web Control menu and the Domino
Sync Manager. Users can override this setting by selecting a different
language from the Web Control menu.
This field is available only when you select the Custom services box.
Enter the name of custom service files to be unpacked and executed on
the users computer during installation of the subscription. Custom
services have the following syntax: CustomServiceName [Setup.exe
[SetupArguments]]. For example:
mycustomname mysetupfile.exe -z -r -u
If you specify more than custom service, separate the services with
commas. For example:
mycustomname mysetupfile.exe -z -r -u, mycustomname2
mysetupfile2.exe -z -r -u
For more information on custom file sets, see the topic Creating
custom file sets for a DOLS subscription.
6. Click the Schedule tab and complete the following fields. Note that the user can override most of
these fields from within the Subscription Properties box of the Domino Sync Manager.
Name of Field
Action
Type of schedule
Daily
Select this field, then specify the time of day you want synchronization
to occur.
Weekly
Select this field, then check the days you want the synchronization to
occur.
Monthly
Select this field, then specify the day of the month you want the
synchronization to occur.
Start time
352
Name of Field
Action
Frequency
Repeating schedule
Interval
Limitations
Stop synchronization at
Recurrence exceptions
Schedule disabled
7. Click the Sync Options tab and complete the following fields:
Name of Field
Description
File Rules
Required files to replicate
353
Name of Field
Description
Directory catalog
Encryption
Syc Options
Date Filtering
354
Syc Options
Halt Conditions
v Limit database size to [number] MB: Select this box to specify the
maximum size in megabytes of the offline database. You cannot
specify a number less than 10.
v Limit subscription size to [number] MB: Select this box to specify the
maximum size in megabytes of the entire offline subscription. You
cannot specify a number less than 10.
You can preset an automatic halt to the offline synchronization when a
database exceeds a particular size, or when the subscription as a whole
exceeds a particular size. The user can override this setting.
Note: Be careful not to specify a size that may be too limiting. The
offline subscription may not be fully operational if synchronization is
interrupted prematurely.
Select this box if you want the user to receive a message when
synchronization is complete. The user can override this setting.
If warnings are displayed during the synchronization process, and this
option is selected, each warning message will display.
Select this box so that pending outgoing mail messages are sent before
the user exits from the Domino Sync Manager. The user can override
this setting.
Select this box so that synchronization occurs before the user exits
from the Domino Sync Manager. The user can override this setting.
Select this box so that the subscription can be installed to a client with
a Notes multi-user setup. Subscription data is stored in the users
personal profile data directory.
Select this box to allow the subscription to share a file with another
subscription, as long as as the same user has installed both files.
For example, a user installs this subscription with the directory catalog
dircat1.nsf. If the user then installs another subscription that uses
dircat1.nsf., and also selects this option, the two subscriptions share
dircat1.nsf.
All subscriptions that share the same file must be either encrypted or
not encrypted. Non-encrypted subscriptions may not be able to share a
file that is encrypted.
355
Action
356
Name of field
Action
Network Settings:
Security Settings:
Enable this setting so that the users offline Internet password remains
synchronized with their online Internet password. This setting works
only when the Online Configuration document Security Settings field
Keep Internet Password Synchronized is enabled.
9. (Optional) At the bottom of the configuration document, select whether to display the default
download page or create your own download page. The download page is what users see while
theyre installing a subscription. Its useful for showing instructions, company graphics, warnings, or
tips. Do one of the following:
v Leave Display default download page contents selected to have the download page contain the
default text and graphics. You can add text, HTML, or images in the rich-text field below the
default text and graphics.
v Select Display only the custom contents below to create a download page. A rich-text field
appears in which you can add text, HTML, or images.
10. Save and close the configuration document.
11. Save and close the subscription.
12. (Optional) Customize the subscription. For more information on customizing the subscription, see
the topic Optional tasks for DOLS developers.
357
v Use wildcards (*) or use a directory when entering values in either the Required files to replicate or
Optional files to replicate fields on the Rules tab of the Offline Subscription Configuration Profile
document.
If you enter explicit file names in either of these fields, you must re-edit the configuration document
each time you add or delete files. For example, if the field contains three files -- SalesApp\main.nsf,
SalesApp\contacts.nsf, SalesApp\custom.ntf -- you must update the field each time a file is added to
the SalesApp\ directory or else that file will not replicate offline to join the rest of the subscription.
By using wildcards (*) in either of these fields, you specify that all database files or all template files in
a given directory are automatically replicated, even files recently added. For example, if you use a
wildcard in this way, all NSF files in the SalesApp directory are replicated:
SalesApp\*.nsf
Similarly, to make sure all NTF files in the SalesApp directory are included in the replication, specify
the following:
SalesApp\*.ntf
By using just the directory, without a wild card, in either of these fields, you specify that all files in the
directory, whether NSF or NTF, are replicated, even files recently added, as in this example:
SalesApp
Description
-d
Enter this argument, then enter the directory path to your program files (all the separate files, not
the .EXE or .DLL.)
358
Argument
Description
-f
Enter this argument, then enter a name for the INF file, including the INF suffix. If you do not use
the -f argument, the default file name will be the same as the name of the directory specified in
the -d argument.
The INF name must match the compressed EXE or .DLL file name. For example, if the EXE file is
N_MYCUSTOM.EXE, specify N_MYCUSTOM here to produce N_MYCUSTOM.INF.
-v
Enter this argument, then specify a version number. If you do not use this argument, the default
version number is 0.0. This version number is compared against any existing custom programs
previously downloaded.
The new program is not downloaded if a program with a higher version number exists on the
users machine.
-h
Examples
DOLMKINF -d project\myfiles
DOLMKINF -d project\myfiles -f project\n_mycustom
DOLMKINF -d project\myfiles -f project\n_mycustom -v 1.0
The utility generates an INF file containing the number of files in the program; the number of bytes
for the files in the program; and the version number of the program.
4. Open the Offline Subscription Configuration Profile document. Click the Services tab, then select
Custom Services.
5. Specify your program name (without the N_ prefix or .EXE suffix) in the Custom Services to install
offline field. For example: MYCUSTOM
In this example, DOLS looks for N_MYCUSTOM.EXE and N_MYCUSTOM.INF in the \filesets
directory. The files are installed to the Domino Web Access client program directory on the users
machine.
6. (Optional) Specify a setup program and any arguments your program takes. For example:
MYCUSTOM SETUP.EXE -r
In this example, DOLS looks for N_MYCUSTOM.EXE and N_MYCUSTOM.INF in the \filesets
directory. The files are installed to the Domino Web Access client program directory on the users
machine.
Then SETUP.EXE runs and takes the -r argument.
Note: If you specify more than one program, separate the entries with commas.
359
Identity icons
You can attach identity icon files to the DOLS Customize subform that identify the subscription on the
users computer. You can attach from one to three identity icons to this subform by choosing File - Attach
in Lotus Domino Designer 7. The icons you attach must be named:
v subscription.ico - This icon appears on the users Windows desktop and serves as a shortcut to the
offline subscription. The default is
v syncstate1.ico - This icon and syncstate2.ico toggle on the task bar during synchronizations of the
subscription. The default is
v syncstate2.ico - This icon and syncstate1.ico toggle on the task bar during synchronization of the
subscription. The default is
Element
Type
Where Found
Comments
DOLSLoadDownloadPage
Page
DOLRES.NTF
DOLSWebControlBitmaps
Page
DOLRES.NTF
dolcontroldefault.bmp
Bitmap file
attachment
DOLSWebControlBitmaps
Page
dolgooffline.bmp
Bitmap file
attachment
DOLSWebControlBitmaps
Page
dolgoonline.bmp
Bitmap file
attachment
DOLSWebControlBitmaps
Page
DOLSEditOfflineConfiguration
Agent
DOLRES.NTF
DOLSOfflineConfiguration
Form
DOLRES.NTF
DOLSConfigurationSettings
Subform
DOLRES.NTF
DOLSRequestOfflineID
DOLSWebControl
360
Name
Element
Type
Where Found
DOLSCustomize
Subform
DOLRES.NTF
DOLSDownloadControl
Subform
DOLRES.NTF
DOLSDownloadInstructions
Subform
DOLRES.NTF
SubscriptionTitle
Field
DOLSConfigurationSettings
Subform
Title of subscription.
subscription.ico
Icon file
attachment
DOLSCustomize Subform
syncstate1.ico
Icon file
attachment
DOLSCustomize Subform
syncstate2.ico
Icon file
attachment
DOLSCustomize Subform
ChooseDownloadText
Field
DOLSConfigurationSettings
Subform
Basic
Field
DOLSConfigurationSettings
Subform
Search
Field
DOLSConfigurationSettings
Subform
LotusScript
Field
DOLSConfigurationSettings
Subform
JavaApplets
Field
DOLSConfigurationSettings
Subform
CustomFile
Field
DOLSConfigurationSettings
Subform
CustomFileNames
Field
DOLSConfigurationSettings
Subform
CanonicalServerName
Field
DOLSConfigurationSettings
Subform
ScheduleType
Field
DOLSConfigurationSettings
Subform
Weekdays
Field
DOLSConfigurationSettings
Subform
Monthdays
Field
DOLSConfigurationSettings
Subform
RunOnce
Field
DOLSConfigurationSettings
Subform
Check box
StartTime
Field
DOLSConfigurationSettings
Subform
Date/time
Repeat
Field
DOLSConfigurationSettings
Subform
Check box
RepeatInterval
Field
DOLSConfigurationSettings
Subform
RepeatIntervalUnit
Field
DOLSConfigurationSettings
Subform
Selection list
Comments
361
Name
Element
Type
StopSync
Where Found
Comments
Field
DOLSConfigurationSettings
Subform
Check box
SyncStopTime
Field
DOLSConfigurationSettings
Subform
Datetime
LimitSyncDuration
Field
DOLSConfigurationSettings
Subform
Check box
SyncDuration
Field
DOLSConfigurationSettings
Subform
Disabled
Field
DOLSConfigurationSettings
Subform
Check box
RequiredFilesToReplicate
Field
DOLSConfigurationSettings
Subform
Text list
AutoReplicate
Field
DOLSConfigurationSettings
Subform
Check box
OptionalFilesToReplicate
Field
DOLSConfigurationSettings
Subform
Text list
LimitReplicateDaysBack
Field
DOLSConfigurationSettings
Subform
Check box
ReplicateDaysBack
Field
DOLSConfigurationSettings
Subform
LimitDBSize
Field
DOLSConfigurationSettings
Subform
Check box
DBSizeLimit
Field
DOLSConfigurationSettings
Subform
LimitSubscriptionSize
Field
DOLSConfigurationSettings
Subform
Check box
SubscriptionSizeLimit
Field
DOLSConfigurationSettings
Subform
NotifyOnCompletion
Field
DOLSConfigurationSettings
Subform
Check box
RouteMailOnShutDown
Field
DOLSConfigurationSettings
Subform
Check box
RunReplicationOnShutdown
Field
DOLSConfigurationSettings
Subform
Check box
CustomDownloadText
Field
DOLSDownloadInstructions
Subform
362
v To add a default catalog, open the NOTES.INI file on the server and add the line
$DOLSDirectoryCatalog=nameofcatalog.nsf (nameofcatalog being the actual name of the catalog).
Once you do this, you dont need to specify a catalog in the Directory catalog to replicate field in
the Offline Configuration Profile document.
v From the DOLS Customize subform, you can create a field that looks up a catalogs name on the
server record and populates the Directory catalog to replicate field with that name.
2. Open the Offline Subscription Configuration Profile document.
3. Enter the name of the catalog in the Directory Catalog field in the Rules tab.
4. Restart the server.
363
364
365
366
This table shows the user access levels, listed from highest to lowest.
Access level
Allows users to
Assign to
Manager
Create documents.
Edit all documents, including those created by
others.
Depositor
Create documents.
No Access
367
Default privileges
Optional privileges
Manager
Create documents
Delete documents
Create documents
Delete documents
Create documents
Delete documents
368
Access level
Default privileges
Optional privileges
Author
Create documents
Delete documents
Create private agents
Create personal folders/views
Create LotusScript/Java agents
Write public documents
Replicate or copy documents
Reader
Depositor
Create documents
No Access
None
Create documents
Select this privilege for all users with Author access. If you deselect this privilege to prevent Authors
from adding any more documents, they can continue to read and edit documents theyve already created.
Delete documents
Authors can delete only documents they create. If this privilege is deselected, a user cant delete
documents, no matter what the access level. If a form contains an Authors field, Authors can delete
documents only if their name, a group that contains their name, or a role that contains their name
appears in the Authors field.
369
370
documents in a database. You could create a role named DocEditors. That role would then be added to
the Authors fields of those documents, and assigned to those users who are allowed to edit those
documents.
You must have Manager access to create roles in the database ACL. You must create a role before you
assign it to a name or group in the ACL. Once you have created roles in an ACL , they are listed in the
Roles list box on the Basics panel of the ACL dialog box. Role names appear in brackets -- for example,
[Sales]. When you add an entry to a database ACL, you can assign them to a role by selecting a role from
the Roles list box.
CAUTION:
If you create a role that restricts access to part of an application and you do not assign it to yourself,
you will be restricted from accessing that part of the application in both the Notes client and in
Designer. Make sure you assign each role to yourself as you create it to avoid this problem.
This table describes the design elements to which the database designer can restrict access by using roles.
To restrict who can
An Authors field
Sections
View properties
Folder properties
Form properties
Form properties
CAUTION:
Using roles to restrict access to database elements is not a foolproof security measure. For example, if
a designer restricts access to certain documents in a database, the database manager or Domino
administrator must remember that documents inherit their Read access list from the Read access
option that is set in the Form Properties box for the form used to create the document. Therefore,
anyone with Editor access or above in the database ACL can change a documents Read access list.
Notes
v You do not need to include any brackets in the role name when adding or removing a role. However,
when you rename a role, you must type the role name exactly as it appears in the ACL, including the
brackets and case-sensitive characters.
371
v To display a role assigned to a person, group, or server, select an entry in the ACL. If a check mark
appears next to a role in the Roles box, the selected person, group, or server is assigned to the role.
Tip: To display entries by access level, click the arrow next to People, Servers, and Groups, and then
select a specific access level.
6.
7.
8.
9.
10.
11.
12.
Make sure that you have Manager access in the database ACL.
Select the database icon from your Bookmarks pane.
Select File - Database - Access Control.
Click Add.
Do one of the following to add a name to the ACL:
v Select the person icon and continue to Step 6.
v Type the name of a user, group, or server and continue to Step 8.
Click the arrow and select a Domino Directory or Personal Address Book. Using the name picker in
the dialog box, you can select from the directories and address books available to you to find the
name you seek.
Click Add.
(Optional) Select a user type from the list in the User Type box.
Select an access level from the list in the Access box.
(Optional) Refine the access level by selecting or deselecting additional access level privileges, if
available.
(Optional) Select a role from the Roles box. The role displays a check mark when selected.
Click OK to save your changes.
372
-DefaultUsers and servers receive the access assigned to the -Default- group if they have not specifically been
assigned another access level, either individually or as a member of a group, or from a wildcard entry.
You cannot delete the -Default- group from an ACL. The default access for -Default- depends on the
design of the database template and varies among the different templates.
The access level you assign to the -Default- group depends on how secure you want the database to be.
Select No Access if you want a database available to a limited number of users. Select Author or Reader
access to make a database available for general use. The User Type field for -Default- should be set to
unspecified.
LocalDomainServers
The LocalDomainServers group lists the servers in the same domain as the server on which the database
is stored. This group is created by default with every Domino Directory. When you create a new
database, the default access for the LocalDomainServers group is Manager. The group should have at
least Designer access to allow replication of database design changes across the domain. The
LocalDomainServers group is typically given higher access than the OtherDomainServers group.
OtherDomainServers
The OtherDomainServers group lists the servers outside the domain of the server on which the database
is stored. This group is created by default with every Domino Directory. When you create a new
database, the default access for the OtherDomainServers group is No Access to prevent a database from
replicating outside the local domain.
For more information on creating hierarchical name schemes, see Administering the Domino System.
Wildcard entries
To allow general access to a database, you can enter hierarchical names with a wildcard character (*) in
the ACL. You can use wildcards in the common name and organizational unit components.
Users and/or servers who do not already have a specific user or group name entry in the ACL, and
whose hierarchical names include the components that contain a wildcard, are given the highest level of
access specified by every one of the wildcard entries that match.
373
User names
You can add to an ACL the names of any individuals with certified Notes user IDs or Internet users who
authenticate using name-and-password or SSL client authentication.
v For Notes users, enter the full hierarchical name for each user -- for example, John Smith/Sales/Acme
-- regardless of whether the user is in the same hierarchical organization as the server that stores the
database.
v For Internet users, enter the name that appears as the first entry in the User name field of the Person
document. You can enter multiple alias names in the User name field, but the first entry is used to
perform the security authorization check so it is the first entry that should be used on all Domino
ACLs -- that is, server file and database ACLs.
For more information on database access for anonymous Internet users, see the topic Anonymous
access later in this chapter.
For more information on setting a maximum level of access for Internet users, see the topic Maximum
Internet name-and-password access later in this chapter.
Server names
You can add server names to an ACL to control the changes a database receives from a database replica.
To ensure tighter security, use the full hierarchical name of the server -- for example, Server1/Sales/Acme
-- regardless of whether the name of the server being added is in a different hierarchical organization
than that of the server that stores the database.
Group names
You can add a group name -- for example, Training -- to the ACL to represent multiple users or servers
that require the same access. Users must be listed in groups with a primary hierarchical name or an
alternate name. Groups can also have wildcard entries as members. Before you can use a group name in
an ACL, you must create the group in the Domino Directory or in an LDAP directory that has been
configured for group expansion in the Directory Assistance database.
Tip: Use individual names rather than group names for the managers of a database. Then when users
choose Create - Other - Memo to Database Manager, theyll know whom they are addressing.
Groups provide a convenient way to administer a database ACL. Using a group in the ACL offers the
following advantages:
v You can add one group name instead of adding a long list of individual names to an ACL,. If a group
is listed in more than one ACL, modify the group document in the Domino Directory or the LDAP
Directory, rather than add and delete individual names in multiple databases.
374
v You can change the access level for several users or servers at the same time.
v You can use group names to reflect the responsibilities of group members or the organization of a
department or company.
Tip: You can also use groups to let certain users control access to the database without giving them
Manager or Designer access. For example, you can create groups in the Domino Directory for each level
of database access needed, add the groups to the ACL, and allow specific users to own the groups. These
users can then modify the groups, but they cant modify the database design.
Terminations group
When employees leave an organization, the Domino administrator should remove their names from all
groups in the Domino Directory and add them a terminations group, which is denied access to servers.
Work with your server administrator to make sure that the names of terminated employees are removed
from the ACLs of all databases in your organization. Make sure that the terminations group is added to
the ACLs and that the group is assigned No Access.
You can also use the Deny Access group for this purpose. The Deny Access group contains the names of
Notes users who no longer have access to Domino servers. When you delete a person from the Domino
Directory, you have the option to Add deleted user to deny access group, if such a group has been
created. (If no such group exists, the dialog box displays No Deny Access group selected or available.)
For more information on the Deny Access group, see Administering the Domino System.
Alternate names
An alternate name is an optional alias name that an administrator assigns to a registered Notes user,
often to publish a name in two different character sets, such as English and Kanji. You can add alternate
names to an ACL. An alternate name provides the same level of security as the users primary
hierarchical name. An example of a user name in alternate name format is Sandy
Smith/ANWest/ANSales/ANAcme, where AN is an alternate name.
LDAP users
You can use a secondary LDAP directory to authenticate Web users. You can then add the names of these
Internet users to database ACLs to control user access to databases.
You can also create groups in the secondary LDAP directory that include the Internet user names and
then add the groups as entries in Notes database ACLs. For example, an Internet user may try to access a
database on a Domino Web server. If the Web server authenticates the user, and if the ACL contains a
group named Web, the server can look up the Web users name in the group Web located in the
foreign LDAP directory, in addition to searching for the entry in the primary Domino Directory. Note that
for this scenario to work, the Directory Assistance database on the Web server must include an LDAP
Directory Assistance document for the LDAP directory with the Group Expansion option enabled. You
can also use this feature to look up the names of Notes users stored in foreign LDAP directory groups for
database ACL checking.
When you add the name of an LDAP directory user or group to a database ACL, use the LDAP format
for the name, but use a forward slash (/), rather than a comma (,), as a delimiter. For example, if the
name of a user in the LDAP directory is:
uid=Sandra Smith,o=Acme,c=US
enter the following in the database ACL:
uid=Sandra Smith/o=Acme/c=US
To enter the name of a non-hierarchical LDAP directory group in an ACL, enter only the attribute value,
not the attribute name. For example, if the non-hierarchical name of the LDAP group is:
Chapter 19. Security in an application
375
cn=managers
in the ACL enter only:
managers
To enter the name of a hierarchical group name, include LDAP attribute names in ACL entries. For
example, if the hierarchical name of the group is:
cn=managers,o=acme
in the ACL enter:
cn=managers/o=acme
Note that if the attribute names you specify correspond exactly to those used in Notes -- cn, ou, o, c -- the
ACL wont display the attributes.
For example, if you enter this name in an ACL:
cn=Sandra Smith/ou=West/o=Acme/c=US
because the attributes correspond exactly to those used by Notes, the name appears in the ACL as:
Sandra Smith/West/Acme/US
Anonymous access
Anonymous database access is given to Internet users and to Notes users who have not authenticated
with the server. You can control the level of database access granted to an anonymous user or server by
entering the name Anonymous in the access control list, and assigning an appropriate level of access.
Typically you assign Anonymous users Reader access to a database.
The table below describes different ways that an anonymous user can access a database:
Anonymous access enabled for
Internet protocol
Access specified
376
Access specified
Anonymous users (both those who are given access to a database through the Anonymous entry and
those who have access through the -Default- entry) who try to do something that is not allowed for their
access level will be prompted to authenticate. For example, if Anonymous is set to Reader, and an
anonymous user tries to create a new document, that user is prompted to authenticate with a name and
password.
Tip: If you want all users to authenticate with a database, make sure that Anonymous is in the database
ACL with an access level of No Access, and add the Internet users name to the ACL with the level of
access you want the user to have. You should also be sure that the Read Public Documents and Write
Public Documents privileges are not enabled in the database ACL.
The Domino server uses the group name Anonymous solely for access control checks. For example, if
Anonymous has Author access in the database ACL, the true name of the user appears in the Authors
field of documents the user creates in the database. The Domino server can display only the true name of
anonymous Notes users, but not of anonymous Web users, in the Authors field of the document. Authors
fields are never a security feature, regardless if anonymous access is used; if the validity of the authors
name is needed for security, then the document should be signed.
Replica IDs
To allow an agent in one database to use @DbColumn or @DbLookup to retrieve data from another
database, enter the replica ID of the database containing the agent in the ACL of the database containing
the data to be retrieved. The database containing the agent must have at least Reader access to the
database containing the data to be retrieved. Both databases must be on the same server. An example of a
replica ID in a database ACL is 85255B42:005A8fA4.
If you do not add the replica ID to the access control list, the other database can still retrieve data if the
-Default- access level of your database is Reader or higher.
To determine the replica ID of a database, choose File - Database - Properties, and click the Info (i) tab.
Or choose File - Database - Design Synopsis, and select Replication.
377
Note: If you enter only the common name in the ACL (for example, Sandra E Smith), then that entry
matches only if the users name and the database server are in the same domain hierarchy. For
example, if the user is Sandra E Smith, whose hierarchical name is Sandra E Smith/West/Acme, and
the database server is Manufacturing/FactoryCo, then the entry Sandra E Smith will not get the correct
level of access for ACLs on the server Manufacturing/FactoryCo. The name must be entered in full
hierarchical format in order for the user to obtain the correct level of access to ACLs on servers in
other domains.
v If no match is made on the user name, the ACL then checks to see if there is a group name entry that
can be matched. If an individual trying to access the database happens to match more than one group
entry -- for example, if the person is a member of Sales and the two group entries for Sales are
Sales/West/Acme and Sales/Acme -- then the individual is granted the highest access level, as well as
the union of the access privileges of the two entries for that group in the ACL.
Note: If the user matches an explicit entry in the ACL, and is a member of a group that is also listed
in the ACL, then the user always gets the level of access assigned to the explicit entry, even if the
group access level is higher.
v If no match is made on the group name, the ACL then checks to see if there is a wildcard entry that
can be matched. If the individual trying to access the database happens to match more than one
wildcard entry, the individual is granted the highest access level, as well as the union of the access
privileges of all the wildcard entries that match.
v If a group entry and a wildcard entry both apply to a user attempting to access the database, then the
user has the access assigned to the group entry. For example, if the group Sales has Reader access and
the wildcard entry */west/Acme has Manager access, and both entries apply to a user, then the user
has Reader access to the database.
v If no match can be made from among the database ACL entries, the individual is granted the level of
access defined for the -Default- entry.
Make sure that you have Manager access in the database ACL.
Select the database icon from your Bookmarks pane.
Choose File - Database - Access Control.
Select a name to which you want to assign a user type.
378
Make sure that you have Manager access in the database ACL.
Select the database icon from your Bookmarks pane.
Choose File - Database - Access Control.
Click the Advanced icon.
Click Look Up User Types for Unspecified Users.
Click OK.
379
6. Click OK.
Resolution
380
You can also redirect the logout to a design element or URL using the &RedirectTo parameter. For
example:
"Http://acmeserver/sessions.nsf?logout&redirectto=/logoutDB.nsf/logoutApp?Open"http://acmeserver/
sessions.nsf?logout&redirectto=/logoutDB.nsf/logoutApp?OpenPage
Http://acmeserver/sessions.nsf?logout&redirectto=http://www.sales.com
You can build this expression into an application -- for example, using it in a button -- or type it in as a
URL.
381
Note that the server administrator actually has three options in allowing access over the SSL port:
v With anonymous access over the SSL port -- Web users can connect to the server using the SSL port,
however, the server allows anonymous users.
v With name and password access -- Web users connect to the server over the SSL port, and authenticate
using name and password.
v With access through client certificates -- Web users have been issued an X.509 client certificate and
connect to the server over the SSL port. They are authenticated using this client certificate.
To
1.
2.
3.
4.
382
1.
2.
3.
4.
5.
6.
Make sure that you have Manager access in the database ACL.
Select the database icon from your bookmarks page.
Select File - Database - Access Control.
Click Advanced.
Select the maximum access level from the list next to the field Maximum Internet name & password.
Click OK.
To
Signed fields
Verify that the Notes user who originated the data is the
author and that no one has tampered with the data.
Encrypted fields
Hidden fields
383
384
For information on creating an Authors field, see To create Readers and Authors fields later in this
chapter
For information on updating Authors fields, see Administering the Domino System.
Select Allow multi-values for a field that stores a text list with multiple names. Concatenate the
names in the formula with a colon.
"Mary Sen":"Marketing":"Joyce OConnor"
Place quotation marks and square brackets around role names that qualify access levels.
"[Scheduling Committee]"
4. To create editable or computed field values, click the Programmers pane, select a formula type, and
write the formula; click the green check mark to save the formula.
Note: Include server names in the formula if the database will replicate.
5. On the Control tab, choose one of the following options to generate a list of readers or authors from
which users can select.
Note: Unless None is selected as the lookup option for a Readers or Authors field, users press
either CTRL+ENTER or, if specified for the field, the entry helper button to see a list of possible
entries. If the Readers field is located inside a layout region, leave None selected; other lookup
options do not apply.
v Use None to rely on a formula or on authors to create the list of names. Select Look up names as
each character is entered to speed up typing in editable fields. Domino fills in the first name that
matches the characters the user types.
v Use Address dialog box for choices to display the Names dialog box so users can select names from
a Personal Address Book or from the Domino Directory. Select Look up names as each character is
entered to help users fill in a name quickly and Designer looks up a match.
v Use access control list for choices to display a list of people, servers, groups, and roles in the ACL.
v Use View dialog box for choices to display a dialog box containing entries from a column in a
Designer database view. Select the database to look up, select a view, and select a column number.
6. (Optional) On the Field Info tab, select Allow multi-values to allow more than one name to be
stored in the field.
7. (Optional) On the Control tab, select Allow values not in list to let users enter additional names.
This property is applicable only to Address and Access Control List choices.
8. Save and close the form.
Note: When you specify names for reader and author fields, use the full hierarchical name for each user
if there is a chance this database will be copied or replicated to another domain. Within a domain, an
Chapter 19. Security in an application
385
abbreviated, or common name, is sufficient for user authentication, but between domains, you must
supply the full hierarchical name or authentication will fail.
386
For more information on the Administration Process (adminp), see Administering the Domino System.
For more information on creating views and writing view selection formulas, see Creating a standard
view.
Make sure that you have Manager access in the database ACL.
Select the database icon from your Bookmark pane.
Choose File - Database - Access Control.
Click the Advanced icon.
Below Administration Server, select Server.
Select an administration server from the list, and click OK.
Note: When Notes users create databases, they can specify the administration server for their databases
on the Advanced panel of the database ACL. The database ACL list is automatically updated when the
adminp process is run on the specified administration server.
For more information on the Administration Process (adminp), see Administering the Domino System.
Highlight the text, fields, and other design elements on a form that make up the section.
Choose Create - Section - Controlled Access.
(Optional) In the Section Properties box on the Section Title and Border tab, edit the section title.
(Optional) Enter a Section Field Name.
(Optional) Choose a border style and border color for the section.
You can insert fields and other design elements into the section after creating it. To append design
elements to the bottom of the section, set the border style as a box. When you have finished appending
design elements, set the border style to no border.
Note: When you specify names for section editors, use the full hierarchical name for each user if there is
a chance this database will be copied or replicated to another domain. Within a domain, an abbreviated,
or common name, is sufficient for user authentication, but between domains, you must supply the full
hierarchical name or authentication will fail.
Chapter 19. Security in an application
387
The author can choose Section - Define Editors to name additional editors for a particular status report.
388
You can use only formulas that result in a text list containing one or more names; you can then append
the names to the sections edit access list. Enclose the names in quotation marks and concatenate them
with a colon ( : ).
Mary Sen:Marketing Group
Access role names must include square brackets and be enclosed in quotation marks:
[Scheduling Committee]
For information on using database lookups, see the Programming Guide.
Notes
v Do not create a read access list for the default view of a database.
Chapter 19. Security in an application
389
v Servers that need to replicate a database need access to views that are read-restricted so that view
design changes can replicate.
390
391
For example, public documents are necessary for calendar applications where one user lets another user
read or create appointments on his or her behalf. To create the public documents for this application, you
must first create a public access form containing a public access field. Then you create a public folder or
view to display the document.
Note that you can also make manually run agents available for public access.
392
v SSL transactions. Server administrators can use SSL to encrypt information sent between an Internet
client, such as a Notes client, and an Internet server, to prevent unauthorized users from reading the
data while it is in transit.
v Fields, documents, and databases. You can encrypt fields within a document, an entire document, and
local databases. Then only the specified users can read the information.
For information on the first three items, see Administering the Domino System.
Database encryption
Database encryption is designed to prevent unauthorized access to locally stored databases and is not
intended as a replacement for field-level encryption. Database encryption provides an additional layer of
security because ACL settings do not protect locally stored databases.
Database encryption uses a public-key algorithm. Encryption generates a random encryption key,
encrypts this key with the public key associated with a specific user ID, and appends the resulting key to
the specified database. A user can access an encrypted database only if the users private key can decrypt
the appended key. It is a good idea to encrypt local databases if they are stored on a portable computer,
or if you share your computer with other users.
You can also use local encryption to encrypt databases on a server with the server ID. Then, only those
Domino administrators with access to the server ID can read the database.
Note: When a user copies a database, the data remains encrypted -- even if the database is copied at the
operating system level. The encrypted data is also safe from access by API programs.
Use the local encryption option from the Database Properties box to encrypt databases on a workstation
with a database owners user ID, and to encrypt databases on a server with a server ID. To encrypt a
local database after the initial creation of the database or replica, you or the server administrator must
first compact the database.
Encryption levels
When you encrypt a database, you must select one of the following encryption levels: simple, medium, or
strong. The stronger the encryption, the longer it takes to open a database.
v Use simple encryption when security needs are not great. It is enough to deter casual snooping.
v Choose medium encryption (default) to balances security, strength, and fast database access.
v Use strong encryption when security requirements are paramount, and the resulting database access
performance is acceptable.
For more information on encryption, see Administering the Domino System.
To encrypt a database
You must have Manager access in the database ACL to encrypt a database.
1. Select the database icon from your Bookmark pane, and select File - Database - Properties.
2. Click the Database Basics tab, and then click Encryption Settings.
3. Choose Locally encrypt this database using, and then choose an encryption level:
v Simple
v Medium (default)
v Strong
4. Click For and then choose a single ID to use to encrypt the database. Remember to choose the ID of
the person who needs access to the database.
5. Compact the database
The encryption does not actually take place until you close and reopen the database.
393
Note: You can choose an encryption level when you create a new database or database replica. By
default in Notes Release 6 and later, new replicas created locally are encrypted with medium encryption.
You can change the default encryption settings in File - Preferences - User Preferences - Replication.
Document encryption
If you are planning to use secret encryption keys rather than encrypting with a public key, create the
secret key before you encrypt a document.
You can encrypt documents with keys in several ways:
v Using public keys. You can encrypt documents with public keys on IDs so that only users with those
IDs can read the documents. To do this, you enter one or more names in the Public Encryption keys
field on the Security tab in the Document Properties box.
v Using a form property. Database designers can use a form property to add one or more keys to a form.
Every document created with the form will be encrypted using the encryption keys.
v Using the Database/Document Properties box. Users can use the Database/Document Properties box to
encrypt one or more documents with their own encryption keys stored in their ID files. To use the
properties box to encrypt documents, the form must contain a field that can be encrypted.
v Using the SecretEncryptionKeys field. The SecretEncryptionKeys field can contain either the name of a
key, which is automatically used to encrypt documents, or the field can be blank, allowing users to
assign the encryption key. To encrypt a field with a secret key using either method, users must have it
stored in their ID file.
You can set up forms with text or keyword fields that allow the user to choose whether to encrypt a
document. Designers can also hide the SecretEncryptionKeys field so that users cannot see the names
of the encryption keys.
394
Field encryption
A database designer can encrypt fields with secret encryption keys. To decrypt these fields, users must
merge the secret encryption keys into their ID files. If the user does not have the required encryption key,
the encrypted fields appear blank.
395
encryption key with the form. Then, the four people in the Financials group who have the Salary
encryption key can create, read, and edit encrypted salary history documents, including the data in the
CurrentSalary field.
Using public key encryption, you specify the names of the four members in the Public Encryption key list
associated with the CurrentSalary field. Then the people named in the list can create, read, and edit
encrypted Salary History documents, including the data in the CurrentSalary field.
Users who dont have the Salary encryption key and are not in the Public Encryption key list can read
everything in the Salary History documents, except the data in the CurrentSalary field, but they cant edit
and save existing encrypted documents.
Considerations
Before you distribute secret keys, consider the following:
v Allow only users who have Manager access in the database ACL to send a key to users. Distribute the
key to other managers of the database in an e-mail that allows them to send the key to other users.
Distribute the key to users in a separate e-mail that prevents them from sending the key to others.
v If you distribute an encryption key to users who have Author access in the database ACL, they can
remove encryption from any documents they create.
v If you distribute the key to users who have Editor or higher access in the database ACL, they can
remove encryption from documents that other users create.
396
KEY file, which you can put on a disk and hand to coworkers, who then have to use the Import Key
button in the User ID dialog box on their own computer to add the key to his user ID.
Consider exporting secret keys to files if you are distributing keys to application users who do not use
Notes mail, because only Notes mail users can receive and merge a key via e-mail. Second, if you dont
have complete confidence that the recipients ID file and password are secure, then you shouldnt trust
that the mail system is secure enough for something as potentially sensitive as a secret key.
397
398
When multiple keys are associated with a form or document, users need only one of the specified keys to
read encrypted information.
399
400
401
402
403
Note: Icon changes replicate and can be affected by replace or refresh design procedures. The icon design
will refresh or replace if you disable Prohibit design refresh or replace to modify on the Design tab of
the Design Document Properties box (To get this Properties box, select Icon in the Work pane and then
select File - Design Properties).
404
The Using document, like the About document, can contain rich text, so you can also add document or
database links, buttons, attachments, graphics, or multimedia files.
A Using This Database document should include:
v A brief overview of the application.
v The purpose of each view and its organizations.
v The purpose of each form and how to fill it out.
v The purpose of each agent, when to run it, and the anticipated results.
v The overall work process being automated, if appropriate, including what happens at each stage. When
users fill out documents, they should understand what happens after the documents are saved, and
what other users are expected to do.
To create a document
1. In Designer, open the database youre designing.
2. In the Design pane, click Other - Database Resources.
3. Double-click About Database Document or Using Database Document.
4. Write or edit the information. You can also create links, buttons, hotspots, and attachments. You can
apply text styles, as you would for any Notes form.
5. Save the document.
405
The HelpRequest event is not available for applications over Web servers; however, you can create a
button for an element and program the button using a formula with @Command([OpenHelpDocument])
or @Command([OpenPage]). A user clicks the Help button to see the associated Help document or page.
Because the HelpRequest event accepts a formula, you can use the formula language in other ways to
provide Help. For example, you can use an @If formula with @IsDocBeingEdited to provide different
Help for a form depending on whether a document is being read or edited, or depending on other
conditions specific to your application. You can present a dialog box to allow users to select among
several Help documents or pages. You can place Help text directly onto a form or page, set the text with
a hide-when formula, and use a formula on the HelpRequest event to reveal the text (by changing the
value of a document field) when a user requests Help.
Note: To open documents in response to Help requests, there must be a view containing those
documents sorted by a key field that you can use as parameters for @Command([OpenHelpDocument]).
You can use @Command([OpenPage]) without requiring a specific view or key field.
For syntax and usage information on using @Command([OpenHelpDocument]) or
@Command([OpenPage]) in a formula, see the Domino Designer Programming Guide.
406
Examples
For a text field named Supervisor:
Enter the name of the person to whom you report.
407
To open the Web site document from the Domino Administrator, click the Configuration tab. In the
Internet Sites view, open the Web Site document for the Web Site you want to modify. Click
Configuration and edit the Home URL field. For more information, contact your server administrator.
If you set an About This Database document, a navigator, a page, or another document to launch
automatically when a user opens the database, the Home URL need only open the database to launch the
design element. The syntax is:
/databasename.nsf
This URL opens the Our Home database and displays whatever is selected in the On Web Open launch
setting:
/ourhome.nsf
To open a view automatically, include the view name in the Home URL. The syntax is:
/databasename.nsf/viewname
This URL launches the Contents view of the Our Home database:
/ourhome.nsf/Contents
408
For more information on putting a database into production, see the topic Deploying an application
later in this chapter.
409
If not, check the field formula. The formula may need to include some data type conversion such as
@TextToNumber.
v Do inherited fields inherit their data correctly?
If not, check the fields default value formula.
v Do required fields have input validation formulas that display an appropriate message when the user
tries to save the document without filling in the fields?
If not, create the input validation formulas and include an explanatory message for the user.
v In timedate fields, is the time displaying correctly?
If not, make sure you selected the appropriate time zone option in the Field Properties box.
v Are fields aligned properly with a variety of window sizes and on different monitors?
If not, check the tab settings for the form.
v Are encrypted fields accessible to users who have the encryption key and inaccessible to all other
users?
Make sure that only authorized users have the encryption key. If unauthorized users have the
encryption key, change the encryption key and redistribute it only to authorized users.
v Do fields have field hints?
If not, you might want to consider adding them.
For information on writing field help and field hints, see the topic Writing Help for fields earlier in
this chapter.
v
v
If not, double-click the view that should be the default and choose Design - View Properties. Click the
Options tab and select Default view when database is first opened.
Is there a view that is displayed by date?
If not, add a view that sorts documents by date, so users can view documents in chronological order,
or choose a sort value on the Sorting tab of the Column Properties box, or create a date column in an
existing view that the user can sort in both ascending and descending directions.
Do all views appear correctly on the View menu? Are the appropriate keyboard shortcuts used? Do the
views appear in the correct order?
If not, check the names and the Show in View Menu selection in the View Properties box.
Is the information in the view easy to read?
If the view appears cluttered or the columns are too close together, reset the column width and
justification.
Are all the documents that should be in the view displayed, or are too many documents displayed?
If the view is not displaying the correct documents, check the view selection formula.
Are response documents indented?
If not and you want to indent responses, select Show response documents in a hierarchy on the
Options tab of the View Properties box and create a column for responses.
Do response documents correspond to the correct main documents?
If not, check the view selection formula; also be sure that the responsesonly column is placed directly
to the left of the column that displays the main document information.
If the view uses categories, do the categories appear correctly?
If not, create a sorted, categorized column and use the name of the appropriate keywords field as its
formula.
410
v If the view uses a form formula, do selected documents use the correct form?
If not, verify that the view uses a form formula.
v Check crossplatform compatibility. Are all fonts used in this view available (or approximated) on all
platforms? Are column widths sufficient for all platforms? Did you use platformspecific terms where
appropriate?
Make the application layout as generic as possible to suit all platforms.
v If needed, does the view have a read access list?
To create a read access list, select the Security tab in the View Properties box.
v Are columns displaying in the correct color and highlighting?
v If documents can be expanded, are twisties displayed?
Checking columns
v Is the information in each column correct?
If not, check the formulas in the column definitions.
v Is the column returning values of the appropriate data type?
If not, check the field formula. Columns display only simple text; therefore, you may need to use
@TEXT in the formula to display values from numbers or time fields.
v Is each column displaying all the information that is contained in it?
If not, you may need to adjust the column width and/or the font used to display the column.
v If you are using a date format in a column, have you accommodated 4-digit years so that you avoid
problems with the year 2000 and beyond?
v Are the contents of columns aligned properly?
For example, numbers should be right-justified; text should be left-justified or centered. Check the
justification for each column.
v Are documents in the right order?
If not, make sure that you sort on the correct columns, and that you chose the correct sort order
(ascending or descending).
v Are documents supposed to be numbered?
If so, create a new view that has a column in the left-most position that sorts in ascending order and
uses @DocNumber for its formula.
v Are columns displaying the correct color and highlighting?
If not, select Use value as color on the Info tab of the Column Properties box.
v If documents can be expanded, are twisties displaying?
If not, select Show twistie when row is expandable in the Column Properties box.
411
7. (Optional) Click Encryption to encrypt the database and protect its contents from being accessed at
the operating system level. Then click OK.
8. Choose File Database Access Control to define an appropriate access control list for the template.
The following access levels are recommended for the access control list of a template used for design
maintenance:
Default
Reader
Reader
No Access
Manager
Database Manager
Manager
[Anonymous]
[Default]
[LocalDomainServers]
[OtherDomainServers]
Note: The items within the square brackets are needed only if the template is going to be used for
creating new databases. The brackets are required for these entries.
For more information on putting a database into production, see the chapter Deploying an
application.
412
7. If the database will use replication later on, either to mobile laptops or between servers, confirm that
the replication formulas are working and that servers can handle the volume of replication. For
example, an annual review system places a demand on the server during the review writing time, but
not at other times.
If users will be replicating, then the pilot needs to confirm that replication instructions are appropriate
for the levels of user expertise. While the initial part of the pilot test may be limited to a single server,
if the intended implementation involves multiple servers, then the pilot test needs to address some of
these issues as well.
For more information on replication, see Administering the Domino System.
8. Keep track of questions that people ask about the function or use of the database. Their questions
may include the Using Database document or to the design of the database.
Renaming a database
If you want to change the title of a database, you can edit the title. The database title is the name that
appears as the default bookmark name and the name that appears when you choose File - Database Open. Note that a database name or title is not the same as the database file name. The file name
associated with a database is permanent. The only way to change the file name is to make a copy or a
replica of the database and give the new database a different file name.
1. Open the database.
2. Choose File - Database - Properties.
3. Enter a new database title.
Design synopsis
The Design Synopsis dialog box lets you generate a detailed report on a particular database. The report
lets you:
v Gather information on a database
v Select the design elements you want in your report
v Filter the contents of the report so that you do not automatically get a lengthy report
v Display the report on the screen or have it written to a specified database
413
2. Choose File - Database - Design Synopsis or select Synopsis in the Design pane. The Design Synopsis
dialog box.
3. Click the Design Elements tab and do the following:
v Select design elements one at a time from the list. If you want every element of every design to
appear, select All from the list.
v Choose the specific elements that appear for each of the design elements. For example, if you
selected Forms in the list, all the forms in the database are listed. Select the ones you want in your
report. For example, if you have created a hide-when formula on a page and want to see the
hide-when formula in the design synopsis, select that page in the list.
v The Add button lets you add specific elements one at a time to your report. The Add All button
adds all the elements of a particular design element (for example, all the forms). Your selections
appear on the right. If you want to add every element of every design element, choose All from the
design list and then click Add All.
4. Click the Database Information tab. Then, check the appropriate boxes to include information in your
report on the following topics:
v General information -- gives information such as the database title, location, and categories.
v Space usage -- calculates information such as the file size, number of documents, and space used by
the database.
v Replication -- gives information on the replication settings for the database.
v Access list -- generates a list of users, groups, and servers in the ACL and specifies assigned access
levels and access roles for each.
5. Click the Content tab. Then do the following:
v Check the details you want on each design element. For example, for Forms, you can check Alias
and Last Modification. Those details appear for each selected form in the database.
v Check the appropriate boxes so that your report includes information on subcomponents (such as
formulas), LotusScript code, Java code, HTML code, or JavaScript code.
To generate customized reports, use the DXL Transformer utility. It applies XSL stylesheets to the DXL
representation of one or more design elements. This means that raw XML-based data which describes
a form can be converted into a rich HTML document, allowing full control over content and format.
6. Click the Output tab. Then do the following:
v Choose blank lines or page breaks as report separators.
v (Optional) Check the Write Output to Database box if you want to write the report to a database. If
you check this box, a new dialog box appears letting you specify the database where you want the
output written.
7. Click OK to generate the report.
Unless you chose to have the report written to a database, the generated report is displayed in a new
window. You can print it or save it in a file.
414
v
v
v
v
v
v
v
415
To add a field
If you create a new field, create an agent that inserts the new field into existing documents using the
formula:
FIELD New field name := value;
where New field name is the name of the field and value is the value you want the field in these
documents to have. The value can be the field default value; a formula that calculates the value; or a null
value () that inserts the field into the documents, but doesnt give them any initial value.
After you run the agent, compact the database to reduce the actual file size of the database.
To rename a field
If you rename a field, existing documents continue to refer to the old field name. To update documents to
refer to the new name, create an agent that uses the formula:
FIELD New field name := Old field name;
FIELD Old field name := @DeleteField;
where New field name is the new name for the field, and Old field name is the original name for the field.
416
FIELD $BODY:=@DeleteField;
FIELD $ACTIONS:=@DeleteField;
This formula removes all internal fields attached to the documents where Old form name is the name of
the form used to create the documents.
This line creates a FORM field where New Form name is the form that will display the documents.
417
418
Templates
A template is a skeleton that contains design elements, but no documents. When you use a template to
create a database, the templates design elements are copied to the database created from that template.
You can use the Designer templates as is or customize them. Or, you can create a template by creating a
database with the NTF file extension and the Database is a template property. This property enables the
master template to distribute design changes automatically to databases created from it. Databases that
inherit their designs from master templates receive the latest changes through a nightly server task.
Note: If, for some reason, you do not want a database to inherit designs automatically via the nightly
server task, you have two options: Do not put the template on a server that runs the nightly update task
or do not set the Database is a template property. You can then distribute changes to the database
design by using the Replace Design command, specifying the server where the template is located and
selecting the template. Make sure to set the database properties so that the database does not
automatically inherit the design via the nightly server task.
419
Naming conventions
v You can use letters, numbers, and underscores in the name. Choose a name that indicates the
application type or design elements represented in the template. For example, StdR6Disc represents a
standard Notes template containing the design for a Lotus Domino Designer 6 Discussion database.
v The master template name, the title, and the categories assigned to the database cannot add up to more
than 99 characters.
Creating templates
Using a template, you can establish design standards for use throughout your company. In large
companies, a central development group usually designs and manages templates to provide consistent
designs and speed up distribution of new databases. Use a template to standardize similar types of
applications -- for example, all discussion databases -- or to store individual design elements, such as
fields, forms, views, folders, navigators, and agents that you can use in a variety of applications.
To customize a Designer template, choose File - Database - New Copy to copy the original template and
inherit the original design. Give it a different file name in the Copy Database dialog box to prevent future
releases from writing over your customized template.
Heres a list of changes you might make when you customize a Designer template:
v Leave the original Designer template properties alone so that existing databases that inherit their
design will continue to be synchronized with the template.
v Change the newly copied template file name in the Copy Database dialog box (change File - Database New Copy) to a name that indicates its intended use.
v Change the newly copied template name (choose File - Database - Properties) to a name that indicates
the new templates purpose.
v If existing databases that inherited the original Designer template design need to inherit the design
from the newly created template, edit the database properties of those databases to reflect the name of
the newly copied template.
Design considerations
v The template usually does not control the database icon, the About This Database document, and the
Using This Database document. If you want an icon, About document, or Using document to inherit all
design changes, go into Designer, choose Other - Database Resources, select the icon or document, and
make change in the Properties box so that changes are inherited from the template. The default is not
inherited. You can also change these design elements by manually copying and pasting the redesigned
elements into databases linked to the template.
v Do not create private agents or folders in templates; their changes cant be distributed automatically. If
a private agent or folder exists in a template, you receive error messages when the design is
420
refreshed/replaced. In the case of a shared/private-on-first-use folder: if the folder in the template has
been opened or tested, a private folder exists and that folder generates errors when you try to refresh a
design.
v Databases that inherit their design from a template you create do not contain the ACL entries
LocalDomainServers and OtherDomainServers. You must add these entries to the template with
brackets as follows: [LocalDomainServers] and [OtherDomainServers].
mail\*.nsf
StdR6Mail
mail6sct.ntf
421
b.
mail\jdoe.nsf
StdR6MailSCT
mail6.ntf
Convert all users mail files in the mail subdirectory back to use the original template.
$ nconvert
mail\*.nsf
StdR6MailSCT
mail6.ntf
2. If method 2 above was used, open the Database Properties box of the template (mail6.ntf) and uncheck
the Single Copy Template checkbox. Run the design task to place full design notes back into the
database.
> load design
Note: In addition to these methods, administrators may want to make an OS-level copy of a template,
and store it in a safe place. It is small, and is easily restored.
Notes/Restrictions
v Templates to be designated as Single Copy Templates must be Notes Domino ODS (43).
v Templates that have ever been marked as Single Copy Template cannot be deleted. This is to prevent
unresolved references. They must be deleted at the OS-level, if desired.
v A template that has ever been marked as Single Copy Template cannot have its design replaced at this
time.
v Do not change the name of the single copy template since databases which reference the template may
lose their association.
v Major conversions to/from SCT should be performed with the server down or during hours when
server activity is low.
422
423
1.
2.
3.
4.
5.
6.
7.
8. Click the Template Name box, and press CTRL+V to paste the name.
424
After updating database designs, the Designer task also reloads the LDAP schema on a Domino server
that runs the LDAP service. You can run the Designer task manually.
For more information on master templates, see the topic Creating a database from a template in the
chapter Creating an Application.
For more information on the LDAP service, see Administering the Domino System.
1. From the Domino Administrator, select the server on which to run Designer in the server pane on the
left. To expand the pane, click the servers icon.
2. Click the Server - Status tab.
3. Click Console.
4. Enter the Load design command in the command line at the bottom of the console along with
optional arguments to refresh a single database or all of the databases in a single directory, and then
press ENTER.
Examples
v To refresh all databases in the mail directory:
design -d mail
425
v Make design changes in a template and then use Replace Design to distribute the template design to
the database.
v Make design changes in a master template (sometimes called a design template). Use the Designer
server task or Refresh Design to distribute the master template design to databases that inherit their
design from the master template.
Using a master template to manage design changes is best in larger organizations where you need to
control, track, maintain, and synchronize design changes in a structured way. For small organizations,
using a template or a master template is a matter of preference.
Note that replication is the process by which database replicas on multiple servers synchronize their data
and their designs automatically. Its important to understand which design changes replicate and which
dont and how the database access control list and other replication settings affect the distribution of
design changes.
This figure below summarizes the steps you take to make and distribute design changes to different
types of databases.
Refreshing a design
Refreshing a design updates a database whose design is linked to a template. Design elements that
prohibit design replace or refresh are not included in the updates.
If you use a template to refresh or replace the database design, to ensure that the option Prohibit design
refresh or replace to modify takes effect, select this option as well as the option Propagate this
prohibition of design change in the design properties of the template.
426
427
Replacing a design
The Replace Design command makes a database identical to a template and is the only way to distribute
design changes if the database doesnt inherit its changes from a template. If you have at least Designer
access in the database ACL, you can replace the design of a database with the design from a template.
If you use a template to refresh or replace the database design, to ensure that the option Prohibit design
refresh or replace to modify takes effect, select this option as well as the option Propagate this
prohibition of design change in the design properties of the template.
428
429
430
If you use a template to refresh or replace the database design, to ensure that the option Prohibit
design refresh or replace to modify takes effect, select this option as well as the option Propagate
this prohibition of design change in the design properties of the template.
v Check Propagate this prohibition of design change so that if a database inherits the selected
design elements, the Prohibit design refresh or replace to modify option will be inherited also,
and it will apply to the same elements in replicas of the database.
v Hide the design elements from Web browsers, Notes clients, or Mobile users.
View the settings for design elements (View - Design disappears from the View menu)
Modify, add, or delete fields, forms, navigators, pages, or subforms
Modify or delete existing views
View, delete, or modify existing agents or add shared agents
v
v
v
v
View or change formulas, LotusScript programs, or formulas associated with simple actions
Change the Database Open properties
Display a synopsis of the design
Reveal the design of the database by making a copy or replica of it
431
432
433
434
Mandatory tasks
Perform these tasks before you copy a new database or database replica to a production server.
For more information on the following tasks, as well as information about replication, see Administering
the Domino System.
Task
Considerations
Verify that the Domino Directory contains the Create a Group document in the Domino Directory before adding a
necessary Group documents
Group name in a database ACL. Make sure that the Group
document replicates before you copy the database to a server.
Copy the new database to a server
435
Task
Considerations
If several servers have a replica of the database, make sure that any
necessary Connection documents are set up so that replication can
occur.
Consider the location and time zones of users and the frequency of
database updates needed.
Optional tasks
The following tasks are not required, but you may want to perform them after your database is in
production. Whether or not you need to do these tasks depends on the type of database you are rolling
out to the production server and the roles assigned to an application developer, database manager, or
Domino administrator in your organization.
For more information on the following tasks, as well as information about replication, see Administering
the Domino System.
Task
Considerations
Create a full-text index for the database if users need to search the
database for information. If you create the index before you copy a
For information, see Administering the Domino new copy of the database or a replica to a server, the index settings
System.
carry over to the new copy or replica.
Distribute encryption keys.
436
437
6.
7.
8.
9.
10.
438
Note: Do not choose File - Database - New Copy to create a replica. If you use this command, the
replica ID of the copy is different from the original, and the two databases cant replicate.
Next to Server, click the arrow and select the destination server on which you want to place the new
replica.
Specify the file name and title for the new replica. Any file name you choose must be unique to the
workstation or server on which you place the replica. The file name doesnt replicate. To put the
replica in a folder within the data folder, next to File name type the folder name, backslash, and then
the file name -- for example, JOBS\POSTINGS. If the specified folder does not exist, Domino creates
it for you.
(Optional) Click Replication settings to select replication settings for the new replica.
(Optional) Click Encryption, select Locally encrypt this database using, and click OK to encrypt the
database with the server ID file. Choosing this option prevents users from copying or replicating the
database to their workstations and prevents users from accessing the database directly at the server.
This feature works only if the database ACL specifies the server as the user type Server or Server
group.
For more information on encryption, see the chapter Application Security.
(Optional) For Release 4 format databases only: To allow a database to grow beyond the default 1GB
limit, click Size Limit, select an option, and click OK.
For more information, see the chapter Optimizing Database Performance and Size.
Application Development with Domino Designer 7
Replication settings
By default, two replicas exchange all edits, additions, and deletions if the servers the replicas are on have
the necessary access. However, you can customize replication. For example, to save disk space, you can
prevent the transfer of irrelevant documents. Using replication settings, you can:
v Limit the contents of a replica
v Limit what a replica sends to other replicas
v Assign miscellaneous replication settings, such as a replication priority
You can specify replication settings when you create a replica or on an existing replica. You can specify
some replication settings for multiple replicas at once from one replica. You must have Manager access to
a replica to set replication settings for it.
CAUTION:
Replication settings are not intended to be used as a security measure.
This table summarizes the available replication settings. An asterisk (*) marks the settings you can
manage for multiple replicas from a central source replica.
Panel in File - Replication Settings dialog box
Setting
Controls
Other panel
439
Setting
Controls
Replicate*
Advanced panel
Send panel
Other panel
Other panel
Other panel
Remove documents not modified in the last x days (Space Savers panel)
The number of days specified here, known as the purge interval, controls when Domino purges deletion
stubs from a database. Deletion stubs are markers that remain from deleted documents so that Domino
knows to delete documents in other replicas of the database. Because deletion stubs take up disk space,
Domino regularly removes deletion stubs that are at least as old as the value specified. It checks for
deletion stubs that require removal at 1/3 of the purge interval. For example, assuming the default value,
90 days, when a user opens a database, Domino checks if it has been at least 30 days since it removed
deletion stubs, and if so it removes any deletion stubs that are at least 90 days old. The Updall task,
which runs by default at 2:00 AM, also removes deletion stubs.
You can shorten the purge interval, if you want, but be sure to replicate more frequently than the purge
interval; otherwise, deleted documents can be replicated back to the replica.
Optionally, you can select the check box to remove documents in the replica that havent changed within
the purge interval. If you select the check box, when Domino removes deletion stubs it also removes
documents that havent changed within the specified number of days. These documents are purged,
meaning no deletion stubs remain for the documents, so the documents arent deleted in other replicas.
The Only Replicate Incoming Documents Saved or Modified After: date setting prevents the purged
documents from reappearing through replication. If the other replicas have this check box selected,
similar document purging occurs in them.
CAUTION:
If you select the check box on a database that does not replicate, documents are lost and you can only
recover them from a system backup.
Note: Domino regularly removes deletion stubs according to the purge interval even if you dont select
the check box.
440
Only Replicate Incoming Documents Saved or Modified After: date (Other panel)
A replica can only receive documents created or modified since the date specified. If you clear the
database replication history, during the next replication, Domino scans only documents created or
modified since the date specified here. If you clear the date before clearing the replication history,
Domino scans all documents in the database.
Use this option in conjunction with clearing the replication history to solve replication problems. If you
clear or change this date, when Domino next purges deletion stubs, it resets the date to correspond to the
number of days specified in Remove documents not modified in the last x days setting. For example, if
Domino purges deletion stubs on 1/1/99 and the Remove documents not modified in the last x days
setting is 90, on 1/1/99 Domino resets the date to 10/1/98. If the check box is selected in the Remove
documents not modified in the last x days setting -- meaning documents that meet the purge interval
criteria are purged as well as deletion stubs -- this automatic date reset ensures that the purged
documents arent replicated back into the replica.
For more information on the replication history, see Administering the Domino System.
Receive summary and 40KB of rich text only (Space Savers panel)
If you select this setting, Domino prevents large attachments from replicating and shortens the documents
that this replica receives. The shortened documents contain only a document summary that includes basic
information, such as the author and subject, and the first 40KB of rich text.
When users open a shortened document, they see (TRUNCATED) in the document title. To view the
entire document, users must choose Actions - Retrieve Entire Document from the open document.
Keep the following points in mind when using this setting:
v Users cant categorize or edit shortened documents.
v Agents dont work on shortened documents.
v Shortened documents replicate only if the destination replica also has this option selected.
441
Replicate
Default
Description
Selected
Agents
Selected
Replication formula
Not selected
Selected
Deletions
Selected
Fields
Not selected
442
Do not send changes in database title & catalog info to other replicas
This setting prevents changes made to this replicas database title or Database Catalog categories from
replicating.
443
For information on clearing the replication history, see Administering the Domino System.
To specify replication settings for multiple replicas from one source replica
1. Make sure you understand replication settings.
2. Make sure you have Manager access in the ACL of the central source replica. Make sure that the
central source replica has Manager access in the ACL of all destination replicas.
3. Do one of the following:
v Click Replication Settings in the New Replica dialog box to specify replication settings for a new
replica.
v Open the central source replica, and then choose File - Replication - Settings to modify existing
replication settings.
4. Click the Advanced panel.
5. To specify a destination server, click the computer icon next to When computer, specify the name
of the destination server, select Add Server, then click OK. To specify a Notes client as a
destination server, enter the Notes clients hierarchical name.
6. To specify a source server, click the computer icon next to Receives from, specify the name of a
source server, select Add Server, then click OK. To specify the name of a Notes client as a source
server, enter the Notes clients hierarchical name.
7. To delete a server that is selected as replication target, click either computer icon, select a server,
select Delete Server, then click OK.
8. To have the specified destination replica receive a subset of documents, click Replicate a subset of
documents and then specify the views or folders to replicate or specify a replication formula.
9. To specify which non-document elements the replica should receive, select appropriate options under
Replicate. You must select Replication formula.
10. Repeat Steps 5 through 9 for each additional destination and source server combination.
11. Click OK.
444
other details of technical support calls. Only the contents of the Customer Suggestions view replicate to
the satellite sales office servers. To accomplish this, it completes the replication settings dialog box on the
Technical Support database on Support-E/East/Acme as follows, replicating everything except field data.
Note that although the When computer box shows only Sales-Bos-E/East/Acme, there are similar
settings for Sales-Phil-E/East/Acme and Sales-Hart-E/East/Acme.
445
446
For more information on these commands, see Administering the Domino System.
447
448
449
Note: Designing views that dont display unread marks doesnt improve database performance because
they are still maintained but not displayed.
If you select or deselect the Dont maintain unread marks property, you must compact the database so
that the setting takes effect. Compacting in this case makes a temporary copy of the database, so your
system must have the disk space to make the copy.
Tip: You can also run the Compact server task with the -u or -U option to enable or disable this property
and then compact.
For information on compacting databases, see the book Administering the Domino System.
450
controls whether the Accessed (In this file) property is updated if the last document access was a read.
Maintaining the Accessed (In this file) property for reads causes disk I/O that wouldnt otherwise
occur.
By default, the database property Maintain LastAccessed property is not selected, meaning the
Accessed (In this file) property isnt updated when the last document access was a read, only when the
last access was a document modification. Change the default behavior by selecting Maintain
LastAccessed property.
You should select Maintain LastAccessed property if you use the document archiving tool, available in
the Database Properties box, to delete documents based on days of inactivity.
451
452
Reduces database
size?
Property
Tab
To optimize
performance/size
Basics
Deselect option
Yes
Yes
Basics
Select option
Yes
No
Advanced
Select option
Yes
Yes
Advanced
Select option
Yes
No
Advanced
Select option
Yes
No
Advanced
Deselect option
Yes
No
Advanced
Yes
Slightly
Advanced
Prevents
performance
degradation
No
Advanced
Yes
Advanced
Yes
Yes
453
Compacting databases
When documents and attachments are deleted from a database, Domino tries to reuse the unused space,
rather than immediately reduce the file size. Sometimes Domino wont be able to reuse the space or,
because of fragmentation, cant reuse the space effectively until you compact the database.
Styles of compacting
There are three styles of compacting:
v In-place compacting with space recovery
v In-place compacting with space recovery and reduction in file size
v Copy-style compacting
454
Copy-style compacting
Copy-style compacting creates copies of databases and then deletes the original databases after
compacting completes, so extra disk space is required to make the database copies. This style of
compacting essentially creates a new database with a new database ID. If you use copy-style compacting
on logged databases (using the -c option), compacting assigns new DBIIDs, so if you use a certified
backup utility, you should perform full backups of databases shortly after compacting completes. When
you use copy-style compacting, users and servers cant edit databases during compacting, and they can
only read databases if the -L option is used.
Domino uses copy-style compacting by default when you use an option with Compact to enable a
database property that requires a structural change to a database or when you run Compact on a
database that has a structural change pending that was initiated from the Database Properties box.
Enabling or disabling the database properties Optimize document table map and Dont support
specialized response hierarchy require structural database changes.
The following table compares the three styles of compacting.
Characteristics
In place, space
recovery with file
size reduction
In place, space
recovery
Copy-style
Databases with
pending structural
changes
Current release
Current release
Relative speed
Fastest
Medium
Slowest
Yes
Yes
No (unless -L option
used)
Yes
Yes
No
No
Yes
Yes
No
No
Yes
455
time to wait by specifying the value of the Compact_Retry_Rename_Wait setting in the NOTES.INI file.
For example, to request that Domino wait 2 minutes before trying to rename a database that was
copy-style compacted, specify Compact_Retry_Rename_Wait=120.
Domino enforces the following upper limit when trying to rename a copy-style compacted database:
Num_Compact_Rename_Retries x Compact_Retry_Rename_Wait <= 60 minutes.
Archive Settings
The tool creates an archive database with the title of the source database followed by the word Archive
in parentheses -- for example, Sales (Archive). By default, the archive database is stored on a client or
server within the data folder in a folder called \archive. The file name for the archive database is
a_xxxxx.nsf where xxxxx represents the first five characters in the source database file name -- for
example, a_sales.nsf. You can customize the location and file name of the archive database.
The tool can also report information about the archiving process to an archive log database with the title
Archiving Log. By default, the Archiving Log is stored on a client or server within the data folder in a
456
folder called \archive. The file name for the archive database is l_xxxxx.nsf where xxxxx represents the
first five characters in the source database file name -- for example, l_sales.nsf. You can customize the
location and file name of the archive log. Multiple databases can share one Archiving Log.
You can archive documents on the client or on a server.
When you archive documents on the client, you use an archive database and archive log on the client,
and you run the archiving tool from the client. When you archive documents on a server, you create the
archive database on a server rather than create it on the client. In addition, if the source database is
located on a server, you can set up server-based archiving to use the Compact task on that server to
archive the database rather than manually archive from the client. When you set up archiving, the tool
signs the archive settings with your signature; the Compact task uses the signature to verify that you
have the necessary database access to archive and then archive on your behalf. Server-based archiving
also allows you to:
v Delete documents without archiving them (the default is to archive them)
v Archive without creating an archiving log (the default is to create a log)
v Delete documents even if associated response documents havent been deleted (default is not to delete)
457
6. (Optional) To archive deleted documents, on the bottom pane next to Run, select Simple action(s)
then click Add Action. Then select Copy to Database and select the archive copy of the database
created in Step 1. Click OK and go to Step 8.
7. In the bottom pane next to Run, select Simple action(s) then click Add Action. Then select Delete
from Database.
8. Close and save the agent. Then choose View - Agents, select the agent and choose Actions - Test to
simulate a run and test that it works correctly.
9. Save and close the agent if necessary.
Description
Replication history
Replication monitor
In addition to ensuring that a database is replicating, you should routinely check for and consolidate
replication and save conflicts.
For information on replication monitors and the Event Monitor task, as well as the Database Analysis
tool, see Administering the Domino System.
458
If a database doesnt replicate successfully, Domino doesnt update the replication history.
Make sure that you have Reader or higher access in the database ACL.
Open the database.
Choose File - Replication - History.
Click Done when you finish reviewing the history.
Tip: To copy the entire replication history to the Clipboard, click Copy.
For more information on the Only replicate incoming documents saved or modified after setting, see
Administering the Domino System. For information on viewing cluster replication data, see Administering
Domino Clusters.
459
Tip: If you dont have access to the Domino Administrator, select the log file database and choose File Database - Open.
Replication conflicts
A replication conflict occurs when two or more users edit the same document and save the changes in
different replicas between replications. These rules determine how Domino saves the editing sessions:
v The document edited and saved the most times becomes the main document; other documents become
Replication or Save Conflict documents.
v If all of the documents are edited and saved the same number of times, the document saved most
recently becomes the main document, and the others become Replication or Save Conflict documents.
v If a document is edited in one replica but it is deleted in another replica, the deletion takes precedence,
unless the edited document is edited more than once or the editing occurs after the deletion.
Save conflicts
A save conflict occurs when two or more users open and edit the same document at the same time on the
same server, even if theyre editing different fields. When this situation occurs, the first document saved
becomes the main document. Before the second document is saved, a dialog box indicates that the user is
about to save a conflict document and if the user saves the document, it becomes a Replication or Save
Conflict document.
Note: ACL and design changes never result in replication or save conflicts; the most recent change
always prevails.
460
Tip: To locate replication or save conflicts, create a view that displays only conflict documents. Then, to
see a conflict document in context with its main document, select the Replication or Save Conflict
document in the view that displays conflicts, hold down the CTRL key, and switch to the view that
shows the main document.
For information on creating a view that displays only conflict documents, see the chapter Designing
Views.
To consolidate replication or save conflicts, you can save the main document or save the Replication or
Save Conflict document.
461
Yes
Yes
Yes
No
No
Yes
Information provided
Total number of times user and
servers accessed, read, and wrote to a
database in past 24 hours, past week,
past month, and since the creation of
the database.
Includes activity for anonymous and
authenticated Internet clients.
Tip: In addition to viewing activity statistics reported by Statlog, you can evaluate database activity by
creating a view that sorts documents by date. You can also create File Monitor documents as part of
Event Monitor configuration. File Monitors report user activity for specific databases.
For information on File Monitor documents, the Event Monitor task, and monitoring Web site activity, see
Administering the Domino System. For information on monitoring Web site activity, see Administering the
Domino System. For information on monitoring database activity within a server cluster, see Administering
Domino Clusters.
462
Then, you can enable activity recording per database, as needed. Since recording activity in the User
Activity dialog box adds 64K to the size of each database, disabling automatic activity recording saves
disk space on the server.
Note: If you use No_Force_Activity_Logging, Statlog still reports activity to the log file (LOG.NSF).
463
When users open this database, theyll see information about the new location.
The last argument, SALES, provides the name of the server on which the database is located.
464
465
466
Replication settings
Some replication settings cause one replica to receive only a subset of documents and features from
another replica.
467
View indexes
A view is used in one replica but not in another, and the replica containing the unused view is smaller
because no index is built for the unused view.
Unused space
One replica has been compacted while another has not been compacted.
The new replica contains the ACL of the source server but you did not
copy the ACL
A replica stub is an empty replica that has not yet been populated with documents. When you choose
File - Replication - New Replica, Notes creates a replica stub and populates it with documents, either
immediately or at the next scheduled replication, depending on the option you select.
Somebody modified the access control list on the source server before initial
replication occurred
If you create a replica stub and somebody modifies the ACL on the source server before initial replication
occurs, the ACL on the source server becomes the most recent one and replicates to the replica stub.
Simply opening the Access Control List dialog box on the source server replica and then closing it can
cause this problem.
468
The server storing the replica stub doesnt have adequate access to pull
information
If you rely on scheduled replication to populate a replica stub, the server storing the replica stub must
have at least Reader access in the source server replica ACL to pull the documents from the source server.
Replication is disabled
Notes cannot populate a replica stub if replication is disabled on the source or destination server replica.
To see if replication is disabled for the database, see if the Temporarily disable replication option is
deselected. This option is found on the Other tab when you choose File - Replication - Settings in the
Notes client.
469
To save disk space, Notes purges deletion stubs according to the replication setting Remove documents
not modified in the last [ ] days. If Notes purges the deletion stubs before they replicate, deleted
documents can reappear after the next replication. This option is on the Space Saver panel when you
choose File - Replication - Settings in the Notes client.
470
471
After the DAV is successfully created, you will be able to query the consolidated mailing list in DB2. This
DB2 view would contain the four specified columns for all the notes created with the selected forms.
Other fields on the selected notes would not be visible in DB2 because they are not part of the view
column specification. For example, phone numbers would not be visible in DB2 because the phone
number field was not selected as a column definition. Furthermore, notes created with other forms would
not appear in the view because they are not part of the views row selection criteria. For example, notes
created from the mailing list form Holiday cards would not appear in the DAV.
Once the DAV is created, any subsequent changes made to the Notes data will immediately be visible in
DB2. Any changes to the notes made using SQL will immediately be visible in Notes (you may need to
refresh the Notes view to see change in the Notes client).
Note: The size of a DAV and its entities (tables, views, triggers, and indexes) are not included in the total
file size of the DB2 enabled Notes database for which it was created. Therefore, if you have numerous
DAVs associated with a DB2 enabled Notes database, be aware that they occupy disk space above and
beyond that of the DB2 enabled Notes database.
DAV security
It is important to note that even though DAVs exist in DB2, Domino still manages user access to them.
The ability to read Domino data from DB2 is enforced with the same basic security as that for using the
NSF itself. Therefore, in order to access a DAV through DB2, the DB2 users associated Notes ID must:
v Have access to the Domino server on which the DB2 enabled Notes database resides.
v Have access to the DB2 enabled Notes database.
v Have proper Notes Access Control List (ACL) permissions to perform the requested operation. For
example, the user must have Reader access or higher to issue a SELECT against the DAV, and they
must have Author or Depositor access to INSERT into the DAV
v Be included in the reader lists of the specific notes that are included in the DAV.
472
Note: Because notes in NSFs translate to rows in DB2 enabled Notes databases, Domino essentially adds
row level security to DB2 data through the use of reader lists. If two different users perform a select on a
DAV (SELECT * from test.dav), they might get different numbers of rows returned, depending on the
notes to which they have read access
Furthermore, the following must be true in order for either a Designer or DB2 user to access DAVs:
v The Domino server on which the DB2 enabled NSF resides must be up and running.
v The user who is trying to access this data must have both a DB2 OS account name ID (to use in the
SQL connect statement) and a Notes User ID.
v In order to run any query views, Notes data or federated data, You need a DB2 OS account name in
addition to your Notes user ID. These IDs must be linked in the Domino Directory via a DB2 account
name in your Person document (Administration tab). This maps your Notes ID to a DAV or QV. Have
the Domino Administrator use the Set DB2 user name tool in the IBM Domino Administrator Client
to set this field.
v The DB2 user must have access to the DAV itself (this is the default when the DAV is created in
Designer)
Creating a DAV
1. In Domino Designer, open the Notes database that resides in DB2 for which you want to create a
DAV.
2. Select Create - Design - DB2 Access View.
3. Specify the fields (columns) to use in the DAV. Choose one of these options:
Choose Field -- to chose from existing design elements.
a. In the Type field, select the design element to be used as a field source, or choose All. All
instances of the chosen field selection source now appear in the left-hand list box.
b. Select fields for inclusion in the DAV by highlighting a field source. The fields appear in the
right-hand list box.
c. Select all the fields that you want to include in the DAV.
d. Repeat for each field selection source, as required.
Insert Field -- To add a blank field to the DAV in which you can type an existing field name or the
name of one that will be added to a form associated with the DAV.
4. Set the properties for each field by double-clicking on the field and completing the Access View
Entry dialog box:
Field
Action
Field name
Notes type
DB2 type
Indicate the DB2 data type for this field. Notes will indicate a default value associated
with the Notes type you choose.
Note: If you have an integer defined in the DAV, and an insert from DB2 supplies a
real number (with a decimal), the insert will succeed and the decimal value will be
truncated.
Chapter 23. DB2 Access views
473
Field
Action
Creates this column as a DB2 index field, which keys the database record for rapid
retrieval
Specifies that the DB2 view can clip the notes data (only show DB2 column length
characters)
If you have chosen to use delimited values in this field, indicate the delimiter used.
This delimiter is the one that will be used to separate multiple values in the DB2
column and the delimiter that will be used to parse DB2 INSERT or UPDATES into
separate values. It is not related to the delimiter specified in the form design that is
used by the Notes client.
The default is a semicolon.
This is used to define the column length in DB2 (essentially field length in Notes).
This is only required for columns mapped to the DB2 Varchar data type (all other
types are fixed length). The default for varchar is 100.
Note: You can change the order of the fields in the view by dragging and dropping them. For
example, you may want to position frequently accessed fields at the beginning of the view.
5. Click Design - DB2 Access Views to specify the properties for the DAV itself. In the DB2 Access View
dialog, complete the following:
Field
Action
Name
Enter a name for the DAV. This is the actual name of the DB2 view and must be a valid
DB2 view name. If you enter spaces in the name, they will be converted to underscores in
DB2 (e.g. zip code becomes zip_code).
Comment
Action
474
Action
Select to have the Notes UNID for each field appear in the
DAV.
Select to have the OID for each note appear in the DAV. If
SELECTed in the Query Views SQL formula, allows
document links to work when notes are selected and
copied as a table.
Managing DAVs
Once you have created a DAV, you can use Designer to edit the dav definition, or DB2 or Notes to act on
data it contains.
Chapter 23. DB2 Access views
475
In Designer
To work with an existing DAV, in the Design pane for this database, click Shared Resources > DB2 Access
View. A list of all DAVs created for this database appears. Select and double-click the one you want to
edit. From this work pane, you can do the following:
v
v
v
v
v
In DB2
If you know the NSF file name (e.g. test.nsf), you can find the schema name by executing the query:
SELECT NSFSCHEMA from DOMINO.CATALOG where filepath=test.nsf
where DOMINO is the master Domino schema (this is defined at installation, so check with your
administrator if this name is not found) and the file path is the name of the file relative to the Domino
data directory. The file path name must be lower case.
Note: If you are unable to execute this query , you may need to ask your administrator to grant you
READ access to the table in DB2.
Any DAVs that you create will also be located in the NSF schema. So, in the above example, if you create
a DAV named mydav, you would access it in SQL like this:
SELECT * from test.mydav
DB2 are optimized for read access ( SQL SELECTS ). While SELECTS do require the owning Domino
server to be available, almost all of the processing, including reader list processing, is done by DB2 (in
the DB2 process space).
INSERTS, UPDATES, and DELETES are not done by DB2 directly. They are sent as requests to the
Domino server and handled by Domino. This is necessary to ensure the correct synchronization of these
events in Domino (for example, conflict document handling). It is important to note that because of this,
SQL operations in DB2 are handled in an autocommit fashion. An important implication for inserts,
updates, and deletes that you need to consider if you write SQL applications to manage Notes data is
that SQL statements that affect multiple rows (for example, updating all members of department 80 to
department 99) update each row independently.
This restriction does not apply to SELECT statements.
Troubleshooting DAVs
ACLs needed for DAVs
When using DAVs, if users encounter problems while attempting to access your DB2 enabled Notes
database, make sure that the ACL entry for each user is identical to the first entry in the User Name
field in that users Person document in the Domino Directory on the Domino server.
476
You can also troubleshoot this error using information in the topic about resolving errors when using
SELECT, if you have installed the Lotus Domino Administrator Help. Go to
http://www.lotus.com/ldd/doc to download or view Lotus Domino Administrator Help.
and then use a column formula to adjust the value shown to the user:
@Adjust(dt;0;0;0;CTZ;0;0)
You could get the same results by adjusting the returned timestamp using the information from @Zone:
@Adjust(dtcol;0;0;0;-@If(@Zone - @Integer( @Zone )
> 0.05;@Integer(@Zone)-1;@integer(@Zone));0;0)
477
Although this approximates a normal Notes view, there are a few inconsistencies. For example, this
shows the time correctly relative to the GMT, but it displays the date and time values relative to the DST
value in the date (that is, it shows whether DST was in effect on that date or not), whereas the formula
method shows the time relative to the current DST setting.
478
Audience
Description
Document storage.
Microsoft Office
Library (7)
Notes users
discsw7.ntf
StdR6Disc
doclbm7.ntf
StdR6DocLibMS
journal6.ntf
Std6Journal
teamrm7.ntf
StdR6TeamRoom
479
480
File extensions
File description
Comma Separated
Value
CSV
For export only. The CSV format is an ASCII text file with
one record per line whose fields are separated by commas.
Microsoft Excel
Tabular text
Structured text
Importing options
When you import a file into a view you have some choices for how to display the imported data.
Formatting options
You have three choices for generating the column titles and widths during an import.
v Choose View Defined if the column names and column widths in the source worksheet are identical
to the names and widths of the columns in the view.
v Choose WKS Title Defined if youve set up the worksheet so that the cells in the first row of the
worksheet match the column headers and fields in the view. The cells in the first row must be labels.
v Choose Format File Defined if you are using a column descriptor file (COL) that contains column
style instructions.
481
option and the results are not what you expect -- for example, fields that rely on other fields are empty or
incorrect -- import the worksheet again and choose this option.
Importing worksheets
Before you import a worksheet, you must create a form and a view to hold the imported data. When you
import a worksheet into the view, each worksheet row becomes an individual document, and each
worksheet column becomes a field. The original cell contents become the field contents. You can import
data into either main documents or response documents.
Notes doesnt wrap lines of an imported worksheet. If a worksheet has more columns than a window can
display, use the horizontal scroll bars to see the full width of the worksheet. Notes can handle a
worksheet whose maximum text width is 22.75 inches; additional text is not displayed in the columns.
source file containing the worksheet must be on your local hard drive or on a file server to which
are connected.
Select the database and open the view that will receive the source data.
Choose File - Import.
Select the name of the source file.
Select 123 Worksheet.
5. Click Import.
6. Select a form to use for the imported source data from the Use Form list.
7. Leave Main Document(s) selected in the Import as list, unless you are creating response
documents.
8. Select a Column format.
If you select Format File Defined, enter the name of the COL file, including the complete operating
system path.
9. To import part of a worksheet, type a range name or range address in the WKS Range Name box.
You cannot import a 3-D range.
Note: If you import a multiple-sheet worksheet file, Domino imports only the sheet that was open
when the file was last closed, or, if importing a specified range, imports the range from that sheet.
10. (Optional) Select Calculate fields on form during document import.
11. Click OK.
After importing, you can change the column font to a proportional space font, such as Courier, in the
view design pane to improve the display of worksheet data.
482
If the ASCII file and the view have different formats, create a column descriptor file (COL) to parse the
ASCII file so its individual components correspond to columns in the view or document fields. Then
when you import the ASCII file, select the Use format file option in the Tabular Text Import dialog box.
483
v Select Form-feed if the records in the source file are separated by a form feed (ASCII 12).
v Select Character Code if the records in the file are separated by a delimiter other than the
default, ASCII (form-feed).
8. Leave Main Document(s) selected in the Import as list unless you are creating response documents.
9. Do one of the following:
v Select Justify in the For body text list to wrap text to fit the Notes window.
v Select Preserve Line Breaks in the For body text list to maintain the existing line breaks in the
source file and add a return character at the end of each line of text.
10. (Optional) Select Calculate fields on form during document import.
11. Click OK.
484
As part of a field definition, you can provide an optional TYPE expression, followed by the appropriate
data type: Text, Number, or Datetime. For example, to import the contents of a field called DateOfBirth as
a date, enter the following field definition into the COL file:
DateOfBirth: TYPE DATETIME
The data in the source column must fit the data type you specify. If Notes encounters data that doesnt
match the data type you specify, Notes imports the data as the type it most resembles.
Using formulas
The formulas that you write in a COL file describe how to modify the incoming values for display in the
view. These formulas, which follow the same rules as view selection formulas, may:
v Use @If formulas to test incoming values and display a specific value in the view, depending on the
result of the formula.
v Use text manipulation functions to modify the appearance of the incoming value -- for example, to
concatenate values or trim excess space characters from incoming values.
v Enter default values in fields.
WKSCOL
This keyword allows you to associate a field name with a specific worksheet column. The syntax for a
statement using this keyword is:
fieldname: WKSCOL columnletter
Where:
v fieldname is the name of the field in the view.
v columnletter is the letter of the source column in the worksheet that maps to that field name.
Only columns specified by the WKSCOL keyword will be imported.
RANGE
This keyword specifies the worksheet range to be imported. The syntax for a statement using this
keyword is:
RANGE rangename
Where:
v rangename is the name of the range in the worksheet.
The range must be a valid range name in the imported file.
If you use a RANGE statement, the first WKSCOL statement in the COL file must refer to the first
column in the range. For example, if the range starts at column D, the first WKSCOL statement in the
COL file must be:
Fieldname: WKSCOL D
Note that a RANGE statement in a COL file overrides any range name entered in the Worksheet Import
Settings box.
Chapter 25. Appendix B. Importing to and exporting from views
485
If there is no delimiter at the end of the record (row), you identify the end of the last field as a null ().
or
LastName: Start 01 WIDTH 12
The first line puts the contents of the first field, LastName, at position 1 and allows 12 characters for it.
The second line specifies that the data type of the FirstName field is text, begins the contents of the field
at position 13, and allows 8 characters for it.
486
The keywords may appear together or alone on a line in the file. These settings in a COL file override
values in the Tabular Text Import dialog box.
Example
The following COL file is used to import a 1-2-3 .WK3 file that records a checkbook balance.
;COL file for checkbook worksheet
;Discovers checkbook errors
Define five columns of input
date: WKSCOL A
chknum: WKSCOL B
amount: WKSCOL C
deposits: WKSCOL F
withdrawals: WKSCOL G
balance: WKSCOL K
;Define one column to mark bounced checks
FORMULASTART
FIELD bounced:=@IF(balance<0,"Yes"; "No");
FORMULAEND
In this example, columns D, E, H, I, and J in the worksheet are not imported into the view.
Exporting views
You can export a view to an ASCII file, a worksheet, a tabular text file, or a structured text file.
Exporting to a worksheet
When you export a view to a worksheet, each document becomes a row in the worksheet. Each field
becomes a column in the worksheet. The original field contents become cell contents. Column titles
become labels in the worksheet.
When you export a view to a new worksheet file, Notes exports the file in 1-2-3 WK1 format. Although
you can specify any extension with the file name, its best to keep the extension .wk1. When you open
the exported file in a newer release of 1-2-3, 1-2-3 automatically converts the file to its new format and
adds the appropriate extension.
Chapter 25. Appendix B. Importing to and exporting from views
487
If you change the exported file to WK2, WK3, or WK4 before opening it in a release of 1-2-3 that uses
that extension, and then open the file in 1-2-3 and attempt to add and save attributes, the new copy of
the file will be in conflict with the original, and you wont be able to save your changes.
To export to a Microsoft Excel file, export the view as a 1-2-3 worksheet, and then save the file in 1-2-3 as
a Microsoft Excel file.
To export a view
1. Select the database and open the view you want to export.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
488
32 Space
44 ,
45 58 :
59 ;
124 |
v Word wrap - Represents the number of characters at which each line wraps. The default is 75
characters.
489
490
491
Windows 98
When you install the Notes client, the Domino MAPI service providers are automatically installed. The
required DLLs for the Windows messaging subsystem are already present in Windows 95 and Windows
98.
Windows NT 3.51
The Domino MAPI service providers are available for Windows NT 3.51. Since Windows NT 3.51 does
not provide the Windows messaging subsystem, you must install the subsystem separately.
Windows NT 4.0
The Domino MAPI service providers are available for Windows NT 4.0. The required DLLs for the
Windows messaging subsystem are already present in Windows NT 4.0.
Windows 2000
The Domino MAPI service providers are available for Windows 2000. The required DLLs for the
Windows messaging subsystem are already present in Windows 2000.
Note: The Domino MAPI service providers can be installed and used for node installations on all of the
above Windows platforms.
Mail
The Domino MAPI service providers may only be used to access mail files that use the Lotus Domino
Designer 6 mail extended template (MAIL6EX.NTF). If you are upgrading from Release 5.x to Lotus
Domino Designer 6, you must upgrade your mail file to use the mail template provided in Lotus Domino
Designer 6. To use the service providers, both the client and the server must be running Lotus Domino
Designer 6.
492
The Profile Setup Wizard automatically installs all three service providers. When you create a Microsoft
Outlook Profile, the wizard uses information stored in the current Location document in Domino. You
make modifications to the Office (Network) Location document to configure the location for server-based
mail.
To use workstation-based mail, you modify the Local Mail (Disconnected) Location document. Note that
the Location type in the local mail document must be either Local Area Network or No Connection. The
Mail section of the location document must specify information about the mail file location, the name of
the mail file, and the domain.
Note: During logon to the service providers, the settings for MDB_NO_DIALOG and AB_NO_DIALOG
flags are ignored. As a result, the user is always prompted for a password.
Supported methods
CLASS IMAPIContainer
CLASS IABLogon
CLASS IABProvider
Logon Shutdown
CLASS IMAPIControl
CLASS IMAPIFolder
CLASS IMAPIProp
CLASS IMAPITable
CLASS IMessage
CLASS IMsgStore
CLASS IMSLogon
CLASS IMSProvider
CLASS IXPLogon
CLASS IXPProvider
Shutdown TransportLogon
CLASS IMailUser
CLASS IAttach
493
MAPI classes
Supported methods
CLASS IMAPIAdviseSink
CLASS IMAPIProfile
CLASS IMAPIContainer
CLASS IMAPIStatus
CLASS IPropData
CLASS ITableData
494
Comments
@Certificate
@DbCommand
@MailSend
495
@Function
Comments
@Domain @MailDbName
@MailEncryptSavedPreference
@MailEncryptSendPreference
@MailSavePreference @MailSignPreference
@IsAgentEnabled
@IsDocBeingMailed
@Unique @URLGetHeader @URLHistory
@UserPrivileges
@Platform for users platform.
Domino actions and agent properties that are not supported on the
Web
Avoid using the following actions and agent features in a Web application.
Agents
Comments
Web users do not have an Actions menu. Run agents with actions
or buttons that use @Command([RunAgent]),
@Command([ToolsRunMacro]), or through the WebQuerySave and
WebQueryOpen form events.
Web users do not have an Actions menu. Use the option Include
action in button bar instead.
496
Comments
Advanced properties
Help description
Enable encryption for this field
Use Address dialog for choices, Use Access Control List for
choices, and Use View dialog for choices are not supported.
Web user access to databases is based on the authenticated name.
For some browsers, the order of the data returned from multiple
selections in a checkbox may be different from the selection
order. The data itself remains the same, but the order returned is
different.
Comments
Versioning
Anonymous forms
Merge replication conflicts
Store form in document - Edit mode
Read mode is supported, but do not use for documents that need
to be created or edited on the Web.
Inherit entire selected document into rich text field as rich text
is supported. The documents must reside in the same database
and the database property, Web Access: Use JavaScript when
generating pages must be selected.
497
Comments
Layout regions
Pop-up hotspots
ActiveX components, OLE, and OCX objects
If the top left cell of a table has a border, the entire table is
displayed with a border; otherwise, there is no border because of
limitations with HTML.
Comments
International characters
Ordered lists
Avoid this feature if the list will be edited in the Notes client and
the editor applet. Ordered lists are supported if they are edited
with the editor applet only.
Pasting text
There are limitations for pasting text in the editor applet. See
Designing Fields for information about using the editor applet for
editing rich text fields on the Web.
Tabs
Tables
Unordered lists
Avoid this feature if the list will be edited in the Notes client.
Unordered lists are supported if they are edited with the editor
applet only.
Comments
Targets may be set in both the Frame Properties box and the
design element contained by that frame. The design element in
this case may be a form, page, or view. If a target is set in the
Frame Properties box of a Web application, but not in the
design element, and the design element is later replaced, the
links in the frame will not go to the target specified in the
Frame properties. To avoid this, specify the same target frame in
both the Frame properties and the design element.
498
Domino horizontal rule properties that are not supported on the Web
Avoid using color rules in a Web application. Gradient color is not supported on the Web.
Comments
Info properties
Auto adjust panes at runtime
Objects
Polyline objects
HiLite properties
Highlight when... options for navigator objects
Comments
Column spacing
Minimum height
Row spacing
Table Width
Color settings for cell borders are not supported on the Web
The style options, Ridge and Groove, are not supported on the
Web.
Border color
Border effects
Thickness
Table Margins properties
Left
499
Comments
Right
Table wrap
Compatibility
Table Rows properties
Show only one row at a time
Comments
Domino view and folder properties that are not supported on the Web
Avoid using the following view and folder features in a Web application.
Views and folders
Comments
Folders
Views
Options properties
Show in View menu
500
Comments
Note: If you embed a view, you cannot dynamically sort a categorized column on the Web or in a Notes
client.
Comments
Pass-Thru HTML
View Info properties
Calendar views
Options properties
On Refresh
Style properties
Unread rows color
Beveled headings
Lines per heading
Shrink rows to content
Row spacing
Advanced properties
Refresh index
Discard index
Unread marks
For ODBC Access
Active Link
Unvisited Link
Visited Link
Restrict initial index build to designer or
manager
Font properties
Title properties
Font
Advanced properties
Show values in this column as links
501
502
Syntax Guidelines
v Domino URLs do not use the server name. Host identifies the server.
v You can specify the maximum size and other limits of a URL command in the Server record, in fields
listed under the Internet Protocols -HTTP tab.
v Special identifiers used in Domino URL commands include: $defaultView, $defaultForm, $searchForm,
$file, $icon, $help, $about, and $first.
v DominoObject can be any of the following: for a database, the database name or replica ID; for other
objects, the DominoObjects name, universal ID, or special identifier. For example, to specify a view in
a URL, you can use any of the following: the view name, view universal ID, or $defaultView.
v A Notes database can be specified by its file name, for example leads.nsf, or by placing a double
underscore before the replica ID and adding an .nsf suffix to the end. For example, specify
__852562F3007ABFD6.nsf
503
v A DominoObjects name and universal ID are identical in all replicas of a database. One name or alias
can refer to two objects -- for example, two forms with the same name when one is hidden from Notes
users and one is hidden from Web users.
v Action can be explicit or implicit. Examples of explicit actions include ?OpenDatabase, ?OpenView,
?OpenDocument, ?OpenForm, and ?EditDocument. Examples of implicit actions include ?Open, ?Edit,
and ?Delete. If you do not specify an action, Domino defaults to the ?Open action.
v To require user authentication, append the Login argument to any Domino URL.
v Because URLs cannot contain spaces, use the + (plus sign) or the hex value %20 to represent a space.
For example:
http://www.mercury.com/discussion.nsf/By+Author
Http://www.mercury.com/discussion.nsf/By%20Author
v If a name contains a mixture of spaces and the + character, it may be necessary to use %20 to
indicate the space. For example, if the documents key is Smith + Jones then
http://www.mercury.com/leads.nsf/ByCompany/Smith%20%2B%20Jones?OpenDocument
and
http://www.mercury.com/leads.nsf/ByCompany/Smith%20+%20Jones?OpenDocument
will work but
http://www.mercury.com/leads.nsf/ByCompany/Smith+++Jones?OpenDocument
will not.
v Where a name or argument contains a symbol that is not part of the URL syntax or would conflict with
URL syntax, such as plus signs (+), slashes (\ or /), or ampersands (&), use the escaped form %xx
(where xx is the hex ascii value) to represent the symbol. For example, the following URL opens the
document which has the key value Smith&Jones, Inc.:
Http://www.mercury.com/leads.nsf/By%20Company/Smith%26Jones,%20Inc.?OpenDocument
v Slashes and backslashes in URL path components are not distinguishable, even if escaped. (This is
because the first step in URL processing is to unescape all escaped characters and to change \ to /.)
The result is that some names will be ambiguous or not addressable. For example while two views,
one named a/b\c/d and the other a\b/c\d are different in the designer, they cannot be named
uniquely with a URL.
v Document keys containing slashes and/or backslashes are addressable with the following restrictions:
You must supply the ?OpenDocument command argument in the URL. For example if the document
key is Smith/Jones the following URL will find the document:
http://www.mercury.com/leads.nsf/ByCompany/Smith/Jones?OpenDocument
but this one will result in Error 404 - Entry not found in index:
http://www.mercury.com/leads.nsf/ByCompany/Smith/Jones
The document title as stored in the database must use all / or \. If it uses a mixture, it wont be
found.
Using slashes (both kinds) in view names along with slashes in document titles may result in
ambiguities and unreachable documents. If you have a view named a which has a document in
it titled b/c, and a view named a\b which contains a document c, the URL
/database.nsf/a/b/c?OpenDocument will open the document in the view a/b.
Document titles which begin or end with the / or \ character wont be found.
v The percent character (%) is not allowed in a URL, even in escaped form. This is to help prevent
attacks which attempt to mask their intent by escaping the escape character.
v Separate arguments with an ampersand (&). For example:
http://www.mercury.com/leads.nsf/By+Salesperson?OpenView&ExpandView
v Separate hierarchical names with a slash (/). For example, to open a view named Docs\By Author in a
database named Discussion, enter:
http://www.mercury.com/discussion.nsf/Docs/By+Author
504
v If you are generating your own URLs for any part of an application, use simple aliases whenever
possible to avoid URLs with unsupported characters.
v URL commands may also refer to databases with .nsf4, .nsf5, .nsf6 or .box suffixes. They may also refer
to template files (.ntf), but these databases can only be opened in preview mode.
v Selecting Web access: Use JavaScript when generating pages in Database properties will enable you to
compute URLs attached to buttons and hotspots on the Click event. If this option is not selected, URLs
attached to buttons and hotspots will be computed when the page is generated. Enabling this property
can be useful if youre using editable fields on a form.
Redirect
Syntax
http://Server/Dummy.nsf?Redirect&Name=notesserver&Id=To=encodedurl
Where:
v http://Server refers to the Web server which is generating the URL.
v Name=notesserver specifies a Domino server name in its common or abbreviated form. This is optional
when the By Database setting on the server is enabled.
v ID=repid indicates the replica ID of the database to be located. This is an optional argument.
v To=encodedurl specifies the rest of the URL.
Example
Http://mercury.com/dummy.nsf?Redirect&Name=Mister%2FHankey&Id=0525666D0060ABBF&To=
%FAView%3FOpenView
Note: If you force a logout using the ?Logout command, you can redirect to another Web site using the
&RedirectTo parameter.
OpenDatabase
Syntax
http://Host/__DatabaseReplicaID.nsf?OpenDatabase
505
Examples
http://www.mercury.com/leads.nsf?OpenDatabase
http://www.mercury.com/sales/discussion.nsf?OpenDatabase
http://www.mercury.com/__852562F3007ABFD6.nsf?OpenDatabase
OpenView
Syntax
http://Host/Database/ViewName?OpenView
http://Host/Database/ViewUniversalID?OpenView
http://Host/Database/$defaultview?OpenView
Examples
http://www.mercury.com/leads.nsf/By+Salesperson?OpenView
http://www.mercury.com/leads.nsf/DDC087A8ACE170F8852562F300702264?OpenView
http://www.mercury.com/leads.nsf/$defaultview?OpenView
506
Start=n
Where n is the row number to start with when displaying the view. The row number in a hierarchical
view can include sub indexes (for example, Start=3.5.1 means the view will start at the third main topic,
sub-topic 5, document 1).
StartKey=string
Where string is a key to a document in the view. The view displays at that document.
Examples
http://www.mercury.com/leads.nsf/DDC087A8ACE170F8852562F30070226400000196?OpenView&
CollapseView
http://www.mercury.com/leads.nsf/DDC087A8ACE170F8852562F30070226400000196?OpenView&
ExpandView
http://www.mercury.com/leads.nsf/By+Category?OpenView&RestrictToCategory=pricing
http://www.mercury.com/leads.nsf/DDC087A8ACE170F8852562F30070226400000196?OpenView&
Start=3&Count=15
http://www.mercury.com/leads.nsf/DDC087A8ACE170F8852562F30070226400000196?OpenView&
StartKey=F
ReadViewEntries
Use this command to access view data in XML form without appearance attributes such as fonts, list
separators, date formats, HTML settings, view templates and frame redirections.
Note: This command only returns the documents a user is allowed to access.
Syntax
http://Host/Database/ViewName?ReadViewEntries
http://Host/Database/ViewUniversalID?ReadViewEntries
http://Host/Database/$defaultview?ReadViewEntries
Examples
http://www.mercury.com/leads.nsf/By+Salesperson?ReadViewEntries
http://www.mercury.com/leads.nsf/DDC087A8ACE170F8852562F300702264?ReadViewEntries
http://www.mercury.com/leads.nsf/$defaultview?ReadViewEntries
507
n is the row number to display in collapsed format in a hierarchical view. Do not combine this argument
with the ExpandView or CollapseView arguments.
CollapseView
Displays the view in collapsed format
Count = n
Where:
n is the number of rows to display
Expand = n
Where:
n is the row number to display in expanded format in a hierarchical view. Do not combine this argument
with the ExpandView or CollapseView arguments.
ExpandView
Displays the view in expanded format
KeyType = text|time (
Specifies the type of StartKey. The default when no argument is specified is text. Setting the KeyType to
time allows you to use a time value as the value for StartKey which dictates from what row to display
the view and the value for UntilKey, which specifies where to stop display of the view. If
&KeyType=time is specified, then &StartKey and &UntilKey may be ISO date time values. For example,
you might use the time value 20020101T140000,00Z to represent 9:00AM Eastern standard Time in
Coordinated Universal Time (UTC) or Greenwich Mean Time (GMT), or you might use the time value
20020101T090000,00-05 to represent the same date and time in local time plus offset.
PreFormat
Causes all data types to be converted to text on the server. Text lists, numbers, dates and lists of numbers
are converted to text before being sent. The servers locale is used for all formatting. Without this
argument, the XML output stream contains information in structured, locale-neutral formats.
ResortAscending = column number
ResortDecending = column number
Where:
column number is the 0-based number of the column in the view you wish to resort in ascending or
descending alphanumeric order.
RestrictToCategory = category
Sets the category for the Show Single Category object
Where:
category is the category to be displayed in the view
508
Start = n
Where:
n is the row number to start with when displaying the view. The row number in a hierarchical view can
include subindexes (for example, Start=3.5.1 means the view will start at the third main topic, subtopic 5,
document 1).
StartKey = string
Where:
string is a key to a document in sorted view. The view displays at that document. In cases where there is
no match for the StartKey, the next document is returned. So, for example, if the StartKey is A and
there are no documents that begin with A, StartKey returns the first document that begins with B.
UntilKey = string
UntilKey is only valid when used with StartKey. It allows you to display the range of view entries
beginning with the document specified by StartKey until the document specified by UntilKey. For
example, &StartKey=A&UntilKey=B would give you all the entries that start with A. Use the &Count
keyword to further limit the number of entries returned within any given range.
Examples
http://www.mercury.com/leads.nsf/DDC087A8ACE170F8852562F30070226400000196?
ReadViewEntries&CollapseView
http://www.mercury.com/leads.nsf/DDC087A8ACE170F8852562F30070226400000196?
ReadViewEntries&ExpandView
http://www.mercury.com/leads.nsf/By+Category?ReadViewEntries&PreFormat
http://www.mercury.com/leads.nsf/By+Category?ReadViewEntries&RestrictToCategory=pricing
http://www.mercury.com/leads.nsf/DDC087A8ACE170F8852562F30070226400000196?
ReadViewEntries&Start=3&Count=15
http://www.mercury.com/leads.nsf/DDC087A8ACE170F8852562F30070226400000196?
ReadViewEntries&StartKey=F
OpenAbout
Use the OpenAbout command to access the About This Database document.
Syntax
http://Host/Database/$about?OpenAbout
Example
http://www.mercury.com/leads.nsf/$about?OpenAbout
OpenHelp
Use the OpenHelp command to access the Using This Database document.
509
Syntax
http://Host/Database/$help?OpenHelp
Example
http://www.mercury.com/leads.nsf/$help?OpenHelp
OpenIcon
Use the OpenIcon command to access the database icon.
Syntax
http://Host/Database/$icon?OpenIcon
Example
http://www.mercury.com/leads.nsf/$icon?OpenIcon
Syntax
http://Host/Database/FramesetName?OpenFrameset
http://Host/Database/FramesetUNID?OpenFrameset
Examples
http://www.mercury.com/discussion.nsf/main?OpenFrameset
http://www.mercury.com/discussion.nsf/35AE8FBFA573336A852563D100741784?OpenFrameset
OpenAgent
Syntax
http://Host/Database/AgentName?OpenAgent
Examples
http://www.mercury.com/sales/leads.nsf/Process+New+Leads?OpenAgent
Note: Agents may only be referred to by name. The use of UNID is not supported when referring to an
agent.
510
OpenForm
Syntax
http://Host/Database/FormName?OpenForm
http://Host/Database/FormUniversalID?OpenForm
http://Host/Database/$defaultform?OpenForm
Examples
http://www.mercury.com/products.nsf/Product?OpenForm
http://www.mercury.com/products.nsf/625E6111C597A11B852563DD00724CC2?OpenForm
http://www.mercury.com/products.nsf/$defaultform?OpenForm
Syntax
http://Host/Database/FormUniversalID?OpenForm&ParentUNID
Example
http://www.mercury.com/products.nsf/40aa91d55cle4c8285256363004dc9e0?OpenForm&
ParentUNID=6bc72a92613fd6bf852563de001f1a25
OpenNavigator
Syntax
http://Host/Database/NavigatorName?OpenNavigator
http://Host/Database/NavigatorUniversalID?OpenNavigator
Examples
http://www.mercury.com/products.nsf/Main+Navigator?OpenNavigator
http://www.mercury.com/products.nsf/7B5BC17C7DC9EB7E85256207004F8862?OpenNavigator
ReadForm
Use the ReadForm command to display a form without showing its editable fields. ReadForm is useful
for displaying a form as a simple Web page.
Syntax
http://Host/Database/FormName?ReadForm
http://Host/Database/FormUniversalID?ReadForm
http://Host/Database/$defaultform?ReadForm
Chapter 28. Appendix E. URL commands for Web applications
511
Examples
http://www.mercury.com/home.nsf/Welcome?ReadForm
http://www.mercury.com/products.nsf/625E6111C597A11B852563DD00724CC2?ReadForm
http://www.mercury.com/products.nsf/$defaultform?ReadForm
OpenImageResource
Allows you to open a graphic resource in an application.
Syntax
http://Host/Database/ImageResourceName?OpenImageResource
Where:
v ImageResourceName is the name of the image file being accessed.
Examples
http://www.mercury.com/leads.nsf/TopHeader.gif?OpenImageResource
OpenFileResource
Allows you to open a file resource in an application.
Syntax
http://Host/Database/FileResourceName?OpenFileResource
Where:
v FileResourceName is the name of the file being accessed.
Examples
http://www.mercury.com/leads.nsf/JSLibrary.js?OpenFileResource
CreateDocument
The CreateDocument command is used as the POST action of an HTML form. When the user submits a
form, Domino obtains the data entered in the form and creates a document.
512
Syntax
http://Host/Database/Form?CreateDocument
http://Host/Database/FormName?CreateDocument
Where:
FormName is the name of the form being accessed.
Examples
http://www.mercury.com/products.nsf/b9815a87b36a85d9852563df004a9533?CreateDocument
http://www.mercury.com/products.nsf/basketballs?CreateDocument
DeleteDocument
Syntax
http://Host/Database/View/Document?DeleteDocument
Example
http://www.mercury.com/products.nsf/By+Part+Number/PC156?DeleteDocument
EditDocument
Syntax
http://Host/Database/View/Document?EditDocument
Example
http://www.mercury.com/products.nsf/By+Part+Number/PC156?EditDocument
Note: Rich text fields containing hidden text will be visible to Web users with Editor access to
documents.
Note: The following items may be lost or corrupted if they are in a rich text field which is edited with a
Web browser using Domino Web Server:
v embedded images -- may be visible when editing, but will be lost when the document is saved;
v tab tables -- only the visible row will be saved;
v hide when paragraphs which are hidden from the Web -- the entire paragraph will be lost when the
document is saved.
Avoid using these items in a rich text field if that field is to be edited with a Web browser.
OpenDocument
Syntax
http://Host/Database/View/Document?OpenDocument
Where:
Document is any of the following:
Chapter 28. Appendix E. URL commands for Web applications
513
v DocumentKey -- the contents of the first sorted column in the specified view.
v DocumentUniversalID
$first
The first document in the view.
Examples
http://www.mercury.com/products.nsf/By+Part+Number/PC156?OpenDocument
http://www.mercury.com/leads.nsf/By+Rep/35AE8FBFA573336A852563D100741784?OpenDocument
SaveDocument
The SaveDocument command is used as the POST action of a document being edited. Domino updates
the document with the new data entered in the form.
Syntax
http://Host/Database/View/Document?SaveDocument
Example
http://www.mercury.com/products.nsf/a0cefa69d38ad9ed8525631b006582d0/
4c95c7c6700160e2852563df0078cfeb?SaveDocument
Syntax
http://Host/Database/View/DocumentName?OpenDocument
Where:
v View is the name of the view. To access a document regardless of the view, specify the document by its
universal ID and substitute a zero (0) for the view name.
v DocumentName is the string, or key, that appears in the first sorted or categorized column of the view.
Use this syntax to open, edit, or delete documents and to open attached files. Domino returns the first
document in the view whose column key exactly matches the DocumentName.
There may be more than one matching document; Domino always returns the first match. The key must
match completely for Domino to return the document. However, the match is not case sensitive or accent
sensitive.
514
Note that View can be a UNID, or view name. In addition, the implicit form of any of these commands
will work when appropriate. For example, you can omit the OpenDocument argument in a URL
command and the document will still open because the command is automatically interpreted as
OpenDocument. (EditDocument and DeleteDocument must be explicit commands.)
Examples
http://www.mercury.com/register.nsf/Registered+Users/Jay+Street?OpenDocument
http://www.mercury.com/register.nsf/0/466c5172561e1c5c852566c2005f6bbb?OpenDocument
ViewUNID can indicate a ViewID or a ViewName. DocumentUNID can be a DocumentKey. This allows
you to create URL links to attachments by supplying a view name and document key.
By default, the browser uses the name specified in the URL to save the file.
OpenPage
Syntax
http://Host/Database/PageName?OpenPage
http://Host/Database/PageUNID?OpenPage
Examples
http://www.mercury.com/discussion.nsf/products?OpenPage
http://www.mercury.com/discussion.nsf/35AE8FBFA573336A852563D100741784?OpenPage
515
Syntax
http://Host/Database/PageName?OpenPage&CollapseOutline=n
http://Host/Database/PageUNID?OpenPage&CollapseOutline=n
Examples
http://www.mercury.com/sales.nsf/products?OpenPage&CollapseOutline=1
http://www.mercury.com/sales.nsf/products?OpenDocument&CollapseOutline=1
http://www.mercury.com/sales.nsf/products?OpenPage&CollapseOutline=1.2.3
http://www.mercury.com/sales.nsf/products?OpenDocument&CollapseOutline=1.2.3
ExpandOutline=[n]
Where n = the triangle at the first level of the outline. It is possible to expand a triangle in hierarchical
order. For example, &ExpandOutline=2.1.3 will expand the second triangle at the top level of the outline,
the first triangle at the second level, and the third triangle at the third level.
Syntax
http://Host/Database/PageName?OpenPage&ExpandOutline=n
http://Host/Database/PageUNID?OpenPage&ExpandOutline=n
Examples
These URLs do not point to existing Web sites. They are for example only.
http://www.mercury.com/sales.nsf/products?OpenPage&ExpandOutline=5
http://www.mercury.com/sales.nsf/products?OpenDocument&ExpandOutline=5
http://www.mercury.com/sales.nsf/35AE8FBFA573336A852563D100741784?OpenPage&
ExpandOutline=5.1.2
http://www.mercury.com/sales.nsf/35AE8FBFA573336A852563D100741784?OpenDocument&
ExpandOutline=5.1.2
Arguments
StartOutline=[n]
Where n is the triangle at the top level of the outline. It is possible to expand a triangle in hierarchical
order. For example, &StartOutline=2.1.3 will start the display with the third triangle at the third level of
the outline.
Syntax
http://Host/Database/PageName?OpenPage&StartOutline=n
http://Host/Database/PageUNID?OpenPage&StartOutline=n
516
Examples
http://www.mercury.com/sales.nsf/products?OpenPage&StartOutline=1
http://www.mercury.com/sales.nsf/products?OpenDocument&StartOutline=1
http://www.mercury.com/sales.nsf/35AE8FBFA573336A852563D100741784?OpenPage&
StartOutline=5.1.2
http://www.mercury.com/sales.nsf/35AE8FBFA573336A852563D100741784?OpenDocument&
StartOutline=5.1.2
URL commands for opening attachments, image files, and OLE objects
The following commands open files and objects within a document.
Note: The URLs shown below are for example only. They do not point to existing Web sites.
OpenElement
Use the ?OpenElement command to access attachments, image files, and OLE objects.
Example
http://www.mercury.com/lproducts.nsf/By+Part+Number/SN156/$File/spec.txt?OpenElement
Note: If more than one attached file has the same name, the URL includes both the internal file name
as well as the external name. Since the internal file name is not easily determined, make sure all attached
files have unique names.
Because some browsers require that the URL end with the attached file name, Domino treats all file
attachment OpenElement commands as implicit commands. For example:
http://Host/Database/View/Document/$File/InternalFileName/Filename?OpenElement
517
SearchDomain
Use SearchDomain URLs for text searches across a domain. The search input form is opened with the
OpenForm command by name or universal ID. For search results, the results template is specified as part
of the URL. If no template is found, then the default template form, $$SearchDomainTemplate, is
substituted. If $$SearchDomainTemplate is not found, an error is returned. If no results are returned, the
value of the $$ViewBody field remains the same.
Syntax
http://Host/Database/[templateForm]?SearchDomain[ArgumentList]
Where:
v templateForm is an optional argument that calls the search results form.
v ArgumentList is a list of optional arguments.
Example
http://www.mercury.com/mersrch.nsf/MercuryResults?SearchDomain
Redirect
The server will provide a direct or redirect URL command as needed for links displayed on the results
form if the capability has been enabled. The domain URL locates information on the server where the
links are generated. The redirect command locates the correct server and redirects a link to that server by
constructing the appropriate URL. The redirect command can improve performance by resolving
individual links when they are selected instead of resolving all of the links returned at once.
See Domino 5 Administration Help for information about enabling redirect on a server.
SearchSite
Use SearchSite URLs for text searches in multiple databases. Because the URL requires the name of a
search site database, be sure to create one before using a SearchSite URL.
518
Syntax
http://Host/Database/[$SearchForm]?SearchSite[ArgumentList]
Where:
$SearchForm and ArgumentList are optional arguments.
Example
http://www.mercury.com/mercsrch.nsf/$SearchForm?SearchSite
SearchView
Use SearchView URLs to limit a search to documents displayed in one database view.
This URL is useful for views that display all documents (so you can have a full-database search) or for
views in which you can predict what users need to see, such as all documents whose status is
Completed.
Syntax
http://Host/Database/View/[$SearchForm]?SearchView[ArgumentList]
Where:
$SearchForm and ArgumentList are optional arguments. The special identifier $SearchForm indicates that
Domino will present a search view form for search input. If this identifier is provided, the ArgumentList
is ignored. If this identifier is absent, a default form will be generated dynamically based on the contents
of the search.htm file located on the server. The default form generated by the server does not support
paged results.
Example
http://www.mercury.com/products.nsf/By+Product+Number/$SearchForm?SearchView
519
The scope of the search. Where 1 = Notes databases only, 2 = file system only, 0 = both. The default value
is 0. This argument should only be used with the SearchDomain command.
SearchEntry=formName
Where formName is the name of the form to use for the results of a domain search. The default argument
is ResultEntry, which supports all of the predefined results fields specified in the ArgumentList. This
argument is valid for SearchDomain only and should not be used for SearchSite or SearchView.
SearchFuzzy=[TRUE,FALSE]
Indicate TRUE for fuzzy search. The default is FALSE.
SearchOrder=[1,2,3,4]
Indicate 1 to Sort by relevance, 2 to Sort by date ascending, 3 to Sort by date descending. The
default is 1. SearchView also supports a SearchOrder value of 4 to Keep current order, which sorts the
resulting set of documents in the order in which they appear in the view.
Note: Specifying SearchOrder=4 will produce unexpected results if:
The Count=n argument is used with a value less than the number of documents found The Start=n
argument is used with a value other than 1 The Default Search Limit is less than the number of
documents found The Max Search Limit is less than the number of documents found
If you need to specify SearchOrder=4, observe these recommendations:
Never specify Count=n or Start=n Always specify SearchMax=0 Set the Web sites Max Search Limit to a
large value
SearchMax=[n]
Where n is the maximum number of entries returned. The default value is determined by the server.
SearchWV=[TRUE, FALSE]
Where TRUE = include word variants in the search. The default value is FALSE.
Start=[n]
Where n is the number corresponding to the document that appears first in your list of results. For
example, Start=10 begins your list of results with the 10th document found in the search. Start=0 means
that paged results will not be returned.
Examples
http://www.mercury.com/mercsrch.nsf/?SearchSite&Query=product+info+requests&SearchOrder=2&
SearchMax=30&SearchWV=TRUE&SearchEntry=myResultsForm
http://www.mercury.com/products.nsf/By+Product+Number/?SearchView&Query=PC156&
SearchOrder=3&SearchMax=1&SearchFuzzy=TRUE&SearchWV=FALSE
520
Syntax
http://Host/Database/ViewName/[$SearchForm]?SearchView[ArgumentList]
http://Host/Database/ViewUNID/[$SearchForm]?SearchView[ArgumentList]
Where: ArgumentList includes the Query argument and any or all of the other arguments including the
Start and Count parameters. For example:
?SearchView&Query=String&Start=n&Count=n&SearchOrder=n&SearchWV=TRUE or
FALSE&SearchFuzzy=TRUE or FALSE&SearchMax=n.
Examples
http://www.mercury.com/products.nsf/ProductView?SearchView&Query=bicycles&Start=21&Count=20&
SearchOrder=1&SearchWV=TRUE&SearchFuzzy=FALSE&SearchMax=50
http://www.mercury.com/products.nsf/F6025FD7E72456F985256540005839D3?SearchView&Query=
bicycles&Start=21&Count=20&SearchOrder=1&SearchWV=TRUE&SearchFuzzy=FALSE& SearchMax=50
Using Next and Previous buttons or hotspots with Start and Count
parameters
If you are using Start and Count parameters you can include Next and Previous buttons or hotspots to
enable users to navigate between pages of results. Both parameters must be used if you are using
navigational buttons.
1. Open your customized results form and place buttons or hotspots labeled Next and Previous where
you want them to appear on the form.
2. For the button or hotpsot labeled Next, write a formula that will advance the user forward one page.
3. For the button or hotspot labeled Previous, write a formula that will take the user back one page.
521
Syntax
http://Host/DatabaseDirectory/DatabaseFileName?OpenDatabase&login
Examples
http://www.mercury.com/sales/leads.nsf?OpenDatabase&login
Logout command
You can specify a default logout time period to log the Web client off the server after a specified period
of inactivity. This forces the cookie that Domino uses to track the user session to expire. Automatically
logging a user off the server prevents others from using the Web client to impersonate a user if the user
leaves the workstation before logging off. If you enable session-based name-and-password authentication
for a server, users can also append ?logout at the end of a URL to log off a session.
Syntax
http://Host/DatabaseDirectory/DatabaseFileName?Logout
http://Host/DatabaseDirectory/DatabaseFileName?Logout&RedirectTo
Examples
http://acmeserver/sessions.nsf?logout
http://acmeserver/sessions.nsf?logout&redirectto=/logoutDB.nsf/logoutApp?Open
http://acmeserver/sessions.nsf?logout&redirectto=/logoutDB.nsf/logoutApp?
OpenPage
http://acmeserver/sessions.nsf?logout&redirectto=http://www.sales.com
You can build this expression into an application -- for example, using it in a button -- or type it in as a
URL.
522
specialActionField is the name of an editable text field on the form whose value contains a predefined
command. To use the field with SSL certificates, use one of the following certificate request commands:
SubmitCert
ServerRequest
ServerPickup
For more information about the OpenForm command, see URL commands for opening agents, forms,
and navigators earlier in this chapter.
Examples
http://www.mercury.com/certs.nsf/UserCertificateRequest?OpenForm&SpecialAction=SubmitCert
http://www.mercury.com/certs.nsf/ServerCertificateRequest?OpenForm&SpecialAction=ServerRequest
http://www.mercury.com/certs.nsf/Certificate?OpenForm&SpecialAction=ServerPickup
Syntax
http://Host/Database/ResultForm?RequestCert&Command=SubmitCert&TranslateForm=
TranslationFormName
Where:
v ResultForm is a form in the specified database that displays information about the processed request.
v TranslationFormName represents a form in the database that contains fields to hold certificate
information.
Example
http://www.mercury.com/certs.nsf/CertificateProcessed?RequestCert&Command=SubmitCert&
TranslateForm=Certificate
523
v IssuerState
v IssuerCountry
Syntax
http://Host/Database/MessageForm?RequestCert&Command=ServerRequest&TranslateForm=
TranslationFormName
Where:
v ResultForm is a form in the specified database that displays information about the processed request in
the users browser after a successful submission.
v TranslationFormName represents a form in the database that contains fields to hold certificate
information.
Example
http://www.mercury.com/certs.nsf/CertificateProcessed?RequestCert&Command=ServerRequest&
TranslateForm=Certificate
524
OpenPreferences
Syntax
http://Host/$Preferences.nsf?OpenPreferences[&Arguments]
OpenPreference with no arguments displays a frameset displaying a menu of choices on the left, and a
panel for selecting time zone preferences on the right. OpenPreferences accepts arguments for
manipulating what preference page displays.
The Host argument can apply to the server named or to all of the servers in the domain of the specified
server. The scope of OpenPreference is determined by the value in the Web User Preferences field on the
Web Site Template for the specified server. If the Web User Preferences field is set to Multi-server, the
settings for OpenPreference apply to all of the servers in the domain. If the field value is Single server,
the preferences apply only to the specified server. The server administrator can also set the field to
Disable, which causes the server to ignore any cookies set for OpenPreference. Speak to your system
administrator about setting the correct scope for the command.
Note: Settings a user specifies for OpenPreferences will not override custom settings you specify for a
field or view column.
Examples
http://www.mercury.com/$Preferences.nsf?OpenPreferences
525
&PreferenceType=Regional
Displays only the Regional preference page. Regional settings apply to Date/Time and Number/Currency
settings. When the page first opens, the default for the Preferred Locale field is derived from the Accept
Language setting for the users browser. The other configuration items are based on the browser defaults
that correspond with the language setting. A user can specify a new value for Preferred Locale and
click the Load default options for this locale button to apply all of the formats that correspond with the
specified locale. A user can set new preferences or revert to the defaults.
526
Syntax
http://Host/Database/FormName?OpenForm&charset=[MIME charset name]
Where:
v FormName is the name of the form to be opened.
v [MIME charset name] is the name of the character set that will be used for the returned target form.
Usage
The charset=[MIME charset name] argument will override the $$HTMLContentLang field in a form. For
information on using the $$HTMLContentLang field to enable multiple character sets to be used for input
to a database see the topic Managing multilingual input in a single database in Lotus Notes, Domino and
Designer Release Notes -- Release 5.0.2.
Example
A company has sales staff in the United States, Japan, and Russia. Members of each staff are expected to
submit performance summaries monthly to a single database. The sales personnel can use English,
Japanese, and Russian character sets in the same database if the URL command that returns the summary
Chapter 28. Appendix E. URL commands for Web applications
527
form uses the charset=[MIME charset name] argument. When the server receives the command, it returns
the target form in the specified character set. A URL command that would return the target form in the
Japanese character set is shown below.
http://www.mercury.com/sales.nsf/Summary?OpenForm&charset=Shift_JIS
Perl Scripts
Domino supports programs written in Perl. Perl programs have file names that end with .pl. Place Perl
programs in the cgi-bin directory. By default, Domino looks in directories that are included in the servers
PATH statement for a Perl interpreter named perl.exe. To override this default, define an environment
variable (PERLBIN) that gives the name or absolute path of the perl interpreter -- for example,
c:\perl5\bin\perl.exe.
CGI variables
When a Web user saves a document or opens an existing document, the Domino Web server uses CGI
variables to collect information about the user, including the users name, the browser, and the users
Internet Protocol (IP) address.
To capture this information in a Web application:
v Create a field with the name of a CGI variable.
v Create an agent whose script contains a CGI variable as a DocumentContext property.
528
Returns
Auth_Type
Content_Length
Content_Type
Gateway_Interface
HTTP_Accept
HTTP_Accept_language
HTTP_Referer
HTTPS
HTTPS_CLIENT_CERT_COMMON_NAME
HTTPS_CLIENT_CERT_ISSUER_COMMON_NAME
HTTPS_KEYSIZE
HTTP_User_Agent
Path_Info
Path_Info_Decoded
Path_Translated
529
Field name
Returns
Query_String
Query_String_Decoded
Remote_Addr
Remote_Host
Remote_Ident
Remote_User
Request_Content
Request_Method
Script_Name
Server_Name
Server_Protocol
Server_Port
Server_Software
Server_URL_Gateway_Interface
530
531
Keyboard shortcuts
The keyboard shortcuts in this section are based on U.S. standard keyboards. If you are using a screen
reader, you may want to maximize your window so the tables of shortcuts are completely expanded and
accessible.
Click these links to see shortcuts for:
v Changing text and paragraph properties in a document
v Databases
v Designer interface and windows
v Dialog boxes
v Moving the cursor in a document
v Navigating through views, folders, and panes
v Properties boxes
v Reading documents
v Selecting and moving text in a document
v Working in views
To do this
ALT+F5
ALT+F9
ALT+F10
CTRL+BREAK
Go to a Web page
CTRL+Q or ALT+F4
Exit Designer
CTRL+TAB
ESC or CTRL+W
F1
F5
Lock User ID
F6
F10 or ALT
SHIFT+ALT+S
SHIFT+CTRL+TAB
532
Press
To do this
SHIFT+DOWN ARROW
SHIFT+F6
SHIFT+F10
SHIFT+UP ARROW
To do this
ARROW KEYS
CTRL+N
CTRL+O
Open database
ENTER
ESC
ESC or CTRL+W
F9
PAGE DOWN
PAGE UP
SHIFT+CTRL+F9
SHIFT+F9
SPACEBAR
To do this
ESC
F1
SHIFT+TAB
SPACEBAR
TAB
533
Press
To do this
To do this
ALT+DOWN ARROW
ALT+UP ARROW
ALT+ENTER
CTRL+ALT+ENTER
CTRL+END
CTRL+HOME
CTRL+PAGE DOWN
CTRL+PAGE UP
ENTER
ENTER
ESC
F1
SHIFT+CTRL+END
SHIFT+CTRL+HOME
SHIFT+CTRL+PAGE DOWN
SHIFT+CTRL+PAGE UP
SHIFT+TAB
TAB
To do this
CTRL+DOWN ARROW
CTRL+E
Edit document
CTRL+END
CTRL+F
CTRL+G
CTRL+HOME
CTRL+P
534
Press
To do this
CTRL+PAGE DOWN
CTRL+PAGE UP
CTRL+UP ARROW
ESC
F4 or TAB
LEFT ARROW
RIGHT ARROW
SPACEBAR
SPACEBAR
SPACEBAR
To do this
CTRL+A
CTRL+C
CTRL+DOWN ARROW
CTRL+UP ARROW
CTRL+V
CTRL+X
DELETE
DELETE
SHIFT+CTRL+DOWN ARROW
SHIFT+CTRL+LEFT ARROW
SHIFT+CTRL+RIGHT ARROW
SHIFT+CTRL+UP ARROW
SHIFT+DOWN ARROW
SHIFT+END
SHIFT+HOME
SHIFT+LEFT ARROW
SHIFT+RIGHT ARROW
SHIFT+UP ARROW
535
To move to
CTRL+LEFT ARROW
CTRL+RIGHT ARROW
END
End of line
HOME
Beginning of line
SHIFT+TAB
SHIFT+TAB
TAB
TAB
To do this
CTRL+B
CTRL+E
CTRL+F
CTRL+G
Find next
CTRL+I
CTRL+J
CTRL+K
CTRL+R
Show/Hide ruler
CTRL+T
Change text style to default (color changes only if the text style is from a Paragraph Style)
CTRL+U
CTRL+Z
F2
F7
F8
F9
F11
Cycle through paragraph styles from Paragraph Styles tab in Text Properties box
SHIFT+CTRL+L
SHIFT+F2
SHIFT+F7
SHIFT+F8
536
To do
ARROW KEYS
ARROW KEYS
BACKSPACE
CTRL+END
CTRL+HOME
END
ENTER
ENTER
F6
HOME
SHIFT+8
SHIFT+BACKSPACE
SHIFT+F6
TAB
To do this
CTRL+A
CTRL+C
CTRL+F
CTRL+P
CTRL+V
CTRL+X
DELETE
537
Press
To do this
ENTER
F3
F4 or TAB
F9
SHIFT+CTRL+F9
SHIFT+DELETE
SHIFT+F3
SHIFT+F9
SPACEBAR
538
Index
Special characters
$$fields
list of 142, 415
$$HTMLHead field 142
$$NavigatorBody field 142
$$Return field 105, 142
$$ReturnAuthenticationFailure field 105
$$ReturnAuthorizationFailure field 105
$$ReturnDocumentDeleted field 105
$$ReturnGeneralError field 105
$$ViewBody field 142, 518
$$ViewList field 142
$Anonymous field 386
$ChargeRead field 142
$ChargeWrite field 142
$fields
$Anonymous 386
$HLFormula 131
$PublicAccess 391
$Title 77
$UpdatedBy 386
$VersionOpt 145
$GroupScheduleRefreshMode field 142
$GroupScheduleShowLegend field 142
$HLFormula field 131
$PublicAccess field 391
$Title field 77, 142, 143
$trash
creating a trash folder 205
$UpdatedBy field 386
$VersionOpt field 142, 145
@commands
for application automation 272
on Web 22
Programmers pane and 3
referencing 133
@Db commands
@DbColumn 128, 291
@DbCommand 291
@DbLookup 128, 291
described 283
@DbName function 211
formula language 211
@functions
for date and time calculations 123
for external data access 128
Programmers pane and 3
referencing 133
Web 495
@IsDB2 function 211
Numerics
1-2-3 files
importing into views
482
A
About Database document
creating 404
Action bar
described 242
Action bar applet
described 25, 242
Actions
built-in 236
copying 240
creating 240
creating hotspots for 236
deleting 240
described 11, 236
editing 244
examples 236
icons for 240, 244
in Notes and Web applications 18
inserting 244
naming 274
navigator 224
OLE and 337
publishing 327
shared 38, 244
simple 235
URL commands and 503
Web 496
Actions field
described 415
Actions menu
described 240
Actions with children
creating 240
ActiveX controls
debugging 329
defined 327
Administration Process
setting up for databases 387
Administration servers
assigning to databases 387
Agent Log
described 263
size limit 265
Agent Manager
described 237
recording less information 264
setting up debugging 261
Agents, types of
background or foreground 257
built-in 237
embedded 257
Java and LotusScript 257
local or server 257
public access 391
Agents, uses for
adding fields with 415
editing documents with 415
generating XML with 321
hiding design with 431
in Notes and Web applications 18
mail 346
mail responses 346
removing field data with 415
removing stored forms with 415
539
540
Applets (continued)
outline 223
view 200
Web applications and 25
Application design elements
security 383
Applications
annotating 407
automating 235, 337
completing 403
creating bookmarks 35
deploying 408
design tips 17
documenting 404
for mobile clients 23
mail-enabled 343
managing 435
master design copies 408
overview of Domino 1
planning 17
planning for Notes and Web 17
previewing 46
setting launch properties for 418
testing 412
Archives, database
creating 456
Arguments
setting for Java applets 295
Attachments
creating 61, 93
opening with URL commands 517
Attributes
HTML 139
Authentication
for Web users 373
URL commands and 522
user names 373
Author access
actions 366
privileges 368
Authors
anonymous 83
Authors field
creating 385
described 384
restricting read-access with 384
updating 386
Autolaunching
defined 332
objects 327, 333
Automating
applications 235, 337
described 11, 235
formulas for 272
hiding components 275
JavaScript and 273
navigators 228
replies 346
security features and 272
using LotusScript 269
Averages
calculating 183
B
Background processing
on Web pages 528
Backgrounds
for pages and forms 60
Billing
forms for 101
reserved fields for 142
Bitmap files. See Graphics 59
BlindCopyTo field 143
BMP files. See Graphics 226
Body field 141
described 415
Bold text
in Web applications 118
Bookmark bar
creating bookmarks on 35
creating link to databases 35
enabling keyboard navigation 531
Bookmarks
organizing applications 35
using 35
Borders
for embedded elements 62
for frames 149
Browsers
designing applications for 17
differences 18
hiding paragraphs from 137
launch options 418
proxy settings for 46
setting up for previewing 46
using Print statement to instruct 269
using with Notes client 118
Buddy lists
embedding 63
Button bar
described 242
Buttons
creating 22, 246
customizing icon 37
defined 236
deleting 246
editing 246
C
CAB files
described 294
Calculating
cell values 183
field values 120
Calendar controls
adding to a page or form 62
creating 124
Web use of 496
Calendar views
creating 193, 496
defined 155
described 157
formatting 193
using with the embedded
scheduler 93
Cascading
form names 80
Cascading Style Sheet. See CSS 24
Categories
adding to views 186
columns 187
field for creating 142, 187
Categories (continued)
generating dynamically 187
naming 187
user-created 186
Category fields
described 187
cc:ing. See Mail 344
cc:Mail
mailing to 143
CD-ROM updates
replication and 442
Certificates
SSL 522
CGI
defined 528
CGI programs
compared to servlets and agents 307
invoking 307
security for 307
CGI variables
fields and 528
table of 529
user profiles and 528
Character translation file
described 481
Check box fields
aliases in 129
Checkbox fields
in Web applications 497
Choice list fields
aliases in 129
creating 127
refreshing 135
views and 100
Choices
displaying in lists 100, 127
refreshing 135
Class name
described 294
CLS files
described 481
CodeBase property
for Java applets 297
COL files
creating 484
defined 484
formulas and 484, 487
guidelines 484
importing a tabular text file 486
keywords 485
Collapsing
sections 387
views 183
Color fields
described 132
Color palettes
blending colors 41
changing 22
choosing colors 58
Colors
blending 41
for columns 183
for frame borders 149
for navigators 227
for outline entries 218
for rows 183
for views 183
Colors (continued)
for Web applications 22
unread marks and 190
Column descriptor file. See COL
files 486
Column width
described 486
Columns
adding to views 159
calculating values in 183
categorized 186
copying 159
creating 167
date 170
deleting 159, 167
displaying custom icons 178
entering names from 128
for Web links 172
formatting 170
hide-when formulas and 172
hiding 182, 183
icons in 178
mapping to fields in views 484
numbers 171
programmatic name for 172
programming 173
response 189
setting styles for 169
specifying data type in views 484
styling 183
switching to a view 183
testing 410
time 170
titles for 168
views and 9, 155
width 183, 486
Combo box fields
aliases in 129
described 127
Command keys
defined 531
Common Gateway Interface. See
CGI 528
Common name
displaying 125
Compatibility
and views 203
Compatibility with earlier releases. See
Upgrading 293
Components
sizing 330
using 327
ComposedDate field 141
Computed fields
CGI programs and 528
defined 133
order of evaluation 80
Computed for display fields 133
Computed text
described 53
Computed when composed fields 133
Configuring
offline applications 351
Conflict documents. See Replication
conflicts 83
Connections
enabling for a database 288
Connectivity
for relational databases 284
Console commands
described 263
Contact lists
embedding 63
Contact printing
example 101
forms for 101
reserved fields for 101
Controls
date/time 124
embedded 93
Cookies
programming for 307
Copy Java applet
described 299
CopyTo field 143
CORBA properties
for Java applets 297
CORBA SSL security
for Java applets 297
Count parameter
Domino URL commands and
search results and 521
Create menu
documents and 80
CreateDocument command
described 512
CSS
class and objects 24
defined 316
passing information 142
shared resources and 70
styles applied to objects 24
supported properties 70
XML 315, 317
CSV format
for exporting views 487
Currency
fields for 120
formatting 120, 171
Custom controls
adding to forms 328
described 327
running in Read mode 331
sizing 330
updating 331
Customize subform
using 359
Customizing
column sorting 182
databases 31
icon buttons 37
letterheads 41
templates 420
window titles 88
518
D
Data access
with @DbColumn and
@DbLookup 128
with Domino Connectors 283
with Lotus Enterprise Integrator
with ODBC 290
with servlets 307
Index
283
541
542
Databases (continued)
replicating 438, 446
replication history 458
replication log 459
response forms 85
restricting creation of 257
roles 370
rolling out 435
security 365, 378
shared resources across 38
shortcut keys 533
size 461
size limits 437
size, controlling 454
statistics 461
summary 413
synchronizing 424
templates 424
titles for 31
troubleshooting 464
unlinking 429
unlocking design elements in 432
URL commands and 505
Datalens
ODBC and 290
Date picker
adding to a page or form 62
in Web applications 496
Date separator
described 121
Date/Time controls
described 124
Date/Time fields
described 121
Date/Time formats
setting for Web applications 524
Dates
displaying 170
entering 121, 124
formatting 121, 170
formula language 123
ranges 121
DAV. See DB2 access view. 471
DB2
connecting to 287
integrating with 21
DB2 access view 471
creating 473
managing 475
security 472
troubleshooting 476
DB2 query view
@ functions 211
creating 208
managing 210
DB2 query views 207
DCRs
creating 286
customizing 287
data sources and 286
described 283
enabling 288
fields and 288
importing external records 289
overview of 285
specifying default 288
using on forms 288
Debug_AMgr statement
described 264
DEBUG_OUTFILE statement
described 264
Debugging
agents 261
Java applets 304
NotesLog class 265
Decimal places
in Number fields 120
Decimal symbol
described 120
Decrypting documents
overview 395
DECS
described 283
Default field values
for editable fields 134
Default group
access level 372
DeleteDocument command
described 512
Deletion stubs
purging 440, 469
DeliveryPriority field 143
DeliveryReport field 143
Deploying
applications 408
Depositor access
actions 366
privileges 368
Design
changing 429
hiding 33, 431
linking 423
maintaining 411
preventing changes 408
refreshing 426
replacing 428
replication and 429
templates and 419, 429
updating 426
Design action buttons
described 3
Design changes
making 425
templates and 31
Design elements
automating 250
copying 36, 422
hiding 432
library of 422
linking 424
listed 1
locking 432
multiple selection of 430
previewing 46
protecting 429
templates and 424
unlinking 429
unlocking 432
updating 426
Design library template
described 422
Design properties
setting for multiple elements
430
Design synopsis
creating 413
Designer
starting 2
third-party tools and 277
work area overview 3
Designer access
actions 366
privileges 368
Designer task
updating databases with 424
Dialog boxes
and Web applications 18
creating 98, 99
designing in formula language 99
shortcut keys 533
Dialog forms
described 99
Dialog list field
described 127
Directory catalogs
offline 362
offline applications and 362
Discussion template
described 31, 479
Disk space
saving 368
DocBase property
for Java applets 297
Document archiving tool
described 456
Document keys
opening documents with 514
Document Library template
described 479
Documenting
applications 404
databases 404
fields 406
Documents
accessing 77, 383
annotating 88
anonymous 83
archiving 456
conflict 83
copying 33, 266
creating 80, 512
decrypting 394, 395
deleting 266, 512
deleting from views 205
displaying 319
editing 406, 415, 460, 512
encrypting 394, 395, 399
footers 83
forms and 77
headers 83
hiding 335
launching 404
launching into framesets 152
linking in workflow applications 344
locking/unlocking 45
modifying 139
moving 266
opening 514
previewing 418
read/unread status 190, 266
replication conflict 460
Documents (continued)
response 85
saving 143
security 257, 383, 384, 390, 395
selecting in Web applications 203
shortcut keys 534
signing 388, 401
storing forms with 142, 143
summary of 266
tracking 101
tracking versions 86
unread 190
updating 414, 415
Web and 80, 512
Documents, mailing 266, 344
DOLMKINF utility
creating filesets with 358
DOLRES.NTF
copying design elements from 349
DOLS. See Domino Off-Line
Services 349
Domains
searching 518
Domino
security 365
Domino Connectors
described 283
Domino Directory
accessing 492
entering names 128
offline 362
Domino Directory Server document
servlet manager settings 309
Domino Enterprise Connection Services.
See DECS 283
Domino Global Workbench
described 27
Language Synchronizer 27
Domino Java Virtual Machine (JVM) 309
Domino Off-Line Services
described 349
design elements 359
developer tasks 349
forms 349
installing 350
overview 349
replicating databases 357
URLs and 357
Domino security
application design elements 383
Domino URL commands
authentication and 522
count parameter 518
explicit 514
implicit 514
opening documents by key 514
server commands 505
ServerRequest 522
start parameters 518
syntax 503
Domino-generated fields. See Reserved
fields 386
DominoObject
in URL commands 503
DTD
defined 316
Duration controls
creating 124
in Web applications 496
setting separator for 138
DXL
described 313
transforming 324
E
E-mail. See Mail 344
ECL
described 365
setting up for secure Java applet
access 300
Edit mode
for forms and documents 83
hidden data in 23
Editable fields
defined 133
EditDocument command
described 512
Editing
concurrent 460, 469
documents 415
fields 390
forms 414
images with the editor applet 498
navigators 225
restricting 384
URL commands and 512
window titles 88
Editor access
actions 366
privileges 368
Editor applet
described 25
using 118
Editors
anonymous 83
embedding in a form 96
sections and 387
tracking 386
Effective access. See ACL 380
Embedded controls
date picker 62
embedded scheduler 93
file upload control 93
forms and 93
group scheduler 496
Embedded editors
creating for a form 96
Embedded elements
borders for 62
contact lists 63
embedded scheduler 93
keyboard accessibility and 25
pages and 62
reserved fields for 142
Embedded objects
autolaunching 333
Embedded scheduler
using 93
Embedded views
setting display properties 198
Embedding
defined 327
Index
543
Embedding (continued)
editors 96
error message 329
folders 197
navigators 196, 231
objects 327
outlines 216
views 196, 197
Encapsulated documents 143
Encrypt field 143
Encryption
database 393
default 399
defined 394
described 392
document 394
examples 130, 395
field 394, 395
levels 393
views and 398
Encryption keys
changing 398
creating 396
defined 394
distributing 396
exporting 396
fields for 142, 398
listing 398
mailing 396
managing 396
merging 397
password fields and 130
secret 142
Entry helper button
described 127
ERP systems
connecting to 283
Error executing agent
error message 265
Error handling
on forms 105
Error messages
customized forms for 105
OLE objects and 329
Events
agent 238
calendar view 238
click 238
database 238
described 238
field 238
form 238
page 73
programming 238, 250
view 238
Examples
access control sections 388
agents 346
automating navigators 228
choice list field generation 128
customizing window titles 88
encryption 395
exchanging data 339
fields 339
hiding 335
hotspots, text pop-up 248
inheriting information 140
544
Examples (continued)
password fields 130
replication 444
restricting access 389
servlets.properties file 309
Excel files
importing from and exporting to 481
Exchanging
field data 338
Execution Control List. See ECL 300
Expanding
sections 387
views 183, 505
Exponential notation
described 120
Exporting
files 481
Java applets 300
views 487
views as CSV 487
Extended accelerator keys
enabling 531
Extended ACL
described 365
External database access
with Domino Connectors 283
with Lotus Enterprise Integrator 283
with ODBC 290
ExternalData parameter
in Java applets 302
Externalization for Java applets
described 302
F
federated data 207
Field data
deleting from documents 113
exchanging 338
shared fields and reassigning 114
Field formulas
creating 133
described 134
Field help
writing 406
Field label
defined 116
Field names
described 116
requirements for 116
Field types. See Data types 113
Field values
calculating 133
default for editable fields 134
displaying 173, 415
Fields
authors 385
DCRs and 288
described 113
enabling for instant messaging 126
encrypting 394, 395
in Notes and Web applications 18
readers 385
Fields, types of
category 187
checkbox 127
choice list fields 127
Forms (continued)
compared to pages 49, 75
copying 79
creating 75, 79, 332, 391
DCRs and 288
defaults 54, 77
deleting 79, 415
described 75
designing for Notes and Web 18
DOLS Offline Configuration 349
encryption property 394
for replacing dialog boxes 18
headers/footers 83
hiding 80
in Notes and Web applications 18
layers on 66
naming 80
replication and 83
storing 415
storing with documents 77, 142, 143
testing 112, 409
Web applications 82, 497
Forms, types of
anonymous 83
billing 101
contact printing 101
customized results forms 518
dialog 99
Domain Search forms 106
response 85
version tracking 86
Forms, working with
choices on 100
designing prompts 100
dialog boxes as 99
displaying as Web page 510
displaying documents with forms 77
displaying without editable
fields 510
edit mode 83
embedded controls on 93
embedded editors on 96
embedded navigators and 231
embedding objects in 327
examples 339
field-exchange in 327
improving performance of 111
launching an OLE object 333
linking objects in 327
navigators and 199
objects and 327
OLE and 328
securing 384, 390, 391, 394
templates and 141
window titles 88
Formula fields
described 131
programming 131
Formula pop-ups
creating 248
defined 236
deleting 248
editing 248
Formulas
automating applications 272
COL files and 487
columns and 173
Formulas (continued)
entering in the Script area 3
field 133
input translation 133
input validation 133
literalizing 131
named elements and 217
prompting users 100
Forwarding
documents 344
restricting 390
Frames
borders for 147
described 147
in Web applications 498
naming 148
sizing 149
specifying a target frame 151
Framesets
content for 148
creating 147
defined 11, 147
keyboard accessibility and 25
launching automatically 152
launching on Web 203
opening 510
outlines and 224
From field 141
G
getCodeBase
in Java applets 304
getDocumentBase
in Java applets 304
GIF files. See Graphics 226
Global Workbench. See Domino Global
Workbench 27
Graphical date/time controls
described 124
Graphics
adding an editor to Designer 277
adding to navigators 226
adding to outline entries 217
alternate text for 25
backgrounds 60
bitmap 59
changing 60
changing when moused over 43
choosing colors for 58
copying 226
creating 59
customizing letterheads 41
database management and 41
design tools for 226
dynamic 43
importing 226
JPEG 59
navigators and 226
pasting 226
PCX 59
shared resources 38
text over 138
TIFF 59
Gray scale
blending colors 41
Index
545
Grid lines
displaying in views 183
Group calendars
in Web applications 496
Group names
ACL 372
Guides. See Navigators, Outlines
213
H
Handheld devices
designing for 23
Headers
creating 83
Headlines database
described 131
subscriptions and 37
Help
context-sensitive 405
databases 407
for fields 406
forms 407
overview 404
Hide-when conditions
CGI fields and 528
columns and 172
field settings 137
options, setting 23
Web use and 512
Hide-when fields
in Notes and Web applications 18
Hiding
automated components 275
button hotspots 246
columns 183
databases 432
design elements 23, 432
designs 33, 431
documents 335
elements from mobile clients 23
examples 335
fields 56, 137
formula pop-ups 248
Java applets 297
menu choices 230
objects 337
outline entries 217
paragraphs 137
section titles 387
servlet names 309
subforms 89
text pop-ups 248
views 203, 230
Hierarchical names
displaying as common name 125
Hierarchy. See Response documents 85
Home pages
creating 49
defined 52
launching 52
specifying 407
URLs 407
Horizontal rules
creating 54
in Web applications 499
Host forms
described 99
546
Hotspots
action hotspot 249
button hotspot 246
creating 227
defined 11, 227
examples 236
imagemaps and 233
navigators and 227
pop-ups 248
Web applications and 499
HTML
adding 63
adding an editor to Designer 277
attributes 139, 297
core attributes 24
defined 316
displaying information with Print
statement 269
formatting 139
generating for hidden fields 83
on pages and forms 63
passing to server 142
referencing objects with JavaScript 24
tag attributes 24
viewing frameset source 147
XML and 315
HTML editor
using 63
HTML field 140
HttpSession instance 309
I
Icon buttons
customizing 37
Icons
creating database 403
custom icons in views 178
displaying in columns 178
download 349
identity 359
Image files
described 517
Image resources
creating 41
customizing letterheads 41
deleting 41
described 38
dynamic graphic 43
opening with URL commands 512
renaming 41
Image set
described 43
Imagemaps
compared to outlines and
navigators 213
described 233
Images. See Graphics 59
Imperial measurement
described 120
Importing
column format 481
documents 481
files into views 481, 487
foreign characters and symbols into
views 481
graphics 226
Importing (continued)
Java applets 294
lines per page 482
navigators 232
Indenting
response documents 188
Indexes
updating 463
Indexes, full-text
updating 463
Info field
described 415
Inheriting
creating fields for 140
documents in fields 141
field values 134
related documents 85
subjects in a response hierarchy 141
Input Enabled property
enabling field input 134
Input forms
described 98
Input translation formulas
defined 134
settings for field 134
Input validation formulas
defined 134
Instant messaging
adding to an application 47
enabling for fields 126
enabling in views 171
International characters
displaying on Web 118
in Web applications 498
Internet
SSL security and 381
Italic text
in Web applications 118
J
JAR files
described 294
Java
Web applications and 25
Java agents
restricting 368
Java applet properties
CodeBase 297
CORBA classes 297
CORBA SSL security 297
DocBase 297
Size 297
Java applets
adding to an application 293
alternate text for 25
compared to servlets 307
copying 299
debugging 304
deleting 299
described 293
Domino 25
enabling on workstation 294
exporting 300
hiding 297
importing 294
linking to 295
K
Keyboard shortcuts. See Shortcut
keys 532
Keys, encryption. See Encryption
keys 142
Keywords
COL files and 485
L
Labels
fields 116
Language preference
setting 27
setting for Web applications 524
Languages
sort order 363
Launching
databases 418
databases into framesets 152
documents 404
documents or pages into
framesets 152
home pages 52
links 418
objects 327
pages 418
Launching (continued)
target frames and 151
views or folders into framesets 152
Layer tree
hiding layers 66
Layers
anchors 66
background color 69
content 66
copying 66
creating 66
deleting 66
hiding 66
HTML properties 69
Layer Tree dialog box 66
position properties 67
tile patterns 69
Layout regions
changing 92
defined 91
described 91
fields on 138
read access 23
unsupported features 127
LDAP directories
authenticating Web users with 373
Legacy applications
XML and 315
Legacy databases
connecting to 283
Legend
embedded scheduler 93
LEI
described 283
Letterhead
customizing 41
Levels. See Response documents 85
Limits
size 30
Linking
databases 423
design elements 424
designs 423
documents 344
mail 344
objects 327
templates and 423, 424
Links
creating on Web 118
database 423
defined 236
displaying in views 172
launching automatically 418
sending 344
target frames and 151
URL 57
Links field
described 415
List box fields
aliases in 129
Lists of choices
displaying 100
LocalDomainServers group
access level 372
Locking
WebDAV and 282
Locks
document 45
Log file
replication events 459
Login
argument 522
Login command
described 505
URL guidelines 503
Logout command
described 505
Lookups
creating 100
in multiple Domino Directories 491
name 125
Lotus Instant Messaging
embedding a contact list 63
Lotus Translation Components
Domino Translation Object 29
Translation Services Gateway 29
LotusScript
application automation 269
debugger 261
OLE and 327
restricted operations in agents 270
restricting use in agents 257
storing programs 38
using for data access 283
Web and 496
LotusScript agents
restricting 368
LotusScript browser window 3
LotusXSL Processor
downloading 323
LS:DO
using for data access 283
M
Macros. See Agents 237
Mail
agents 346
applications 343
automating 344
changing default font of 54
customizing letterhead 41
delivery 491, 492
fields 142, 143
fields for automatic 143
forwarding 344
linking 344
MAPI classes and methods 493
sending 344
workflow applications 343
Mail queue 491
Mail router 492
Mail Send dialog box 143
Mail-in Database
agents and 346
creating 345
Mail-in Database documents
described 345
MailFormat field 143
MailOptions field 143
Main class name
described 294
Index
547
Manager access
actions 366
privileges 368
MAPI. See Messaging application progam
interface (MAPI) 491
Master design copies
creating 408
Menu bar
described 3
Menus
actions 240
displaying 328
hiding choices 230
shortcut keys 274
Messaging
adding Sametime to an
application 47
Messaging application program interface
(MAPI)
Address Book provider 491
classes and methods 493
Message Store provider 491
Message Transport provider 492
platforms 492
requirements 492
service providers 491, 492
spooler 492
Metadata
passing 142
Metric measurement
described 120
Microsoft files
importing from and exporting to 481
Microsoft Internet Information Server
(MIIS) 503
Microsoft Office Library template
described 479
Mobile applications
designing 23
hiding elements from 23
Multilingual applications
designing for 27
URL commands 527
N
Named elements
formulas for 217
Names
displaying 125
entering from a list 125
Names dialog box
displaying 125
Names fields
described 125
enabling for instant messaging 126
in Web applications 497
Naming
ACL entries 373
categories 187
forms 80
frames 148
framesets 147
Navigating
Web sites 196, 231
Navigation
in Notes and Web applications 18
548
Navigator templates
forms as 199
Navigators
accessibility of 224
actions in 224
adding objects to 224
color 227
creating 225
designing 224
displaying 230
editing 225
embedding 231
examples 228
formulas and 228
graphics and 226
highlighting 227
hotspots and 227
imagemaps and 233
importing 232
opening 230
programming 224
renaming 413
scripts and 228
styling 227
templates and 199, 231
testing 232
text on 227
Web 199, 224, 499
No access
assigning 366
privileges 368
Note ID
finding documents by 466
Notes
hiding views 203
Notes applications
planning 17
running on Web 17
Notes Browser
previewing in 46
Notes classes
setting up applet access to 300
Notes client
Web applications and 22, 140
Notes/FX
enabling 339
Web applications 497
NOTES.INI file
recording debugging information
NotesFlow
actions 327
applications 327
field-exchange 327
NotesFX
using 338
NotesLog class debugging
setting up 265
NSF files
creating 34
NTF files
creating 411
defined 31, 419
Designer 479
Number fields
described 120
Numbering
documents 173
Numbers
columns for 171
formatting in Number fields
120
264
Object parameter
in Java applets 302
Objects
drawing 226
embedding 327
enhancing 227
hiding 337
hotspot 227
launching 327, 332, 335
linking 327
referencing with JavaScript 24
resizing 330
updating 331
viewing properties and events of 3
Objects tab 3
OCX. See Custom controls 327
ODBC
connecting to 287
data sources 290
Datalens and 290
described 283
using 290
views 291
Offline Subscription Configuration profile
document
creating 351
editing 349, 351
Offline subscriptions
overview 349
OLE
actions and 337
applications 327
autolaunching objects 334
automating 337
connecting to 287
custom controls 327
exchanging data 338
launch properties 333
launching in-place 334
LotusScript 327
property sheets and 330
publishing actions using 337
resizing 330
Web and 327
OLE custom controls. See Custom
controls 327
OLE DB
connecting to 287
OLE objects
autolaunching 333
debugging 329
launching 335
opening with URL commands 517
Online chat
adding to an application 47
Online status
displaying in views 171
enabling for fields 126
OpenAbout command
described 505
OpenAgent command
described 510
OpenDatabase command
described 505
OpenDocument command
described 512
OpenElement command
described 517
OpenFileResource command
described 512
OpenForm command
described 510
SearchDomain and 518
SpecialAction argument and 522
OpenFrameset command
described 510
OpenHelp command
described 505
OpenIcon command
described 505
OpenImageResource command
described 512
OpenPage command
described 515
OpenServer command
described 505
OpenView command
described 505
optional arguments 505
Ordered lists
in Web applications 498
OtherDomainServers group
access level 372
Outline applet
described 25
using 223
Outline entries
adding graphics to 217
customizing 216
customizing twisties 45
described 214
displaying as a hierarchy 218
hiding 217
named elements and 217
styles for 218
Outlines
accessibility of 214
creating 214
described 10
displaying in framesets 224
embedding 216
imagemaps and 213
public access for 217
styles for 218
using aliases with 214
Overriding
default form selection 77
Form processed confirmation 105,
142
proxy settings for previewing 46
P
Pages
adding XML to 317
backgrounds for 60
compared to forms 49
Pages (continued)
creating 50
deleting 50
described 49
displaying 51
elements on 49
embedding controls on 62
events for 73
fonts in, changing 54
graphics on 59
HTML and 63
Java applets and 61
JavaScript and 22
launching 418
launching into framesets 152
layers on 66
links and 57
opening 515
programming 73
styling text in 52
Palettes
blending colors 41
choosing colors 58
Panes
shortcut keys 537
Password fields
described 130
Passwords
URL commands and 522
PCX files. See Graphics 59
Percentage
calculating 183
formatting numbers as 120
Performance
computed fields and 133
forms and 111
lookups and 128
Web 22
Perl script
Web applications and 528
Persistence
Java applets 302
session 309
Personal Address Book
using to enter names 128
Personal agents. See Private agents 236
Pictures. See Graphics 59
Pop-up calendar controls 496
Pop-ups
creating 248
Precision
in Number fields 120
Predefined fields
list of 142
PreFormat
described 505
Preview buttons
described 3
Previewing
applications 46
databases 418
documents 418
framesets 147
hiding information during 137
setting up 46
Printing
headers and footers 83
Printing (continued)
hidden information 23, 137
restricting 390
Private agents
controlling 257
Web users and 257
Private keys. See Encryption keys 394
Privileges
access level 368
Profile documents
creating 98
defined 97
Profile forms. See Profile documents 98
Profiling
agents 262
Web services 262
Programmable tables
described 54
Programming
columns 173
navigators 224
Perl script in Web applications 528
tables 54
views 505
Programs
creating for events 250
Prompts
creating 100
Properties
action hotspots 249
changing 417
changing database and design
element 417
for Java applets 297
setting for OLE objects 330
Properties boxes
shortcut keys 534
Property sheets
using with OLE objects 330
Protecting
design elements 429
designs 429
Proxy settings
for previewing in browsers 46
Public access
agents 391
assigning 368
defined 391
documents 391
forms 391
framesets and 147
outlines 216
style sheets 391
views 391
Public documents
access to 368
creating 391
Public keys
document encryption 394
PublicAccess field 391
Purge interval
deletion stubs and 440
R
Radio button fields
described 127
Index
549
RANGE statement
described 485
Read access
restricting 390
Read access list
described 390
forms 390
Reader access
actions 366
privileges 368
Readers field
creating 385
updating 386
Readers fields
checking 415
creating 384
ReadExternalData parameter
in Java applets 302
ReadForm command
described 510
ReadViewEntries
described 505
Records
importing 289
Redesigning
forms 414
templates 420
Redirect command
described 505
domain search and 518
Reference list
using 133
Reference tab 3
Refreshing
choice list field values 135
defined 426
designs 426
field values 133
Java applets 300
Relational databases
accessing with ODBC 290
connecting to 283
Renaming
agents 413
databases 413
fields 116, 415
forms 413
navigators 413
shared fields 114
views 413
Replace Design command
defined 428
Replica IDs
assigning access by 373
Replica stubs
defined 468
troubleshooting 468
Replicas
conflicts 83, 460
controlling changes 373
copying to servers 435
creating 438
deletion stubs in 469
deletions 440, 469
limiting content 440, 443
settings for 438
size of 467
550
Replication
CD-ROM updates 442
commands 438, 447
customizing 439
database design and 467
disabling 442, 446, 468
document size and 440
editing conflicts and 469
enabling 446
encryption and 438
enforcing consistent ACL 379
examples 444
forcing 447
forms and 83
history 458
log file 459
monitoring 458
non-document elements 440
planning 438
purge interval for 440
selective 440
settings 438, 439, 443
specifying dates 440
templates and 429
troubleshooting 466, 468, 469
Web applications 357
WebDAV and 282
Replication conflicts
merging 83
Replication formulas
using 440
Replication history
clearing 458
displaying 458
specifying dates 440
Replication or save conflicts
consolidating 83, 460
described 460
preventing 460
Replication priority
assigning 442
Replies
automating 346
Reserved fields
$Anonymous 386
$PublicAccess 391
$UpdatedBy 386
$VersionOpt 145
billing 101
Categories 142
contact printing 101
FolderOptions 142, 146
HTML 142
list of 142, 143, 145, 415
SecretEncryptionKeys 142
Reserved form names
for navigator or view templates 199
Resources. See Shared resources 38
Response documents
columns for 189
creating 85
described 85
indenting 188
inheriting subject 141
Response forms
described 85
testing 112
Response hierarchy
creating 85
Restricted LotusScript/Java operations
in agents 270
Restricting
copying 390
design changes 408
editing 384
forwarding 390
printing 390
RestrictToCategory
OpenView and 505
ReadViewEntries and 505
ReturnReceipt field 143
Review requests
in workflow applications 479
Revision tracking
described 86
Revisions field
described 415
Rich text fields
described 117
on Web 118
Rich text lite fields
described 117
Roles
assigning in ACL 370
creating 370
Rounding
in Number fields 120
Route. See Navigators, Outlines 213
Routing
automatic 343
Rows
spacing 183
styling 183
S
Sametime
adding to an application
enabling for fields 126
enabling in views 171
Save conflicts
consolidating 460
described 460
SaveDocument command
described 512
SaveOptions field 143
Schedules
coordinating 93
Scientific notation
described 120
Screen-reader software
designing for 25
Script area 3
Script libraries
defined 38
Scripts
creating 250
deleting 250
Search forms
described 106
Search results
displaying 518
navigating 106, 521
47
SearchDomain command
described 518
SearchEntry command
described 518
SearchFuzzy command
described 518
Searching
domains 518
URL commands and 518
SearchSite command
count parameter 518
described 518
optional arguments 518
start parameter 518
SearchView command
count parameter 518
examples and syntax 518
optional arguments 518
start parameter 518
Secret encryption keys. See Encryption
keys 142
Sections
access to 387
collapsing 387
creating 56, 387
defined 75
editors and 387
hiding titles 387
signing 401
Secure Sockets Layer. See SSL 522
Security
agents 257, 307
CGI programs 307, 528
database 378
database encryption 393
decrypting data 398
described 365
documents 383
electronic signatures 401
encryption 392
folders 390
for automation 272
for Notes and Web applications 18
hidden fields and 137
Java applet access to Notes
classes 300
servlets 307, 309
signatures and 400
SSL certificates 522
URL commands and 522
SendTo field 143
Server certificate request
creating 522
Server commands
OpenServer 505
Redirect 505
Server tasks
Designer 31
ServerRequest command
examples 522
fields 522
syntax 522
Servers
access levels for 366
console commands 263
restricting creation of databases
on 257
Service providers
installing 492
Servlet API 309
Servlet classes
loading 309
Servlet manager 309
Servlets
compared to agents and CGI
programs 307
security for 307
WebSphere and 21
XML 323
servlets.properties file
example 309
sessdata.ser 309
Sessions
tracking 309
SGML
defined 316
Shared actions
creating 244
defined 236
editing 244
inserting 244
Shared agents
controlling 257
defined 237
Shared databases
described 343
Shared fields
converting 113, 114
copying 113
creating 114
deleting 114
inserting 114
multilingual 114
renaming 114
stored forms and 77
Shared graphics. See Image resources 41
Shared resources
across databases 38
deleting 40
described 38
exporting 40
files 39
for Java applets 298
non-NSF files as 38
refreshing 40
Shortcut keys
cursor 536
databases 533
defined 531
Designer 532
dialog boxes 533
documents 534
enabling 531
folders 537
form names 80
menu choices 274
panes 537
properties boxes 534
text 535
text properties 536
tools 277
views 537
Sign field 143
Signatures
attaching to documents 401
defined 388
storing 400
Signing
documents 401
Simple actions
defined 235
table of 266
Simple agents. See Agents 237
Single Copy Templates
described 420
Site map. See Navigators, Outlines 213
Size
attachments 440
database 437, 454
replica 440, 467
Size property
for Java applets 297
SmartIcons
toolbar 37
Sort order
columns 182
in subscriptions 363
SpecialAction argument
described 522
SSL
creating user certificates 522
Internet security and 381
server certificate request 522
URL commands and 522
Start parameter
search results and 521
Statlog task
database activity reporting 461
statistics 462
user activity reporting 463
Status tracking
described 189
Stop Java applet
described 299
Storing
files for Java applets 293
forms with documents 77, 142, 143
Java code 38
LotusScript programs 38
programs 307
Structured text files
defined 483
exporting to 487
importing into views 483
Style editor applet. See Editor applet 25
Style sheets
public access 391
XSL 317
Style sheets, cascading. See CSS 24
Styles
CSS 24
Stylesheets
DXL 313
Styling
columns 183
frames 149
horizontal rules 54
navigators 227
rows 183
titles 168
Index
551
Styling (continued)
views 183
Subforms
creating 89
defined 38, 75
described 89
examples 89
inserting 89
layers on 66
securing 384, 390, 391, 394
Subject field 141
Submit button
on Web 22
SubmitCert command
examples and syntax 522
fields 522
Subscription documents
storing 131
Subscription forms
creating 37
Subscriptions
described 131
enabling 37
Subscriptions, offline
overview 349
Symbols
currency 120
Symphony files
importing into views 482
Synopsis. See Design synopsis 413
System actions
creating 240
T
Tab order
specifying for fields 135
Tabbed tables
described 54
Tables
creating 49
in editor applet 498
in Web applications 499
programmable 54
Tabular text files
COL files and 486, 487
defined 482
exporting to 487
importing into views 482, 487
Target frames
order of precedence 151
specifying 151
TeamRoom template
described 479
Templates
agents and 420
changing 419, 425
customizing 420
defined 31, 419
design changes and 31
Designer 479
fields in 141
linking to 423, 424
master 31
navigator 231
redesigning 420
replacing design and 428
552
Templates (continued)
replication and 425, 429
server 31
Single Copy 420
unlinking 429
unlinking design elements from 429
updating databases with 424
Terminations group
adding names to 373
Testing
applications 412
design 409
forms 112, 409
navigators 232
response forms 112
views 410
Text
computed 53
fields 117
graphics with 138
navigators and 227
styling 52
Web 500
Text files
exporting 487
importing to a view 482, 483
Text pop-ups
creating 248
defined 236
deleting 248
editing 248
Text properties
shortcut keys 536
Thousands separator
setting 120
TIFF files. See Graphics 59
Time
displaying 170
entering 121
formatting 121, 170
formula language 123
ranges 121
Time controls
creating 124
in Web applications 496
Time zones
fields 133
setting for Domino Off-Line Services
subscriptions 363
setting for Web applications 524
Title field
described 77, 415
Titles
database 31
frameset 147
window 88
Toolbars
customizing 37
Tools
customizing 277
organizing on the Tools menu 278
shortcut keys 277
Totals
calculating 183
Tracking
document status 189
editors 386
Tracking (continued)
server usage 101
sessions 309
unread documents 190
versions 86, 145
TranslateForm argument
described 522
Translation
applications 27, 129
Domino Global Workbench 27
foreign symbols and characters 481
Translation formulas
defined 133
setting for fields 134
Trash folders
creating 205
designing 205
in Web applications 205
Tree style outline
described 218
Troubleshooting
agents 261
calendar views 193
database access 464
database design changes 467
database performance 464
documents in log file 466
fields 415
framesets 152
Java applets 304
OLE object error 329
replication 466, 468, 469
Truncation
in imported text 482
Twisties
customizing 45
U
Underline
in Web applications 118
Unlinking
design elements 429
templates and databases 429
Unread marks
color 190
displaying 190
Domino 5 users and 190
UpdatedBy field
described 415
tracking edits 386
Updating
designs 426
documents 414
Java applet files 38
objects 331
Upgrading
framesets and 147
Java applets and 293
URL commands
authentication and 522
count parameters 518
explicit 514
for opening resources 512
for setting user preferences 524
for Web applications 48, 503
guidelines 503
V
Values
recalculating for computed fields 133
refreshing 135
Version control
conflict documents as 83
field for 142
forms for 86, 145
tracking 86, 145
VersionOpt field 145
View applet
described 25, 200
font support 200
view properties and 501
View indexes
updating 463
View lookups
choice list aliases and 129
choice list fields and 128
Names fields and 125
View menu
working with framesets and 147
View templates
defined 196
forms as 199
Views
accessibility of icons in 178
adding background images 183
adding trash folder 205
aliases and 129
allowing document selection on
Web 203
Views (continued)
calendar 155, 157, 193
categories and 186
character translation file (.CLS)
and 481
COL files and 487
collapsing 183
columns in 9
compatibility 172
copying 159, 160
creating 159, 368
creating trash folder 205
customizing twisties 45
database performance and 465
default 160, 190
defined 9, 155
defining columns 167
deleting 159, 160
designing 159
displaying grid lines 183
displaying on the Web 196
displaying with XML 319
documents and 163
Domino 5 users and 190
embedding 196, 197
enabling for instant messaging 171
encrypted data and 398
entering names from columns in 128
exporting 481, 487
hide-when formulas and 172
hiding 203, 230
hierarchy in 85
icons in 178
importing 481
importing tabular text into 482
in Notes and Web applications 18
indenting in 85
launching into framesets 152
launching on Web 203
limiting access 389
lookups in 100
mapping imported columns to
fields 484
OBDC access 291
programming 163
public access 391
renaming 413
searching 518
selecting documents to include
in 163
setting design for documents in 77
shortcut keys 537
single category 198
specifying field types of imported
columns 484
styling 183
switching 183
testing 410
troubleshooting 193
types of 155, 207
unread marks 190
updating 463
URL commands and 505
Web 500
Vision-impaired users
designing for 25
W
Web
@commands and 22
@functions 495
access levels 366
actions 496
agents 496
authentication and 373, 522
CGI variables 528
creating forms for 497
displaying views 196
documents 80
example of agents 256
fields and 497
file attachments on 93
folders 161
hidden fields and 83
hiding design elements 432
hiding views 203
improving performance on 22
LotusScript and 496
mailing features 345
navigating 196, 231
navigators 199, 224, 499
Notes/FX and 327
Perl script 528
previewing requirements for 46
selecting documents in views 203
Server document and 407
tables 499
text 500
unsupported features 124, 125, 495
views 500
Web applications
color for 22
designing 22
displaying text in 52
enabling for offline use 349
home pages for 52
Notes client and 31, 118
planning 17, 21
programming 503
replacing dialog boxes 18
replicating 357
running on Notes 17
URL commands 48, 503, 512
Web control page
Domino Off-Line Services 349, 350
Web elements
date picker 62
embedding on pages 62
Web links
displaying in views 172
Web pages
home pages 52
in frames 148
Web services, working with
profiling 262
Web users
access to forms 82
access to outlines 223
attaching files 93
authenticating 373
controlling access 381, 382
designing for Notes and 140
Domino applets for 25
Index
553
WebDAV
configuring 278
described 277
editing databases with
replication and 282
WebQueryOpen events
agents and 307
described 256
WebQuerySave events
agents and 307
described 256
WebSphere
integrating with 21
Width
columns 183
Window tabs
described 3
Window titles
described 88
WindowTitle field
described 415
WKSCOL statement
described 485
554
278
X
XML
adding to forms and pages 317
adding to views 319
cascading style sheets and 315
defined 313, 316
XML (continued)
exporting 324
formatting with style sheets 317
generating with an agent 321
HTML and 315
in Domino applications 315
Java servlets 323
tags 315
terminology 316
transforming 324
viewing 324
XSL
style sheets 313
XML 317
XSLT
defined 316
Z
ZIP files
described
294
Notices
This information was developed for products and services offered in the USA. IBM may not offer the
products, services, or features discussed in this document in all countries. Consult your local IBM
representative for information on the products and services currently available in your area. Any reference
to an IBM product, program, or service is not intended to state or imply that only that IBM product,
program, or service may be used. Any functionally equivalent product, program, or service that does not
infringe any IBM intellectual property right may be used instead. However, it is the user's responsibility to
evaluate and verify the operation of any non-IBM product, program, or service.
IBM may have patents or pending patent applications covering subject matter described in this document.
The furnishing of this document does not give you any license to these patents. You can send license
inquiries, in writing, to:
IBM Director of Licensing
IBM Corporation
North Castle Drive
Armonk, NY 10504-1785
U.S.A.
For license inquiries regarding double-byte (DBCS) information, contact the IBM Intellectual Property
Department in your country/region or send inquiries, in writing, to:
IBM World Trade Asia Corporation Licensing
2-31 Roppongi 3-chome, Minato-ku
Tokyo 106, Japan
The following paragraph does not apply to the United Kingdom or any other country/region where such
provisions are inconsistent with local law:
INTERNATIONAL BUSINESS MACHINES CORPORATION PROVIDES THIS PUBLICATION "AS IS"
WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, OR
FITNESS FOR A PARTICULAR PURPOSE.
Some states do not allow disclaimer of express or implied warranties in certain transactions; therefore,
this statement may not apply to you.
This information could include technical inaccuracies or typographical errors. Changes are periodically
made to the information herein; these changes will be incorporated in new editions of the publication. IBM
may make improvements and/or changes in the product(s) and/or the program(s) described in this
publication at any time without notice.
Any references in this information to non-IBM Web sites are provided for convenience only and do not in
any manner serve as an endorsement of those Web sites. The materials at those Web sites are not part
of the materials for this IBM product, and use of those Web sites is at your own risk.
IBM may use or distribute any of the information you supply in any way it believes appropriate without
incurring any obligation to you.
Licensees of this program who wish to have information about it for the purpose of enabling: (i) the
exchange of information between independently created programs and other programs (including this
one) and (ii) the mutual use of the information that has been exchanged, should contact:
Lotus Software
IBM Software Group
One Rogers Street
Cambridge, MA 02142
USA
Such information may be available, subject to appropriate terms and conditions, including in some cases
payment of a fee.
The licensed program described in this document and all licensed material available for it are provided by
IBM under terms of the IBM Customer Agreement, IBM International Program License Agreement, or by
any equivalent agreement between us.
Any performance data contained herein was determined in a controlled environment. Therefore, the
results obtained in other operating environments may vary significantly. Some measurements may have
been made on development-level systems, and there is no guarantee that these measurements will be
the same on generally available systems. Furthermore, some measurements may have been estimated
through extrapolation. Actual results may vary. Users of this document should verify the applicable data
for their specific environment.
Information concerning non-IBM products was obtained from the suppliers of those products, their
published announcements, or other publicly available sources. IBM has not tested those products and
cannot confirm the accuracy of performance, compatibility, or any other claims related to non-IBM
products. Questions on the capabilities of non-IBM products should be addressed to the suppliers of
those products.
All statements regarding IBM's future direction or intent are subject to change or withdrawal without
notice, and represent goals and objectives only.
This information contains examples of data and reports used in daily business operations. To illustrate
them as completely as possible, the examples include the names of individuals, companies, brands, and
products. All of these names are fictitious and any similarity to the names and addresses used by an
actual business enterprise is entirely coincidental.
Trademarks
IBM, the IBM logo, AIX, DB2, Domino, Freelance, Freelance Graphics, iSeries, i5/OS, Lotus, Lotus Notes,
LotusScript, Notes, 1-2-3, OS/400, Quickplace, S/390, Sametime, SmartSuite, WebSphere, z/OS, and
zSeries are trademarks or registered trademarks of IBM Corporation in the United States, other countries,
or both.
Additional IBM copyright information can be found at: http://www.ibm.com/legal/copytrade.shtml
Java and all Java-based trademarks and logos are trademarks of Sun Microsystems, Inc. in the United
States, other countries, or both.
Microsoft, Windows, and the Windows logo are trademarks of Microsoft Corporation in the United States,
other countries, or both.
Intel and Pentium are trademarks of Intel Corporation in the United States, other countries, or both.
The Graphics Interchange Format(c) is the Copyright property of CompuServe Incorporated. GIF(sm) is a
Service Mark property of CompuServe Incorporated.
UNIX is a registered trademark of The Open Group in the United States and other countries.
Linux is a trademark of Linus Torvalds in the United States, other countries, or both.
Other company, product and service names may be trademarks or service marks of others.