Escolar Documentos
Profissional Documentos
Cultura Documentos
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.
iii
To insert an image resource . . . . . . . . 42 To format a section . . . . . . . . . . . 56
To insert an image resource from a file in the To delete a section . . . . . . . . . . . 56
current database . . . . . . . . . . . . 42 Creating links . . . . . . . . . . . . . 57
To rename an image resource . . . . . . . 42 To create a Named Element link . . . . . . 57
To delete an image resource . . . . . . . . 42 To copy and paste a link . . . . . . . . . 57
To reference an image resource with HTML . . 43 To create a link using the properties box . . . . 57
To make design changes to an image resource . . 43 To create a link to a document, view, anchor, or
Exporting an image resource . . . . . . . 43 database . . . . . . . . . . . . . . 57
Distributing design changes for an image . . . 43 To create a URL link . . . . . . . . . . 58
Creating a custom letterhead . . . . . . . 43 Using graphics . . . . . . . . . . . . . 58
Creating image resource sets. . . . . . . . . 43 Preparing graphics . . . . . . . . . . . 58
To create a horizontal image set . . . . . . 44 Changing the color palette . . . . . . . . 59
To create a vertical image set . . . . . . . 44 Adding graphics to a page, form, or subform . . 59
To use the image set on the Web . . . . . . 45 Changing the display properties of the graphic 60
Document locking . . . . . . . . . . . . 45 Adding a background color or graphic . . . . 60
To allow document locking . . . . . . . . 45 Adding an applet . . . . . . . . . . . . 61
To prevent document locking . . . . . . . 45 Creating an attachment . . . . . . . . . . 61
Customizing twisties . . . . . . . . . . . 45 Embedding elements . . . . . . . . . . . 62
Previewing your design work . . . . . . . . 46 To embed an element . . . . . . . . . . 62
To preview in Notes or in the default Web To delete an embedded element . . . . . . 62
browser using the menu . . . . . . . . . 46 Embedding a date picker . . . . . . . . . 62
To preview in Notes or in the default Web Embedding an Instant Messaging Contact List . . 63
browser using the preview icons . . . . . . 46 Inserting a JavaScript library . . . . . . . . 63
To set up a default browser for previewing . . . 47 To insert a JavaScript library in-line . . . . . 63
To override proxy settings for additional To Insert a JavaScript Library into the JS Header: 63
browsers . . . . . . . . . . . . . . 47 Using HTML on a page, form, or subform . . . . 63
Requirements for previewing your design work To convert pages, forms, or subforms into HTML 64
on the Web . . . . . . . . . . . . . 47 To import HTML . . . . . . . . . . . 64
Adding instant messaging to an application . . . 47 To paste HTML . . . . . . . . . . . . 64
Preventing users from accessing forms and views in To enter HTML directly on a page, form, or
a Web application . . . . . . . . . . . . 48 subform . . . . . . . . . . . . . . 65
To restrict users from opening parts of an To include some HTML on a page, form, or
application using URL commands . . . . . 48 subform . . . . . . . . . . . . . . 65
Setting launch properties for pages or forms . . . 65
Chapter 4. Designing pages . . . . . . 49 To set the launch property for a page . . . . . 65
How pages compare to forms . . . . . . . . 50 To set the launch property for a form . . . . . 65
Creating pages . . . . . . . . . . . . . 50 Layers . . . . . . . . . . . . . . . . 66
To create a page . . . . . . . . . . . . 50 Creating a layer . . . . . . . . . . . . 66
To delete a page . . . . . . . . . . . . 51 Changing the position of a layer . . . . . . 67
Displaying a page . . . . . . . . . . . . 51 Changing the HTML properties of a layer . . . 69
Creating a home page for an application . . . . 52 Changing the background color and image for a
To set the home page to launch automatically . . 52 layer. . . . . . . . . . . . . . . . 69
To specify a default home page for a Web server 52 Creating style sheets as shared resources . . . . 70
Styling text for the Web . . . . . . . . . . 52 To create a new style sheet resource . . . . . 70
Fonts . . . . . . . . . . . . . . . 52 To insert a style sheet resource into a page, form,
Size . . . . . . . . . . . . . . . . 53 or subform . . . . . . . . . . . . . 70
Preserving spaces . . . . . . . . . . . 53 To edit a style sheet resource . . . . . . . 71
Text colors . . . . . . . . . . . . . . 53 To refresh a style sheet resource . . . . . . 71
Creating computed text . . . . . . . . . . 53 Table of supported CSS properties . . . . . . 71
Example: Computed text . . . . . . . . . 53 Programming a page or form . . . . . . . . 73
Changing all text styles . . . . . . . . . . 54 Adding HTML header information . . . . . . 73
Creating and formatting horizontal rules . . . . 54 To add HTML header information . . . . . . 73
To create a horizontal rule . . . . . . . . 54 Example: Adding HTML to the Head tag . . . 73
To change the style of a horizontal rule . . . . 54 Adding JavaScript header information . . . . . 73
Creating programmable tables . . . . . . . . 54 To add JavaScript header information. . . . . 73
How programmable tables work . . . . . . 55 Example: Adding JavaScript header information 73
To create a programmable table . . . . . . . 55
Example: Creating hotspots to control a Chapter 5. Designing forms . . . . . . 75
programmable table . . . . . . . . . . 55 Form elements . . . . . . . . . . . . . 75
Creating sections . . . . . . . . . . . . 56 Forms and documents . . . . . . . . . . . 77
To create a section . . . . . . . . . . . 56 Storing a form with each document . . . . . 78
Contents v
To rename a shared field . . . . . . . . 114 To add HTML attributes using the Field
To delete a shared field . . . . . . . . . 115 Properties box: . . . . . . . . . . . . 139
To convert a single-use field to a shared field 115 To add HTML attributes using the field’s HTML
To create multiple shared fields for different Attributes event: . . . . . . . . . . . 139
languages . . . . . . . . . . . . . 115 Storing HTML in a field . . . . . . . . . . 140
Field names and labels . . . . . . . . . . 116 Creating fields that inherit values . . . . . . 140
Naming a field . . . . . . . . . . . . 116 To create a field that inherits values from
Renaming a field . . . . . . . . . . . 116 another document . . . . . . . . . . . 140
Field types . . . . . . . . . . . . . . 116 Example: Inheriting address information . . . 140
Text, rich text, and rich text lite fields . . . . . 117 To create a field that inherits an entire
Displaying graphics, attachments, and objects in document . . . . . . . . . . . . . 141
a rich text field . . . . . . . . . . . . 117 To Inherit information in a response hierarchy 141
Using rich text lite fields. . . . . . . . . 117 Standard fields used in templates . . . . . . 141
Rich text fields on the Web . . . . . . . . 118 Predefined fields with built-in functionality . . . 142
Number fields . . . . . . . . . . . . . 120 Reserved names for embedded elements . . . 142
Numeric fields . . . . . . . . . . . . 120 Reserved fields for use in billing applications 142
Currency fields . . . . . . . . . . . . 121 Reserved fields for general use . . . . . . 142
Date/Time fields . . . . . . . . . . . . 121 Internal fields on forms . . . . . . . . . 143
Choosing a Date/Time format . . . . . . . 121 Reserved fields that control mailing options . . . 143
To display a date . . . . . . . . . . . 121 Table of fields that control mailing options . . 143
To display a time . . . . . . . . . . . 122 Interactions with the Mail Send dialog box . . 144
Formulas for Date/Time fields . . . . . . . 123 Interactions with the Document Save dialog box 144
Creating a graphical display for Date/Time MailFormat . . . . . . . . . . . . . 144
fields . . . . . . . . . . . . . . . 124 MailOptions . . . . . . . . . . . . . 144
Names fields . . . . . . . . . . . . . 125 SendTo . . . . . . . . . . . . . . 145
Looking up names for field values . . . . . 126 Fields for version tracking . . . . . . . . . 145
Lookup options . . . . . . . . . . . 126 To create a computed $VersionOpt field . . . 145
Enabling a field for instant messaging . . . . 126 To create a choice list $VersionOpt field . . . 145
Readers and Authors fields . . . . . . . . . 126 Designing fields that prompt users to select folders 146
Creating fields to display lists of choices . . . . 127
Generating choices for lists . . . . . . . . . 128 Chapter 7. Designing framesets . . . 147
Use View dialog for choices . . . . . . . 128 Creating a frameset . . . . . . . . . . . 147
Examples: Creating a field to display a list of Using the View menu with framesets . . . . 148
choices . . . . . . . . . . . . . . 129 Providing content for a frame . . . . . . . . 148
Creating a formula-generated list . . . . . . 129 Setting the style for frames . . . . . . . . . 149
Creating aliases for choices in a list . . . . . . 129 Specifying a target frame . . . . . . . . . 151
Converting aliases to full category names . . . 129 Launching a database into a frameset . . . . . 152
Example: Using aliases for choices in a list . . 130 Launching a page or form into a frameset . . . . 152
Password fields. . . . . . . . . . . . . 130 Launching a view or folder into a frameset . . . 152
Example: Using an input translation formula 130
Example: Using a QuerySave event . . . . . 130
Chapter 8. Designing views . . . . . 155
Example 2: Using a QuerySave event . . . . 131
Folders . . . . . . . . . . . . . . . 155
Formula fields . . . . . . . . . . . . . 131
Standard outline views . . . . . . . . . . 155
Color fields . . . . . . . . . . . . . . 132
Displaying a view on the Web . . . . . . . 157
Time zone fields . . . . . . . . . . . . 133
Limits for views . . . . . . . . . . . 157
Editable and computed fields . . . . . . . . 133
Calendar views . . . . . . . . . . . . . 157
Writing field formulas . . . . . . . . . 133
Shared and private views . . . . . . . . . 158
Computed field formulas . . . . . . . . 133
Shared views . . . . . . . . . . . . 158
To create a formula for the value of a computed
Shared, contains documents not in any folders 158
field . . . . . . . . . . . . . . . 134
Shared, contains deleted documents . . . . . 158
Editable field formulas . . . . . . . . . 134
Shared, private-on-first-use views . . . . . 159
Selected field properties . . . . . . . . . 135
Shared, desktop private-on-first-use views . . . 159
Hiding fields . . . . . . . . . . . . . 137
Private views . . . . . . . . . . . . 159
Hiding options . . . . . . . . . . . . 137
Creating a standard outline view . . . . . . . 159
To hide a field . . . . . . . . . . . . 137
Copying and deleting views . . . . . . . . 160
Creating a field in a layout region . . . . . . 138
To copy a view . . . . . . . . . . . . 160
To create a field in a layout region . . . . . 138
To delete a view . . . . . . . . . . . 160
To create a field label . . . . . . . . . . 139
Creating a default design for new views . . . . 160
To resize a field . . . . . . . . . . . 139
Designing folders . . . . . . . . . . . . 161
Adding HTML attributes to a field . . . . . . 139
Naming a view or folder . . . . . . . . . 161
Contents vii
To reorder elements in an outline . . . . . . 215 Form events . . . . . . . . . . . . . 239
To create a hierarchy between elements . . . . 215 Examples. . . . . . . . . . . . . . 239
To delete an outline entry . . . . . . . . 215 Field events . . . . . . . . . . . . . 239
Embedding an outline . . . . . . . . . 216 Examples. . . . . . . . . . . . . . 240
Outline, outline entry, and embedded outline Click events . . . . . . . . . . . . . 240
properties . . . . . . . . . . . . . 216 Examples. . . . . . . . . . . . . . 240
Selected outline properties . . . . . . . . 217 Agent event . . . . . . . . . . . . . 240
Selected outline entry properties . . . . . . 217 Creating a form, subform, page, or view action . . 240
Selected embedded outline properties . . . . 218 To create an action with subaction . . . . . 241
Using the outline applet in Web applications 223 To create system actions . . . . . . . . . 242
Displaying the outline in a frameset . . . . . 224 Copying and deleting actions . . . . . . . 242
Navigators . . . . . . . . . . . . . . 224 Actions menu . . . . . . . . . . . . 242
Designing for accessibility . . . . . . . . 224 Calling an agent . . . . . . . . . . . 242
Navigator objects . . . . . . . . . . . 224 Action bar . . . . . . . . . . . . . . 242
Navigator actions . . . . . . . . . . . 225 Creating and inserting shared actions . . . . . 244
Creating a navigator . . . . . . . . . . . 225 To create a shared action . . . . . . . . 244
To edit a navigator . . . . . . . . . . 225 To create shared action notes . . . . . . . 245
Adding graphic objects to navigators . . . . 226 To delete a shared action note . . . . . . . 246
Adding and enhancing graphics in a navigator 226 To insert a shared action. . . . . . . . . 246
Adding text to and highlighting navigator To edit shared actions . . . . . . . . . 246
objects . . . . . . . . . . . . . . . 227 Creating a button . . . . . . . . . . . . 246
Adding hotspots . . . . . . . . . . . 227 Other button tasks. . . . . . . . . . . 247
Adding actions to navigators . . . . . . . 228 Creating a text pop-up . . . . . . . . . . 248
Displaying a navigator when users open a Other text pop-up tasks . . . . . . . . . 248
database . . . . . . . . . . . . . . 230 Example: Text pop-ups . . . . . . . . . 248
Hiding navigators . . . . . . . . . . . 230 Creating a formula pop-up . . . . . . . . . 248
Embedding navigators in a form, subform, Other formula pop-up tasks . . . . . . . 249
page, or document . . . . . . . . . . 231 Creating an action hotspot . . . . . . . . . 249
Overriding an embedded navigator with a Other action hotspot tasks . . . . . . . . 249
navigator template . . . . . . . . . . 231 Creating a program for an event . . . . . . . 250
Importing a navigator into a form, subform, Creating an agent . . . . . . . . . . . . 250
page, or document . . . . . . . . . . 232 Triggering an agent on an event . . . . . . 251
Testing navigators . . . . . . . . . . . 232 Triggering an agent on a schedule . . . . . 253
Creating an imagemap . . . . . . . . . . 233 Useful agent procedures . . . . . . . . . 254
To create an imagemap . . . . . . . . . 233 Examples of agents to run before Web users open
To move a hotspot. . . . . . . . . . . 233 or save documents . . . . . . . . . . . 256
To delete a hotspot from an imagemap . . . . 233 WebQueryOpen events . . . . . . . . . 256
To copy an imagemap . . . . . . . . . 233 WebQuerySave events . . . . . . . . . 256
To change the graphic for an imagemap . . . 234 Setting up agent security using the Security tab 256
Security for agents on servers and the Web . . . 257
Chapter 10. Adding automation to Who can create agents? . . . . . . . . . 258
applications . . . . . . . . . . . . 235 Who can run agents? . . . . . . . . . . 258
Private agents . . . . . . . . . . . . 258
Actions . . . . . . . . . . . . . . . 236
Shared agents . . . . . . . . . . . . 258
When to use actions . . . . . . . . . . 236
LotusScript/Java agents . . . . . . . . . 258
Examples of actions . . . . . . . . . . 236
Where can agents run? . . . . . . . . . 258
Notes on actions . . . . . . . . . . . 236
What operations can agents run? . . . . . . 259
Hotspots . . . . . . . . . . . . . . . 236
When are restrictions checked? . . . . . . 259
When to use hotspots . . . . . . . . . 237
Locally on Notes . . . . . . . . . . . 259
Examples of hotspots . . . . . . . . . . 237
On the server . . . . . . . . . . . . 259
Agents . . . . . . . . . . . . . . . 237
Foreground or background . . . . . . . . 260
When to use agents . . . . . . . . . . 237
From the Notes client or the Web . . . . . . 260
Notes on agents . . . . . . . . . . . 238
Security controls for agents that are called by
Events . . . . . . . . . . . . . . . . 238
agents . . . . . . . . . . . . . . . 260
When to use event programming . . . . . . 238
Troubleshooting agents . . . . . . . . . . 261
Examples of event programming . . . . . . 238
Testing agents . . . . . . . . . . . . . 261
Types of events . . . . . . . . . . . . 238
To use the Test menu command . . . . . . 261
Database events . . . . . . . . . . . 238
To use the LotusScript debugger . . . . . . 261
Examples: . . . . . . . . . . . . . 238
To create a test database . . . . . . . . . 262
View and folder events . . . . . . . . . 239
Profiling agents and Web services . . . . . . 262
Examples of view and folder events . . . . . 239
Viewing the agent log . . . . . . . . . . 263
Examples of calendar view events . . . . . 239
Contents ix
Tips . . . . . . . . . . . . . . . 296 URL extension mapping . . . . . . . . 312
Specifying applet parameters, attributes, and Load on startup . . . . . . . . . . . 312
properties . . . . . . . . . . . . . . 296 Example properties file . . . . . . . . . 312
Setting HTML attributes . . . . . . . . . . 297
Setting Alternate HTML attributes . . . . . . 297 Chapter 15. Including XML in Designer
Setting properties . . . . . . . . . . . . 297 applications . . . . . . . . . . . . 313
To set applet properties . . . . . . . . . 297
What is DXL? . . . . . . . . . . . . . 314
To hide an applet under certain conditions . . 298
Domino applications and XML . . . . . . . 315
To hide an applet based on the browser
Applications enhanced with XML . . . . . 315
accessing it . . . . . . . . . . . . . 298
Ways to include XML in a Designer application 315
Setting up shared applet resources . . . . . . 298
XML terminology . . . . . . . . . . . . 316
To create a shared applet resource . . . . . 298
Putting XML in a form or page . . . . . . . 317
To use a shared applet resource . . . . . . 299
Defining data on a form with XML elements 317
Stopping, selecting, and restarting applets . . . . 299
To create documents in XML format . . . . . 318
To stop an applet . . . . . . . . . . . 299
Formatting XML data with stylesheets . . . . 318
To select an applet . . . . . . . . . . . 299
Using a view to generate XML . . . . . . . 319
To restart an applet . . . . . . . . . . 299
Mapping XML tags to a view . . . . . . . 319
Copying and deleting applets . . . . . . . . 299
Example . . . . . . . . . . . . . . 320
To delete an applet and its related files . . . . 300
To map XML to a view . . . . . . . . . 320
To copy an applet . . . . . . . . . . . 300
Embedding a view in a page . . . . . . . 321
Refreshing and exporting applet files . . . . . 300
Using an agent to generate XML . . . . . . . 321
To refresh applet files. . . . . . . . . . 300
Example: XML Agent . . . . . . . . . . 322
To export files . . . . . . . . . . . . 300
Using a Java servlet to generate XML . . . . . 323
Setting security for applets . . . . . . . . . 300
Examples of XML servlet applications . . . . 323
To set security for applets in Notes . . . . . 300
Creating and using a servlet . . . . . . . 324
To set security for applets in Web applications 301
Including XML in a servlet . . . . . . . . 324
To extend the AppletBase class . . . . . . 301
Viewing the XML in an application with DXL
Saving applet data . . . . . . . . . . . 302
utilities . . . . . . . . . . . . . . . 324
Considerations . . . . . . . . . . . . 302
To view the XML for a design element . . . . 324
Externalization . . . . . . . . . . . . 302
To export the XML for one or more design
To set up externalization . . . . . . . . 303
elements to a text file . . . . . . . . . . 324
Example HTML code . . . . . . . . . . 303
To transform the XML for one or more design
Serialization . . . . . . . . . . . . . 303
elements using an XSL . . . . . . . . . 325
To set serialization . . . . . . . . . . . 304
Example of HTML code . . . . . . . . . 304
Tips and troubleshooting for Java applets . . . . 304 Chapter 16. Including OLE objects in
Troubleshooting an applet that is not running 304 applications . . . . . . . . . . . . 327
Accessing resource files . . . . . . . . . 304 Linking and embedding objects in forms . . . . 327
Specifying a full URL. . . . . . . . . . 305 OLE and LotusScript . . . . . . . . . . 328
Using getDocumentBase . . . . . . . . . 305 To link an object in a form . . . . . . . . 328
Using getCodeBase . . . . . . . . . . 306 To embed an object in a form . . . . . . . 328
Modifying parameter values to locate resource Adding OLE custom controls to a form . . . . . 328
files . . . . . . . . . . . . . . . 306 To create an OLE custom control object . . . . 328
Troubleshooting tips for OLE and Active X objects 329
Chapter 14. Including Java servlets in Modifying a form to size an embedded object . . 330
To edit the OLE object using the properties box 330
Web applications . . . . . . . . . . 307
To edit the OLE object using the properties in
Comparing agents, servlets, and CGI programs . . 307
the programmer’s pane . . . . . . . . . 330
What language can the program be written in? 308
Modifying a form so that it sizes an OLE custom
Where is the program stored? . . . . . . . 308
control . . . . . . . . . . . . . . . 330
How is the program invoked by a Web user? 308
To edit the OLE custom control using the
When is the program loaded and unloaded by
properties box . . . . . . . . . . . . 330
the server? . . . . . . . . . . . . . 308
To edit the OLE custom control in the
How can the program interact with Domino? 308
Programmer’s pane . . . . . . . . . . 330
What security is available for the program? 308
Expansion properties of OLE custom controls 331
Running servlets in Domino . . . . . . . . 309
Modifying a form to run a custom control in Read
Writing the servlet . . . . . . . . . . 309
mode . . . . . . . . . . . . . . . . 331
Enabling servlet support in Domino . . . . 309
Updating objects by document . . . . . . . 331
Loading servlet classes with the JVM loader 310
To modify properties using the properties box 331
Setting properties for servlets . . . . . . . 311
To modify properties using the properties sheet
Servlet aliases . . . . . . . . . . . . 311
in the Programmer’s pane . . . . . . . . 332
Initialization arguments . . . . . . . . 311
Contents xi
Encrypting documents and fields . . . . . . 394 To remove field data from all documents . . . 416
Procedural overview: encrypting documents . . 395 To rename a field . . . . . . . . . . . 416
Enabling encryption for a field . . . . . . 395 To reassign documents to another form . . . . 416
Creating secret encryption keys . . . . . . 396 To remove the stored form from documents . . 416
Distributing secret encryption keys . . . . . 396 To specify a form to display documents . . . 417
Merging secret encryption keys . . . . . . 397 To recover additional space . . . . . . . . 417
To create a field that maintains a list of secret Changing database and design properties . . . . 417
encryption keys . . . . . . . . . . . 398 To change a database’s properties . . . . . 417
Managing encrypted information . . . . . . 398 To change a design element’s properties . . . 417
To encrypt all documents automatically . . . 399 Setting database launch properties . . . . . . 418
Using electronic signatures in Notes applications 400 To set the database launch property . . . . . 418
Attaching signatures to documents . . . . . 401 If you choose to launch a doclink. . . . . . 418
To launch a Page from the Notes client . . . . 419
Chapter 20. Completing an application Displaying a document preview automatically 419
and managing design changes . . . . 403 Templates . . . . . . . . . . . . . . 419
To convert a database to a template . . . . . 419
Creating a database icon for a Notes application 403
Naming conventions . . . . . . . . . . 420
To paste an icon into a database . . . . . . 403
Creating templates . . . . . . . . . . 420
To create a new icon . . . . . . . . . . 403
Creating a design library template . . . . . 422
Providing online Help for an application . . . . 404
Linking a database to a template . . . . . . 423
Creating ″Using Database″ and ″About Database″
Linking individual design elements to a
documents . . . . . . . . . . . . . . 404
template . . . . . . . . . . . . . . 424
The ″About Database″ document . . . . . . 404
Synchronizing databases with master templates 424
The ″Using Database″ document . . . . . . 404
Making and distributing design changes . . . . 425
To create a document . . . . . . . . . . 405
Refreshing a design . . . . . . . . . . . 426
To automatically display the ″About Database″
Automatically refreshing a design . . . . . 426
document . . . . . . . . . . . . . 405
Manually refreshing a design . . . . . . . 427
Creating context-sensitive Help for an application 405
Components that are not refreshed . . . . . 427
Writing Help for fields . . . . . . . . . . 406
Components that are refreshed . . . . . . 427
Tips for writing Help for fields . . . . . . 406
Refreshing a design manually . . . . . . . 427
To write field Help . . . . . . . . . . 406
Replacing a design . . . . . . . . . . . 428
To write pop-up text for a field . . . . . . 406
Components that are not replaced during
To write a field hint . . . . . . . . . . 407
Replace Design . . . . . . . . . . . . 428
Examples . . . . . . . . . . . . . . 407
Components that are replaced during Replace
Creating and displaying more detailed application
Design . . . . . . . . . . . . . . 428
Help . . . . . . . . . . . . . . . . 407
To replace the design of a database . . . . . 429
To create a Help form . . . . . . . . . 407
Design changes and replication . . . . . . . 429
Specifying a home page in the Web site document 407
Templates and replication . . . . . . . . 429
Restricting design changes . . . . . . . . . 408
Preventing design changes . . . . . . . . . 429
Checking the application design before release . . 408
To protect individual design elements from
Checking form design . . . . . . . . . . 409
being replaced or refreshed . . . . . . . . 429
Checking field design . . . . . . . . . . 409
To unlink individual design elements from a
Checking view design . . . . . . . . . . 410
template . . . . . . . . . . . . . . 430
Checking columns . . . . . . . . . . . 411
To unlink a database from a template . . . . 430
Making a design copy of a completed application 411
Modifying multiple design elements . . . . . . 430
Pilot testing an application . . . . . . . . . 412
Hiding the design of a database . . . . . . . 431
To pilot test an application . . . . . . . . 412
To hide the design of a database . . . . . . 431
Renaming a database . . . . . . . . . . . 413
Building in access to agents before hiding the
Renaming design elements . . . . . . . . . 413
design . . . . . . . . . . . . . . . 431
Design synopsis . . . . . . . . . . . . 413
Hiding design elements . . . . . . . . . . 432
To create a design synopsis . . . . . . . . 413
″Hide design element from″ . . . . . . . 432
Updating documents after redesigning a form . . 414
″Do not show this design element in menus of
Form changes that don’t require updates to
Notes R4 or later clients″ . . . . . . . . 432
existing documents . . . . . . . . . . 414
To hide design elements . . . . . . . . . 432
Form changes that require updates to existing
Locking a design element . . . . . . . . . 432
documents . . . . . . . . . . . . . 415
To enable design element locking . . . . . . 433
Checking field values in a document . . . . . 415
To lock a design element . . . . . . . . 433
To check field values in a document: . . . . 415
To unlock a design element . . . . . . . . 433
Using agents to update documents affected by
To disable design element locking . . . . . 433
form changes . . . . . . . . . . . . . 415
To edit and resave documents . . . . . . . 416
To add a field . . . . . . . . . . . . 416 Chapter 21. Deploying an application 435
Contents xiii
Importing worksheets . . . . . . . . . . 482 Domino formatting features that are not supported
To import worksheet data into a view . . . . 482 on the Web . . . . . . . . . . . . . . 498
Importing tabular text . . . . . . . . . . 482 Domino frame properties that are not supported on
Viewing imported text . . . . . . . . . 483 the Web . . . . . . . . . . . . . . . 498
To import tabular text into a view . . . . . 483 Domino horizontal rule properties that are not
Importing structured text files . . . . . . . . 483 supported on the Web . . . . . . . . . . 499
To import structured text into a view . . . . 483 Domino hotspot properties that are not supported
Creating a column descriptor (COL) file . . . . 484 on the Web . . . . . . . . . . . . . . 499
Using a column descriptor file (COL ) to map a Domino navigator properties that are not
source file to a Notes view . . . . . . . . . 484 supported on the Web . . . . . . . . . . 499
Mapping a column to a field in a view . . . . 484 Domino table properties that are not supported on
Specifying the data type of a column . . . . 484 the Web . . . . . . . . . . . . . . . 499
Using formulas . . . . . . . . . . . . 485 Domino text styles that are not supported on the
Writing a COL file for a worksheet . . . . . . 485 Web . . . . . . . . . . . . . . . . 500
WKSCOL . . . . . . . . . . . . . . 485 Domino view and folder properties that are not
RANGE . . . . . . . . . . . . . . 485 supported on the Web . . . . . . . . . . 500
Writing a COL file for a tabular text file . . . . 486 Features that are not supported by the Domino
Specifying the delimiter of a column . . . . 486 view applet . . . . . . . . . . . . . . 501
Specifying the start, end, and width of a
fixed-width column . . . . . . . . . . 486 Appendix E. URL
Specifying the header, footer, and lines per page 486 commands for Web applications . . . 503
Writing formulas for COL files . . . . . . . 487
Domino URL Commands . . . . . . . . . 503
Example . . . . . . . . . . . . . . 487
The Domino URL command syntax . . . . . 503
Exporting views . . . . . . . . . . . . 487
Syntax Guidelines . . . . . . . . . . . 503
Exporting to an ASCII file with comma
URL commands for opening servers, databases,
separated values . . . . . . . . . . . 487
and views . . . . . . . . . . . . . . 505
Notes on exporting as a CSV file . . . . . . 487
Redirect . . . . . . . . . . . . . . 505
Exporting to a worksheet . . . . . . . . 487
Syntax . . . . . . . . . . . . . . . 505
Exporting to a tabular text file . . . . . . . 488
Example . . . . . . . . . . . . . . 505
Exporting to a structured text file. . . . . . 488
OpenDatabase . . . . . . . . . . . . 505
To export a view . . . . . . . . . . . 488
Syntax . . . . . . . . . . . . . . . 505
Delimiter and word wrap settings . . . . . 488
Examples . . . . . . . . . . . . . . 506
OpenView . . . . . . . . . . . . . 506
Appendix C. Developing Syntax . . . . . . . . . . . . . . . 506
applications using MAPI. . . . . . . 491 Examples . . . . . . . . . . . . . . 506
The Address Book provider . . . . . . . . 491 Optional arguments for OpenView . . . . . 506
The Message Store provider . . . . . . . . 491 Examples . . . . . . . . . . . . . . 507
The Message Transport provider . . . . . . . 492 ReadViewEntries . . . . . . . . . . . 507
MAPI recipient types . . . . . . . . . . . 492 Syntax . . . . . . . . . . . . . . . 507
Platforms and requirements for MAPI . . . . . 492 Examples . . . . . . . . . . . . . . 507
Windows 98 . . . . . . . . . . . . . 492 Optional arguments for ReadViewEntries . . . 507
Windows NT 3.51 . . . . . . . . . . . 492 Examples . . . . . . . . . . . . . . 509
Windows NT 4.0 . . . . . . . . . . . 492 OpenAbout . . . . . . . . . . . . . 509
Windows 2000 . . . . . . . . . . . . 492 Syntax . . . . . . . . . . . . . . . 509
Mail . . . . . . . . . . . . . . . 492 Example . . . . . . . . . . . . . . 509
Address Book template . . . . . . . . . 493 OpenHelp . . . . . . . . . . . . . 509
MAPI classes and methods . . . . . . . . . 493 Syntax . . . . . . . . . . . . . . . 510
Example . . . . . . . . . . . . . . 510
Appendix D. Features to OpenIcon . . . . . . . . . . . . . . 510
avoid using in Web applications . . . 495 Syntax . . . . . . . . . . . . . . . 510
Example . . . . . . . . . . . . . . 510
Domino @functions that are not supported on the
URL commands for opening framesets . . . . . 510
Web . . . . . . . . . . . . . . . . 495
OpenFrameset . . . . . . . . . . . . 510
Domino actions and agent properties that are not
Syntax . . . . . . . . . . . . . . . 510
supported on the Web . . . . . . . . . . 496
Examples . . . . . . . . . . . . . . 510
Domino calendar features that are not supported
URL commands for opening agents, forms, and
on the Web . . . . . . . . . . . . . . 496
navigators . . . . . . . . . . . . . . 510
Domino field properties that are not supported on
OpenAgent . . . . . . . . . . . . . 510
the Web . . . . . . . . . . . . . . . 497
Syntax . . . . . . . . . . . . . . . 510
Domino form properties that are not supported on
Examples . . . . . . . . . . . . . . 510
the Web . . . . . . . . . . . . . . . 497
OpenForm . . . . . . . . . . . . . 511
Contents xv
Creating a field with the name of the CGI Keyboard shortcuts for databases . . . . . . . 533
variable . . . . . . . . . . . . . . 528 Keyboard shortcuts for dialog boxes . . . . . . 533
Table of CGI variable names . . . . . . . 529 Keyboard shortcuts for properties boxes . . . . 534
Keyboard shortcuts for documents . . . . . . 534
Appendix F. Accessibility Keyboard shortcuts to select and move text in a
and Keyboard Shortcuts . . . . . . 531 document . . . . . . . . . . . . . . 535
Keyboard shortcuts to move the cursor in a
Accessibility and keyboard shortcuts . . . . . 531
document . . . . . . . . . . . . . . 536
Enabling and using extended accelerator keys . . 531
Keyboard shortcuts to change text and paragraph
To enable extended accelerators for the
properties in a document . . . . . . . . . 536
Bookmark bar . . . . . . . . . . . . 531
Keyboard shortcuts to navigate within views,
To use extended accelerators in the Bookmark
folders, and panes . . . . . . . . . . . . 537
bar . . . . . . . . . . . . . . . . 531
Keyboard shortcuts when working in views . . . 537
To enable keyboard navigation of window tabs 531
To use extended accelerators in window tabs 531
Keyboard shortcuts . . . . . . . . . . . 532 Index . . . . . . . . . . . . . . . 539
Keyboard shortcuts for the Designer interface and
windows . . . . . . . . . . . . . . . 532
This overview introduces some of the features you will use to create applications.
The ″What’s new in this release″ chapter provides quick links to topics defining the new features in Lotus
Domino Designer Release 7.
One major focus of Domino Designer Release 6 is on enhancing the accessibility of your Domino
applications by enabling you to:
v Share, lock, and edit design elements
v Provide nontraditional means for accessing your applications
v Communicate across platforms
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:
v Workflow applications that route information.
v Tracking applications that monitor processes, projects, performance, or tasks.
v Collaboration applications that create a forum for discussion and collaboration.
v Data integration applications that work with relational databases and transactional systems.
v 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.
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 Pages
v Forms
v Outlines
v Navigators
v Views
v Folders
v Framesets
v Shared Resources
v Agents
1
Starting Lotus Domino Designer
There are two ways to start Lotus Domino Designer from the Notes® client:
v From the Bookmark bar
v From a database
v From the command line
To start Domino Designer from the Bookmark bar in the Notes client
v
Note: If you do not see the Domino Designer icon, Domino Designer may not be installed on your
system.
The customizable welcome page of Domino Designer displays.
From the Domino Designer welcome page you can open an existing database or create a new one. When
you open a database, either a new or existing one, the Domino Designer Work pane displays.
Tip: You can also right-click the database icon on the Bookmark bar and select Open in Designer from
the list.
You can open a specific database in Domino Designer by entering its Replica ID and a Note ID in the
command line.
1. From the MS-DOS prompt, switch to the Notes directory.
2. Enter either:
v designer Notes:///Rep_id/Note_id (for a local database)
v designer Notes://Server_Name/Rep_id/Note_id (for a hosted database)
where Rep_id is the Replica ID of the database(do not include the colon), Note_id is the Note ID of a
document in that database(include only the characters that follow the NT and the series of zeros that
make up the ID), and Server_Name is the name of the server/database as it appears in the Design
pane, with the server name, followed by a slash, then the database name.
From Designer, you can find a database’s Replica ID by opening the Database Properties box. The Replica
ID, which is a series of numbers and letters, for example, 85256BE5:0051F014, is listed on the Info tab.
From Notes, you can find the Note ID for a document by opening the Document Properties box. The
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
Design action buttons 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
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 Programmer’s 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 Programmer’s pane changes to show the code that
describes it. Events and properties that are already programmed appear in a darker
color.
Note that you can print source code by selecting File - Print when you are in the
Programmer’s pane. You can print any code you can view in the Programmer’s
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.
Starting in Lotus Domino Designer Release 6, you can use layers on pages and forms. Arranging fields,
buttons, and other UI content on a layer enables you to develop your page or form content in chunks
that can then be easily organized and quickly rearranged.
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 often work in conjunction with framesets to display graphics, site navigation, or applets.
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 field’s data type defines the kind of information a field
accepts.
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.
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.
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.
A frameset is a collection of frames. A frame is one section, or pane, of the larger frameset and is
independently scrollable. By using framesets, designers can create links and relationships between frames.
Framesets let you leave one page displayed as users scroll or link to other pages or databases. There is no
HTML required to design a frameset.
Adding automation
Adding automation to an application can speed up repetitive tasks, route documents, update information,
perform calculations, run programs, and check for errors.
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 example, you can update all the forms in a database to hide them from the Notes client.
For more information, see the chapter ″Completing an Application and Managing Design Changes.″
For more information on locking design elements, see the chapter ″Completing an Application and
Managing Design Changes.″
For more information on document locking, see the chapter ″Creating an application.″
If the user enables the AutoSave feature, the most current version of the document is saved to an
Autosave database (...\data\autosave.nsf). The Autosave database is created automatically when the
Notes client is first installed. The user then recovers the documents from this database.
Note: Users can override the default location for autosave.nsf by setting the Notes.ini variable
auto_save_db to the file location of their choice.
Note that the original Notes document is still stored in its database or Notes application; the version with
the newest changes that has not yet been saved is the one copied to the Autosave database.
Note: Application developers should be sure to test the forms in their applications with Autosave to
ensure that Autosave works properly with the application.
Note: The form on which your document is based must be enabled for AutoSave by the application
developer. If you enable Autosave in the Client, the client status bar will indicate when a document is
being autosaved. If Autosave is not enabled for a particular form, speak with the application developer
for that application about enabling Autosave.
1. Click File - Preferences - User Preferences.
2. On the Basics pane, under Startup Options, enable ″AutoSave Every 15 Minutes.″
At startup after a crash or power loss, and after the user authenticates, the user is prompted to recover
unsaved work with the message ″You have x unsaved document(s). Do you want to recover these
documents now?″
If the user presses Yes, the Recover Unsaved Documents dialog box appears that lists the documents that
can be recovered.
From the Recover Unsaved Documents dialog box, users have the following options:
v Recover - recover the selected document
v Recover All - recovers all documents without prompting for each one
v Remove - removes the selected document from the Autosave database
v Remove All - removes all documents from the local database
Alternatively, the user can press No at the recovery prompt, and recover the autosaved documents later
by selecting File - Autosave - Recover Autosaved Documents. The Recover Unsaved Documents dialog
box appears and users can recover or delete documents as described above.
Once a document has been recovered from the AutoSave database, it is automatically removed from that
database. This helps keep the Autosave database from becoming too big.
Occasionally users may be in the middle of editing a document and need to save the document
immediately. They have the option of saving the current document to the AutoSave database by selecting
File - AutoSave - Autosave Now.
Users have the option of keeping a copy of the working document in the Autosave database until they
choose to delete it by selecting File - AutoSave - Save a copy to the Autosave database.
For more information on customizing the Designer Tools menu, see the chapter ″Developing applications
using third-party tools and WebDAV.″
By making Domino WebDAV compliant, the methods you can use to enhance file-based design elements
are extended. Lotus Domino Designer 6 lets you decide which tools to use to develop your applications.
For more information on editing and managing database resources using webDAV, see the chapter
″Developing applications using third-party tools and WebDAV.″
For more information on DOLS, see the chapter ″Enabling an application for Domino Off-Line Services.″
For more information on adding instant messaging to an application, see the chapter ″Creating an
application.″
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.
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.
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.
Domino uses Sun Microsystems Java(TM) and JavaScript(TM) to translate Notes client functionality to the
browser with fuller fidelity, so that Web users can interact with action bars, rich text, views, and other
Notes features in familiar ways. But there is no Web functionality equivalent to the Notes Document
Object Model (DOM) and Remote Procedure Call (RPC) protocol. A Notes client can send instructions to
the server to perform a task and receive back results that are refreshed within the current open form or
document. This kind of interaction is nonexistent between a browser and server. All a browser can do is
send a request to a server, and all a server can do is send a complete page to a browser.
Limitations of the Web browser and the browser/server architecture are the basis for most of the
problems you must solve as you consider how to serve one application to Notes client and Web browser
users.
17
Tips for designing Notes and Web applications
The following are some areas to consider when planning an application for both Notes and Web clients.
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 can’t 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 you’re using the same form for both Notes clients and browsers, the ″Hide from Notes/Hide from Web
browsers″ attribute on a design element’s 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.
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 browser’s ″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.
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.
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 don’t work in a browser. The @functions that don’t
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 doesn’t support many functions, including @DocChildren,
@DocLevel, @DocNumber, @IsCategory, or @Responses.
v Many features associated with Notes access, preferences, and the workstation environment don’t carry
over to a browser -- @Certificate, @IsAgentEnabled, @MailEncryptSavedPreference, and
@UserPrivileges, for example.
Most @commands are associated with controlling the Notes client interface, so they don’t work in Web
applications. The handful that do work on the Web work hard, though, because they’re 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.″
Create your form and save it with the name $$ReturnAuthenticationFailure. In order to make this form
available for public access, you must do two things. First, you must set the Default role in the Access
Control List to read public documents.
Second, set the form’s security properties to make it available to public users by choosing ″Available to
public Access Users″ on the Security tab of the Form Properties box.
There are four reserved form names that you can use to create customized error messages for browser
users: $$ReturnAuthenticationFailure, $$ReturnAuthorizationFailure, $$ReturnDocumentDeleted, and
$$ReturnGeneralError.
For more information about these fields and how to use them, see ″Displaying a customized error
message″ in the chapter ″Designing Forms.″
For more information on @BrowserInfo, see the Domino Designer Programming Guide.
Using Java technologies such as Overview of Java servlets, you can share code with and link to
WebSphere applications. Single Sign-On (SSO) -- a shared authentication service -- allows for further
seamless integration between Domino and WebSphere applications.
For more information on using Single Sign On, see Administering the Domino System.
Designer features with special relevance for developing Web applications include:
v An HTML editor
v HTML-rendering for design elements
v JavaScript libraries
v Imagemaps and outlines for navigation. Note that large graphics used in imagemaps can present a
performance problem for Web applications.
v Pages
v Applets
v Style sheets for transforming HTML and XML
Note: There is no Web Formula module in the new dual platform event model. If you write Client
Formula code to perform an action in a Web application, check the Hide option ″Notes 4.6 or later
clients″ on the Hide tab of the properties box for the element you are programming.
@Command([CloseWindow])
You can specifically exclude design elements by using the option ″Hide design element from Mobile
clients″ option on the Design tab of the Design document properties box. You can set this property for
multiple elements by holding down the Shift key while selecting elements from the design pane, then
choosing Design - Design Properties to display the Design Document properties box.
You can hide elements, including their text, graphics, and fields, in any of these situations:
v When users read, hide information that is useful only when users create or edit documents.
v When users edit, print, and copy, hide information that is useful when users read documents.
ID = ZipCode
Class Applies a CSS class for a defined object. For example, if the object’s 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
object’s 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
object’s name is ZipCode, the class is Numeric, the title could be Enter your Zip
Code. The title displays differently on different browsers.
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 Developer’s 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.
The Notes client is both keyboard-accessible and screen reader-accessible. On those platforms which
support it, Notes uses MS Active Accessibility (currently only available on Microsoft Windows 95 and NT
4). Although many of the objects you create in Designer have the capacity to be made accessible -- for
example, you can provide descriptions, called ″alternate text,″ for images and applets -- it is possible to
create an application in Designer that is not accessible. And some design elements are not accessible.
However, the Domino server automatically generates accessible HTML whenever possible.
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.
If you create a multilingual database and build design elements associated with particular languages, the
list of design elements displays a column identifying the language associated with the element.
Note: If you create an application for Macintosh users or users on another platform who do not have
Designer access in the database ACL, users will be unable to assign a language to a view or folder they
create. If the user creates a view or folder with the same name and alias as another view or folder in the
database, because the version the user created has no assigned language, when Notes attempts to discern
which language settings to use, the results can be unpredictable.
Note: Create one and only one alias for design elements in a multilingual database.
4. Make a copy of the design element and open the copy for editing in the Work pane.
5. 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.
6. Translate the text of the design element into another language and save and close the element.
7. Select the element name from the work pane and choose Design - Design Properties to open the
Design Document properties box.
8. On the Design tab of the Design Document properties box, select a Language and, optionally, a
Region to associate with the design element.
9. 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.
icon.
For more information, see ″Preparing Source Databases″ in Domino Global Workbench Help.
Although primarily designed to work with machine translation software, such as the IBM server-based
machine translation engines, the LTC can connect to any third-party translation services that support the
Linguistic Services API (LSAPI) developed by IBM.
Because of their open architecture, the translation components allow developers to integrate translation
services rapidly and intuitively into Domino applications, facilitating communication across languages
and breaking language barriers in an ever-growing global environment.
The Lotus Translation Components consist of the following parts, which provide a connection to a
translation connector and its associated services:
v Domino Translation Object (DTO)
The DTO, provided by Lotus software, handles the API calls made from within a Notes or Domino
application to set up and activate a service request. It communicates with the Translation Services
Gateway (TSG).
v Translation Services Gateway (TSG)
The TSG serves as a connection between the DTO and the multilingual services provided by the
different third-party vendors. When the DTO is asked to provide information about the various
services available, it communicates with the specified TSG, which calls each of its services in turn,
collates the information, and passes it back to the DTO. When the DTO sends a request to the TSG, the
TSG determines which services are required and passes the request to the appropriate services or
connectors attached to it. The TSG also acts as a storehouse for various core services provided by Lotus
software, such as text filters or the ability to load and unload a service.
Field names: 32
View names: 64
Form names: 32
Agent names: 32
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 No limit; however, as the number of views increases, the length of time to
display other views also increases
Forms in a database Limited only by database size.
Columns in a view 289 ten-character columns; dependent upon # or characters per column
Documents imported into a view Documents totaling at least 350K
Cascading views in a database 200
Margin size (in inches) 46
Page cropping size (in inches) 46
Point size to select or print 250
Documents in a view Up to the maximum size of the database
Documents that can be exported to Limited only by available disk space
tabular text
Entries in an Access Control List ~950 names (ACL size is limited to 32767 bytes)
(ACL)
Roles in an Access Control List 75 Roles
ID password length 63 characters
Authorized users on a multiple 8 users
password ID
Outline entries in an outline ~21,000 entries
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
See the appendix ″Domino Designer Templates″ for a list of common Designer templates.
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.″
Note: As you type, Designer adds the title to the File Name field. You can accept this database file
name or change it, as follows:
v File names can be any number of characters long (within the limits of your operating system).
v File names must end with the NSF file extension.
v If you plan to use the database you are creating as a template, use the NTF file extension instead of
NSF.
3. 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.
4. (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.″
5. (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).
6. (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.″
7. Click OK.
8. (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.
If you copy the design of an existing database, keep in mind that the settings for the full-text index are
copied as part of the design. When you complete the new application, be sure to ask the database
manager to create a new full-text index.
For information on creating a full-text index for a database copy, see Administering the Domino System.
1. Open the database you want to copy.
2. Choose File - Database - New Copy.
3. 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.
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.
5. (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.″
6. (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).
7. Select ″Database design only″ so that the database’s documents will not be copied to your new
database.
8. Deselect Access Control List so that the original database’s access control list will not be copied to
your new database.
9. Click OK.
10. (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.
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.
If you use a template to refresh or replace the database design, to ensure that this option takes effect,
select this option as well as the option ″Propagate this prohibition of design change″ in the design
properties of the template.
For additional information on protecting design elements, see the topic ″Preventing design changes″ in
the chapter ″Completing an Application and Managing Design Changes.″
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.″
4. (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.″
5. (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).
6. Select -Blank- as the template.
7. Click OK.
You are now ready to begin creating the design elements for your application.
Working with the Bookmark bar, you can organize databases and applications in the following ways:
v Bookmark a database or application
v Copy a design element to a new location or to a new database
v Create a folder for bookmarks or design elements
To Do this
Remove a bookmark or bookmark folder Right-click on the bookmark or bookmark folder and
select ″Remove Bookmark″ or ″Remove Folder.″
Note: When you remove a bookmark folder, you also
remove all of the bookmarks in the folder.
Rename a bookmark or bookmark folder 1. Right-click on the bookmark or bookmark folder and
select ″Rename Bookmark″ or ″Rename Folder.″
2. Type the new name for the bookmark or bookmark
folder.
Change the bookmark icon size on the Bookmark bar 1. Choose File - Preferences - User Preferences.
2. Click Basics.
3. Under Display Options, choose a size from the
″Bookmark icon size″ list.
4. Restart Designer to see your changes.
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.″
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.
Design tab
On the Design tab of the Image Resource Properties box, select any of the following design options:
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.″
Designer automatically updates the image in all of the places it is referenced in the application.
For details on creating a custom letterhead, see ″Creating a custom letterhead″ on the Lotus Developer
Domain.
Use a horizontal image set to create an image that appears to change depending on its state. For example,
when a user passes the mouse over an image you might want it to appear to light up. To effect this,
create a second image in the set and adjust the background color of the graphic. You may also want the
image to appear to get darker as the user clicks on it, and dimmer once it has been clicked.
Use a vertical image set for icons you are adding to the bookmark bar on the Notes, Designer, and
Administration client. The bookmark bar can display small, medium, or large icons provided that the
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.
If you are not using multiple images in a Web application, deselect this option to save space in your
application.
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.
For each supported browser Designer finds, it adds an icon to the Preview tool bar. If you have both
Netscape version 3.x and 4.x both icons appear. The toolbar also displays icons for previewing the
application through the Notes browser and the Notes client. Note that previewing in Notes serves the
application through the Domino server, while previewing in Notes serves the application directly to the
Notes client.
Clicking a browser icon previews the current design element -- that is, the page, form, or navigator you
are designing -- in the associated browser.
You can also preview elements from the Design list. For example, you do not need to open up a form to
preview it; you can select it in the list of forms and click one of the preview icons.
You can integrate online awareness in forms or views. For example, in the Notes mail application, you
can see the online status of users listed in the From, To, and CC fields of a mail document. If a user is
active, you can click a name and initiate a chat. In the Inbox folder of the Mail template you can see the
online status for mail senders who are Lotus Instant Messaging users. You can also embed a Lotus Instant
Messaging Contact List in a page or form. A user opening the page or form will see their contact list.
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
The set of URLs that gets restricted is http://Host/Database.nsf/*Command. This set of URLs includes
any command that will open a database such as http://Host/Database.nsf and all URL commands that
are prefixed with a ?, such as http://host/database.nsf?OpenDatabase. When this property is set, the
error displayed is:
Error 500
HTTP Web Server Lotus Notes Exception - You are not authorized to access that database.
49
Elements to use on a page Description
Sections A section is a collapsible and expandable area that can include objects, text, and
graphics.
Style Sheet (CSS) shared You can find and insert a cascading style sheet (CSS) as a shared resource on a
resources 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:
- Notes
- HTML
- Other - if you specify Other, enter the type of content you want.
You can also choose a character set for the Web user.
v Set the default color for links appearing on the page. You can set colors for active,
unvisited, and visited links.
Background tab Select the background color or graphic for the page.
Launch tab Select launch options for the page.
Security tab Set security options for the page.
To delete a page
1. Click Pages in the Design pane.
2. Select the page you want to delete.
3. Choose Edit - Delete.
4. Click Yes to confirm.
Displaying a page
Pages do not display in views. To work around this, you can display pages in the following ways:
A home page should contain the following elements in a pleasing mix of graphics and text:
v A brief description of the company, product, service, or site
v Links that navigate to other parts of a site
v Information for new visitors
v Information for frequent visitors who need to know what is new
v A way to search for information
v If necessary, a way to register on the site to view restricted areas
Create a page with links to other pages, views, documents, or navigators in the same database or other
related databases at the site. You should take security issues into account when you decide whether to
store the home page in its own database or in a database used for other purposes, such as discussions,
user registration, or product information. You generally provide fairly open access to a home page and
limit access to other parts of a site.
For more information about security, see the chapter ″Security in an application.″
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.
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).
If the user’s name is Sara Ryan/Acme, when she opens the page or form she will see:
Note: Domino publishes a <span> tag around the computed text for access via JavaScript.
You write a formula in the Script area of the Programmer’s pane to control which row displays and to
associate the row with an action, link, or outline entry. Include a field in the formula that has the same
name as the name you give to the table in the Table Properties box, except precede the field name by a
dollar sign ($). Remember that table field names are case-sensitive: $table is a different table field name
than $Table.
For example, on your company’s home page, you could put a programmable table that displays different
information about your company depending on what your site visitors want to see. If they click the
″Location Information″ hot text they would see the row of the table that gives them the location of your
company. If they click the ″Company History″ hot text they see the row of the table that describes your
company’s history.
Note: When you are designing programmable tables on a form, you can use a field on the form to
control the table. You can use a choice list field that refreshes on change or use a computed field.
Note: All columns in a row will appear when the row is displayed.
4. Under Table Type, click the programmable table button.
5. Click OK.
6. Choose Table - Table Properties.
7. 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.
8. (Optional) To display tabs so users can switch rows, select ″Also show tabs so user can pick row″ on
the Table Rows tab.
9. Format the table.
10. Enter text, graphics, or objects in the table.
11. Create links, a button, or an outline entry that will set the fields for the table and control what
displays.
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 don’t 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.
When you link to a named element, the link references the element’s name. Any change in the name of
the element will break the link. Whenever possible, create aliases for design elements. If the design
element has an alias, the link will be maintained as long as the alias does not change.
There are two ways to link to a named element. You can copy and paste, or you can use the Link
Properties box.
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.)
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 user’s 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.
Note: When Web users open a database, Domino converts non-GIF and non-JPEG graphics to GIF or
JPEG formats. The system administrator specifies the format in the ″Image conversion format″ field,
which is part of the HTTP Server section of the Server document. For more information, see Administering
the Domino System.
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.
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 graphic’s 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. Select the graphic.
2. Choose Picture - Picture Properties.
3. At the Picture Info tab, enter text in the Caption box. Click the check mark to accept the text.
4. Select a display option for the caption.
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.
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.
If you use a date picker in a frameset with a calendar view, clicking a specific day in the date picker
broadcasts a message to the frameset to display the corresponding day in the calendar view and also
displays all calendar entries for that day. Note that the embedded date picker must be in the same
frameset as the calendar view and the calendar view must be open. This feature is not supported on the
Web.
To use a graphical calendar pop-up to make filling in a date/time field easier for users, see the topic
″Creating a graphical display for Date/Time″ in the chapter ″Designing Fields.″
Beginning with Lotus Domino Designer 6, you can specify the calendar view with which to use the
embedded date picker. This is important if there is more than one calendar view in a frameset. To specify
the calendar view, go to the Info tab of the Date Picker Properties box. Enter a target frame so that the
For more information on Script libraries, see the Domino Designer Programming Guide.
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.
4. 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.
5. 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.
6. Press ESC to exit from the HTML editor.
7. (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 import HTML you must first save it as a file that you can access.
1. Open a page, form, or subform.
2. Choose File - Import.
3. 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. Select the content you want to paste from the source of an existing Web page, form, or subform.
2. Copy the content to the clipboard.
3. Open a page, form, or subform.
4. 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.″
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 don’t have ″Render pass through HTML in Notes″ selected.
Note: Pages, forms, or subforms containing pass-thru HTML may display differently in the Notes client
than on a browser. For example, if you create nested tables by using pass-thru HTML, the table may
contain more white space when displayed in the Notes client than when displayed in a browser.
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.
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.
Layer
Position Description Default value
Top Specifies the location of the top edge of the layer. ″Auto″ aligns the top of the layer vertically
with its original location (insertion point).
Left Specifies the location of the left edge of the layer. ″Auto″ aligns the left edge horizontally with
its original location (insertion point).
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.
A negative Z-Index is placed behind the parent element’s contents (so that it
cannot be clicked or selected); a positive Z-Index (>=0) is placed in front of the
parent element’s contents (and prevents overlapped parent element content from
being clicked or selected).
Tag Description
ID The ID attribute; in this case, Layer.
Class Use the Class attribute to apply a CSS class for a defined object. For example, if the object’s
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 object’s 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 object’s name is ZipCode, the class is Numeric, the title could be:
For information on each event and an example of how to program them, see the Domino Designer
Programming Guide.
Note: The actual expiration date in the code has to be changed to a future date in order to make the
cookies work properly.
Form elements
You can use the following elements in a form or subform. Many of these elements can also be used in
pages.
75
Element to use on a form
or subform Description
Embedded elements You can embed the following elements in a form, subform, or page:
v Embedded outline
v Embedded view or folder pane
v Embedded navigator
v Embedded date picker
You can use any of these embedded elements alone or combine them to control how
users navigate through your application.
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 field’s 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 A section is a collapsible and expandable area defined on a form or subform. It can
include fields, objects, layout regions, and text. For more information on sections, see
the topic ″Creating sections″ in the chapter ″Designing Pages.″
An access-controlled section allows only certain users to edit the fields in the section.
For information on creating an access-control list for a section, see the topic ″Creating
access-controlled sections″ in the chapter ″Security in an application.″
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.
A form is stored in the database it was created in and used to display all associated documents. However,
there may be times when you are mailing a document to a database that does not have the form that was
used to create the document. In those cases you can designate the form to be stored with each document
created from it. Storing the form with each document does consume more memory.
When a user opens a document, Domino uses these rules to determine which form to use to display it:
Note: Be aware that forwarding a document does not forward a form or its field definitions. If there are
instances where you need to forward the form and its definitions, you can check ″Store form in
document″ on the Form Info tab of the Form Properties box.
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.
For more information on using LotusScript to mail forms with documents, see theDomino Designer
Programming Guide.
If the form you need is similar to one that exists in the same database, another database, or a Designer
template, copy the form and then modify it.
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 can’t 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.″
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
you’re 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
If a form has only one name, it appears on the Create menu and in the document’s FORM field. If there
are two or more names, the form’s first (leftmost) name always appears on the Create menu, while the
form’s 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
To specify the keyboard shortcut, type an underscore (_) before the letter that you want to use. Each
keyboard shortcut must still be unique within the form list. For example, to force the letter ″v″ as the
keyboard shortcut for the Interview form, enter the name as:
Inter_view
Link Message
Phone Message
To hide a form from only some users, open the Security tab of the Form Properties box and create an
access list.
For more information on access lists, see the topic ″The database access control list″ in the chapter
″Security in an application.″
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.
At the ″Conflict Handling″ section of the Form Info tab, choose one of the following options for the form:
v Create Conflicts -- Creates conflicts so that a replication conflict appears as a response document to the
main document. The main document is selected based on the time and date of the changes and an
internal document sequence number.
v Merge Conflicts -- If a replication conflict occurs, saves the edits to each field in a single document.
However, if two users edit the same field in the same document, Notes saves one document as a main
document and the other document as a response document marked as a replication conflict. The main
document is selected based on the criteria listed in the bullet above.
v Merge/No Conflicts -- If replication occurs, saves the edits to each field in a single document. If two
users edit the same field in the same document, Notes selects the field from the main document, based
on time and date, and an internal document sequence number. No conflict document is generated,
instead conflicting documents are merged into a single document at the field level.
v Do Not Create Conflicts -- No merge occurs. Domino simply chooses one document over another. The
other document is lost.
On the Defaults tab, select ″On Open: Automatically enable Edit Mode.″
Selecting this option creates larger files on the Web and may decrease application performance. Also
consider security, since information in hidden fields, though not visible in the browser, is visible through
the ″View Source″ menu item on the browser.
On the Defaults tab, in the ″On Web Access″ section, check the option ″Generate HTML for all fields″ and
deselect HTML in the Content type section.
Once the user starts to create fields on the form using an external data resource, the default metadata
object can be changed.
If you want the user who creates a document to be able to add a graphic to the body of the document
when it is created, check ″Allow users to change these properties″ at the Form Background tab of the
Form Properties box.
&D|&T|&P-- Left justifies the date, centers the time, and right justifies the page number.
When inheritance is enabled, the user selects a document and then chooses Create - <response/new form
name>. The selected document becomes the parent document. The documents do not need a main
document/response document relationship, because the selected document is assumed to be the parent
document. A user can suppress inheritance by pressing CTRL while choosing Create.
1. Open the form.
2. Create a new rich text field to display the document or link.
3. Choose Design - Form Properties.
4. Click the Defaults tab.
5. Select ″On Create: Inherit entire selected document into rich text field.″
6. Select or enter the name of the rich text field you created in Step 2.
7. Select one of the following:
v Link
v Collapsible rich text
v Rich text
8. (Optional) Select ″On Open: Show context pane″ and Parent.
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.
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.
Prior versions become responses 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.
This method is most effective when you don’t 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.
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.
A window title can be static -- that is, it always displays the same message -- or dynamic -- that is, it
displays a message that changes based on a formula you create. An example of a dynamic window title is
a title for a main document in a discussion database that includes the number of responses to the
document. The title changes each time a new response gets created.
To create a window title, write a formula that supplies the text to display. The text can be a text string
you enter directly, text that results from a function, or the contents of any field type except rich text or
rich text lite. If the field does not contain text or if a function does not return text, you must convert the
value to text using the @Text function. For example, the following formula converts the date value in the
DateCreated field to a text value for display in the window title:
"Response created on " + @Text(DateCreated);
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).
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 can’t 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. Choose Design - Subform Properties. The Subform Properties box appears.
5. At the Subform Info tab, enter a name for the new subform.
6. Optionally, you can enter a comment.
7. Choose from the following options for displaying the subform:
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.
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 can’t
open the subform.
To avoid these messages, add another subform to the database and give it the same name as the deleted
one.
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.
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.
Note: The embedded scheduler does not display scheduling information while you are designing the
form or subform.
One way to collect this data is to create editable fields on the form and have users enter in those fields
the information they want displayed. You can also use LotusScript or the Formula language to create the
field items. For an example of collecting the data using an action button and Formula language, look at
the GroupScheduler form in the Mail Template.
Once you have created the fields or other method for collecting the data, you must associate those fields
with the Embedded Scheduler attributes, as described in the following section.
Attribute Description
Required people items 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.
Optional people items 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.
Interval start time 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.
Interval end time 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.
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 user’s system is the default. If the value is a date only, that
date and the current time on the user’s system are the default. If the value is a time only,
that time and the current date on the user’s 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 user’s 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.
Display hours per day 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 person’s 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.
Schedule Detail items 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).
You can do almost everything in an embedded editor that you can do in a document. However, you
cannot include the following in an embedded editor: buttons, action hotspots, formula popup hotspots,
computed text, or navigators. Note also that you should not use embedded editors in animated tables.
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
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.
You can use @SetProfileField and @GetProfileField to set and retrieve field values in profile documents in
both Notes and Web applications.
If you prefer scripts to formulas, use LotusScript routines to create and edit profile documents. The
EditProfile method of the NotesUIWorkspace class produces the same result as the
@Command([EditProfileDocument]) command used in a formula.
To set or retrieve field values for a profile document with a script, use the GetProfileDocument method to
access the document. You can then retrieve values from the document or set new ones, just as you would
with any document.
Use the IsProfile property for the NotesDocument class to determine if a NotesDocument object is a
profile document. Use the NameOfProfile property to retrieve the name of the profile document.
Note: You cannot delete a profile document using an @command or @function. Use LotusScript if you
must delete a profile document.
When you use @DialogBox, all values entered in the dialog box are stored in the document created with
the host form and can be seen in its Document Properties box even if the fields do not appear on the host
form. If the keyword [NoNewFields] is used with the @DialogBox function, the fields that are on both the
host form and the dialog form will be updated when the dialog form is saved or refreshed. If
[NoFieldUpdate] is used, no fields or field values from the dialog box form will be updated on the host
form.
[YesNoCancel]
This formula displays a warning before a memo is sent, giving users a chance to select Yes, No, or
Cancel.
Result := @Prompt([YesNoCancel]; "Send memo?"; "This memo will be sent to everyone listed in the
To, CC, and BCC fields." );
[OkCancelEdit]
This formula fills the Name field with the user’s response to the prompt. The default value is the user’s
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 user’s 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));
@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 );
Note: If there are many documents you want to track, you can create a shared field and add it to
multiple forms. If a database is updated by a template, you can modify the template to include the
hidden fields.
For more information on billing, see the Administering the Domino System.
Note: Checking ″Include in Print″ is the only way to enable a form for contact printing.
4. Close the Form Properties dialog box.
5. Create all the reserved fields listed in the table that follows these steps. Although you can place the
fields anywhere on the form, they are typically placed at the bottom of the form to separate them
from the main body of the form.
You can also create a subform containing some or all of the reserved fields and then insert the
subform into one or more forms.
All of the contact printing reserved fields are required. They must also have the same number of
entries in each, except for $SectDataOptions. If there is one entry, then the form has one sectioning
type (for example 20 labels to a page) available to it. If two entries, then the form has two sectioning
types (for example 20 or 30 labels to a page).
6. For each of the reserved fields:
At the Field Info tab:
v Next to Name, enter the reserved field name.
v Next to Type, select ″Text″ and then ″Computed.″
v Check ″Allow multiple values.″ Leave the next two settings unchecked.
At the Hide When tab:
v Check ″Printed″ in the ″Hide paragraph when document is″ section.
7. Close the Field Properties dialog box.
8. For each of the reserved fields, go to the Objects pane of the Programmer’s 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.
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.
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.
If you have two entries in other fields, there must be two entries in this field (for
example : ″4156 1000″ : ″2781 1000″).
The inner margins are measured inward from the section’s 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 Lotus Notes, you can see an example of how contact printing works for the end user:
1. From the Notes client, open the Personal Address Book (NAMES.NSF).
2. Choose the Contacts view.
3. Choose File - Print. The Print View dialog box appears.
4. At the Printer tab, click ″Selected documents.″ The Documents Style tab appears.
5. At the Document Styles tab, click ″Print multiple documents on each page.″
6. 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.)
To create the association between a form and an error condition, create a form with one of the following
names. Then create an editable text field named MessageString to hold the error message. Add additional
text, links, and other form objects that you want to display with the error message.
You can also add custom forms to individual databases to customize Web searches within a single
database.
Single database searches over the Web can be initiated using a $SearchForm?SearchView URL command.
In this case Domino looks in the current database for a form with the actual name or the alias name
$$Search. If the form exists, Domino opens it; otherwise, Domino displays a default search form based on
the search.h™ file stored in the Domino\Icons directory. The $$Search form builds and invokes a
SearchView URL command to perform the search, supplying arguments either as URL command
arguments or using posted field values. You can also customize the default search.h form.
Refer to the following table if you are customizing a search form for use on the Web. The table lists the
URL command arguments used to drive the initial search through the SearchDomain or SearchView URL.
These values are available on the results page for use by buttons and hotspots on the results form. For
example, you may specify &SearchOrder=2 on your initial search form. The field SearchOrder will have a
value of two in the results page. A Next button on the results form can use this value for the next page
or override it by specifying something else.
Although TRUE and FALSE can be specified for some of the fields, when the values are carried over onto
the results page they are 1 or 0.
Optional
arguments Description Default Value
Query The search string none
2 = by date ascending
3 = by date descending
2 = filesystem only
0 = both
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.
For example, to find all documents created before 5 January 2000, use the following query:
There are no field names stored in the document; the dates actually come from the document’s header,
not from fields. So you can use these reserved names with any document, even though they won’t 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 today’s 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 today’s 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.
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 don’t 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 document’s 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.
q=doc.query(0)
l=doc.resultlimit(0)
d=doc.MaxDisplay(0)
sort = doc.sort(0)
usestr = doc.use
sscope=doc.searchscope
rtype=doc.GetItemValue("SearchType")(0)
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.
Note: If you use editable fields on a search result form, select the option ″Web Access: Use JavaScript
when generating pages,″ in the Database properties. If selected, a URL attached to a hotspot or button
will be computed on the click event. If it is not selected, the URL will be computed when the page is
loaded.
Field Description
Query Search string used
Start Starting document number
Count Number of results requested for this page
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 Total number of hits found by the search.
SearchMax Maximum number of entries to return in total; 0 = no limit.
SearchWv (only for URL Include word variants: 1 or 0.
command)
SearchOrder (only for URL 1 = by relevance 2 = by date ascending 3 = by date descending
command)
4 = use view order (SearchView only)
SearchThesaurus (only for Use thesaurus synonyms: 1 or 0.
URL command)
SearchFuzzy (only for URL Use fuzzy search: 1 or 0.
command)
SortOptions (only for Notes FT_SCORES = by relevance FT_DATE_ASC = by date ascending FT_DATE_DES = by
client) date descending
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.
If you are testing a response form or a response to response form, you should do one of the following:
v Select a document to respond to from the Notes Client in order to test the form.
v Deselect the type ″response″ or ″response to response″ on the Form Properties box until you have
thoroughly tested the form.
For more information on previewing your work, see the topic ″Previewing your design work″ in the
chapter ″Creating an application.″
You can create a single-use field on a single form, or a shared field to use on several forms. In either case,
you must specify the following:
v Field name
v Field type
v Whether this field is editable or computed
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;
You can design a field specifically as a shared field, or you can convert a single-use field that is not in a
layout region to a shared field.
When you delete a shared field from a form, you delete only the field reference from the form. Because
other forms may use the shared field definition, its definition remains in the database. Unless you delete
the field data with the @DeleteField function, the data from deleted shared fields can be displayed again
by adding a field of the same name or re-inserting the shared field.
When users open a document that refers to a deleted shared field, they see this message:
Cannot locate field definition for Field: <field name>.
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.
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 you’re 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 author’s 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 field’s 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 Names
v Number
v Password
v Radio button
116 Application Development with Domino Designer 7
v Readers
v Rich text
v Rich text lite
v Text
v Time Zone
Rich text fields and rich text lite fields can be used anywhere except in a layout region. They are not
subject to the size limitations imposed on other field types.
Note: You cannot write to a rich text field by using simple actions or formulas. If you want to use simple
actions or formulas to write to a field, use text fields.
You can use a rich text field to launch an OLE object -- that is, to open an object from another application
within a form. You can even define the field so that an OLE object automatically launches when a user
opens the form.
For more information, see the topic ″Launching objects automatically″ in the ″Designing Forms″ chapter.
You can select or deselect one or more of the following object types (the object types selected have a
check next to them):
v Pictures
v Shared Images
v Attachments
v Views
v DatePicker
v Shared Applets
v Text
v OLE Objects
Note: Links is a new type with Notes Designer 7.0. It allows links to documents, views, databases, and
URLs.
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.
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 user’s 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).
When the editor becomes active, it displays as large as the Web browser’s window. It is recommended
that you resize it. The minimum size recommended is 300 by 500 pixels. To resize it:
1. In the Objects tab of the Info List in the Programmer’s pane, select the rich text field.
2. Click HTML Body Attributes.
3. In the Script area, enter the height and width. For example:
"HEIGHT=300 WIDTH=500"
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 user’s
browser, there may be display problems.
Avoid using these items in a rich text field if that field is to be edited with a Web browser.
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 don’t 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 user’s
workstation.
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.
Type Format
Integers 123, –123
Decimal fractions 1.23, 0.12, –.12
Scientific notation 1.23E2, –1.23E12
Currency $2.50, ($600.09)
Domino can store numbers from 2.225E–308 to 1.798E308 with 14–digit accuracy.
If you want to use the currency defined in the user’s 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 24–hour format and from 12:00:00 AM
through 11:59:59 PM in the 12–hour 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 user’s workstation.
v ″Custom″ to customize the display.
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 user’s workstation.
To show both date and time together in the same field, select both ″Display Date″ and ″Display Time.″
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 user’s 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.
Lookup options are available on the Control tab of the Field Properties box when you create a Names
field, an Authors field, and a Readers field. You can turn off this option by maintaining the default choice
of ″none.″ If you select a lookup option for the field, users press CTRL+ENTER or click the entry helper
button to the right of the field to see a list of possible entries. Lookup options are not supported on the
Web.
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.
Radio button Each choice is displayed with a button; Not available Not available
users can click only one. Radio buttons
have border, column, and spacing
properties. To create a wide button
panel, choose a column number
between 2 and 8.
Note that only the Dialog list type contains all of the following options. The Checkbox, Radio button,
Listbox and Combobox types contain only the first two of the following options.
Note: Use lookups sparingly because they adversely affect the performance of the application.
For more information on @DbColumn and @DbLookup, see the Domino Designer Programming Guide.
You select the Inventory Database, the By Product Number view, and Column 1, where product numbers
are listed.
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");
Microwaves | 1
Ovens | 2
Refrigerators | 3
Specialty Items | 4
Toasters | 5
Columns that refer to list fields use the alias names in the view, not the word seen by users in the
document. To display the contents of the Product field in a view, you need to use a hidden field or
column formula that converts the alias name to its long form:
@If(Product="1";"Microwaves";Product="2";"Ovens";Product="3";"Refrigerators";Product="4";
"Specialty Items";Product="5";"Toasters";Product="";"";"");
Password fields
A Password field is a text field that maintains a user’s 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 it’s been verified. You can use the input translation
event or a LotusScript QuerySave event.
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
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)
Field Value
ExampleNames ″CN=Sara Ryan/O=Acme″ : ″CN=Jack Town/O=Acme″
ExampleNumbers 1: 2: 3
ExampleCategories ″Arizona″ : ″Florida″ : ″New York″
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.
Field Value
ExampleNames ″CN=Sara Ryan/O=Acme″ : ″CN=Jack Town/O=Acme″
ExampleNumbers 1: 2: 3
ExampleCategories ″Arizona″ : ″Florida″ : ″New York″
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.
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.
Use the Reference tab in the Programmer’s pane to access the list of fields, @commands, and @functions.
You can use the Reference list as a shortcut for looking up @functions and @commands, and for pasting
them into the formula.
For information on writing formulas for fields, see the Domino Designer Programming Guide.
When it’s important for users to see results as they proceed, you can force each field to be calculated as
it’s filled in by selecting the form property ″Automatically refresh fields.″ This is useful when fields at the
bottom of the form are dependent on field values at the top. Be aware that this property can slow down
document display time if the form has many computed fields.
Note: Automatically refreshing fields can slow down document display time. A faster alternative is to
write a LotusScript field event to recalculate the document or update other fields when users move
from a specific field.
For information on writing formulas for fields, see the Domino Designer Programming Guide.
To enter a literal text string, enclose it in quotation marks (″ ″). Field names don’t need quotation marks.
If you select the form property ″On Create: Formulas inherit values from selected document″ when
designing the form, use the default formula to specify the field from which this new field inherits its
value. When a new document is composed with this form, the field value is copied from the document
that is currently highlighted if that document contains the specified field.
An alternative to an input translation formula is to write a script for the Exiting event that verifies
information.
@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.
If you choose the field property ″Native OS style″ for an editable field, such as Text, Authors, Readers,
Names, or Number, the field appears on the document as an outlined box (whose height and width you
can set) instead of as blank space marked off by brackets. An editable Date/Time field displays as a
graphical date/time control. On the Web, native controls are ignored and fields display in their default
format. At the Control tab of the Field Properties box, you can set a border style (choosing no border,
single-line border, or a border that displays the field as inset) and can choose to display the field as
multiple lines.
Chapter 6. Designing fields 135
Property Choose one
Width v Fixed (Size) - lets you set a fixed width in inches.
v Fit to window (%) - fits the field to the window as the percentage you set.
v Fixed (Characters) - lets you set a fixed width in characters.
Height v Fixed - lets you set a fixed height in inches.
v Dynamic - increases the size of the entry box dynamically up to 3 lines. If an entry is
longer than 3 lines, scroll bars display automatically.
v Proportional - sets the heightproportionally to the width.
If you check ″Align control’s baseline with paragraph’s,″ 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.
For choice list fields enable the field property ″Refresh field on keyword change″ on the Control tab of
the Field Properties box, for better performance on large documents with many computed fields. This
field property refreshes all the fields on a form only after a user selects a value for a specific choice field
that has the property enabled. The option ″Refresh choice on document refresh″ refreshes the choice list
choices when a user refreshes the document by choosing View - Refresh. You can also write a LotusScript
field event to recalculate the document or update other fields when users move from a specific field.
Changing the default active field helps emphasize an editable field that isn’t located at the top of the
form, or directs users to a field that is the most frequently edited field on the form or to a required field
that you don’t want users to miss.
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
author’s choice in an editable choice list field, can be hidden during editing.
To hide a field
If you have computed fields that users don’t 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:
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.
Note: You cannot use the following field types in a layout region: Color, Dialog List, Formula,
Password, Rich Text, Rich Text Lite, or Time Zone.
5. Drag the field horizontally or vertically to adjust its width and height.
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.
For more information on Domino URL commands, see the appendix ″URL commands for Web
applications.″
When Notes client users highlight a Company Profile document and choose Create – Letter, the Letter is
already filled in with the recipient’s name, address, and the correct salutation.
To inherit the parent document a Web browser user must open an existing document before creating the
new document. The options ″Inherit as rich text″ and ″Inherit as collapsible rich text″ both inherit the
topic in its entirety into the new document. Collapsible sections and inheriting as link are not supported
on the Web. To enable Web users to create a new document from an open document, you must provide a
form action to create a new document.
1. Open the form.
2. Create a rich-text field to store the inherited document.
3. Choose Design - Form Properties.
4. Click the Defaults tab.
5. Select ″On Create: Inherit entire selected document into rich text field.″
6. Enter or select the name of the rich-text field and select a document display option.
If you try to use a reserved name in a way that is different from its intended use or redefine the field,
Designer displays an error message.
For information on text fields, see the topic ″Text, rich text, and rich text lite fields″ in this chapter.
For information on choice list fields, see the topic ″Creating fields to display lists of choices″ in this
chapter.
For information on editable and computed fields, see the topic ″Editable and computed fields″ in this
chapter.
For information about mail-enabling forms, see the topic ″Features that support automatic mailing″ in the
chapter ″Creating a Workflow Application.″
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.
The Sign, Encrypt, and SaveOptions fields with values of 1 override the property ″On Close: Present mail
send dialog″ in the Form Properties box, but they do not actually change what is displayed to users in
the Mail Send dialog box.
MailFormat
A computed MailFormat field can have one of the following values:
Value Description
Encapsulated (E) The document is encapsulated in a database, which is attached to the cc:Mail memo.
The cc:Mail recipient must have the Notes client installed on the workstation. This
preserves the document exactly as it looks in Notes. To read the document, the cc:Mail
user double–clicks the icon representing the attached database; this launches Notes and
opens the database. Use this format only if information will be lost if the document
were to be converted to Text or Memo format. The Encapsulated format creates larger
documents, so it uses more server disk space. To ensure that the document is displayed
correctly when a cc:Mail recipient starts Notes, assign the form property ″Store form in
document″ in the Form Properties box.
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
SendTo
The ″Allow multi-values″ and ″Allow values not in list″ are useful for SendTo fields.
A frame can contain a form, folder, page, document, view, navigator, or frameset. The frame can also
contain a Web page and be associated with a specific URL. Framesets let you create links and
relationships between frames. For example, you can leave one page displayed as users scroll or link to
other pages or databases.
Designers can set a frameset to launch automatically when a database, form, or page opens.
Note: Framesets created with Domino Designer Release 5 and later do not work with releases of Lotus
Notes before Release 5. A database opened by a previous version of Notes will be launched using
″restored as last viewed by user.″
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 Split the selected frame horizontally by choosing Split into Rows (INSERT key).
v Delete the selected frame by choosing Delete Frame (CTRL+DELETE key).
v Refresh the content of the selected frame by choosing Refresh Content.
v Remove the content of the selected frame by choosing Remove Frame Content (DELETE key).
147
v Flip the frameset horizontally by choosing Flip Horizontally.
v Cycle through frames by using the TAB key (SHIFT+TAB cycles backwards).
6. Open the Frameset Properties box. At the Basics tab:
v Name the frameset.
v Provide an alias for the frameset. An alias is an internal name for the frameset. Use an alias to
change or translate the frameset name without causing reference problems. The alias appears with
the initial list of framesets in the Work pane.
v Add a comment. The comment appears with the initial list of framesets in the Work pane.
v Click ″Available for public access″ if you want to have the frameset available for public access.
v Enter a title for the frameset in the Title field or use a formula to compute the frameset title by
clicking Formula Window and entering the formula. The frameset title is the name that appears in
the Windows tab when the frameset is launched.
7. Add content to each frame by using the Frame Properties box.
8. To move borders between frames, you can:
v Drag borders with the mouse.
v Use the Arrow keys to drag the border of a selected frame:
To drag the border left, press the left (or right) arrow key.
To drag the border right, press SHIFT+the left (or right) arrow key.
To drag the border up, press the up (or down) arrow key.
To drag the border down, press the SHIFT+the up (or down) arrow key.
9. To preview the frameset:
v To preview the frameset on the Web, choose Frame - Preview in Web browser and choose a
browser.
v To look at the HTML source, select Other - Synopsis in the Design pane. In the Design Elements tab
of the Design Synopsis dialog box, choose framesets from the drop-down list and select and add
each frameset for which you want to view the HTML source. Make sure to check ″Include
JavaScript and HTML″ in the Content tab.
You can also look at the HTML source by previewing the frameset on the Web and then viewing
the source with the chosen Web browser.
v To preview the frameset in Notes, you can launch the database into the frameset or choose Preview
in Notes from the Designer toolbar or Frame menu.
Note: The Web browser you use may not fully support all the properties you can set in the Frame
Properties box.
It is possible to set multiple target frames that appear to conflict with each other. For example, you can
set a target frame on an outline entry, an embedded outline that contains that outline entry, the page that
contains that embedded outline, or on a frame that contains the page. Which target frame takes
precedence?
The general rule is that the most specific element takes precedence. In this case, it is the outline entry
which takes precedence. If you have not specified a target frame in the outline entry, then the target
frame set in the embedded outline takes precedence. If you have not specified a target frame in the
embedded outline, then the target frame set in the page containing the embedded outline takes
precedence. And if you have not specified a target frame in the page, then the target frame set in the
frame takes precedence.
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 element’s properties box.
Note: Remember to specify a name in the Frame Properties box for any frame that is going to be a target
frame.
When the database is opened, the specified frameset launches. If a view link, document link, or
@command is used to open a database, the frameset may not open.
Note that you can select only framesets that are located in the same database as the form 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.
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.
Here is the same view from a review database as shown through Netscape Navigator and through Notes.
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.
For more information on designing views for Web applications, see ″Displaying views in Web
applications″ later in this chapter.
The combined number of sub-level forms, views, and agents that cascade from the top level cannot
exceed 200; otherwise, the top-level menus do not display properly. This limit does not apply to the
number of forms, views, and macros stored at the top level of each menu.
Domino allows up to 200 cascading view and folder names to be displayed on the View menu.
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.
Web users can see all calendar entries. Domino converts calendar views to HTML tables. Therefore,
Domino restrictions for tables apply to calendar views. Web users cannot create new appointments or
scroll through entries within a single day.
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)
Note that this is the only way to make a view work with @username, because the view selection is only
parsed when the view is generated. Thus, if Tom opened a shared view that keyed to @username, all of
Tom’s documents would display. But, if the view is still open when Jay accesses it, Jay sees all of Tom’s
documents, and does not see his own. So, to avoid this conflict, designate the view as ″Shared, private on
first use″ when using @username in the selection formula.
After a user saves a shared-to-private view, the user’s copy of the view no longer inherits design changes.
For example, if you add a column to the view, anyone using a private version of the view won’t see the
new column. To obtain design changes, users must delete their private versions of the view and open the
shared-to-private view again.
Shared-to-private views are not a security measure, as they do not protect data. If you create a
shared-to-private view that omits certain documents, a user can still create a private view that includes
them.
Shared-to-private views are stored in the database as long as they are shared. After the first use, Domino
uses the ″Create personal folders/views″ option to determine where to store the view.
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 user’s personal workspace file
(desktop.dsk).
For information on database access, see the chapter ″Restricting Access to and Securing Parts of an
Application.″
1. Open a database in Designer.
2. Click Views in the Design pane.
3. Click the New View button above the Work pane. The Create View dialog box appears.
4. Enter a name for the view in the View name field.
To copy a view
1. Click Views in the Design pane.
2. Select the view you want to copy, either in the design pane or in the work pane.
3. Choose Edit - Copy.
4. Choose Edit - Paste.
A copy of the selected view appears in the list of views. Until you rename it, the copied view is
named ″Copy of <selected view name>″. Future copies of the same view will be designated ″Another
copy of <selected view name>″.
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.
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.
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
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 can’t 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
The customization is made to the mail template, and will apply to all users of that mail database.
Note: Make a backup copy of the mail template before selecting a new inbox style.
1. Open the mail template database in Designer.
2. Navigate to Shared Code - Agents.
3. Select (Pick Inbox Style).
4. Select Agent - Run.
5. In the Pick Inbox Style dialog box, select the new style you wish to use. Click OK.
6. When asked if you want to continue, click Yes.
7. When prompted ″Inbox style update has completed″ click OK.
8. The Agent Log dialog box displays the run statistics of the agent. Click Done.
9. The new inbox style will not be available until after the database has been closed and reopened.
CAUTION:
The Notes ID that runs the (Pick Inbox Style) agent becomes the effective signer of the new ($Inbox)
design element.
The default selection formula for new views combines the SELECT statement and the @All formula into
SELECT @All, which means ″include all database documents in this view.″ To narrow down the kinds of
documents the view displays, add a program that displays only particular documents. For example, in a
task-tracking database, the Work in Progress view could display only those documents whose Status field
does not contain ″Complete.″ In a brainstorming database, the Design Ideas view could display all
documents categorized as ″Design Suggestion.″ Here is a selection formula that displays only documents
containing new features and displays them in a What’s New view:
Formula
Formula allows you to create a program for selecting documents using the @function formula language.
In the Programmer’s pane, click Formula and write the formula in the Script area.
To display conflict documents in a view, make sure the options ″Display responses in a hierarchy″ is not
checked on the Options tab of the View properties box. Enter the following as the view selection formula:
SELECT @IsAvailable($Conflict)
For more information about these conditions, see the section ″Descriptions of document selection
conditions″ that follows.
is not any of
By Date date created is on
is before
is not on
is between
is not between
By Field <field name> contains
is after
is before
is not on
is between
is not between
<number field name> is equal to
is greater than
is less than
is not equal to
is between
is not between
By Form <form name>
Fill out example form <example form name> lets you fill out a form with field values to search for
In folder <folder name>
The Simple Search condition also can’t determine whether a particular field is present in a document. You
must click Formula and write a formula to do that.
If you select By Authors, enter the name or names of the authors of the documents you want displayed,
separated by commas. If you know a user’s hierarchical name (such as Mary Sen/Development/Acme),
enter it. If you are not sure of how a name is spelled, use the Domino Directory to browse for person
names, but do not select any group names.
For more information, see ″Addressing a message by choosing names from an Address Book″ in Notes
Client Help.
The ″Date modified″ condition selects documents based on the ″Modified date″ in the Document
Properties box.
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"
Tip: It is good design practice to assign an alias to a form at the time of creation to avoid this problem.
To add a column to a view in Designer, choose Create - Insert New Column or Create - Append New
Column.
A view can have a single column or as many columns as you can fit in 22.75 inches (the allotted width of
a view).
To copy a column, open the view in Designer, click the column, copy it to the clipboard, select the
column to the right of where you want the column to appear, and choose Edit - Paste. To select multiple
contiguous columns, select the leftmost column you want to copy, hold down the Shift key, and select the
rightmost column you want to copy. You can now copy or delete the columns as a group.
To delete a column, open the view in Designer, click the column, and choose Edit - Delete.
To create a new shared column, select Columns under Shared Code. Click New Shared Column or choose
Create - Design - Shared Column. You can also copy and paste an existing Shared Column design
element.
To create a new shared column based on the design of an existing column in a view, open the view, select
the column, and choose Create - Copy As Shared Column. This action creates a new shared column and
leaves the existing view column as is.
The Shared Column design element has the same appearance and column properties as an unshared
column in a view.
In addition, the Shared Column design element has properties specific to shared columns. The Shared
Column properties box specifies the name of the shared column (required), an alias (optional), and a
comment (optional).
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.
Omitting a title
If you leave the title blank, the column doesn’t have any identifying text. Omit a title if the column is:
v A responses-only column that indents response documents
v A categorizing column for grouping related documents
v Hidden (and designers don’t need any identifying text when the view is Designer)
v Not relevant to users
v 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.
Style Description
Title See ″Adding titles to columns.″
Width Determines how many characters fit in one column.
You can also click the column and drag the column divider line to the width
you want.
Note: The first two columns in a calendar view cannot be marked as
resizable.
Resizable Allows a user to change the size of the column. Uncheck this if you want a
fixed-width column.
Show responses only Turns off the display of main topics and displays responses only.
Display values as icons Displays an icon associated with a numeric value you supply.
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.
Use value as color Allows you to programmatically apply an RGB color to column text.
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.
When you select ″Use preferences from User’s settings,″ the format for dates and times depends on
display settings for a computer’s operating system. You can select a subset of display options to format
date and time values in a column. When you select ″Use preferences from Custom,″ you have more
control over how dates and time display. In addition to the settings in the table that follows, you can
override the date and time formats set by the operating system with formats you specify. In this case,
specifying a date with a format of day/month will always display the date in that format, even on a
computer where the operating system default is a month/day format.
Only year
Only month
Only day
Only weekday
Special None Provides special instructions for displaying the date. Select
None to use the default format. Show ″today″ substitutes the
Show ″today″ when word ″Today″ for today’s date.
appropriate
Hours only
Time format hour:minute If you have an international time format set in your operating
system, these choices change. For example, from 02:30
hour:minute:second changes to 14:30.
All ″All″ is only available if you have selected ″Use preferences
from Custom.″
When you select ″Use preferences from User settings,″ the format for numbers depends on display
settings for a computer’s operating system. You can select a subset of display options to format number
values in a column. When you select ″Use preferences from Custom,″ you have more control over how
numbers display.
v Decimal formatting displays numbers as they are entered; zeroes to the right of the decimal point are
suppressed. For example, 6.00 displays as 6. You can specify a fixed number of decimal places to
display (up to 15 places) or select varying to display a number as entered.
v Percent formatting displays numbers as a percentage. For example, .10 displays as 10%.
v Scientific formatting displays numbers using exponential notation; for example, 10,000 displays as
1.00E+04.
v Currency formatting displays values with a currency symbol and two digits after the decimal symbol;
for example, $15.00. The currency symbol and thousands separator displayed are based by default on
settings in your operating system. To override those settings, choose Custom in the ″Preferences for
display formatting″ section. You can then specify formatting and display options such as a currency
symbol and thousands separator.
v Select ″Parentheses on negative numbers″ to display negative numbers enclosed in parentheses; for
example, display (5) instead of -5.
v Select ″Punctuated at thousands″ to display large numbers with the thousands separator; for example,
1,000 in English, or 1.000 in French.
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 user’s short name and link that column to a hidden column containing
the abbreviated hierarchical name using the hidden column’s 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.
You will need the programmatic name for the column to program the InViewEdit event that allows users
to edit documents from the view. For more information on this feature, see ″Allowing users to edit or
create documents from a view.″
For example, if the first column in the view is the author (simple function), with a programmatic name of
$1 and you want the second column to display something based on the value in column 1, you can
change the programmatic name of column 1 from $1 to $one and then refer to the new programmatic
name in the formula for column 2. For example: @if($one = ″Mary Stone/Acme″;″READ THIS″; ″ignore
this″)
The following column names assigned by simple functions are restricted -- that is, you cannot use their
programmatic name in a formula: # in View column, Collapse/Expand, # Responses, or # Response
levels.
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.
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.″
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 a field value: In a column, you can show custom text based on a condition
or on a number of conditions. For example, you can create a formula that displays custom text if sales
exceed a certain amount. This formula tests the value in the Sales_February field (a number field) and
displays text based on that value:
@If(Sales_February>60000;"Great month!";"")
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:
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 people’s 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 author’s category:
@IsCategory("";@DocNumber("") + ". ")
If the row is a category (the author’s name), @IsCategory returns a null string (″″). If the row isn’t a
category, then the row represents a document, and @DocNumber returns a string that represents the
entry number of the document. The document’s 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 column’s
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 Programmer’s 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.
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.″
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 can’t 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.
The following are some guidelines to consider when using view icons in an application:
v If you designate an existing view icon by number, the default icon description displays.
v When creating custom icons for use in view columns, assign meaningful image names because the
names will be used as the hover text.
v If there are multiple icons in a column, hovering the mouse pointer over the icons displays as many
icon descriptions as will fit across the user’s screen.
Views that display categories often use sorting methods to alphabetize the category names.
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.″
CAUTION:
If you set this option on a column that displays a multivalue list, but you do not specify a sort order
for the column, Designer displays only the first value in the list. Also note that setting this option for
multiple columns in a view can have a serious performance impact on your application.
Setting this option correctly on a sorted column may still not produce the results you are expecting. In
the following example, Julie has created a document with a field containing the items apples and
chickens. Bill has created a document with a field containing the items bananas and ducks. When you
sort the Entry column in ascending order and specify ″Show multiple values as separate entries,″ the
following view results:
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:
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.
For example, a Service Request form contains a Priority field, which uses the following choice list:
Urgent
High
Medium
Low
You want the By Priority view to sort documents by the value in the Priority field, but you don’t 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.
Totals calculate only for main documents; response documents are not included. Because column totals
recalculate each time you open the view, they may affect database and overall server performance.
Total calculates a grand total for all main documents and displays this total at the bottom.
Average per document calculates an overall average by totaling the values of the main documents and
then dividing that value by the number of main documents. For example, if there are four documents
and their total is 10, the average per document is 2.5.
Average per subcategory calculates an average for each category. Within each subcategory, the documents
are summed; that value is divided by the number of documents.
Percent of parent category calculates a total for all main documents. For each category, Notes displays
the category’s percentage as it relates to the overall view total.
Percent of all documents calculates a total for all documents. For each category, Notes displays the
category’s percentage as it relates to the overall view total.
To display totals without the clutter of extra numbers, select ″Hide detail rows″ to suppress numbers
other than totals or subtotals for each category and subcategory.
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.
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.
For more information, see ″Allowing users to edit or create documents from a view.″
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.)
For example, a RequestType field that contains the following choice list fields displays the category
names as HW, SW, and SVC:
Hardware Request | HW
Software Request | SW
To display the full names of a choice list field that uses aliases, use a hidden field or column formula that
converts the aliases back to their full names:
@If(RequestType="HW";"Hardware Request";RequestType="SW"; "Software Request";"Service Request");
The following view in a discussion database displays the threads of a discussion, organized by date.
Stephanie Mahar added this comment: Great job! (10/10/97 04:43:15 PM)
If the response uses an Exit form, the response row might look like this:
If the response uses a New Hire Information form, the response row might look like this:
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:
Checking the Bold property for unread rows displays unread documents in bold. Note that Lotus
Domino Designer R5.x does not support bolding of unread entries, so they will appear in a plain font for
R5.x users. To highlight unread documents in R5 while using bolding to highlight them in R6, select a
color for unread marks (which will be visible in R5) and then choose the Unread Transparent option to
make the color transparent to R6 users (causing them to just see the bold font).
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.
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.
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.
Note: Because it relies on a generic, rather than a user-specific profile form, the feature is only useful for
a database with only one user, such as a mail database or a personal journal.
1. Create a profile form in the database that creates one profile for the database. Make sure you create a
button, action, or agent that users can run to create the profile document.
For information on creating a profile form, see ″Creating a profile form.″
2. Create two fields on the profile form. The first will be a color field that users will use to select a color.
The second field will be a formula field set to hold either the value of the color field, or a formula
that evaluates to a color. The formula field must have the same name as the programmatic name for
the column in the view. For example, if the column’s programmatic name is ″$3″, then the formula
field on the profile form must also be ″$3″.
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.
3. Select the view column you want to make customizable and choose Design - Column properties.
4. On the Column Info tab, check ″Use value as color″ and ″User defined.″
5. In the field next to ″User defined,″ enter the name of the profile form.
6. In the programming pane, choose ″Formula″ as the column value and enter a valid formula, such as
@UserName, as the column formula.
For information on creating and editing a profile document, see ″Profile forms″ in the ″Designing Forms″
chapter.
Some columns are not counted in a search, so skip them when you’re counting column numbers:
v Skip any columns that display a constant value.
However, if a column contains a formula that happens to return the same result for every document
(so that it appears to be a constant value even though it is not), the column does not display a constant
value. Include the column in your column count.
v Skip any columns that consist solely of the following simple Notes functions or @functions:
Collapse/Expand (+/-)
# in View
# of Responses (All Levels)
# of Responses (1 Level)
@DocChildren
@DocDescendants
@DocNumber
@DocParentNumber
@DocSiblings
@IsCategory
@IsExpandable
If you plan to use a lookup formula, such as @DbColumn or @DbLookup, to retrieve data from a view,
include a sorted column that the formula can use as the lookup key.
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.
1:00pm
Appointment 3
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 today’s 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.
″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.
To gain more control on the Web, consider using a view applet, an embedded view or folder, or an
embedded view applet. When you embed a view or folder on a form, subform, page, or document, you
maintain the same functionality available in Notes applications, and you control the size and appearance
of a view or folder display. When you define a view or an embedded view as a view applet, you
preserve much of the HTML view functionality and provide features such as resizeable columns, multiple
document selection, and scrolling.
Embedding a view or folder pane lets you combine views and folders with other form elements (such as
styled text) and graphics to create a high-impact design. The Designer templates contain numerous
examples of forms designed in this way.
If you have multiple views or folder panes you want to display in an application, you can create one or
more view templates that control how the embedded objects display. A view template is actually a special
form that provides the design structure for displaying the embedded folder panes or views in an
application.
Before you begin, if there is any chance the view or folder you are embedding could be renamed, assign
an alias before you embed it to avoid breaking the application if an embedded object is renamed.
For information on naming views and folders, see ″Naming a view or folder.″
1. Open a form, subform, or page in Designer, or open a document in Edit mode.
2. Place the cursor where you want the embedded view or folder to display.
3. Choose one of the following:
v Create - Embedded Element - View
v Create - Embedded Element - Folder Pane
4. Views only: set a display option for the embedded view. You can display the view using HTML, as a
Java applet, or using the display properties set for the view.
5. (Optional, for views) You can assign a name to the embedded view. This name allows you to specify
an embedded view as a target from another embedded view. This technique is used in the Notes mail
template to show discussion threads in the Inbox view of the workplace.
6. (Optional, for views) If you don’t want to display the same view in all circumstances, click ″Choose a
View based on a formula.″ When you click OK to close the dialog box, write a formula in the
Programmer’s pane to display the appropriate view.
7. (Optional, for views) You can specify a target frame on the Info tab of the Embedded View Properties
box. The target frame specifies where the document is displayed when a user selects a document in
an embedded view with a single click or with the arrow keys, or with a double click. You can specify
a target frame for a single click (next to ″for single click″) and a target frame for a double-click (next
to ″for double click″).
For more information on target frames, see the Framesets topic, ″Specifying a target frame.″ Close and
save the form, subform, page, or document.
8. (Optional, for views) If the embedded view is in the current database, you can select ″Show only
current thread″ to display documents for one ″thread″ -- that is, one main topic and all the associated
response documents.
9. (Optional, for views) Check ″Use views selection margin property″ to maintain the margin settings
you set for the view.
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.
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 Programmer’s 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).
In the Web server, you can determine the number of lines displayed by looking (in order) at the following
sources:
v If the URL contains an ″&Count″ argument, use that number.
v If there is no ″&Count″ argument, look at the number specified in the Embedded View Properties box.
v If no number is specified in the Embedded View Properties box, use the server-wide default for the
number of lines.
Use the following reserved form names to create an association between a form and a view or navigator.
Note that Domino requires an embedded view or the $$ViewBody field on the form, but ignores the
value.
Makes this form the template for all Web views that aren’t associated with
another form.
$$NavigatorTemplateDefault Embedded navigator or $$NavigatorBody field.
Makes this form the template for all Web navigators that aren’t associated with
another form.
The following formula inserts the graphic new.gif if the document was created within the last five days;
otherwise, no graphic is displayed.
@IF (@NOW > @ADJUST(@CREATED; 0; 0; 5; 0; 0; 0); "";"
[<img src=/gifs/new.gif border=0>]")
Note: At this time, the view applet does not support DBCS.
@command Description
ViewCollapse Collapses the selected document
ViewExpand Expands the selected document
ViewCollapseAll Collapses all documents
ViewExpandAll Expands all documents
ViewRefreshFields Refreshes view
Upon refresh, the view applet does not delete documents marked for deletion.
MoveToTrash Causes currently selected documents to be marked for deletion
You can also specify target frames for a document that a user selects or opens from a view or view
applet.
For views, you set this property with the ″Target Frame (double click)″ and ″Target Frame (single click)″
events in the Programmer’s pane.
For embedded views, you set the target frame property on the Info tab of the Embedded View Properties
box. The target frame specifies where the document is displayed when a user selects a document with a
single click or with the arrow keys, or with a double click.
Hiding a view
Designer includes several ways to hide a view from users.
You can either create a full-text index for a database or allow users create a full-text index. If you want to
maintain control over creating an index, choose the option ″Restrict initial index build to designer or
manager.″
If you choose to delete the index after one day, Domino waits until the index is at least one day (24
hours) old before deleting it. If the view is used at 10 AM Tuesday, it is only 16 hours old at 2 AM
Wednesday when Updall runs, so it is not deleted until the next time Updall runs at 2 AM Thursday.
The following examples are taken from the $Trash folder in the Notes Release 6 mail file:
Events
@Command([MoveToTrash])
The agent for the restore action uses the following code:
@Command([EditRestoreDocument]);
@All
Delete
@Command([MoveToTrash]) {for Web}
Empty Trash
@Command([EmptyTrash]) {for Web & Client}
Documents marked for deletion in the view applet will appear as marked for deletion in the Notes client
after you close and reopen the database in the Notes client.
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.
Query views are dynamic. The query runs as a result of a view open or view rebuild event, and is
recalculated each time the view is opened or refreshed. You can also re-execute a query view with
different SQL queries to quickly access specific notes. This is in contrast to regular Notes views, which
need to be rebuilt by using the Indexer tasks UPDATE and UPDALL.
Because they are not persistent, query views do not occupy space in a Notes database.
Once a query view has been created, you can open individual records in the view to edit Notes data
contained in that record. However, you cannot open a record of federated data from the query view, or
make changes to one - you can only view federated data in the query view itself.
You can also order or sort a query view by specifying the sort order in the SQL query. However, the
ORDER BY clause only affects the view ordering if a #noteID column is not returned by the query.
Otherwise, by default, the view is sorted by Note ID. In any case, a Notes column sort overrides a DB2
sort.
Note: If a #noteID column used in the query SELECT statement is part of a table outside of the schema
associated with your DB2 enabled Notes database, it is considered DB2 data, not Notes data, as it does
not belong to the current DB2 enabled Notes database. Therefore, you may not be able to open the
resulting note, or you may open a random note or a design document instead.
Specifically, you can create a SELECT statement with the following clauses:
v Group by
v Having
v Join
v Union
CAUTION:
Query view functionality is designed so that you cannot build an SQL statement that does not
produce a result set. This is a security measure against inadvertent record deletion or change.
For specific information about SQL and creating SQL queries, see the SQL documentation specific to your
operating system.
Field Action
View name Enter a name for this view
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.″
If you want to use the values returned by any of these invalid columns, use the AS syntax in the Query
View’s SQL formula to rename them.
Note: If the DB2QueryViewRowLimit variable is set at the server level, you can still limit the number of
rows to a smaller value. When both settings are in place, the smaller value is used.
For more information about NOTES.INI variables, see the NOTES.INI Appendix in the Domino
Administrator help.
When an application developer wishes to use a SELECT statement in a query view, the name of the DB2
Access view (DAV) against which the query is being run must prefix the name of the DAV with the
schema name. Otherwise DB2 uses the Domino server’s DB2 user name as the schema in which to look
for the table. For example, if you run a query view with a SELECT statement against a table called dav1
and the designer has not used the schema name, DB2 will interpret the location of that table as residing
in <db2user>.dav1.
To avoid this, the application developer can look up the schema name from the catalog table using the
query:
SELECT nsfschema FROM domino.catalog WHERE filepath = ’<path to db2nsf>
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 database’s 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.
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).
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.
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
3. Embed your outline on a form or page or in a rich-text field of a document.
4. Format the embedded outline.
5. (Optional) Include the embedded outline in a frameset.
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.
For more information on designing an application for maximum accessibility for people with disabilities,
see the topic ″Designing an application for maximum security″ in the chapter ″Planning an Application.″
Note: You can also cut and paste outline entries from other outlines.
3. In the Outline Entry Properties box, enter the label you want to appear in the outline, for example,
Home Page or Main View.
4. 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.
5. (Optional) Specify an alias for the outline entry.
6. 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.
You might want outlines or outline entries to appear under certain circumstances or for only certain
kinds of users. Using the Programmer’s 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.
Property Description
Outline properties v Gives the outline a name and alias
v Makes the outline available to public access users
v Specifies that the outline be read only
For more information about public access, see the topic ″Creating public access pages, forms, subforms,
outlines, views, agents, and style sheets″ in the chapter ″Security in an Application.″
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.
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.
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.
The outline applet lets Web users work with outlines embedded in a page or form. With the outline
applet, Web browser users can:
v See mouse-over distinctions for items in the outline, including change of color to indicate a selected
item
v See background images
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.
Outlines, navigation tools which provide the functional equivalent to navigators, are accessible and easier
to maintain than navigators. Whenever possible, use outlines in place of navigators to provide custom
navigation for your application.
For more information on designing an application for maximum accessibility, see the topic ″Designing an
application for maximum accessibility for people with disabilities″ in the chapter ″Planning an
Application.″
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,
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 aren’t 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 can’t 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 won’t have to manually resize a
navigator that doesn’t 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 Programmer’s 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.
Designer includes a set of drawing tools, available on the SmartIcons bar or on the Create menu, that you
can use to create or enhance graphic components of a navigator. The drawing tools are displayed in the
SmartIcons bar when the navigator is in Designer.
Note that polylines do not work on the Web, even though they display on the Web.
BMP (Bitmap)
GIF
JPEG
PCX
TIFF 5.0s
To import a graphic
1. Create a new navigator, or open an existing navigator.
2. Choose File - Import.
3. Select the file to import and click OK.
4. Click Graphic Button to import the graphic as a button, or click Graphic Background to import the
graphic as a background for the navigator.
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.
Tip: Choose Design - Preview in Notes or Design - Preview in Web Browser <browser> to select the
highlight settings.
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.
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 aren’t related to switching to a
view, a folder, a navigator, or a link.
To attach an action
1. Create a new navigator, or open an existing navigator.
2. Select a navigator object.
3. In the Programmer’s pane, click ″Run: Simple action(s).″
4. Select the simple action to run and supply any required information.
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 don’t
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 area’s 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.
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.
Note: For compatibility with previous releases, the reserved field $$NavigatorBody still works on forms.
It duplicates functionality now provided by embedding.
To change the navigator, click the embedded navigator and choose another from the list in the
Programmer’s pane.
You can embed multiple navigators anywhere on a form, subform, page, or document, in tables, in
collapsed sections, and in design elements having a left, right, or center alignment. Avoid hiding
embedded navigators with the ″Hide design element from Web browsers″ option. Forms with hidden
navigators won’t display on the Web.
An advantage of importing a navigator is that formulas and LotusScript that were originally attached to
navigator objects become attached to the imagemap hotspots. Imported navigators, unlike navigators and
embedded navigators, allow you to make changes to the formulas and the LotusScript. An imported
navigator, unlike an embedded navigator, has no links to the original navigator.
Note that you can import only navigators that are Web-browser compatible. Select ″Web browser
compatible″ at the Info tab of the Navigator Properties box for the navigator you want to import.
When you import a navigator, navigator simple actions are converted to equivalent hotspots:
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.
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 Programmer’s 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.
You can add automated components to most design elements in a Domino application: a database, a
page, a frameset, a view, a form, or a document. The automated components include:
v Actions
Use an action with a form or view to set up a user-activated task. You can make the action available in
the Actions menu or as a button in the action bar. In particular, use actions to simulate Notes menu
items for Web browser users. Then, those users can complete Notes tasks when accessing Domino
databases.
v Hotspots
Use a hotspot in a form or document to set up a user-activated task. The hotspot can be a link to
another Web site, database, or element in a database; a button; a pop-up; or an action.
v Agents
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.
v Programs that are activated by an event
Associate an automated task with an event that occurs when a design element is used. For example, set
up an error-checking automated task to verify user input after a user has saved a document.
To set up the tasks associated with these automated components, use the following:
v Simple actions
You can add automation to design elements without knowing a programming language. You can select
one or more simple actions from a list. Simple actions can’t be customized and are not supported in
Web applications.
v Formulas
You can write an @function formula that runs by itself or with a simple action. You cannot combine
LotusScript® in an @function formula. You can use some @functions in LotusScript using the
LotusScript Evaluate function.
v LotusScript
LotusScript is a complete scripting language that can support most application-wide tasks.
v JavaScript
Use JavaScript triggered in events (for example, onClick of a button or onLoad of a form) to interact
efficiently with the user for tasks such as form and field validation and simulating dialog boxes. Use
Common JavaScript to enter code that works on both the Notes client and the Web.
v Java
You can write Java programs or import Java files into agents.
Note: Lotus Domino Designer Release 6 and later supports code modules that are greater than 64K for
LotusScript, JavaScript, and Java.
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 element’s 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.
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 don’t 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 can’t 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.
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 user’s 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 Are not associated with a specific design element.
v Can be run on a specific server, on several servers, on workstations, or the Web.
v Can call other agents.
v Can consist of simple actions, formulas, LotusScript, or Java programs.
v Can be distributed easily because they can be replicated.
v Can be shared or private.
– A shared agent is created by one user and can be run by other users.
– A private agent (sometimes called a personal agent) is usually created and run by the same user. In
Lotus Notes, the private agent is not available on the Actions menu. In Domino Designer, anyone
with Designer level access or higher can see and run a private agent.
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 don’t work directly with the Agent
Manager, you use its components for troubleshooting an agent.
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.
For a table of events that can be automated, see Event Descriptions in the Domino Designer Programming
Guide.
Types of events
Every design element has events that you can program, but they vary according to the design element. In
the Programmer’s 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.
In addition to the events available for all views, calendar views have specific events.
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.
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.
Tip: If you do not specify a name or label for the action, Notes will use the graphic for the whole
button. You won’t be able to see the action in the action list, because there’s 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 Programmer’s 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.
To delete: select the action in the Action pane and choose Edit - Delete.
To change properties: select the action in the Objects list and choose Design - Action Properties.
To change automation: select the action in the Objects list and edit the programming tasks in the right
pane.
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 don’t 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.
Note: If you want buttons to align from the right on the Web, you must choose ″Using Java
Applet.″
3. 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.
4. 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.
5. 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).
6. 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.
Note: When you delete a shared action note, you delete all the shared actions it contains.
The next time you use the view, folder, form, subform, or page, the shared action is available.
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:
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.
Note: Consider using formulas that display information, such as @Time. Also, do not use formulas that
take action, such as @OpenView.
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.
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.
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.
Interactive functions and functions that read or modify data external to the current
document are ignored when documents are mailed into the database. For example:
@DbColumn, @DbCommand, @DbLookup, @MailSend, @Prompt, @Command, or
@PostedCommand are all ignored.
Note that you can use this option multiple times within the same 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.
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.
Be aware that if you schedule very frequent runs (for example, every 5 minutes), the
server’s 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 Routine tasks, such as generating summary reports and sending reminders.
Monthly Low-priority maintenance tasks, such as archiving documents and distributing company
newsletters.
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.
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 don’t 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.
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.
If a agent scheduled to run daily misses its scheduled run because it was disabled, it will run if it is
enabled within half an hour of the scheduled run. However, If a scheduled agent is saved, pasted, or
modified, it will run immediately if it has missed its schedule.
When you view a list of agents in the Work pane, an icon may appear next to the name of a scheduled
agent. The icons are:
v Check mark with a 6 next to it - the scheduled agent is enabled and runs only on Lotus Notes Domino
6 or later (or on Lotus Notes/Domino R5.08 or later).
v Check mark with a 5 next to it - the scheduled agent is enabled and runs only on Lotus Notes Domino
R5.07 or earlier.
v Check mark - the scheduled agent is enabled and runs on any version of Notes.
v A yellow X - the scheduled agent is disabled.
The list of agents also gives you important information about each agent. You can easily view such
information as the agent name, its alias, trigger, modification date, the person who modified it last, and
whether the agent works in Notes and on the Web.
To copy an agent
1. Open a database in Designer.
2. Click Shared Code - Agents in the Design pane. A list of agents appears in the Work pane.
3. Select the agent.
4. Choose Edit - Copy.
If you have Designer access or above, you can disable shared scheduled agents to prevent servers from
running them. This is useful for debugging a problem with an agent. Designers can still run disabled
agents by choosing View - Agents, selecting an agent, and choosing Actions - Run. After you re-enable
them, scheduled agents resume their schedule.
Note: If you disable agents through the Database Properties box, the agents are not re-signed and the
Enable/Disable state of each agent is not changed. Unchecking this box does not necessarily enable all
agents. It only allows those already enabled to run.
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, double click the name of the agent in the Work pane. On
the Security tab of the Agent Properties box, check ″Run as Web user.″
To sign an agent
1. Select the agent.
2. Click Sign.
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 aren’t 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.
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.
Option Description
Run as Web user Checking this causes the agent to run with the effective user name of the Web user.
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.
Allow remote debugging 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.
For more information on restricted operations, see the topic ″Restricted LotusScript
and Java agent operations″ later in this chapter.
Profile this agent Check this box to monitor calls to Domino Objects in agents and their elapsed
times. For agents written in LotusScript or Java only.
Compile Java code with Checking this enables the Java code to be debugged through a remote debugger.
debugging information This property applies only to Java agents.
Allow user activation 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 Lets users who have public access to documents in a database view and run the
view and run this agent agent.
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.″
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 server’s 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 server’s system.
CAUTION:
Unrestricted Java and LotusScript agents can potentially violate security. Only a limited number of
trusted users should have unrestricted rights.
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.
To control whether agents are allowed to create databases, use the Server document in the Address Book.
Click the Security tab. In the Server Access Section:
v If everyone is allowed to create databases, leave ″Create new databases″ blank. Then, anyone running
an agent that creates new databases can do so on the server.
v If you don’t want users creating databases, specify the user names of people allowed to create
databases in ″Create new databases.″ Then, if a user who is not specified runs an agent that creates a
database, an error is reported and the database is not created.
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
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.
When a Web user runs an agent, the agent also runs using the rights of the effective user and Domino
checks the effective user’s rights to access the database. However, you can set up the agent so that
Domino checks the invoker’s rights to access the database instead of the effective user’s rights. Checking
the invoker’s rights can provide more security.
To specify that Domino verify the invoker’s access to the database, follow these steps:
1. Double-click an agent name in the agent list.
2. Click the Security tab.
3. 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 invoker’s rights in the
database ACL.
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.
For agents that have multiple steps or complex tasks, split the process into several smaller tasks and
create an agent for each. Test and fix each smaller agent first. When everything is working correctly,
combine the agents into one. Then test the agent again.
Note: Java agents have a console tool to which agents can print messages. In Designer, choose File -
Tools - Show Java Debug Console. In addition, you can use the remote debugging tool (File - Tools -
Remote Debugging), which allows remote debugging of the LotusScript in an agent script and allows the
monitoring of the execution of Java agents.
1. Choose File - Database - New Copy to make a test copy of the database, with documents.
If the agent works on mailed documents, the test database must be on a server, and a Mail-in
Database document must exist in the Address Book.
2. Create test documents:
v If the agent works on mailed documents, mail a few documents to the test database.
v If the agent works on pasted documents, paste a few documents into the test database.
3. (Optional) Create a debug document to write values to.
4. Run the agent.
5. Use other available debugging tools to catch errors and make corrections.
6. Rerun the agent until it is working correctly.
7. Copy the tested agent to the live database.
To enable profiling in an agent or Web service, select the Security tab of the properties box and check
″Profile this agent″ or ″Profile this web service.″ Profiling occurs each time an enabled agent or Web
service runs. Agent profiling occurs on both the Notes client and Domino server.
To view the profiling results for the latest run, select the agent and choose Agent - View Profile Results,
or select the Web service and choose Design - View Profile Results.
The results are presented in a document based on the hidden form $BEProfile. The result document
contains a heading listing the name of the agent or Web service and the creation time. The Body item of
the result document contains a table with a row for each Domino Objects method called and 5 columns:
v Class -- The name of a Domino Objects class using normalized names such as Session, Database, and
Document.
v Method -- The name of a Domino Objects method or property using normalized names such as
CurrentDatabase, AppendItemValue, and Save.
v Operation -- For properties, the type of operation: Get or Set.
v Calls -- The number of times the method or property was called.
v Time -- The amount of time the calls consumed in milliseconds. The symbol ″<″ means not enough
time to calculate.
The LotusScript NotesAgent class contains a new method GetPerformanceDocument which returns the
profiling results for the agent as a NotesDocument object.
Each time an agent runs, it writes over the previous log report. Domino stores the Agent Log with the
database. The Agent log stores accurate information on simple action agents and formula agents.
Information on LotusScript agents, Java agents, or agents calling other agents is not necessarily complete.
If you are running agents built with LotusScript or Java and the agents run in the background, you can
add the NotesLog class to your agent code to record run-time information in the Agent Log.
For example, to add options for the Agent Manager that you have already set up to display agent
debugging information (-e option):
tell amgr debug -e, -l, -m, -p
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 don’t exceed the Agent Log limit.
Error executing agent <agent-name> in <database-name>. Memory allocation request exceeded 65,000 bytes.
Make sure that the information you want recorded to the Agent Log does not exceed this limit. If it does,
rework the NotesLog class code to record less information per run.
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.
Combine this action with one that changes field values. Then when users change the values in a
document, they can mark it read at the same time.
Do not use this option with an agent that is processing documents with ″Before New Mail Arrives.″
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 field’s 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 specify a value:
1. Select the field to be modified from the Field pull-down list.
2. In the Value text box, enter the new value.
3. Select ″Replace value″ or ″Append value.″
To specify:
1. Select the form.
2. Enter the new value in the fields.
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 specify:
1. Select ″Reply to sender only″ or ″Reply to all.″
2. In the Body field, enter the reply text.
3. (Optional) Click ″Include copy of document″ to append the original message to your reply.
4. 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 document’s SendTo field. This action
works like the @MailSend function. To predict the recipient, the document must have a SendTo field. If it
doesn’t, 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
doesn’t contain these fields, they default to normal priority, no delivery report, and no return receipt,
respectively.
To specify:
1. Specify recipients in the To field.
2. (Optional) Click More to specify more addresses using text or formulas for the To:, cc:, bcc:, and
Subject: fields.
3. Enter a subject.
The ″Gather at least″ option does not apply to sending a document summary from a view or folder with
an action because the action can act on only the highlighted document, and ″Gather at least″ acts on
multiple documents.
To specify:
1. Specify recipients in the To field.
2. (Optional) Click More to specify more addresses using text or formulas for the To, cc, bcc, and Subject
fields.
3. Enter a subject.
4. In the Body field, enter the message text.
5. Select ″Include summary for each document using view″ to send a text summary of each document.
Deselect it to send only document links.
6. Choose a view.
@Function Formula
Adds a customized @function formula.
See the Domino Designer Programming Guide and the LotusScript Language Guide for more information
about LotusScript.
The ability to use the LotusScript or Java backend class methods to create new or replica databases is
controlled by the ″Create New Databases″ and ″Create Replica Databases″ fields in the Server document
in the Domino Directory.
Classes and methods in this table also apply to remote Java/JavaScript programs that access server based
Domino objects over CORBA/IIOP. User access is controlled by the server document fields ″Run
Restricted Java/Javascript″ and ″Run UnRestricted Java/Javascript″ found under the heading ″IIOP
Restrictions.″
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 No network I/O operations allowed
Setting system date/time Date and Date$ Time and Time$ N/A
Shell
An automated component with formulas cannot usually complete unauthorized tasks on a database
stored on a server because most users do not have privileges that allow them to run such tasks. However,
in a local database where you have Manager privileges by default, an automated component with a
formula could potentially change documents. If you are unfamiliar with the formulas associated with an
automated component, review them first.
The user doesn’t see a message, but the formula won’t run.
If you have selected JavaScript, you can write code that executes in either the Notes client or on the Web.
If you have selected Common JavaScript, you can write code that executes in both the Notes client and
on the Web.
When you use JavaScript, more processing can be done at the workstation instead of the server, thereby
reducing network traffic and improving run-time task processing.
JavaScript works with Notes objects, such as windows, documents, or fields. The objects that you can
attach to JavaScript vary, according to the component you are working on. In the Info List, click Objects
to see what is available. For example, set up a JavaScript automated task for an OnClick event in a
hotspot.
You can also check the following table to see what JavaScript objects are available in each automated
component and whether they are supported in different browsers and the Notes client.
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.
Notes ignores the underline when it displays the name of an action on the action bar.
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.
v Hide if formula is true
Hides the component under certain conditions -- for example, based on user name or access level in
the access control list. For example, the following formula hides the component from all users except
Barbara Meehan:
@If(@Name([CN];@UserName) !="Barbara Meehan";@True;@False)
For information on adding third-party tools to the tools menu, see the topic ″Customizing the Designer
Tools menu″ in this chapter.
The Domino web server also supports Web-based Distributed Authoring and Versioning (WebDAV) so
that you or others on your team can edit and manage parts of a database using WebDAV-enabled clients.
Designers with the proper access to a Domino database can open files from a WebDAV client -- such
Macromedia Dreamweaver -- edit the files, and save them back to the database.
For information on using WebDAV, see ″Editing and managing database resources using a WebDAV
client.″
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
Organizing tools on the Tools menu
After you have added tools to the Tools menu, you can edit the tool names or their associated formulas,
delete one or more tools, organize tools into submenu groupings, or change the context for a tool.
Tip: To make the submenu accessible to users with physical disabilities, specify a keyboard
accelerator key for the submenu name by putting an underscore (_) before the letter you wish to use
as the accelerator key.
4. Use drag and drop or the Copy and Paste buttons to move tools to the submenu.
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.
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).
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.
For more information on design locking, see the chapter ″Completing an Application and Managing
Design Changes.″
In order for design locking to work, the Administration server for the database must be accessible. The
Administration server (also known as the Master Lock server) is usually the server on which the database
was created, unless an alternate server is explicitly specified on the Advanced page in the Access Control
List for the database. Since many applications that use locking do so without explicit action by the user,
check that the Administration server for the database is correct and that the server is accessible, and
ensure that design locking is enabled to prevent problems with WebDAV.
Chapter 11. Developing applications using third-party tools and WebDAV 279
v If a database has the field ″Don’t 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 Macromedia’s 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 Microsoft’s 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 Macromedia’s 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
Microsoft’s documentation for how to use ″Web Folders.″
Note: With Macromedia’s Dreamweaver you configure a ″Remote Site″ to use WebDAV in order to access
Domino databases via WebDAV. Please refer to Dreamweaver’s 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:
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 Microsoft’s Internet Explorer to access a WebDAV database that is located in a
subdirectory of the Domino server’s 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.
Note: Design locking does not prevent naming conflicts because in Domino locking is based on the
noteID, not the name of a note.
Domino deals with naming conflicts by dynamically adorning the names of conflicting elements with the
NoteID of the element using the form ″Name(NoteID).ext.″ The server uses this form to uniquely identify
each element involved in a name collision, but does not actually rename the elements in the database. If
you see this naming convention using a WebDAV client, try to resolve the conflict to avoid problems. You
can use Windows Explorer or any other WebDAV client to rename one or more of the conflicting
resources. When the name collision is resolved in this way, the other affected resource name reverts back
to the unadorned form of the name in $TITLE. You may need to refresh the view of a WebDAV client in
order to see the changes. You can also change the name of an element in the Designer client.
Chapter 11. Developing applications using third-party tools and WebDAV 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.
Using data integration tools and services, you can create applications that contain connectors to relational
databases (such as Oracle and DB2), Enterprise Resource Planning systems (such as SAP, PeopleSoft, and
J.D. Edwards), and transaction systems (such as CICS, IBM MQSeries®, and IMS). You can accomplish
this either programmatically or with visual tools that work with native database drivers.
The following connection solutions are available either as part of Domino Designer or as add-on tools:
v Data Connection Resource (DCR)
v @DB commands
v Domino Enterprise Connection Services (DECS)
v LotusScript and Java classes
v Domino Connectors
v Lotus Enterprise Integrator (LEI)
DCRs provide a convenient alternative to using the DECS Administrator that ships with the Domino
server.
@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.
For more information on connecting to legacy databases, see the Domino Enterprise Connection Services
User’s Guide.
283
LotusScript and Java classes
LotusScript and Java include classes for enterprise data access. Use these classes to customize applications
to incorporate information from relational databases, transaction systems, and enterprise resource
planning (ERP) applications according to your business needs. The Domino Server includes the Lotus
Domino Connector LotusScript extension (LSX), permitting programmatic access to Domino Connectors
from LotusScript.
For more information about the Domino Connector LSX, see the LotusScript Extension for Domino
Connectors Reference Guide.
The Domino driver for JDBC, providing standard JDBC access to data in Domino databases, is also
available from the Lotus Web site at http://www.lotus.com. Using this driver, you can write Java applets
and applications that use JDBC to access information in Domino databases. JDBC classes now ship with
Domino in the java.sql classes. These classes may be used when writing Java agents to access relational
data via standard JDBC drivers.
For more information on LotusScript and Java classes, see the Programming Guide.
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.
For more information on Lotus Enterprise Integrator, see the Lotus Web site at http://www.lotus.com.
To create an external connection, you first need to install the DECS server software on your Domino
server. The client software for the application you are connecting to -- such as DB2 or ODBC -- must also
be installed on the Domino server. You can develop an application locally, but you will be unable to
browse the external metadata when designing your application.
If you do not have access to the server on which the external database resides, work with your system
administrator or database manager to make sure the data source is defined.
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.
To open the Data Connection Resource properties box, choose Design - Design Properties.
Use this option if you have triggers in the external system that monitor updates to individual columns of
a table.
If this option is enabled and if you make changes to data in a Notes document and then save the
document, you must exit the document before making any more changes -- even though you have saved
the document.
Note When using an HTTP Server to access documents, ″Conflict Detection″ is not supported.
Space trimming
Specify whether to trim trailing spaces only on non-key fields or not at all.
Note: You may want to disable this while you are designing an application, and enable it when you
are ready to deploy your application. You must also disable this option when you import existing
records from an external database into your application.
4. Close and reopen the database to enable the property.
For more information on creating a DCR, see ″Creating a database connection resource″ and ″Using a
data connection resource on a form.″
In addition to these modules, you need an ODBC library (or shared object) and a driver for the type of
database you want to access. You purchase and install the library and driver separately. For Windows 95,
for example, you need these modules on your workstation:
v The ODBC 2.0 interface, available from Microsoft.
The interface defines the library of ODBC functions that perform the connection, query, and
data-retrieval processes.
v The Driver Manager, available from Microsoft and other vendors.
The manager loads the necessary drivers used to access the data and acts as an interface between
Domino and the drivers.
v The ODBC drivers, available from vendors or available for no charge to Notes and Domino users on
the Lotus Web site, http://www.lotus.com.
These handle communication between the Driver Manager and the databases. Domino supports a
variety of drivers. Each driver affects the specific capabilities of your application and comes with its
own installation, configuration, and Help documentation.
Note: Do not mix 32-bit and 16-bit versions of drivers, driver managers and Domino. When using
32-bit Notes clients or servers, use a 32-bit driver manager and 32-bit drivers. When using a 16-bit
Notes client or Domino server, use a 16-bit driver manager and 16-bit drivers to use ODBC to make
successful connections.
Some Lotus applications include ODBC drivers that are licensed specifically for use with that
application. Domino cannot use these drivers. If you try to use these drivers, a message appears stating
that you must have a license. You may be given a phone number or other information.
For more information about ODBC, see the Microsoft ODBC 2.0 Programmer’s Reference and SDK Guide
published by Microsoft Press.
Use the following steps to register a data source in Windows 2000. Other operating systems may require
slightly different steps.
1. From the Start menu, choose Settings - Control Panel - Administrative Tools - Data Sources (ODBC).
2. Click Add.
3. Select the driver you want, and click OK.
4. Enter the data source name, description, and requested information.
5. Some drivers require additional information; enter any other information necessary and click OK.
6. Click Close.
For example, suppose you request the following records from a relational database:
If the property to generate unique keys in index is enabled, the following records will display in the
view:
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
For more information about accessing external databases through ODBC and the ODBC versions of
@DbColumn, @DbLookup, and @DbCommand, see the Programming Guide.
A Java applet usually consists of a collection of files, with one file that contains the main class, or the
starting point for the applet. There can also be image files, archive files, and Java source files. You can
store Java applet files as follows:
v When you import an applet, the files are attached as hidden files to the form, document, or page
where you include the Java applet.
v When you link to an applet, files are stored on the Web and a URL reference to those files is stored in
the form, document, or page where you include the Java applet.
v When you set up shared applet resources, the files are stored in the database where you include the
Java applets that use those files.
For more information about Java or to find applets you can use, see the Sun Microsystems Java Web site
at http://java.sun.com.
293
Enabling Java applets
Before you can add a Java applet to a Domino or Notes application, you must set up your workstation.
1. If you want to link to applets on the Web, make sure your Location document specifies a valid Web
proxy. See your system administrator if you have questions about setting up a Web proxy.
2. Choose File - Preferences - User Preferences.
3. In the Basics tab, scroll down the Advanced Options list and select ″Enable Java applets.″
Note: If ″Enable Java applets″ is not listed, check with your system administrator.
4. Click OK.
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>
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.
Note: Domino does not display an embedded applet that is packaged as a CAB file.
v For Netscape users, include the ZIP and JAR files.
v If users are likely to use either or both browsers, include CAB, JAR, and ZIP files. Domino creates the
appropriate parts of the APPLET tag for these files. Netscape ignores the CABBASE (or CABINETS)
parameter and Internet Explorer ignores the ARCHIVE attribute.
Note: At the Folder tab of the Java Applet Properties box, you can view the applet files from an applet
you imported. If you did not import an applet, this field is blank.
Tips
v To change a parameter value, click its name in the Programmer’s 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.
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.
Property Description
Base class The name of the main class file.
DocBase Provided for information only. You cannot edit it.
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.
Text to display when applet is not Domino displays the text you specify when it can’t run the applet. Enter a
running simple text string, such as ″This applet is not working at this time.″
Applet uses Notes CORBA classes Enable the applet to access Notes objects.
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.
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.
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.
Assuming your browser and server are set up correctly, you should be able to use a supported browser
to view these embedded CORBA applets on a Domino server. You do not need to set alternate HTML for
the CORBA applet to run. When you check the setting that specifies the applet as a CORBA applet,
Domino automatically provides the HTML source code that the applet needs to make an IIOP connection
back to the server.
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 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
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 Programmer’s 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.
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.
Similarly, you can access images attached to Notes documents by constructing the Domino URL to
include a ″$FILE″ -- for example,
getImage(″http://www.someplace.com/database.nsf/MasterView/862..12E/$FILE″, ″image.gif″). As
above, the Notes client must be able to access the Domino server in order for an applet running in the
Notes client to be able to access this file.
One of the drawbacks of specifying a full URL for an applet resource file is that it may be slow to access
this file through the Internet and not all Notes clients are set up to directly access the Internet. Also, this
course of action assumes that the location of this file will not change. If these are not concerns, spcifying
a full URL is a reliable way to access resource files.
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.
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.
If you are not building the applet yourself, for example, if you are linking to an applet on the Internet, or
if you obtained a set of CLASS files without the source code, you might need to edit a parameter value
after inserting the applet into a form or document. In that case, prepend the string ″$notes_codebase″ to
the parameter value.
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.
Domino supports both Java servlets and Java applets for Web applications. The most important difference
between these types of Java programs is how they are run. Servlets are ″server-side″ programs; a servlet’s
Java class is loaded and run entirely within the Domino server and the result from the servlet, usually a
page of HTML, is returned to the browser. In contrast, applets are ″client-side″ programs; an applet’s Java
class is downloaded to the browser and is run by the browser. Therefore, applets require Java support in
the browser, but servlets do not.
Servlets for Domino must conform to the Java Servlet API Specification, an open standard published by
Sun Microsystems, Inc.
Running a servlet in Domino involves writing the servlet, enabling servlet support in Domino, and, if
necessary, setting servlet properties.
If you are writing your own application and need to program some functionality on the server, you may
have a choice of which type of program to use. Each type of program has its advantages and will be the
best choice in particular situations. Here are some suggested uses for each type of program:
Programs that need to be run on a schedule or when database actions occur, such
as the arrival of new mail.
Servlet Programs that use standard Java interfaces such as JDBC.
307
What language can the program be written in?
v Agent: Java, LotusScript, or Notes formula language. All are inherently cross-platform.
v Servlet: Java. Inherently cross-platform.
v CGI program: Platform scripting languages; that is, any language compiled into an executable file, or
cross-platform languages such as Java or Perl.
You can also write servlets using any popular Java development environment. As a convenience, a copy
of jsdk.jar is included in the Domino server and Designer installation kits. It is identical to the file
supplied in Sun’s JSDK.
Sun periodically updates the JDK and JSDK. Lotus Domino Designer Release 6 supports JDK 1.3 and
JSDK 2.0. Domino quarterly maintenance releases (QMRs) often incorporate Sun’s upgrades, so you
should check the QMR Release Notes to verify the supported JDK and JSDK versions.
The servlet manager is controlled by settings in the Domino Directory Server document. The settings are
located on the Internet Protocols - Domino Web Engine tab of the Server document. The settings are as
follows:
Setting Options
Java servlet support 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.
Servlet URL path The path in a URL that signals Domino that the URL refers to a servlet. The default
is /servlet.
Examples:
The following settings control the Domino Servlet Manager’s 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
Session state tracking 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 instance’s
HttpSession.invalidate() method to inform the servlet that the session is being
terminated.
Disabled: (default) All session data is discarded when the HTTP task exits.
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 servlet’s 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>,...
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 servlet’s 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.
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 servlet’s 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.
XML isn’t a markup language itself, but a set of rules that enables you to create tags as you need them.
In XML, a document is broken into parts and each part is separate. The way a document looks is
determined by a style sheet, the content of a document is contained in a separate file, and the definitions
of the tags are stored in another file called a Document Type Definition (DTD). Using a common data
format and separating data from its formatting and its tag definitions makes the data readily accessible
and reusable. Data from one application can be used in another application by changing the DTD or style
sheet. The style sheets currently being used for XML are Cascading Style Sheets (CSS) and Extensible
Stylesheet Language Transformation (XSLT). CSS styles data directly on the client, while XSLT is used to
transform XML data into HTML, or another form of XML.
XML also breaks the contents of a document down into its basic structural elements. For example, an
online book catalog contains information about each book including the title, author, publisher’s list price,
retail price, sale price and ISBN number. With XML you can create a tag for the book itself, but you can
also create tags that describe each of its sub elements so that it’s possible to differentiate between data
such as the publisher’s list price, retail price and sale price. The ability to make this kind of distinction
between elements in a document makes it possible for computers to process information more accurately
with less human intervention.
Server-to-server applications where information is transferred from one system to another is just one way
in which XML is making information processing more powerful. Using XML, applications can be
developed that are fully automated. For example, a company has an application that employees use to
update their own benefits information. Using a browser or the Notes client, employees update their
benefit selections at designated times during the year. When they have completed their changes, a server
such as Domino passes the employee’s information in XML format to another server for processing. The
second server runs a Java servlet to complete the transaction by interacting with a backend human
resources application such as PeopleSoft. When the update is complete, the server notifies Domino that
the employee’s benefits reflect the new selections.
The excitement surrounding XML relates to the advantages of such a robust and flexible tool. Some of the
advantages of XML are that it is:
v Easy to use because it resembles HTML
v Extensible, that is, you can define tags that describe your data
v Nonproprietary
v Perfect for large, complex documents
XML technology represents a capacity for sharing information that didn’t exist before. Virtually any kind
of data can be rendered in XML, encapsulated, moved across a network and processed automatically
between servers. Domino provides a secure environment for developing the applications that make this
kind of information sharing possible.
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? That’s 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 Programmer’s Guide.
In addition to the development tools provided with Domino Designer, you get the connectivity services
that allow you to connect your application with major backend systems, including:
v ERP systems, such as SAP, PeopleSoft, Oracle, and JD Edwards
v Relational databases, such as DB2, Sybase, and Oracle
v Transactional systems, such as IBM CICS, MQ Series, WebSphere, and BEA Tuxedo
Just about any application can work with XML. For example, consider an auto supply store that
maintains an e-commerce site with an online catalog of auto parts. With XML as the common language to
describe part information, the purchasing agent can pull information from various vendors about part
pricing and availability directly into a Domino database. Users can access this database for up-to-date
information about parts they can order online. Domino then provides all of the necessary tools to
complete secure online transactions for ordering parts and managing inventory.
Another example is a human resources ″self-service″ application that employees can use to access and
manage their own personal data. For example, the company can publish benefits information on an
intranet site and allow employees to make their benefit selections online using a Notes client or a Web
browser. After making selections, an employee submits the data in XML format to a server such as IBM’s
WebSphere Application Server. The server uses a Java servlet to pass the data along to the HR backend
system -- for example, a PeopleSoft database -- and notifies Domino when the transaction is complete.
The XML tags describe the data being passed so that the data means the same in the Domino application
as it does in the PeopleSoft database.
You can enter XML tags that describe data on a form or a page. By treating the contents of the form or
page as XML, you can serve the XML to an XML parser that can interpret the tags. XML describes the
data being presented. To format and style the data on the form or page, you can use a stylesheet, created
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.
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 document’s 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
it’s 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 document’s structure and appearance.
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 element’s appearance such as font, boldface, italics.
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 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.
You can also put XML on a page. A page in Domino Designer is a database design element that displays
information. You can use a page for traditional application content, such as a home page, or you can use
XML tags to describe the data on a page. As you will see in the section on using XML in a view, a page is
useful for embedding a view and adding the required XML tags to process the view. A page is also useful
for creating an extensible stylesheet (XSL) or a cascading style sheet (CSS) to direct a server or browser
on how to format data described with XML tags.
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.
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;
}
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>.
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.
The ROI Books application contains an agent called createXML which generates XML for each document
in a view and sends it out based on a request from a browser or a server. To see the output of this agent,
open the ROI Books application in Microsoft Internet Explorer 5 and click the XML Agent link, or run the
agent using the OpenAgent URL command:
http://host/roiBooks.nsf/createXML?OpenAgent
Set db = s.currentDatabase
Set view = db.GetView( "XML" )
Set doc = view.GetFirstDocument
The following graphic shows the relationship between the connecting devices, the Domino application
running the servlet, and the back-end databases:
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
For general information on Java servlets, visit the Sun Microsystems site at http://www.java.sun.com
Accessing design elements in XML provides you with the means of accessing the data in your application
and comparing it to or integrating it with other data sources that support XML. The DXL utilities can be
a very flexible alternative to generating reports on application elements using the Design Synopsis. You
can examine the DXL for a collection of elements, or you can transform it using an XSL file to apply
styles and formats that make your data more meaningful to you.
In order to transform DXL, you must construct an XSL file which processes the tags that make up a
design element. For example, the sample XSL file ″Report--AllLSinForm.xsl″ selects certain parts of the
DXL document and ignores others. The selected pieces (all relating to LotusScript) are reformatted to
make the output more readable.
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.
For information on scripting OLE objects and using OLE custom controls, see the Programming Guide.
Note: Some of the OLE technologies available in Notes/Domino are platform-dependent. Windows offers
the greatest range of options for sharing information and launching objects. Unless otherwise noted,
activities covered in this chapter apply only to Windows.
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.
For more information on using LotusScript with OLE objects, see the Programming Guide.
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.
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 control’s Help is substituted for Designer Help.
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 Programmer’s pane. You can attach scripts to these events.
For information on attaching scripts to a custom control, see the Programming Guide.
To edit the OLE object using the properties in the programmer’s pane
1. With the form in Edit mode, click the object.
Properties for the OLE application display in the Programmer’s pane.
2. Highlight (SizeToWindow) and double-click the value to toggle it from FALSE to TRUE. Click outside
the Programmer’s 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.
When a user opens a document, the object automatically launches in Read mode. The user can change
the object and print the changes, but cannot save the changes without first putting the document into
Edit mode.
Note: Autolaunching is not supported with custom controls (ActiveX controls) or for Web applications.
The user can change the embedded object and add data to a new object directly in the application that
created the object. The Notes document automatically displays the changes.
When you design a form that autolaunches an embedded object, the object must be the first OLE object
in the form. To autolaunch other objects embedded in the form, you must write a script. Users can launch
embedded objects manually, except in documents that open as modal dialog boxes.
If you create an object in a rich text field on a form, when users create a document, the object launches. If
you don’t create the object in a rich text field, when users create a document, Notes launches the first
object that appears in the form. When users subsequently open the document for reading or editing, the
first object in the document launches.
When an object is autolaunched, modified by the user, and saved, it is displayed in the document in the
field you specify in the ″Create object in field″ box. You can specify ″First Rich Text Field″ to display the
saved object in the first rich text field in the document.
To display the current representation of an existing object in the document, store the form with the
document. This causes updates to the object to replace the original embedded object in the document. Be
aware, however, that storing the form with the document uses a large amount of disk space and
processing time.
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.
Only applications that support OLE2 can launch objects ″in-place.″ Applications that support OLE1
always launch ″out-of-place,″ regardless of the ″Launch in place″ property.
Objects that are embedded in the form as icons always launch ″out-of-place.″
When a user uses the form to create a document, the 1-2-3 object autolaunches so the user enters the
information in 1-2-3. The user closes and saves the 1-2-3 object, and then closes and saves the new
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.″
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 don’t 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.
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 designer’s 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.
When designing actions, keep in mind the state of the application when returning to Notes. For example,
if you use the autolaunch feature with an action, decide whether you want users to return to Notes,
whether you want the Notes window hidden, whether users are in a document or a view, and whether
the document has been saved or is new. Write documentation or field help in the form to provide
guidance to users.
To publish an action
1. Open the form.
2. Choose View - Action pane to display the Action pane.
3. Double-click the action you want to publish.
4. Choose Design - Action Properties.
5. Click the Advanced tab.
6. Select ″Publish Action with OLE object.″
7. Select a property that controls what happens after a user chooses an action.
8. (Optional) Select ″Bring document window to front″ to change the default setting.
9. Close and save the form.
Note: If actions do not get published even after you select ″Publish action with OLE object,″ make sure
Notes/FX ™ 2.0 is enabled. Choose Design - Form Properties and click the Defaults tab. The ″Disable
Field Exchange″ check box should be deselected.
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.
To exchange data, there must be a one-to-one correspondence between the shared fields. Both the OLE
server application file and the Notes form must contain the same shared fields. A Notes/FX field can be:
v One-way
v Two-way
v User-defined
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 Application Development with Domino Designer 7
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.
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.
In the 1-2-3 template, create an expense report. In one cell enter Total_Exp. Now create a range name for
this cell and name it Total_Exp. Because this is a custom Notes/FX field, you need to tell 1-2-3 to use this
range name for Notes/FX. Select File - Workbook Properties and then select the Notes/FX Fields tab.
Select the New Field button and then select the range name Total_Exp. Click OK twice. The row below
the cell entitled Total_Exp will hold the actual data that is exchanged between Notes and 1-2-3. Save and
close this 1-2-3 Workbook.
In Designer, create a form called ″Trip Report″ and embed the recently created 1-2-3 expense report. The
Trip Report form contains text fields for entering information about the trip. At the bottom of the form,
use the text ″The total expenses for the trip were:″ to label a field area and create a numeric field named
″Total_Exp″ which corresponds with the field name in the 1-2-3 expense report template.
The Document Library template uses a review cycle so that you can route a document link to a series of
recipients. It allows serial and parallel reviews. With parallel reviews, every reviewer receives e-mail
notification at the same time. With serial reviews, reviewers comment on the document in a particular
sequence and receive e-mail notification only after the previous reviewer has completed the review.
See the Domino Designer Templates Guide for additional information on these templates.
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.
Using central shared databases places the least burden on network resources and conserves server disk
space. Users also get to see each other’s review comments (if the form is set up that way). The
disadvantage of using central shared databases is that users need network access or remote access
through a modem.
343
Individual mail databases
If users work in individual mail databases, they can create and respond to documents and then route
them to each other or to a central mail-in database. Automated, easy-to-use forms that are stored in
documents are typical of such applications. Of course, if you are sending individual mail messages, you
are increasing disk space because the form is stored with the document.
Using individual mail databases makes it easier for remote users because they only need to access mail
instead of accessing mail and a remote database. The disadvantage of using individual mail databases is
that workflow process may take longer since work is done sequentially. Also, replication times may be
longer because of document size. Remote users should consider using replication or Domino Off-Line
Services (DOLS).
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.
For more information on reserved fields for mailing options, see the topic ″Reserved fields that control
mailing options″ in the chapter ″Designing Fields.″
In addition, all forms and views contain the default action ″Forward″ that you can display in the Actions
menu or the action bar.
Field Description
Mail-in name A name that identifies the database in the SendTo fields or in formulas on the form.
Description A description of the database.
Domain The domain name if your organization uses multiple mailing domains.
Server The hierarchical name of the server on which this database resides.
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.
Nearly all Notes functionality is retained when a DOLS-enabled application (called a subscription) is
taken offline. Users can compose, edit, delete, sort, and categorize Notes documents, and perform full-text
searches. DOLS subscriptions can make full use of Java applets, agent execution, and workflow. DOLS
also supports full data replication, retains application logic, and supports the full Notes security model.
The developer and administrator must set up and configure a DOLS subscription for offline use.
The developer copies a number of elements into the subscription, makes design changes if necessary, and
configures the subscription in the Offline Subscription Configuration Profile document.
The administrator makes sure DOLS is installed properly on the server, sets security for the subscription,
sets up agents, makes changes to the Offline Subscription Configuration Profile document if necessary,
and helps users install the subscription.
Once the subscription is enabled, users can access it on the server using a browser. The user clicks ″Go
Offline″ or ″Install Subscription″ from the Online menu on the subscription’s main page and the
subscription is installed on their computer.
Also installed on their computer is the Lotus Domino Sync Manager (previously the iNotes(TM) Sync
Manager), a utility for managing DOLS subscriptions. Users can open subscriptions online or offline,
synchronize, and set subscription properties with the Sync Manager.
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.
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 it’s
installed
v DOLGOONLINE.BMP - the bitmap that appears when users open the subscription offline once it’s
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.)
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 company’s 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.
mycustomname mysetupfile.exe -z -r -u
If you specify more than custom service, separate the services with
commas. For example:
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.
7. Click the Sync Options tab and complete the following fields:
For tips on using directory names and wildcards when you specify
more than one Required file or Optional file, see the topic ″Creating
multiple database DOLS subscriptions.″
Optional files to replicate Enter the subscription’s optional files. Optional files are databases,
templates or directories that can be enabled or disabled in the sync
manager for offline installation and replication. For example, in
addition to the required file(s), you may want to download a related
Help database or an archived discussion database as an optional file.
Select this box to install a directory catalog with the subscription. Then
enter the file name, including directory path, of the catalog database
on the server (for example, dircats\mydircat.nsf). If the server
administrator has specified a default offline directory catalog for the
server by adding $DOLSDirectoryCatalog = nameofcatalog.nsf to the
NOTES.INI on the server, you can leave this field blank and the
server’s default offline catalog is replicated with the subscription. A
catalog filename specified here will override the server’s default offline
directory catalog.
In order for Domino Web Access for Web Mail users, to take a
directory catalog offline, you must add the name of a directory catalog,
including the NSF extension, to the $DOLSDirectoryCatalog setting in
the server’s NOTES.INI file.
For more information on using directory catalogs with DOLS, see the
topic ″Adding a directory catalog to the application″ before adding one
to your subscription.
Encryption Encrypt this subscription:
Select the box to enable encryption. Then select the level of encryption.
Encryption prevents an unauthorized user from accessing the offline
subscription’s data using another software product.
v If the subscription has multiple databases, all of these databases are
encrypted.
v If the subscription has a shared file, you must encrypt all
susbcriptions sharing the file. An unencrypted subscription may not
be able to open an encrypted file.
v Using strong encryption causes a database to open more slowly than
it would using a weaker encryption or no encryption.
Note: Do not encrypt the database from the Database Properties box.
Use the Offline Subscription Configuration document to prevent
unauthorized users from reading subscription data using other
applications.
Syc Options
Date Filtering Only sync documents modified within the last [number] days:
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.
Select this box to push changes made to the active Off-Line Subscription
Configuration Profile Document (on the server), down to the Domino
Sync Manager (on the client), without requiring a reinstallation of the
subscription.
The following are the only settings and actions that cannot be changed
on the user’s computer unless the user deletes and reinstalls the
subscription.
Encryption
Force user to accept subscription changes. This box is only visible when
″Push subscription settings to Domino Sync Manager″ is selected. Select
this box to force the user to accept changes in the Offline Subscription
Configuration Profile document. Not selecting this box allows users to
prevent the changes from occurring on their subscriptions.
Read only subscription settings: Make schedule read-only. Select this box to dim the scheduled
replication settings in the Properties dialog - Schedule tab of the
subscription on the user’s computer. You can push this to users by
selecting it before they install the subscription, or by using the ″Push
subscription settings″ feature.
Make sync options read-only. Select this box to dim the Sync Options
settings in the Properties dialog - Sync Options tab of the subscription
on the user’s computer. You can push this to users by selecting it before
they install the subscription, or by using the ″Push subscription
settings″ feature.
Passthru server settings: Use passthru server to connect to destination server. Select this box to
use a passthru server to connect to the Domino server that hosts the
subscription. You must enter the name of the passthru server.
Then enter the name of the primary and secondary addresses. If users
connect to the host server through a passthru server, the addresses must
be for the passthru server.
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
they’re installing a subscription. It’s 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.″
Here are a few tips to keep in mind when enabling a multiple database subscription for offline use:
v Identify all the databases in your subscription.
v Identify the main database and copy the DOLS design elements only to the main database. Do not
copy the design elements to each database in the subscription.
v Use relative URLs and relative paths to link between databases. Avoid absolute URLs and paths, which
do not work offline.
For example, use /dev/mynsf.nsf as opposed to http://www.servername.com/dev/mynsf.nsf.
Note: For Windows client platforms, the file name must begin with ″N_ ″ to signify that it is a Win32
file. For example: N_MYCUSTOM.EXE.
2. Copy the file to the following directory on the Domino server:
Lotus\Domino\Data\domino\html\download\filesets
3. In the command prompt, navigate to the \filesets directory and run the DOLMKINF utility
(DOLMKINF.EXE) by entering arguments with the following syntax:
DOLMKINF -d path [-f filename] [-v version] [-h]
Argument Description
-d Enter this argument, then enter the directory path to your program files (all the separate files, not
the .EXE or .DLL.)
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
user’s machine.
-h Enter this argument to output help.
Examples DOLMKINF -d project\myfiles
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 user’s
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 user’s
machine.
Then SETUP.EXE runs and takes the -r argument.
Note: If you specify more than one program, separate the entries with commas.
After you have copied the DOLS Customize subform from DOLRES.NTF into the subscription, you can
edit it in IBM Lotus Domino Designer 7. Because this subform loads after all other subforms, you can use
events such as PostOpen to override the default values for other fields. You can also place into this
subform field validation formulas that override other fields. During download, the DOLS Customize
subform is loaded by a DSAPI filter on the server and all validation formulas are retriggered to bring in
any new information. For example, the @today formula brings in today’s date.
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
Note: Notes C or C++ API access to the following design elements is not supported. The Notes editor
must still execute some formulas in other subforms through the Offline Subscription Configuration Profile
document.
Element
Name Type Where Found Comments
DOLSLoadDownloadPage Page DOLRES.NTF The published program name for
most design elements is not the
DOLSRequestOfflineID name with spaces in it - shown, for
example, in the views in Domino
DOLSWebControl Designer. The name with spaces
may change over time or locale.
DOLSWebControlBitmaps Page DOLRES.NTF The page that contains the DOLS
Web Control bitmaps that override
the default bitmaps.
dolcontroldefault.bmp Bitmap file DOLSWebControlBitmaps The bitmap that appears when no
attachment Page subscription is installed.
dolgooffline.bmp Bitmap file DOLSWebControlBitmaps The bitmap that allows you to open
attachment Page a subscription offline when you are
online with the subscription.
dolgoonline.bmp Bitmap file DOLSWebControlBitmaps The bitmap that allows you to open
attachment Page a subscription online when you are
offline with the subscription.
DOLSEditOfflineConfiguration Agent DOLRES.NTF
DOLSOfflineConfiguration Form DOLRES.NTF
DOLSConfigurationSettings Subform DOLRES.NTF
The default sort order of an application is determined by the operating system of the computer it’s on.
This could be a problem with a DOLS subscription if the sort order offline (on the user’s computer) is
different from the sort order online (on the Lotus Domino 7 server). Users would see the same
information in the views, but in a different order than you intended.
To ensure that the same sort order is used online and offline, specify a sort order in the Database
Properties - Design tab of each database in the subscription. Select ″Multilingual database″ and select a
sort order language.
You must have Manager access to create or modify an ACL. Then, for each user name, server name, or
group name in an ACL, you can specify:
v An access level
v Access level privileges
v A user type
v Roles
Note: You can further restrict access to specific documents and fields within those databases using the
Extended ACL, which is used in the Domino Directory, the Extended Directory Catalog, and the
Administration Requests database. Work with your server administrator to apply these security measures.
For more information on server access levels and replication, see Administering the Domino System.
Note: You can make changes to multiple ACLs on a server through the Multi-ACL Management dialog
box in the Administrator Client. You can also edit an ACL for a single database using the File - Database
- ACL dialog box in the Notes client.
365
To set up a database ACL
1. Make sure that you have:
v Manager access in the database ACL
v Created the roles and groups that you want to use in the ACL
2. Select the database icon from your Bookmark pane.
3. Choose File - Database - Access Control.
4. Add entries for Notes users, servers, groups, and authenticated Internet users.
5. Set the access level for each entry.
For information on assigning anonymous access for Web users, see Administering the Domino System.
6. (Optional) For additional security, select a user type for the each entry.
7. (Optional) Refine the entries by restricting or allowing additional access level privileges.
8. (Optional) Assign roles to ACL entries. The role displays a check mark when selected. If no role
exists in the database, the role option is not displayed.
9. (Optional) Enforce a consistent ACL across all replicas of the database.
10. (Optional) Click Advanced and accept or change the Web access level in the ″Maximum Internet
name & password access″ list.
11. Click OK to save your changes.
Note: If you are designing a template (an .NTF file) for others to use to create applications, make sure
the default access is at least Reader so that users and/or servers can successfully read from the template
when creating or refreshing .NSF files based on that template.
Access levels assigned to servers in a database ACL control what information within a database the
servers can replicate.
To access a database on a particular server, a Notes user must have both the appropriate database access
specified in the ACL as well as the appropriate access specified in the Server document in the Domino
Directory.
For more information on server access levels, see Administering the Domino System.
For more information on database access for Internet users, see ″Maximum Internet name-and-password
access″ later in this chapter.
CAUTION:
Administrators who are listed in the Full Access Administrators, Administrators, and Database
Administrators fields in the Server document are allowed to delete any database on the server, even if
they are not listed as managers in the database ACL.
This table lists the user access level privileges from highest to lowest.
Delete documents
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 they’ve already created.
Delete documents
Authors can delete only documents they create. If this privilege is deselected, a user can’t 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.
A server administrator can further restrict a user’s right to run agents in the Agent Restrictions section of
the Server document in the Domino Directory. Therefore, even if you grant a user the ″Create
LotusScript®/Java agents″ access level in a database ACL, the Server document controls whether or not
the user can run an agent on a particular server.
Note: Users who have this privilege can modify or delete any shared folder, view, or navigator in the
database, regardless of whether they created it. Use caution when granting this privilege.
Whether or not a user can run agents depends on the access set by the Domino administrator in the
Agent Restrictions section of the Server document in the Domino Directory. Even if you select ″Create
LotusScript/Java agents″ for a name in the ACL, the Server document still controls whether or not the
user can run the agent on the server. Work with your server administrator to set access rights for users to
run agents on a server.
Note: Deselecting this option is not a true security measure because users can still print using Ctrl+Print
Screen or they can open a document and copy data to the clipboard.
The Notes-generated field $KeepPrivate captures whether the current user has replicate or copy privileges
for the document. This setting applies only to Notes clients.
Once you create a role, you can use it in database design elements or functions to restrict access to those
elements or functions. For example, you may want to allow only a certain group of users to edit certain
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.
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 document’s 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.
Tip: To display entries by access level, click the arrow next to ″People, Servers, and Groups,″ and then
select a specific access level.
All of these entries, except for the database creator’s user name, are group names. The -Default- group is
the only group that is specific to a database and not related to a group in the Domino Directory.
For more information on creating groups, see Administering the Domino System.
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.
Add names to the ACL in the hierarchical format assigned by the Domino server administrator. For
example:
Sandra E Smith/West/Acme/US
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.
*/Illustration/Production/Acme/US
Mary Tsen/Illustration/Production/Acme/US
Michael Bowling/Illustration/Production/Acme/US
This entry does not grant the chosen access level to:
Sandy Braun/Documentation/Production/Acme/US
Alan Nelson/Acme/US
You can use a wildcard only at the leftmost portion of the ACL entry. When you use a wildcard ACL
entry, set the user type in the ACL as Unspecified, Mixed Group, or Person Group.
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, they’ll 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.
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 can’t 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 user’s 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 user’s 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
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:
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
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 won’t display the attributes.
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 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 user’s 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 author’s
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.
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.
User types provide additional security for a database. For example, assigning the Person user type to a
name other than ’″unspecified″ prevents an unauthorized user from creating a Group document with the
same person name, adding his or her name to the group, and then accessing the database through the
group name.
Designating a name as a Server or Server Group prevents a user from using the server ID at a
workstation to access a database on the server. Be aware, though, that designating a name as a Server or
Server Group is not a foolproof security method. It is possible for a user to create an add-in program that
acts like a server and uses a server ID to access the server database from a workstation.
Instead of manually assigning a user type to each name, you can automatically assign a user type to all
unassigned names in the ACL. The user type assigned to each name is determined by the Domino
Directory entry for that name. Using this method, a group is always designated as Mixed Group, and not
as a Person Group or a Server Group. To assign a Person Group or Server Group to a name, you must
select the name and manually assign that user type.
Select the ″Enforce a consistent Access Control List″ setting on a replica whose server has Manager access
to other replicas to keep the access control list the same across all server replicas of a database. If you
select a replica whose server does not have Manager access to other replicas, replication fails because the
server has inadequate access to replicate the ACL.
If a user replicates a database locally, the database ACL recognizes that user’s access as it is known to the
server. This happens automatically for local replication, regardless of whether ″Enforce a consistent
Access Control List″ is enabled.
Note: Local replicas with ″Enforce a consistent Access Control List″ enabled attempt to honor the
information in the ACL and determine who can do what accordingly. However, they have some
limitations. One limitation is that group information is generated on the server, not at the local replica.
When a database is replicated locally, information about the group membership of the person doing the
replication is stored in the database for use in ACL checking. If a person/identity other than the one
doing the replication accesses the local replica, there will be no group membership information available
for that person, and the ACL can use only the person’s identity, not group membership, to check access.
Additionally, enforcing a consistent access control list does not provide security for local replicas. To keep
data in local replicas secure, encrypt the database on the Database Basics tab of the Database properties
box.
Note: If a user changes a local or remote server database replica’s ACL when the ″Enforce a consistent
Access Control List″ option is selected, the database stops replicating. The log (LOG.NSF) records a
message indicating that replication could not proceed because the program could not maintain a uniform
ACL on replicas.
It’s possible to assign users or servers more than one level of access to a database. The following table
describes the order of precedence for competing access levels.
For information on setting up SSL, see ″Enforcing encrypted Web transactions using SSL,″ later in this
chapter.
Using Java technologies, you can share code with and link to WebSphere applications. Single Sign-On
(SSO) -- a shared authentication service -- allows for further seamless integration between Domino and
WebSphere applications. For information on Single Sign-On, see Administering the Domino System.
Default logout time period: 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 -- for example:
"http://acmeserver/sessions.nsf?logout."http://acmeserver/sessions.nsf?logout
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.
If you do not require an SSL connection, clients can use either SSL or TCP/IP to connect to the server.
The server administrator enables the SSL port in either the Internet Site document or the Server
document of the Domino Directory. Then, to protect transactions in individual databases -- for example,
in databases used for commercial transactions -- the database designer assigns the database property
″Web Access: Require SSL Connection.″
For more information on SSL certificates, see Administering the Domino System.
This setting applies to users who use name-and-password authentication or access the server
anonymously over the Internet and connect to servers using either the TCP/IP port or the SSL port. This
setting does not apply to users who have SSL client certificate IDs and who access the database over the
Internet on the SSL port. Users with SSL client access receive the level of access specified in the database
ACL.
Add an entry for the group Anonymous to the database ACL, if appropriate for this database. Then select
the maximum access level you want to assign to all Internet and intranet users who use
name-and-password authentication for a particular database. Users who access a Notes database over the
Internet, either anonymously or by using name-and-password authentication, never have an access level
higher than what is specified as the ″Maximum Internet name & password access″ level.
CAUTION:
The ″Maximum″ access level overrides the access level that a user may have been explicitly given in
the database ACL.
For example, a user, Sandra Smith/West/Sales/Acme, can use a name and password to access a server
using a Web browser. If Sandra Smith/West/Sales/Acme is assigned Editor access in the ACL and the
″Maximum Internet name & password access″ setting is Reader, the lower of the two access levels applies
and Sandra is allowed only Reader access. Similarly, if Sandra Smith/West/Sales/Acme is assigned
Reader access in the ACL and the ″Maximum″ access setting is Editor, Sandra is allowed only Reader
access. If Sandra Smith also uses a Notes client to access the database, the ″Maximum″ access setting is
ignored and Sandra is allowed Editor access.
The default for this option is Editor access. Tasks such as creating folders, views, and agents, do not
apply to Internet users.
Tip: You can use this setting to prevent Internet users from accessing the database using
name-and-password authentication. By setting it to ″No Access,″ the database is accessible only to Notes
users or Internet users who authenticate using SSL client certificates.
To select the maximum Internet name and password: Use this method to select the maximum Internet
name-and-password access for a single database.
Create To
Read access lists for views Specify which Notes and Internet users can see a view.
Read and Edit access lists for folders Specify which Notes and Internet users can see a folder or
update the contents of a folder.
Read and Edit access lists for forms Specify which Notes and Internet users can create, modify,
or read documents created with a form.
Readers and Authors fields Specify which Notes and Internet users can create, modify,
or read specified documents.
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 Control which Notes users can access a field in a form.
Note: Encryption is not supported in Web applications.
Hidden fields Control which Notes and Internet users can access a field in
a form.
Read and Edit access lists for sections Specify which Notes and Internet users can access a section
in a document.
Restrict who can create agents and where the agents can
run.
Secure the design of a database to prevent users from
changing design elements.
When you create a database, you are assigned as the Manager of that database by default. This gives you
complete access rights. You can then designate others as designers so they can contribute to the design.
For more information on access control, see The database access control list.
Note: Readers and Authors fields take effect only when the database is on a server. If you develop a
database locally, you can’t test this feature until you copy the database to a server.
If a form has a read access list, names from the Readers field are added to the access list. Otherwise, the
Readers field controls access to documents created from the form.
Entries in a Readers field cannot give a user more access than what is specified in the database access
control list (ACL); they can only further restrict access. Users who have been assigned ″No Access″ to a
database in the ACL can never read a document, even if you list them in a Readers field. On the other
hand, users with Editor access or above in the ACL can be restricted from reading documents if they
aren’t included in a Readers field.
Any users who have Editor (or higher) access to the database can read and edit a document if one of the
following is true:
v They are listed in the form’s Read access list or Readers field.
v The form has no Read access list restrictions or no Readers field.
For information on creating a Reader’s field, see ″To create Readers and Authors fields″ later in this
chapter.
For information on updating Readers fields, see Administering the Domino System.
Entries in an Authors field cannot override the database ACL; they can only refine it. Users who have
been assigned No Access in an ACL can never edit a document, even if you list them in an Authors field.
Users who already have Editor (or higher) access in the ACL are not affected by an Authors field.
Authors fields affect only users who have Author access in the ACL.
You must enter the user’s full hierarchical name in the Authors field.
v If you manually enter a name in the Authors field, Domino expands and stores, for example, John
Smith/ACME/West is stored as (CN=John Smith/OU=ACME/O=West) in its hierarchical form. The
name displays in its abbreviated form.
v If you programmatically enter a name, you must use the full canonical form such as CN=John
Smith/OU=ACME/O=West.
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
To display the contents of the $UpdatedBy field, users can click and hold the cursor on the Authors field
in a document they’re reading. Designer displays a pop-up list of everyone who has modified the
document, including people who did so through agents. Adding pop-up text to the field label helps users
understand the list.
If a form is assigned the ″Anonymous form″ property, its documents do not contain an $UpdatedBy field;
instead, the documents contain an $Anonymous field with a value of ″1.″
You must select an administration server if you want to select the option to modify Readers and Authors
fields. The default is to not modify Readers and Authors fields.
For more information on creating views and writing view selection formulas, see Creating a standard
view.
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.
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.
The author can choose Section - Define Editors to name additional editors for a particular status report.
For users who are not listed as editors of the section, the fields appear as read-only. Editor access of the
section does not override Editor access in the database access control list (ACL); it only refines it.
Privilege names cannot be used in the Edit access list.
Tip: If you use custom roles to refine standard access levels, consider creating a section that corresponds
to each access role. Then create a field named RoleName at the top of the section.
Access role names must include square brackets and be enclosed in quotation marks:
″[Scheduling Committee]″
As a convenience to authors, write a default value formula to create an initial list of editors for the
section; anyone editing the section can then update that list. If there are multiple authors, be sure to
select ″Allow multi-values″ for the field.
An editable section allows the author of each document to create a customized list of editors by
double-clicking the section title when the document is in Edit mode or choosing Section - Define Editors.
Any users already authorized to edit the fields within the section are displayed, and the author can add
other editors to the list.
You can add users to the read access list for a view or folder as long as they already have at least Reader
access in the database access control list.
Notes
v Do not create a read access list for the default view of a database.
Rajeev wants only his technicians and his own managers to have access to this view. He defines a read
access list for the ″Tech Service Performance″ view. Then, because there is no group in the Domino
Directory for the people he wants to include in the access list, Rajeev defines an access role called
[TSMAnagers] in the database ACL, and adds that role to the view’s read access list. The access role is
stored within the Service Request Tracking database; it is not added to the Domino Directory.
The following people can read a document that has restricted Read access:
v Users assigned Read access in the form access list
v Users listed in the form’s Readers field
Readers field names are added to a document’s read access list.
Note: When you use a form access list, you restrict access to all or part of a form by setting security
parameters that work with the database ACL. The database ACL predominates -- only users with access
to the database have access to forms within a database. Form security provides an additional measure of
access control in conjunction with the database access control list. However, note that using
access-controlled forms is not a true security measure because a user can create a copy of the form and
remove the restriction.
Note that you can also make manually run agents available for public access.
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 user’s 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 owner’s 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.
Domino Designer also supports secret key encryption that you can use for encrypting fields in
documents. You can create and name secret keys and then distribute the secret keys to users so that they
can decrypt the protected data. Secret keys, like public keys, are stored in a user’s ID. Applications
reference the keys by their names in a special field called SecretEncryptionKeys. When a document is
saved, the keys named in this field are retrieved from the user’s ID file, and all fields marked with a
special property are encrypted with those keys.
CAUTION:
Both public and secret keys are stored in your user ID file. Remember to securely back up your ID
file each time you add a key.
Note: Web users cannot see encrypted fields with a browser. To see the data, Web users must reopen a
document with a Notes Client or ask the sender for a copy that is not encrypted.
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.
A document can be encrypted when it is first saved, or it can be encrypted when saved after an editing
session.
1. (Optional) If you are using a secret encryption key for encryption, start by creating the key. To do this,
see the topic ″Creating a secret encryption key.″
2. Enable encryption for a field.
3. Do one of the following to assign the encryption key to a document:
v Encrypt all documents automatically
v Create a field that generates a list of secret encryption keys
v Allow authors to encrypt documents with their own encryption keys
If field encryption is enabled in the Client, any field delimiters appear in red. If field encryption is
enabled in Designer, the outline of the field appears in red.
Then when users save a document created with the form, they choose whether to encrypt the document
when saving it (in the Document Properties box) and choose which encryption key to use.
Using secret key encryption, you create an encryption key called Salary and send it to the four members
of the Financials group. You then enable encryption for the CurrentSalary field and associate the Salary
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 don’t 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 can’t 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.
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 don’t
have complete confidence that the recipient’s ID file and password are secure, then you shouldn’t trust
that the mail system is secure enough for something as potentially sensitive as a secret key.
When multiple secret keys are associated with a form or document, users need all of the specified keys to
edit and save encrypted information with the original keys. If they don’t have all the necessary keys, they
can still encrypt documents with the keys they have by changing the encryption key list in the Document
Properties box.
When an encrypted database is full-text indexed and the option ″Index encrypted fields″ is enabled, the
encrypted fields are only indexed if there is an encryption key in the ID file capable of decrypting the
field before indexing. One situation where you may want to index encrypted fields is if you create a
full-text index for a database on your own workstation. You probably would not choose this option on a
full-text indexed database on a server.
Documents created before you add the encryption keys remain unencrypted; however, you can manually
encrypt them. For the details of manually encrypting data in a document, see Notes Client Help.
1. Open a form.
2. Enable encryption for one or more of the form’s fields.
3. Choose Design - Form Properties.
4. Click the Security tab.
5. The ″Default encryption keys″ list shows all secret encryption keys in your ID. Click the ones you
want to add to the form as defaults.
6. Save and close the form.
Note: If you use secret rather than public encryption keys, you must distribute the keys to all users who
need them.
Note: Signatures are valid only in Notes applications; they are not supported on the Web.
You can enable signing of one or more fields on a form. If the field is in a controlled-access section, the
signature applies only to the section and is generated when the document is saved. If the field is not in a
controlled-access section, the signature is generated only when the document is mailed.
If a user with Editor access in the database ACL changes a field in a document, Notes replaces the
existing signature with the signature of the editor when the document is mailed. Notes cannot save more
than one mail-time signature for a document.
If the document contains several signature-enabled fields, Designer uses data from each signature-enabled
field to generate a signature. After mailing, a change in any field causes verification to fail when the
recipient opens the document.
To enable signing:
1. Create a form with a SendTo field or, alternatively, create a LotusScript program that uses the Send
method of the NotesDocument class with a recipient’s argument.
2. Create at least one sign-enabled field of field type COMPUTED. To sign-enable a field, assign the
property ″Sign if mailed or saved in section″ in the Advanced tab of the Field Properties box.
3. Enable the form for mailing in one of the following ways:
v Use a Send Document form action
v Enable the form property ″On Close: Present mail send dialog″
v Create a MailOptions field with the value 1
v Use an @MailSend formula, or a program created with IBM LotusScript that uses the Send method
of the NotesDocument or NotesUIDocument class.
The signing occurs during mailing in one of the following ways: the sender chooses ″Sign″ in the Mail
Send dialog box, the form contains a field named Sign with the value 1, the form uses @MailSend with
the [Sign] flag, or the form uses a LotusScript program with the SignOnSend property set to TRUE.
You can create a database icon by copying an icon from another database and pasting it in, by pasting a
bitmap from a graphics application, or by creating an icon in Designer.
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).
To create a document
1. In Designer, open the database you’re 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.
You can use this document as a springboard to a file in another database or another product’s file. To do
so, use the Database Properties Launch options for ″Launch first attachment in About database
document″ or ″Launch first doclink in About database document.″
When you provide Help for an element, your formula overrides whatever context-sensitive Help already
exists for that element. This feature is not intended for context-sensitive Help on dialog boxes or menu
items.
To create context-sensitive Help for a Notes application, you write a formula for the HelpRequest event
for a page, form, subform, view, or folder. You can use the formula language command
@Command([OpenHelpDocument]) to specify which Help document to open when a user requests Help
while an element is active. You can also use @helpCommand([OpenPage]) to open a page instead of a
document.
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.
If you cannot fit all the information into a Help description or if the field isn’t editable, but you want to
explain its use, use pop-up text in the field label to place Help information directly on the form. You can
also write a field hint, text that helps the user determine what to enter or select in the field. The text
disappears when the user moves the cursor into the field.
You can use 70 characters, including letters, numbers, spaces, and punctuation. If your application will be
translated to another language, use no more than 55 characters to allow the translators a few extra
characters.
Examples
For a text field named Supervisor:
Enter the name of the person to whom you report.
Note: You can also create a separate Help database and open its documents from your application using
@Command(OpenHelpDocument). To open documents from a Help database in a window that users can
set to stay on top of other windows as they work, choose File - Database - Properties - Design for your
database. Then, turn on ″List in Database Catalog″ and enter the category ″NotesHelp.″
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
Designer lets you control the entire design of a database, as well as individual design elements. You can
restrict changes by not allowing changes to overwrite one or all design elements, or you can hide one or
all design elements from users.
In almost every case, you start by making a master design copy of the application.
For related information, see the topic ″Hiding the design of an application″ later in this chapter.
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.
Default Reader
Local Domain Servers Reader
Other Domain Servers No Access
Your User Name Manager
Database Manager Manager
[Anonymous] No Access -- or whatever the actual database should have
[Default] No Access -- or whatever the actual database should have
[LocalDomainServers] Manager -- or whatever the actual database should have
[OtherDomainServers] No Access -- or whatever the actual database should have
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.″
Only the people specifically assigned to pilot test the application should have access to it. The default
access should be ″No Access.″ Then you can assign specific access levels and privileges to make sure that
certain users can access only what they should. Make sure you retain Manager access, so you can make
changes to the access control list during the test period and solicit comments from the testers.
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
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.
A document always contains fields you design as well as fields Domino automatically generates. Most
fields generated by Domino start with a dollar sign ($). Some Domino-generated fields include:
v $File -- shows an entry for each attachment in the document.
v $Links -- shows an entry for each link in the document.
v $Readers -- lists authorized readers if the document contains a read access list.
v $Revisions -- lists the date and time of each editing session since the first time the document was
saved.
v $Title, $Info, $WindowTitle, $Body, and $Actions -- are associated with a form that is stored in the
document.
v $UpdatedBy -- lists the document authors and editors. Anonymous forms don’t have this field.
v Form -- indicates the name of the form used to create the document or the name of the form most
recently used to save the document. Use the form in views to select documents created with the form.
v PostedDate -- indicates that a document has been mailed and shows the time and date it was mailed.
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 doesn’t 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.
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.
After you run the agent, compact the database to reduce the actual file size of the database.
When the database opens on the Notes client, you can display:
v A frameset you specify
v A navigator you specify
v A navigator in its own window
v The ″About Database″ document for the database
v The first attachment in the ″About Database″ document
v The first doclink in the ″About Database″ document - Adding a link here gives users access to
information in another application from a Designer application. For example, to collect spreadsheet
data for use in the application, launch a link to a spreadsheet application so users immediately see the
spreadsheet when they open the database. Data entered in the spreadsheet can be used to populate
fields in the application. If you choose to launch a page, you will need to specify the page in the
Properties box. Designer gives you a drop-down list of the pages that are available to choose from.
they open the database. Data entered in the spreadsheet can be used to populate fields in the
application.
Templates
A template is a skeleton that contains design elements, but no documents. When you use a template to
create a database, the template’s 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.
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.
Here’s 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 template’s 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 can’t be distributed automatically. If
a private agent or folder exists in a template, you receive error messages when the design is
When databases and/or replicas are created from a single copy template they will initially contain full
design notes. It is the Design task which performs the work of creating and removing reference notes
from a database. Reduction of database size (disk space) is a major advantage of using single copy
templates and will be realized upon compaction of the databases.
Tip: On Unix systems, use the convert command ″convert″ rather than ″nconvert″.
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.
When you create a replica (choose File - Replication - New Replica) or a copy (choose File - Database -
New Copy), the new database automatically links to the same template that the original database uses.
For a server’s Designer task to update databases, you must create a replica of the master template on
each server that stores databases that inherit from the master template.
CAUTION:
To avoid inconsistencies during database updates, ensure that replicating servers do not update
simultaneously.
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.
Examples
v To refresh all databases in the mail directory:
design -d mail
v To refresh only the NAMES.NSF file:
design -f names.nsf
v To refresh only the USER.NSF in the mail directory:
design -f mail\user.nsf
Note that replication is the process by which database replicas on multiple servers synchronize their data
and their designs automatically. It’s important to understand which design changes replicate and which
don’t 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.
CAUTION:
An element with inheritance set is not replaced even if its design is not protected from updates (that
is, if ″Prohibit design refresh or replace to modify″ is not selected).
v The ″List as advanced template in ’New Database’ dialog″ option on the Design tab of the File -
Database Properties box
v All options on the Advanced tab of the File - Database Properties box, except ″Document table bitmap
optimization″ and ″Don’t support specialized response hierarchy″
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 doesn’t 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.
CAUTION:
An element with inheritance set is not replaced even if its design is not protected from updates (that
is, if ″Prohibit design refresh or replace to modify″ is not selected).
v The ″List as advanced template in ’New Database’ dialog″ option on the Design tab of the File -
Database Properties box
v All options on the Advanced tab of the File - Database Properties box, except ″Document table bitmap
optimization″ and ″Don’t support specialized response hierarchy″
Replication occurs at the times specified by the server’s replication schedule. Replicating design changes
can take several hours or even a full day if replicas are in different locations and aren’t replicated
frequently.
Note: None of these choices prevents someone with Designer or higher access in the database ACL from
changing the design. To prevent all design changes, hide the design of the database and remove Designer
and Manager access from users who can change the design.
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.
CAUTION:
Users who have Designer or Manager access to the database can replace the database design, thereby
changing it. To fully protect database design, remove Designer and Manager access from users who
can change the database design.
This feature is useful for hiding the design of databases that are based on a template you own. When
design changes are required, you redesign the template, whose design is not hidden, and then refresh the
design of the linked databases. To maintain maximum design security, do not give the template to anyone
except authorized designers, and do not distribute documentation for the formulas and LotusScript
programs.
Choose ″Notes R4.6 or later″ to hide a Web- or Mobile-only design element from Notes users.
Choose ″Mobile clients″ to hide a Notes- or Web-only design element from Mobile users.
Choose all options to hide the design element from all users. This is useful when a design element
launches only from a button or a formula, or if you designed the element for purposes that users don’t
need to know about.
Hidden design elements are hidden from the server too; you can’t use Domino URL commands to access
documents in hidden views or forms.
Tip: To hide a design element that isn’t needed by users but is used for background processes, such as
lookup formulas, enclose the design element name in parentheses -- for example, (Lookup View) --
instead of using Hide When tab options.
Shared Actions are contained in one design note. Therefore, when you lock a Shared Action, you lock all
Shared Actions. Likewise, when you unlock a Shared Action, you unlock all Shared Actions.
CAUTION:
If you work locally or offline and attempt to lock a design element, Designer displays a message
stating that the ″Master lock database cannot be reached″ and asks if you want to proceed with
locking the design element. If you click Yes to proceed, the database applies a provisional lock to the
design element. When you connect again and replicate, the database attempts to convert the
provisional lock to a true lock. If it is successful, the database saves the edits that you made to the
design element. If it is unsuccessful, the database sends you mail containing the edits that the
database could not save; you must apply them manually to the design element.
1. Highlight the design element in the Work pane.
2. Right-click the design element and select Lock.
If the design element was unlocked, a padlock icon appears in the Work pane indicating that you
have successfully locked the design element, and a message appears on the status bar. You now have
exclusive access to the design element; other designers cannot modify it.
If someone else has locked the design element, a lock-and-key icon appears in the Work pane.
Therefore, depending on your organization, make sure you work closely with the people who are
responsible for design, management, and administration tasks. For example, controlling user access is
primarily a Domino system administrator’s responsibility, yet the application developer may determine
user access levels because they are often integral to the database design. If you need to make design
changes after a database is in production, be sure to:
v Work with the Domino administrators to implement and coordinate design changes
v Consult with Domino administrators when putting databases on servers, because administrators are
aware of server resources and the connections between servers
For more information on designing or redesigning databases, see Lotus Notes and Domino Release Notes.
For more information on rolling out a database, as well as information on Domino administration, see
Administering the Domino System.
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
Set up the database ACL for users and If you plan to make replicas of a database, make sure that the
servers that require access database ACL lists the name of each server containing a replica. If
the database uses roles, assign all roles to each server.
435
Task Considerations
Verify that the database appears in the Open While designing a database, the database designer often removes the
Database dialog box database title from the list that appears in the Open Database dialog
box. This deters the user from opening the database. After the
database is completed, make sure that the database title appears in
the Open Database dialog box.
Decide which servers require replicas of the To make this decision, consider the purpose and size of database,
database and then create the replicas the number and location of users who need access to the database,
and the existing replication schedules between servers.
Verify that Server documents in the Domino Server documents are, by default, enabled for replication, but to
Directory are enabled for replication avoid any problems, verify this setting.
Create or edit Connection documents If several servers have a replica of the database, make sure that any
necessary Connection documents are set up so that replication can
occur.
Set up a replication schedule 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 ″About this database″ and ″Using this Provide the name, phone number, and e-mail address of database
database″ documents managers in the ″About this database″ document. Provide
information about the application in the ″Using this database″
document.
Create an index for the database 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. If the database design includes encrypted fields, distribute
encryption keys to users.
Create a Mail-In Database document. If the database is designed to receive mail, you must create a
″Mail-In Database″ document in the Domino Directory.
List the database in the database catalog. By default, all databases are listed in the database catalog. If you
wish, add categories to control how the database appears in the
For information, see Administering the Domino catalog views.
System.
Publish the database in a database library. Create a library of selected databases on one server or several
servers for your users.
For information, see Administering the Domino
System.
Notify users that the database is available. Provide the database title, file name, and server location.
Note: The maximum size for a Release 4 database is 4GB. The maximum size for Release 5 and
later databases is 64GB on Windows and UNIX and 32GB on OS/2.
For more information on encryption, see the chapter ″Application Security.″
The following topics describe the tasks involved with creating and maintaining replicas. If you have full
access rights to post a database on a Domino server you can perform these tasks yourself; if not, you
need to work with a server administrator to create and maintain replicas.
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 can’t replicate.
6. Next to Server, click the arrow and select the destination server on which you want to place the new
replica.
7. 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 doesn’t 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.
8. (Optional) Click ″Replication settings″ to select replication settings for the new replica.
9. (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.″
10. (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.″
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.
Advanced 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 haven’t changed within
the purge interval. If you select the check box, when Domino removes deletion stubs it also removes
documents that haven’t changed within the specified number of days. These documents are purged,
meaning no deletion stubs remain for the documents, so the documents aren’t 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 don’t select
the check box.
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 aren’t 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.
For more information on view selection formulas, see the chapter ″Designing Views.″
Keep in mind the following points when you use replication formulas:
v You cannot use @DbLookup, @UserName, @Environment, or @Now in a replication formula.
v Using @IsResponseDoc in a replication formula causes all response documents in a database to
replicate, not just those that meet the selection criteria. Use @AllChildren or @AllDescendants instead
and make sure the database performance property ″Don’t support specialized response hierarchy″ is
not selected.
For more information on database performance properties, see the chapter ″Optimizing and
Troubleshooting Databases.″
Don’t select this option when you first create the replica because
the new replica won’t contain any design elements for displaying
information.
Agents Selected If selected, allows a replica to receive agents. If deselected,
prevents the replica from receiving agents, although the replica
still receives changes made by the agents.
Replication formula Not selected If selected, ensures that replication settings specified for multiple
destination replicas from one source replica can replicate. This
option is required if you’re using a central source replica to
manage replication settings for multiple replicas.
Access control list Selected If selected, allows the replica to receive ACL changes from any
server that has Manager access in the replica’s ACL.
Deletions Selected If selected, allows the replica to receive document deletions. If
deselected, the replica won’t receive deletions through replication,
but users assigned ″Delete documents″ access in the replica ACL
can still delete documents from the replica.
Note: If ″Do not send deletions made in this replica to other
replicas″ (on the Send panel of the Replication Settings dialog
box) is selected for the source replica, this replica won’t receive
deletions from the source replica, regardless of this setting.
Fields Not selected If deselected, the replica receives all fields in each document
received. If selected, you select a subset of fields to receive, but
you should only do this if you have a thorough knowledge of
application design.
Note that users can also use a mobile directory catalog to have
local access to names in a Domino Directory.
Replication priority doesn’t apply to replicas on a server cluster. Cluster replication occurs whenever a
change occurs, not according to schedules in Connection documents.
For information on connecting servers for replication, see Administering the Domino System.
Do not send changes in database title & catalog info to other replicas
This setting prevents changes made to this replica’s database title or Database Catalog categories from
replicating.
For information on database ACLs, as well as information on the Encryption property, see the chapter
″Restricting Access to and Securing Parts of an Application.″
The only centralized replication settings you can specify are ″Replicate a subset of documents,″ to control
which documents a replica receives, and ″Replicate,″ to control which non-document elements a replica
receives.
Note that changing centrally-managed replication settings requires two replications for the changes to
take effect: the first replication to replicate the new settings from the source server to the destination
servers and a second replication to replicate based on the new settings. The second replication doesn’t
occur until the source database is updated in some other way; to force the new settings to take effect if
the source database isn’t updated, clear the replication history.
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 client’s 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 client’s 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.
Note: Although these examples describe server-to-server replication, you could use similar settings to
configure replication between a central source replica and replicas on Notes clients. For example,
salespeople could replicate directly with the source replica and receive only leads pertinent to their areas.
To accomplish this, specify Notes users’ hierarchical names as destination servers.
To enable replication again, repeat the procedure, but in Step 3 deselect ″Temporarily disable replication.″
For information on disabling replication of multiple databases, see Administering the Domino System.
For information on creating Connection documents to schedule replication between servers, see
Administering the Domino System.
For example, to send changes to the database PRODUCTS.NSF from the server Webstage-E/East/Acme
to the server Web/East/Acme, enter the following command from the server console on
Webstage-E/East/Acme:
Push Web/East/Acme Products.nsf
For more information on these commands, see Administering the Domino System.
Many of these properties require knowledge of application design. Database designers often set these
properties when they create databases.
This setting applies only when using Notes to view databases; Web browser settings control the display
of images to Web browser users.
Tip: Users also can specify ″Load images: On request″ in the Advanced section of a Location document
to display images only when users click them. For more information, see Lotus Notes Help.
For information on storing a form with a document, see the chapter ″Designing Forms.″
449
Note: Designing views that don’t display unread marks doesn’t improve database performance because
they are still maintained but not displayed.
If you select or deselect the ″Don’t 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.
This property only works for views that use Form= as part of the selection criteria. There’s a slight
performance cost to maintaining the table/form association; however, when updating small views in
large databases, the benefits offset the cost.
If you select or deselect the ″Optimize document table map″ 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 -F or -f option to enable or disable this property
and then compact.
For information on compacting databases, see the book Administering the Domino System.
To prevent the overwriting of deleted data, select the Advanced database property ″Don’t overwrite free
space.″
By default, the database property ″Maintain LastAccessed property″ is not selected, meaning the
″Accessed (In this file)″ property isn’t 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.
To improve database performance, disable the response hierarchy information in databases that don’t use
these @functions by selecting the Advanced database property ″Don’t support specialized response
hierarchy.″
Disabling the response hierarchy information has no effect on views and replication formulas that display
information hierarchically without using @AllChildren and @AllDescendants.
If you select or deselect the ″Don’t support specialized response hierarchy″ 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 -h or -H option to enable or disable this property
and then compact.
For information on compacting databases, see the book Administering the Domino System.
For information on transaction logging, see the chapter ″Transaction Logging and Recovery.″
Administrators can also use the Security section of a Server document in the Domino Directory to control
headline monitoring at the server level.
For a database without this option selected, all the field names in a database when concatenated cannot
exceed 64 kilobytes, which results in a database limit of approximately 3000 fields.
By default, the $Revisions field stores a history of up to 500 edit sessions, each of which requires 8 bytes
of disk space. Over time, $Revisions fields can grow large, taking up disk space and slowing view
updates and replication. To conserve disk space and improve database performance, use the Advanced
database property ″Limit entries in $Revisions fields″ to specify the number of entries that the $Revisions
field can contain. When the $Revisions field reaches this limit, the oldest entry is removed to make room
for the newest entry.
Consider limiting the entries in $Revisions fields on a database with all of the following characteristics:
v The database contains many documents.
v The database replicates often or has no replicas.
v The database contains documents that are not often edited.
A suggested upper limit is 10 entries in the $Revisions field. If you set the limit lower than 10, you run
the risk of increased replication or save conflicts.
Make sure you fully understand these database properties before changing their settings.
1. Make sure you have Designer or Manager access in the database ACL.
2. Do one of the following:
v Open a database and choose File - Database - Properties.
v As you create a new database, click the Advanced button.
3. Select or deselect properties listed in the table below.
4. After you select any of these three properties, compact the database for the property to take effect:
v Don’t maintain unread marks
v Optimize document table map
v Don’t support specialized response hierarchy
Tip: You can use the compact task with specific options to enable or disable the above three properties
and then compact the database.
Improves
To optimize database Reduces database
Property Tab performance/size performance? size?
Allow use of stored forms in this Basics Deselect option Yes Yes
database
Display images after loading Basics Select option Yes No
Don’t maintain unread marks Advanced Select option Yes Yes
Optimize document table map Advanced Select option Yes No
Don’t overwrite free space Advanced Select option Yes No
Maintain LastAccessed property Advanced Deselect option Yes No
Don’t support specialized response Advanced Select the option Yes Slightly
hierarchy
Don’t allow headline monitoring Advanced Select the option Prevents No
performance
degradation
Limit entries in $UpdatedBy fields Advanced Select the option and Yes Yes
specify the number of
entries $UpdatedBy
fields can contain
Limit entries in $Revisions fields Advanced Select the option and Yes Yes
specify a limit on the
number of entries
$Revisions fields can
contain. The
suggested limit is 10
entries.
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 won’t be able to reuse the space or,
because of fragmentation, can’t 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
When you run Compact without specifying options, Domino uses this style of compacting on all
databases enabled for transaction logging. Domino also uses this style of compacting when you use the -b
option (case sensitive) when compacting any database.
Tip: Use this compacting method the most frequently -- it is the fastest method and causes the least
system impact.
When you run Compact without specifying options, Domino uses this style of compacting on databases
that aren’t enabled for transaction logging. Domino also uses this style of compacting when you use the
-B option. To optimize disk space, it’s recommended that you run Compact using the -B option on all
databases once a week or once a month.
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 can’t 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 ″Don’t support
specialized response hierarchy″ require structural database changes.
In place, space
In place, space recovery with file
Characteristics recovery size reduction Copy-style
Databases that use it when compact runs Logged databases with Unlogged databases Databases with
without options no pending structural with no pending pending structural
changes structural changes changes
Databases you can use it on Current release Current release Current release (need
-c)
Relative speed Fastest Medium Slowest
Users can read databases during Yes Yes No (unless -L option
compacting used)
Users can edit databases during Yes Yes No
compacting
Reduction in file size No Yes Yes
Extra disk space required No No Yes
If you have specified a value for the Num_Compact_Rename_Retries setting, Domino waits 30 seconds
before trying to rename a database that was copy-style compacted. You can request a different amount of
Chapter 22. Optimizing and troubleshooting databases 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:
Note: The Database - Sizes view of the log file (LOG.NSF), the File Statistic reports generated by the
Statistics Collector server task, and the Info tab (i tab) of the Database Properties box, all report the
percentage of used space in a database. These are often not accurate indicators of used space; therefore,
you shouldn’t use them.
Users or administrators can archive documents based on days since the documents were last read, last
modified, and/or marked as expired. From Designer, you enable archiving and specify settings that
control what happens when a database is archived.
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
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 haven’t been deleted (default is not to delete)
The following procedure describes creating an agent using simple actions. You can also create agents
using Notes formulas, LotusScript, or Java.
When you run the agent, if Domino cannot copy all specified documents to an archive database -- for
example, if there is not enough disk space on the target folder -- the agent stops.
For more information on agents, see the chapter″Agents.″ For more information on Notes formulas,
LotusScript, and Java see Domino Designer Programming Guide, Volumes 1 through 4.
Method Description
Replication history Records each successful replication session for a
database. Useful for determining at a glance if a
replication is occurring.
Replication Events view of the log file (LOG.NSF) Shows details about replication events between servers.
Useful for determining the cause of replication failure
and for verifying that the expected number of replication
updates occurred.
Replication monitor Notifies you when replication of a database hasn’t
occurred within a specified time period. A server
administrator creates replication monitors as a part of
configuring the Event Monitor task.
Database analysis tool Lets you collect replication history and replication events
from the log file, and other database-specific information
into a results database that you can analyze.
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.
Domino uses the replication history to determine which documents to scan for changes during the next
replication. For example, if a database successfully replicated with the HR-E/East/Acme server 24 hours
ago, Domino replicates only those documents that were added, modified, or deleted in the replica on
HR-E/East/Acme within the last 24 hours.
Before replication starts between two databases, Domino checks the replication history of both databases
to make sure that they agree. If they don’t, Domino scans each document created or modified since the
date specified in the ″Only replicate incoming documents saved or modified after″ setting on the Other
panel of the Replication Settings dialog box.
Tip: To copy the entire replication history to the Clipboard, click Copy.
Within a server cluster, the Cluster Replicator stores replication history information in memory and
updates the replication history about once an hour.
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.
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 they’re 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.
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.
Consider deleting an inactive database or view to free disk space on the server.
Appears in Database
Information provided Activity Log entries Appears in User Activity dialog box
Total number of times user and Yes Yes
servers accessed, read, and wrote to a
database in past 24 hours, past week,
past month, and since the creation of
the database.
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.
Tip: If you don’t have access to the Domino Administrator, select the log file database and choose File -
Database - Open.
Tip: To track usage over a period of time, choose ″Copy to Clipboard″ to copy the summary to a
document that you use to track usage statistics.
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).
A full-text index is an index of the text in a database. To perform advanced searches for text in a
database, users need an up-to-date full-text index that reflects the latest content of a database.
For information on creating and deleting indexes, see Lotus Notes Help. For information on purging or
deleting view indexes with the Update and Updall tasks, see Administering the Domino System.
When users open this database, they’ll see information about the new location.
For example, this button formula adds a database with the replica ID 84254E66:0064508 to the workspace
and then opens the database:
@Command([FileOpenDBRepID];"84254E66:0064508"; "SALES")
The last argument, ″SALES,″ provides the name of the server on which the database is located.
The following topics suggest solutions to common database performance. Some of the recommended
solutions involve changing the database design. You should always test design changes on a template or
a copy of the database before applying them to the production copy.
For more information on transaction logging, see Administering the Domino System.
Use a Domino 6-compliant backup program so users can access databases on a server that is being
backed up. Users can make changes to databases as a backup occurs because Domino provides a
point-in-time image of the database, beginning with the time the database backup starts.
For more information on update frequency, see Administering the Domino System.
For cluster replication problems within a server cluster, consult with your Domino administrator. The log
file (LOG.NSF) provides helpful information for troubleshooting replication problems within a cluster,
and your administrator can help you assess the operation of your cluster.
For more information about replication and server clusters, see Administering Domino Clusters.
Replication settings
Some replication settings cause one replica to receive only a subset of documents and features from
another replica.
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.
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.
A Notes database typically includes many different types of notes. When you enable a Domino server for
DB2, Domino stores its Notes data in DB2. A DB2 database consists of multiple tables that are composed
of columns and rows. Data in DB2 databases is accessed and manipulated through Structured Query
Language (SQL) statements.
When a Notes database is enabled for DB2, Domino creates a DB2 database schema for it, as well as a set
of tables in that schema to hold the Notes database data. The schema name is based on the NSF file
name. Any DAVs you create will also be located in this schema.
Including all of the notes in an NSF in a single DB2 table would not be effective for SQL access, because
a set of notes does not typically have a uniform set of fields (or columns, in a DB2 database) and
therefore would probably not be able to be grouped in ways that make sense for SQL queries. To make
SQL access useful and manageable, you must define DB2 views that specify the columns you want to
access via SQL, and the notes that belong in this view (which constitute the rows of the view).
You define and manage these DB2 views of your data using a design element called the DB2 Access view
(DAV). The DAV is a shared resource that enables Notes designers to create views of data in DB2 enabled
Notes databases. While the DAV actually exists in DB2, it is accessible by both Domino and non-Domino
applications.
For example, suppose you have an NSF that contains mailing list information for several different groups,
and you want to consolidate information for three of those mailing lists: PTA, Book group, and
Playground fund raiser. These mailing lists (forms) all contain the same basic information -- name,
address, city, zip -- as well as some other information specific to each activity.
When you create a DAV for this NSF data, you select the four address fields from the ’PTA’ form to
define the columns in DB2. (As these fields are the same on all forms, it does not matter which form you
use to create the column definitions.)
Next, you select which notes you want to appear in the DB2 view by selecting all three of these forms.
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 user’s 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.
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 Enter the field name if adding a new field.
This is the matching field name for the DB2 column in the DAV, so it must be the
actual name of a field that appears in the note (otherwise no matching field would be
found and the column in the DB2 view would be blank)
Note: If you used the Choose Field method of specifying the fields for the DAV, you
will be able to edit the field names in the properties, but if you change the field name
so that it no longer matches a field name in the note, the corresponding column in the
DB2 will be blank.
Notes type Indicate the Notes data type for this field
Note: Formula, rich text, and rich text light Notes data types are not supported for use
in DAVs.
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.
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.
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 Enter information about the DAV
Select the form(s) Specify the row selection criteria by doing one of the following:
associated with this v Select all forms to associate all forms in the database with the DAV. All data notes in the
DB2 Access view NSF will have a row in the access view.
v Select individual forms from the list box to associate with the DAV. This list is used by
DB2 to determine the data with which to populate the DAV. Only data notes with a
FORM item matching one of the selected values will be in the view.
Field Action
Compute with form on DB2 insert or update Enable this option if the selected form(s) contain computed
fields and you want the formulas to be computed when the
note is created or updated using SQL.
Default form to use for DB2 inserts DB2 users can perform inserts, updates, and deletes (given
the right permissions) against data in the DAV. However,
you can only perform these operations against one form
associated in the DAV definition, even if multiple forms are
selected. Specify the form that will be used for DB2 inserts,
updates, and deletes.
Field Action
Include UNID in access view Select to have the Notes UNID for each field appear in the
DAV.
Include OID in access view Select to have the OID for each note appear in the DAV. If
SELECTed in the Query View’s SQL formula, allows
document links to work when notes are selected and
copied as a table.
Include modified time in access view Select this option to include the Notes modified time for
each note in the DAV. Note that this timestamp is
modified to GMT.
Normalize to GMT for time zone conversions Select this option to standardize all dates and times in the
DB2 view to GMT. This is especially useful for distributed
DB2 applications that are accessed by users in different
time zones.
Notes:
The Populate task is an asynchronous server task. No notification of task progress is provided. Click
Refresh List to check on the task status.
Populating a DAV against a large data set can be time consuming and contribute to server load. If you
have created a DAV for a large database, consider populating the view during off hours.
Populating the view is a one-time event. After the view has been populated, it is kept in sync with
normal Note updates and DB2 updates.
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.
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.
Troubleshooting DAVs
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.
There are two options for saving the date and time in DAVs -- local time or modified to GMT
(standardized). You choose the way you want them handled using the advance tab on the ″Access View
Entry″ properties page, and then set the ″Normalize to GMT for time zone conversions″ field accordingly.
Note: You must rebuild your DAV if you change this setting for an existing DAV.
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)
Note that a production formula may need to be a little more robust because @Zone can return an hhmm
value if the server’s time zone is not a whole hour multiple away from GMT.
For information on system administration templates, see the topic ″Application and System Templates″
found in Administering the Domino System or in the Lotus Domino Administrator Help.
In the table, an asterisk (*) indicates that additional information on this template appears in the Domino
Designer Templates Guide available on the Lotus Developer Domain Web site:
http://www.lotus.com/ldd/doc.
479
480 Application Development with Domino Designer 7
Appendix B. Importing to and exporting from
views
Importing data allows you to move data from another system into a view. Exporting data allows you to
create a table of the data in a view for use in a presentation or report.
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 you’ve 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 doesn’t 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.
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.
There is a limit of 1536 total characters per record for tabular text imported into a view.
A COL file is an ASCII text file that contains a series of column definition statements, followed by a
section containing formulas that control the contents of fields in the Notes view. You write one statement
for each column in the source file. This statement describes how to format and map the columns in the
source file to columns in the Notes view. For best results, use exactly the same field names in the COL
file and in the Notes view.
If you use field names in the COL file that are not in the Notes view, Notes imports the data for those
fields, but the data won’t appear in the form or view until you create Notes field names that exactly
match those in the COL file. For example, if the COL file uses the field name ″Phone″ and the Notes view
uses ″PhoneNumber,″ data for the ″Phone″ field is present in the view but is not displayed. To correct
this problem, change the name of the existing Notes field to ″Phone,″ create a synonym for the existing
field, or create a new Notes field called ″Phone,″ and refer to the field in the view you’re using.
The data in the source column must fit the data type you specify. If Notes encounters data that doesn’t
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:
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.
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.
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.
If there is no delimiter at the end of the record (row), you identify the end of the last field as a null (″″).
For example, if the source data contains a LastName field that is 12 characters wide and the view
contains a field named LastName, the COL file must contain the following column definition:
LastName: START 01 END 13
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.
For example, the following line of a COL file tells Notes to ignore 4 heading lines and 1 footer line and
sets the maximum number of lines per page to 66:
HEADERLINE 4 FOOTERLINE 1 LINESPERPAGE 66
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, it’s 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.
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.
The result of a tabular export may not look exactly like the view. Views use a proportionally spaced font,
but exports use a monospaced font. Export a few documents as a test. Then, if necessary, adjust the
column width settings in the view before you perform the whole export.
To display or edit the contents of a view in a Notes document, export the view to a tabular text file. Then
import the tabular text file into a Notes document.
To export a view
1. Select the database and open the view you want to export.
2. (Optional) Select specific documents to export only a subset of the view.
3. Choose File - Export.
4. Select the file format you’re exporting to.
5. Do one of the following:
v To replace an existing file, select a directory and file name from the list.
v To create a new file, enter a new file name.
v To append to an existing tabular text file, select a directory and file name from the list.
6. Click Export.
7. If you selected an existing file, do one of the following:
v To replace the file, click Replace.
v To append to an existing file, click Append.
8. Click ″All documents″ unless you selected specific documents in Step 2.
9. (Optional, for comma separated value format) Select an export character set.
10. (Optional, for 1-2-3 worksheet or tabular text formats) Select ″Include View titles″ to export the
view’s column headings to a worksheet or tabular text file.
11. (Optional, for structured text format) Change the inter-document delimiter and word-wrap settings if
you are exporting to a structured text file.
12. Click OK.
To support MAPI, Domino includes these service providers, which provide access to the Domino
message, directory, and transport services from simple or extended MAPI clients:
v Address Book provider
v Message Store provider
v Message Transport provider
Using the MAPI classes and methods supported by the Domino MAPI service providers, you can write
C++ programs to manipulate Domino objects.
A list of supported MAPI classes and methods appears at the end of this appendix.
The provider searches all name and address books on a server. To specify that the provider search
additional Domino Directories when doing address lookups, set the NAMES= setting in the NOTES.INI
file to include the file names of additional Domino Directories to search. Also, add the names of the
Domino Directories for Options - Addressing during MAPI profile setup.
The Address Book provider searches the Domino Directory for recipients’ names according to the order
specified in the profile.
Any simple or extended MAPI client can use the Address Book provider to access a Domino Directory.
MAPI creates an Outbox folder the first time the Domino Message Store is accessed. The Outbox folder
captures outgoing messages you send from any extended or simple MAPI client (for example, Microsoft
Outlook or Office) when you are not connected to the LAN. Messages addressed to Notes recipients are
stored in the Outbox folder and placed in the local mail.box database in Domino. Once a connection to
the server is re-established, the messages are transferred. Messages addressed to non-Domino recipients
are placed in the outgoing mail queue, the exchange.box database, and the MAPI spooler handles them.
The MAPI folder interface is mapped onto Domino folders. You can create, move, copy, rename, and
delete folders. You can also create or delete file attachments in messages you compose while using the
client application. Attachment data is set or obtained using the IStream or IStorage interfaces. RTF and
native HTML are supported.
491
The Message Transport provider
The Domino Mailer and Router transfers messages between Notes users. When the MAPI spooler
receives messages composed in a non-Notes message store, the Domino MAPI Message Transport
provider registers address and message types and sends messages to Notes recipients. If one or more
recipients are not of ADDRTYPE Notes, the Mail Router passes the messages to the MAPI spooler.
For information about MAPI service providers, see the topic ″Using Microsoft mail programs with Notes″
in Lotus Notes help.
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.
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.
@Function Comments
@Certificate
@DbCommand Available only with the syntax
@DbCommand(″Domino″;″ViewNextPage″) and @DbCommand
(″Domino″;″ViewPreviousPage″) to create a link to the next/previous
page in a view. Not available in other contexts.
@DDEExecute @DDEInitiate @DDEPoke
@DDETerminate
@DocMark @DeleteDocument
@DocChildren @DocDescendants @DocLevel Not available except in column formulas.
@DocNumber @DocParentNumber
@DocSiblings
@IsCategory @IsExpandable @Responses
@DialogBox @PickList @Prompt
@IsModalHelp
@GetPortsList
@Environment @SetEnvironment Use predefined field names to gather information about the Web
ENVIRONMENT keyword user’s environment by requesting Common Gateway Interface (CGI)
environment variables.
@MailSend
495
@Function Comments
@Domain @MailDbName
@MailEncryptSavedPreference
@MailEncryptSendPreference
@MailSavePreference @MailSignPreference
@IsAgentEnabled
@IsDocBeingMailed
@Unique @URLGetHeader @URLHistory
@UserPrivileges
@Platform for user’s platform. Returns server’s platform only. Use @ClientType to distinguish
between Web and Domino users.
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
Manually From Actions Menu 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.
″If Documents Have Been Pasted″ and the The concepts of ″pasted documents″ and ″selected documents″
document selection option ″Selected don’t apply to Web applications.
documents″
Form and view actions
Include action in Action menu Web users do not have an Actions menu. Use the option ″Include
action in button bar″ instead.
Default form and view actions that use system Use supported @commands to create the equivalent actions.
commands (such as *Edit Document,
*Categorize)
Programs for actions and agents
Simple actions
LotusScript for forms, actions, and buttons Supported for agents only.
″Alias a folder″ simple action Dragging and dropping to folders is not available on the Web.
Feature Comments
Bullet characteristics in an ordered list (sizing The color and size of a bullet in an ordered list cannot be
and color) manipulated on the Web.
International characters The international characters that are supported on the Web vary
depending on the browser version and the fonts installed on the
platform used to view and edit text on the Web.
First-line indent or outdent in a paragraph
Full justification paragraph alignment
Images Avoid this feature if editing a document with both the Notes
client and the editor applet.
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 Avoid this feature if editing a document with both the Notes
client and the editor applet.
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.
Navigators Comments
Info properties
Auto adjust panes at runtime
Objects
Polyline objects Polyline objects display on the Web, but clicking them has no
effect.
HiLite properties
Highlight when... options for navigator objects
Domino view and folder properties that are not supported on the Web
Avoid using the following view and folder features in a Web application.
Beveled headings
Advanced properties
Note: If you embed a view, you cannot dynamically sort a categorized column on the Web or in a Notes
client.
Feature Comments
Pass-Thru HTML
View Info properties
Calendar views Calendar views are not supported. The HTML Calendar view
will be generated even if view applet is selected.
Options properties
On Refresh None of the ″on refresh″ options are supported.
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 The available fonts are limited to a subset of fonts supported by
Java.
Title properties
Font The available fonts are limited to a subset of fonts supported by
Java.
Advanced properties
Show values in this column as links
You can also use the Lotus formula language of @functions and @commands to allow users to work in a
Web application. For information about using @commands and @functions, see the Domino Designer
Programming Guide.
You can also use Java, JavaScript, Visual Basic Script, Perl script, and CGI programs to automate tasks in
a Web application.
For more information on programming a Web application, see ″Programming Domino for Web
Applications″ in the Domino Designer Programming Guide.
http://Host/DominoObject?Action&Arguments
Where
v Host = a DNS entry or an IP address
v DominoObject = a Domino construct (for example, a database, view, document, form, navigator, agent,
and so on). URL commands for accessing DominoObjects use the following syntax:
http://Host/Database/DominoObject?Action&Arguments where Database = the database in which the
DominoObject resides.
v Action = the desired operation on the specified DominoObject (For example, ?OpenDatabase,
?OpenView, ?OpenDocument, ?EditDocument, ?OpenForm, and so on).
v Arguments = a qualifier of the action (for example, Count = 10 combined with the ?OpenView action
limits the number of rows displayed in a view to 10).
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 DominoObject’s 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 DominoObject’s 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 document’s 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 won’t 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 won’t 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
CAUTION:
If the database property ″Do Not Allow URL Open″ is set, these URL commands are disabled.
Note: The URLs shown below are for example only. They do not point to existing Web sites.
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
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
Collapse=n
Where 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
Count=n
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
RestrictToCategory=category
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
Collapse = n
Where:
CollapseView
Count = n
Where:
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
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 server’s locale is used for all formatting. Without this
argument, the XML output stream contains information in structured, locale-neutral formats.
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
Where:
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.
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
OpenFrameset
Note: The URLs shown below are for example only. They do not point to existing Web sites.
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
Note: The URLs shown below are for example only. They do not point to existing Web sites.
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.
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
Where UniqueIDNumber is the document ID of the parent document, which is used in response forms or
when the form property ″Formulas inherit values from selected document″ is selected.
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
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
Note: The URLs shown below are for example only. They do not point to existing Web sites.
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.
http://Host/Database/FormName?CreateDocument
Where:
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:
$first
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
Note: The URLs shown below are for example only. They do not point to existing Web sites.
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.
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.
Note: The URLs shown below are for example only. They do not point to existing Web sites.
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
CollapseOutline=[n]
Where n is the triangle at the top level of the outline. It is possible to collapse triangles in hierarchical
order. For example, &CollapseOutline=2.1.3 will collapse 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.
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
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.
Syntax
http://Host/Database/View/Document/$File/Filename?OpenElement
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
Syntax
http://Host/Database/View/Document/FieldName/FieldOffset?OpenElement
http://Host/Database/View/Document/FieldName/FieldOffset?OpenElement&FieldElemFormat=
ImageFormat
Where ImageFormat is either .GIF or .JPEG. If you do not specify FieldElemFormat, Domino assumes the
image file format is .gif.
Syntax
http://Host/Database/View/Document/FieldName/FieldOffset/$OLEOBJINFO/FieldOffset/obj.ods?
OpenElement
Note: The current URL syntax for referencing images and objects in Notes documents -- specifically the
FieldOffset -- makes it impractical to create these URLs manually. As an alternative, you may paste the
actual bitmap or object in place of the reference, create URL references to files stored in the file system, or
attach the files to the documents.
Note: The URLs shown below are for example only. They do not point to existing Web sites.
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.
Where:
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
The special identifier $SearchForm indicates that Domino will present a search site form for search input.
If this identifier is provided, ArgumentList is ignored.
ArgumentList
The ArgumentList must contain the Query argument; in addition, it may contain any or all of the other
arguments in any order.
Query=string
Count=[n]
Where n is the number of results to display on each page until the SearchMax has been reached. For
example Count=10 will display 10 results per page.
Scope=[1,2,3]
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]
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.
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
Never specify Count=n or Start=n Always specify SearchMax=0 Set the Web site’s 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
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.
Tip: To avoid syntax errors, use @ReplaceSubstring(Query; ″″ ’ ″+″) to replace all of the spaces in your
query with plus signs (+).
Login argument
To force user authentication regardless of the database access control list, append the Login argument to
any Domino URL. This ensures that anonymous Web users who weren’t initially prompted for a name
and password when they entered the site are required to supply a name and password to complete tasks
that require user identity.
Note: The URLs shown below are for example only. They do not point to existing Web sites.
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.
Note: The URLs shown below are for example only. They do not point to existing Web sites.
Syntax
http://Host/Database/FormName?OpenForm&SpecialAction=specialActionField
Where:
″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
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 user’s 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
The OpenPreferences command works by setting a cookie for a user’s preferences. The server retrieves
the information from the user’s cookie and responds with the specified formats and preferences for that
user.
When designing an application, you might create a button that launches this URL command so that
browser users can set their preferences without having to enter the command themselves.
Note: The URLs shown below are for example only. They do not point to existing Web sites.
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
&PreferenceType=Menu
Displays only the Menu page, with links for opening the Time Zone and Regional preference pages.
&PreferenceType=Time Zone
Displays only the Time Zone selection page. The defaults dispayed are the server settings. Users can
either select custom settings and apply them by clicking the Custom button, or click the Server button to
apply the server settings as their preferences.
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 user’s 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.
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
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 server’s
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.
A CGI program can run immediately after the user submits a document. You might specify when you
want to use the Notes API to further process the data. To run a CGI program this way, add a field named
$$Return, and use HTML instructions as the field value.
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 user’s name, the browser, and the user’s
Internet Protocol (IP) address.
http://hoohoo.ncsa.uiuc.edu/cgi/env.html
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.
Press To do this
ALT+B, then number (extended accelerators in User Open bookmark on Bookmark bar
Preferences must be enabled)
ALT+F5 Restore Designer to default minimized size
ALT+F7, then ARROW KEYS, then ENTER Move position of active window
ALT+F8, then ARROW KEYS, then ENTER Change size of active window
ALT+F9 Minimize active window
ALT+F10 Maximize active windows
ALT+underlined letter for menu item Access menu item
ALT+underlined letter for menu item, or ARROW KEYS Move to next menu item
ALT+W, then number (extended accelerators in User Open window tab on task bar
Preferences must be enabled)
CTRL+BREAK Stop operation in progress
CTRL+L, type URL, then ENTER Go to a Web page
CTRL+Q or ALT+F4 Exit Designer
CTRL+TAB Move to next window tab
ESC or CTRL+W Close active window
F1 Get Help on current feature
F5 Lock User ID
F6 Move to next pane or frame
F10 or ALT Access menu bar
SHIFT+ALT+S Open search menu
SHIFT+CTRL+TAB Move to previous window tab
SHIFT+CTRL, then UP ARROW or DOWN ARROW Select multiple bookmarks or Bookmark folders
Note: In any form, page, or document there could be several embedded elements (the date picker in the
Calendar is an example of an embedded element). You can navigate to an embedded element, give focus
within the embedded element, and then remove the focus to continue navigating through the form, page,
or document. When focus is in an embedded element, the thin black frame around it disappears. When
focus is removed from an embedded element, the thin black frame reappears.
Press To do this
ARROW KEYS Move through embedded element
CTRL+N Create new database
CTRL+O Open database
ENTER Select item in embedded outline
ESC Exit embedded element
ESC or CTRL+W Close current database
F9 Refresh current document (in Edit mode), view or workspace
MINUS (-) key Collapse folder in embedded outline
PAGE DOWN Move to bottom of active page
PAGE UP Move to top of active page
PLUS (+) key Expand folder in embedded outline
SHIFT+CTRL+F9 Update all views in current database
SHIFT+F9 Rebuild current document, view, workspace (must have Manager access)
SPACEBAR Give focus to embedded element
UP and DOWN ARROW Move through embedded outline
Press To do this
DOWN ARROW or RIGHT ARROW Select next item in a list or set of options in dialog box
ESC Cancel changes and close dialog box
F1 Get Help on current dialog box
SHIFT+TAB Move to previous option or set of options in dialog box
SPACEBAR Access default or selected item(s) in dialog box
TAB Move to next option or set of options in dialog box
Press To do this
ALT+DOWN ARROW Open Color box in Font tab
ALT+UP ARROW Close Color box in Font tab
ALT+ENTER Open or close properties box
CTRL+ALT+ENTER Open or close express tools in properties box
CTRL+END Move to last properties box tab
CTRL+HOME Move to first properties box tab
CTRL+PAGE DOWN Move to next properties box tab
CTRL+PAGE UP Move to previous properties box tab
DOWN ARROW or RIGHT ARROW Select next item in a list or set of options in properties box
ENTER Activate default or selected item(s) in properties box
ENTER Close Color box in Font tab and activate selection
ESC Close Color box in Font tab without activating selection
F1 Get Help on current properties box
SHIFT+CTRL+END Move to first properties box in list
SHIFT+CTRL+HOME Move to last properties box in list
SHIFT+CTRL+PAGE DOWN Move to next properties box in list
SHIFT+CTRL+PAGE UP Move to previous properties box in list
SHIFT+TAB Move to previous option or set of options in properties box
TAB Move to next option or set of options in properties box
UP ARROW or LEFT ARROW Select previous item in a list or set of options in properties box
Press To do this
CTRL+DOWN ARROW Move to next highlighted search word in document appearing in
preview pane
CTRL+E Edit document
CTRL+END Move to bottom of document
CTRL+F Find text and replace
CTRL+G Find next occurrence of text
CTRL+HOME Move to top of document
CTRL+P Print selected document
Press To do this
CTRL+A Select all contents of document
CTRL+C Copy selected text or object
CTRL+DOWN ARROW Move item in list or table one row down
CTRL+UP ARROW Move item in list or table one row up
CTRL+V Paste text or object
CTRL+X Cut selected text or object
DELETE Delete selected graphic
DELETE Delete selected text or object
SHIFT+CTRL+DOWN ARROW Select text up to same point of next line
SHIFT+CTRL+LEFT ARROW Select previous word
SHIFT+CTRL+RIGHT ARROW Select next word
SHIFT+CTRL+UP ARROW Select text up to same point of previous line
SHIFT+DOWN ARROW Select text to end of current line, move focus to next
SHIFT+END Select text to end of current line
SHIFT+HOME Select text to beginning of current line
SHIFT+LEFT ARROW Select previous character
SHIFT+RIGHT ARROW Select next character
SHIFT+UP ARROW Select text to beginning of current line, move focus to previous
Press To move to
CTRL+LEFT ARROW Beginning of current word
CTRL+RIGHT ARROW Beginning of next word
END End of line
HOME Beginning of line
SHIFT+TAB Previous field in a form
SHIFT+TAB Previous row in table
TAB Next field in a form
TAB Next row in table
Press To do this
CTRL+B Bold selected text
CTRL+E Put document in Edit mode (toggle)
CTRL+F Find text and replace
CTRL+G Find next
CTRL+I Italicize selected text
CTRL+J Format paragraphs (alignment, spacing, etc.)
CTRL+K Format text (font, size, color, etc.)
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 Underline selected text
CTRL+Z Undo last action
F2 Enlarge selected text to next available point size
F7 Indent first line in paragraph
F8 Indent entire paragraph
F9 Refresh current document (in Edit mode), view, or workspace
F11 Cycle through paragraph styles from Paragraph Styles tab in Text Properties box
SHIFT+CTRL+L Insert page break
SHIFT+F2 Reduce selected text to next available point size
SHIFT+F7 Outdent first line in a paragraph
SHIFT+F8 Outdent entire paragraph
Note: In any view, folder, or pane, there can be several embedded elements (the date picker in the
Calendar is an example of an embedded element). You can navigate to any embedded element, give focus
within the embedded element, and then remove the focus to continue navigating through the view,
folder, or pane. When focus is in an embedded element, the thin black frame around it disappears. When
focus is removed from an embedded element, the thin black frame reappears.
Press To do
ARROW KEYS Move between views and folders
ARROW KEYS Move through embedded view
ASTERISK (*) key on numeric keypad Expand collapsed view, category, or folder with subsections
BACKSPACE Open previous document in current view or folder
CTRL+END Move to bottom of navigation pane or view pane
CTRL+HOME Move to top of view navigation pane or view pane
END Move to far right of view pane
ENTER Open next document in current view or folder
ENTER Open selected view or folder
F6 Move to next pane or frame
HOME Move to far left of view pane
MINUS (-) key Collapse expanded view, category, or folder
PLUS (+) key Expand collapsed view, category, or folder
SHIFT+8 Expand all collapsed views, categories, or folders with subsections
SHIFT+BACKSPACE Select previous document in view
SHIFT+F6 Move to previous pane or frame
TAB Move to next unread document in embedded view
Note: In any view, there can be several embedded elements (the date picker in the Calendar is an
example of an embedded element). You can navigate to any embedded element, give focus within the
embedded element, and then remove the focus to continue navigating through the view. When focus is in
an embedded element, the thin black frame around it disappears. When focus is removed from an
embedded element, the thin black frame reappears.
Press To do this
CTRL+A Select all documents in view
CTRL+C Copy selected document
CTRL+F Find text in view
CTRL+P Print selected document or view
CTRL+V Paste selected document
CTRL+X Cut selected document
DELETE Delete selected document (place document in Trash folder)
539
Agents, uses for (continued) Applets (continued) Backgrounds
renaming fields 415 outline 223 for pages and forms 60
resaving documents with 415 view 200 Billing
Agents, working with Web applications and 25 forms for 101
Agent Manager debugging 264 Application design elements reserved fields for 142
calling 240 security 383 Bitmap files. See Graphics 59
chaining together 266 Applications BlindCopyTo field 143
compared to servlets and CGI annotating 407 BMP files. See Graphics 226
programs 307 automating 235, 337 Body field 141
copying 254 completing 403 described 415
creating 250, 368 creating bookmarks 35 Bold text
debugger settings 263 deploying 408 in Web applications 118
debugging 261 design tips 17 Bookmark bar
deleting 254 documenting 404 creating bookmarks on 35
described 11, 237 for mobile clients 23 creating link to databases 35
disabling 254 mail-enabled 343 enabling keyboard navigation 531
enabling 253 managing 435 Bookmarks
examples 256 master design copies 408 organizing applications 35
invoking 307 overview of Domino 1 using 35
naming 274 planning 17 Borders
profiling 262 planning for Notes and Web 17 for embedded elements 62
renaming 413 previewing 46 for frames 149
restricted operations for LotusScript setting launch properties for 418 Browsers
and Java 270 testing 412 designing applications for 17
restricting 368 Archives, database differences 18
run-time statistics 263 creating 456 hiding paragraphs from 137
running 240 Arguments launch options 418
security for 257, 307 setting for Java applets 295 proxy settings for 46
simulating a run 261 Attachments setting up for previewing 46
triggering 251, 253 creating 61, 93 using Print statement to instruct 269
viewing 237 opening with URL commands 517 using with Notes client 118
viewing the log 263 Attributes Buddy lists
Web and 496 HTML 139 embedding 63
Aliases Authentication Button bar
choice list 129 for Web users 373 described 242
converting to full names 129 URL commands and 522 Buttons
form names 80 user names 373 creating 22, 246
in ACL 373 Author access customizing icon 37
servlet names 309 actions 366 defined 236
Alternate HTML privileges 368 deleting 246
described 297 Authors editing 246
Alternate names anonymous 83
in ACL 373 Authors field
Alternate text tag
for images and Java applets 25
creating 385
described 384
C
CAB files
Annotating restricting read-access with 384
described 294
applications 407 updating 386
Calculating
documents 88 Autolaunching
cell values 183
fields 406 defined 332
field values 120
Anonymity objects 327, 333
Calendar controls
protecting 83 Automating
adding to a page or form 62
Anonymous access level applications 235, 337
creating 124
in ACL 373 described 11, 235
Web use of 496
Anonymous field formulas for 272
Calendar views
on forms 386 hiding components 275
creating 193, 496
Anonymous forms JavaScript and 273
defined 155
creating 83 navigators 228
described 157
AppletBase replies 346
formatting 193
extending 300 security features and 272
using with the embedded
Applets using LotusScript 269
scheduler 93
action bar 242 Averages
Cascading
adding to a page or form 61 calculating 183
form names 80
creating 242
Cascading Style Sheet. See CSS 24
described 307
Categories
editor 118
font support and 200
B adding to views 186
Background processing columns 187
listed 25
on Web pages 528 field for creating 142, 187
Index 541
Data Connection Resources. See Databases (continued) Debug_AMgr statement
DCRs 283 replicating 438, 446 described 264
Data entry replication history 458 DEBUG_OUTFILE statement
fields for 133 replication log 459 described 264
Data types response forms 85 Debugging
defined 113 restricting creation of 257 agents 261
list of 116 roles 370 Java applets 304
listed for choice list fields 127 rolling out 435 NotesLog class 265
Database access security 365, 378 Decimal places
access level conflicts 380 shared resources across 38 in Number fields 120
troubleshooting 464 shortcut keys 533 Decimal symbol
Database activity size 461 described 120
monitoring 461 size limits 437 Decrypting documents
reporting 463 size, controlling 454 overview 395
statistics 462 statistics 461 DECS
Database analysis summary 413 described 283
of replication events 458 synchronizing 424 Default field values
Database cache templates 424 for editable fields 134
performance problems and 465 titles for 31 Default group
Database creator troubleshooting 464 access level 372
access level 372 unlinking 429 DeleteDocument command
Database design unlocking design elements in 432 described 512
changing 425 URL commands and 505 Deletion stubs
replicating 467 Datalens purging 440, 469
templates and 31 ODBC and 290 DeliveryPriority field 143
Database icons Date picker DeliveryReport field 143
creating 403 adding to a page or form 62 Deploying
replacing 428 in Web applications 496 applications 408
Database libraries Date separator Depositor access
design library template 422 described 121 actions 366
Database performance Date/Time controls privileges 368
troubleshooting 461, 464, 465 described 124 Design
Database properties Date/Time fields changing 429
for enabling connectivity 288 described 121 hiding 33, 431
Database titles Date/Time formats linking 423
replicating 467 setting for Web applications 524 maintaining 411
Databases Dates preventing changes 408
access control lists 383 displaying 170 refreshing 426
access control log 373 entering 121, 124 replacing 428
access problems 464 formatting 121, 170 replication and 429
administration servers and 387 formula language 123 templates and 419, 429
as external data sources 286 ranges 121 updating 426
connecting to 283, 284 DAV. See DB2 access view. 471 Design action buttons
controlling access to 365 DB2 described 3
copying to servers 435, 437 connecting to 287 Design changes
creating 31, 423 integrating with 21 making 425
creating bookmarks to 35 DB2 access view 471 templates and 31
defined 1 creating 473 Design elements
documenting 404 managing 475 automating 250
editing with WebDAV 278 security 472 copying 36, 422
encrypting 393, 438 troubleshooting 476 hiding 432
external 290 DB2 query view library of 422
forcing replication 447 @ functions 211 linking 424
hiding 432 creating 208 listed 1
icons 403 managing 210 locking 432
importing external records from 289 DB2 query views 207 multiple selection of 430
Internet security 381 DCRs previewing 46
launching 152, 418 creating 286 protecting 429
linking 423 customizing 287 templates and 424
locking design elements in 432 data sources and 286 unlinking 429
mail features and 345 described 283 unlocking 432
managing 435 enabling 288 updating 426
monitoring 380 fields and 288 Design library template
moving 464 importing external records 289 described 422
previewing 418 overview of 285 Design properties
renaming 413 specifying default 288 setting for multiple elements 430
replacing design of 428 using on forms 288
Index 543
Embedding (continued) Examples (continued) Fields, types of (continued)
editors 96 password fields 130 color 132
error message 329 replication 444 combobox 127
folders 197 restricting access 389 computed 80, 133
navigators 196, 231 servlets.properties file 309 computed for display 133
objects 327 Excel files computed when composed 133
outlines 216 importing from and exporting to 481 data entry 133
views 196, 197 Exchanging date/time 121
Encapsulated documents 143 field data 338 dialog list 127
Encrypt field 143 Execution Control List. See ECL 300 editable 133
Encryption Expanding embedded elements 142
database 393 sections 387 formula fields 131
default 399 views 183, 505 hidden 83
defined 394 Exponential notation HTML 140
described 392 described 120 list box 127
document 394 Exporting mail-enabling 142
examples 130, 395 files 481 Names 125
field 394, 395 Java applets 300 Numbers 120
levels 393 views 487 password fields 130
views and 398 views as CSV 487 radio button 127
Encryption keys Extended accelerator keys reserved 142, 143, 145, 415
changing 398 enabling 531 rich text 117
creating 396 Extended ACL rich text lite 117
defined 394 described 365 shared 114
distributing 396 External database access text 117
exporting 396 with Domino Connectors 283 time zone 133
fields for 142, 398 with Lotus Enterprise Integrator 283 Fields, working with
listing 398 with ODBC 290 adding to existing documents 415
mailing 396 ExternalData parameter annotating 406
managing 396 in Java applets 302 CGI variables and 528
merging 397 Externalization for Java applets copying 113
password fields and 130 described 302 creating 113, 338
secret 142 default active 135
Entry helper button default values for 120, 134
described 127
ERP systems
F defined 75
deleting 113
federated data 207
connecting to 283 described 113
Field data
Error executing agent disabling field input 134
deleting from documents 113
error message 265 editing 390
exchanging 338
Error handling enabling field input 134
shared fields and reassigning 114
on forms 105 encrypting 394, 395
Field formulas
Error messages examples 339
creating 133
customized forms for 105 exchanging data in 327
described 134
OLE objects and 329 formatting for the Web 139
Field help
Events formulas 134
writing 406
agent 238 hiding 56, 137
Field label
calendar view 238 HTML attached to 139
defined 116
click 238 inheriting documents in 141
Field names
database 238 inheriting values in 140
described 116
described 238 layout regions and 138
requirements for 116
field 238 modifying 266
Field types. See Data types 113
form 238 naming 116
Field values
page 73 recalculating computed 133
calculating 133
programming 238, 250 renaming 116, 415
default for editable fields 134
view 238 replacing field values 266
displaying 173, 415
Examples resizing 138
Fields
access control sections 388 setting input validation formula 134
authors 385
agents 346 setting translation formula 134
DCRs and 288
automating navigators 228 shared resources as 38
described 113
choice list field generation 128 signing 388
enabling for instant messaging 126
customizing window titles 88 testing 409
encrypting 394, 395
encryption 395 Web and 497
in Notes and Web applications 18
exchanging data 339 File field
readers 385
fields 339 described 415
Fields, types of
hiding 335 File formats
category 187
hotspots, text pop-up 248 importing from and exporting to
checkbox 127
inheriting information 140 views 481
choice list fields 127
Index 545
Grid lines Hotspots Importing (continued)
displaying in views 183 action hotspot 249 Java applets 294
Group calendars button hotspot 246 lines per page 482
in Web applications 496 creating 227 navigators 232
Group names defined 11, 227 Indenting
ACL 372 examples 236 response documents 188
Guides. See Navigators, Outlines 213 imagemaps and 233 Indexes
navigators and 227 updating 463
pop-ups 248 Indexes, full-text
H Web applications and 499
HTML
updating 463
Info field
Handheld devices
adding 63 described 415
designing for 23
adding an editor to Designer 277 Inheriting
Headers
attributes 139, 297 creating fields for 140
creating 83
core attributes 24 documents in fields 141
Headlines database
defined 316 field values 134
described 131
displaying information with Print related documents 85
subscriptions and 37
statement 269 subjects in a response hierarchy 141
Help
formatting 139 Input Enabled property
context-sensitive 405
generating for hidden fields 83 enabling field input 134
databases 407
on pages and forms 63 Input forms
for fields 406
passing to server 142 described 98
forms 407
referencing objects with JavaScript 24 Input translation formulas
overview 404
tag attributes 24 defined 134
Hide-when conditions
viewing frameset source 147 settings for field 134
CGI fields and 528
XML and 315 Input validation formulas
columns and 172
HTML editor defined 134
field settings 137
using 63 Instant messaging
options, setting 23
HTML field 140 adding to an application 47
Web use and 512
HttpSession instance 309 enabling for fields 126
Hide-when fields
enabling in views 171
in Notes and Web applications 18
International characters
Hiding
automated components 275 I displaying on Web 118
in Web applications 498
button hotspots 246 Icon buttons
Internet
columns 183 customizing 37
SSL security and 381
databases 432 Icons
Italic text
design elements 23, 432 creating database 403
in Web applications 118
designs 33, 431 custom icons in views 178
documents 335 displaying in columns 178
elements from mobile clients 23 download 349
examples 335 identity 359 J
fields 56, 137 Image files JAR files
formula pop-ups 248 described 517 described 294
Java applets 297 Image resources Java
menu choices 230 creating 41 Web applications and 25
objects 337 customizing letterheads 41 Java agents
outline entries 217 deleting 41 restricting 368
paragraphs 137 described 38 Java applet properties
section titles 387 dynamic graphic 43 CodeBase 297
servlet names 309 opening with URL commands 512 CORBA classes 297
subforms 89 renaming 41 CORBA SSL security 297
text pop-ups 248 Image set DocBase 297
views 203, 230 described 43 Size 297
Hierarchical names Imagemaps Java applets
displaying as common name 125 compared to outlines and adding to an application 293
Hierarchy. See Response documents 85 navigators 213 alternate text for 25
Home pages described 233 compared to servlets 307
creating 49 Images. See Graphics 59 copying 299
defined 52 Imperial measurement debugging 304
launching 52 described 120 deleting 299
specifying 407 Importing described 293
URLs 407 column format 481 Domino 25
Horizontal rules documents 481 enabling on workstation 294
creating 54 files into views 481, 487 exporting 300
in Web applications 499 foreign characters and symbols into hiding 297
Host forms views 481 importing 294
described 99 graphics 226 linking to 295
Index 547
Manager access Navigator templates Numbers
actions 366 forms as 199 columns for 171
privileges 368 Navigators formatting in Number fields 120
MAPI. See Messaging application progam accessibility of 224
interface (MAPI) 491 actions in 224
Master design copies
creating 408
adding objects to 224
color 227
O
Object parameter
Menu bar creating 225
in Java applets 302
described 3 designing 224
Objects
Menus displaying 230
drawing 226
actions 240 editing 225
embedding 327
displaying 328 embedding 231
enhancing 227
hiding choices 230 examples 228
hiding 337
shortcut keys 274 formulas and 228
hotspot 227
Messaging graphics and 226
launching 327, 332, 335
adding Sametime to an highlighting 227
linking 327
application 47 hotspots and 227
referencing with JavaScript 24
Messaging application program interface imagemaps and 233
resizing 330
(MAPI) importing 232
updating 331
Address Book provider 491 opening 230
viewing properties and events of 3
classes and methods 493 programming 224
Objects tab 3
Message Store provider 491 renaming 413
OCX. See Custom controls 327
Message Transport provider 492 scripts and 228
ODBC
platforms 492 styling 227
connecting to 287
requirements 492 templates and 199, 231
data sources 290
service providers 491, 492 testing 232
Datalens and 290
spooler 492 text on 227
described 283
Metadata Web 199, 224, 499
using 290
passing 142 No access
views 291
Metric measurement assigning 366
Offline Subscription Configuration profile
described 120 privileges 368
document
Microsoft files Note ID
creating 351
importing from and exporting to 481 finding documents by 466
editing 349, 351
Microsoft Internet Information Server Notes
Offline subscriptions
(MIIS) 503 hiding views 203
overview 349
Microsoft Office Library template Notes applications
OLE
described 479 planning 17
actions and 337
Mobile applications running on Web 17
applications 327
designing 23 Notes Browser
autolaunching objects 334
hiding elements from 23 previewing in 46
automating 337
Multilingual applications Notes classes
connecting to 287
designing for 27 setting up applet access to 300
custom controls 327
URL commands 527 Notes client
exchanging data 338
Web applications and 22, 140
launch properties 333
Notes/FX
launching in-place 334
N enabling 339
Web applications 497
LotusScript 327
Named elements property sheets and 330
NOTES.INI file
formulas for 217 publishing actions using 337
recording debugging information 264
Names resizing 330
NotesFlow
displaying 125 Web and 327
actions 327
entering from a list 125 OLE custom controls. See Custom
applications 327
Names dialog box controls 327
field-exchange 327
displaying 125 OLE DB
NotesFX
Names fields connecting to 287
using 338
described 125 OLE objects
NotesLog class debugging
enabling for instant messaging 126 autolaunching 333
setting up 265
in Web applications 497 debugging 329
NSF files
Naming launching 335
creating 34
ACL entries 373 opening with URL commands 517
NTF files
categories 187 Online chat
creating 411
forms 80 adding to an application 47
defined 31, 419
frames 148 Online status
Designer 479
framesets 147 displaying in views 171
Number fields
Navigating enabling for fields 126
described 120
Web sites 196, 231 OpenAbout command
Numbering
Navigation described 505
documents 173
in Notes and Web applications 18
Index 549
RANGE statement Replication Response hierarchy
described 485 CD-ROM updates 442 creating 85
Read access commands 438, 447 Restricted LotusScript/Java operations
restricting 390 customizing 439 in agents 270
Read access list database design and 467 Restricting
described 390 disabling 442, 446, 468 copying 390
forms 390 document size and 440 design changes 408
Reader access editing conflicts and 469 editing 384
actions 366 enabling 446 forwarding 390
privileges 368 encryption and 438 printing 390
Readers field enforcing consistent ACL 379 RestrictToCategory
creating 385 examples 444 OpenView and 505
updating 386 forcing 447 ReadViewEntries and 505
Readers fields forms and 83 ReturnReceipt field 143
checking 415 history 458 Review requests
creating 384 log file 459 in workflow applications 479
ReadExternalData parameter monitoring 458 Revision tracking
in Java applets 302 non-document elements 440 described 86
ReadForm command planning 438 Revisions field
described 510 purge interval for 440 described 415
ReadViewEntries selective 440 Rich text fields
described 505 settings 438, 439, 443 described 117
Records specifying dates 440 on Web 118
importing 289 templates and 429 Rich text lite fields
Redesigning troubleshooting 466, 468, 469 described 117
forms 414 Web applications 357 Roles
templates 420 WebDAV and 282 assigning in ACL 370
Redirect command Replication conflicts creating 370
described 505 merging 83 Rounding
domain search and 518 Replication formulas in Number fields 120
Reference list using 440 Route. See Navigators, Outlines 213
using 133 Replication history Routing
Reference tab 3 clearing 458 automatic 343
Refreshing displaying 458 Rows
choice list field values 135 specifying dates 440 spacing 183
defined 426 Replication or save conflicts styling 183
designs 426 consolidating 83, 460
field values 133 described 460
Java applets 300
Relational databases
preventing 460
Replication priority
S
Sametime
accessing with ODBC 290 assigning 442
adding to an application 47
connecting to 283 Replies
enabling for fields 126
Renaming automating 346
enabling in views 171
agents 413 Reserved fields
Save conflicts
databases 413 $Anonymous 386
consolidating 460
fields 116, 415 $PublicAccess 391
described 460
forms 413 $UpdatedBy 386
SaveDocument command
navigators 413 $VersionOpt 145
described 512
shared fields 114 billing 101
SaveOptions field 143
views 413 Categories 142
Schedules
Replace Design command contact printing 101
coordinating 93
defined 428 FolderOptions 142, 146
Scientific notation
Replica IDs HTML 142
described 120
assigning access by 373 list of 142, 143, 145, 415
Screen-reader software
Replica stubs SecretEncryptionKeys 142
designing for 25
defined 468 Reserved form names
Script area 3
troubleshooting 468 for navigator or view templates 199
Script libraries
Replicas Resources. See Shared resources 38
defined 38
conflicts 83, 460 Response documents
Scripts
controlling changes 373 columns for 189
creating 250
copying to servers 435 creating 85
deleting 250
creating 438 described 85
Search forms
deletion stubs in 469 indenting 188
described 106
deletions 440, 469 inheriting subject 141
Search results
limiting content 440, 443 Response forms
displaying 518
settings for 438 described 85
navigating 106, 521
size of 467 testing 112
Index 551
Styling (continued) Templates (continued) Tracking (continued)
views 183 replication and 425, 429 server usage 101
Subforms server 31 sessions 309
creating 89 Single Copy 420 unread documents 190
defined 38, 75 unlinking 429 versions 86, 145
described 89 unlinking design elements from 429 TranslateForm argument
examples 89 updating databases with 424 described 522
inserting 89 Terminations group Translation
layers on 66 adding names to 373 applications 27, 129
securing 384, 390, 391, 394 Testing Domino Global Workbench 27
Subject field 141 applications 412 foreign symbols and characters 481
Submit button design 409 Translation formulas
on Web 22 forms 112, 409 defined 133
SubmitCert command navigators 232 setting for fields 134
examples and syntax 522 response forms 112 Trash folders
fields 522 views 410 creating 205
Subscription documents Text designing 205
storing 131 computed 53 in Web applications 205
Subscription forms fields 117 Tree style outline
creating 37 graphics with 138 described 218
Subscriptions navigators and 227 Troubleshooting
described 131 styling 52 agents 261
enabling 37 Web 500 calendar views 193
Subscriptions, offline Text files database access 464
overview 349 exporting 487 database design changes 467
Symbols importing to a view 482, 483 database performance 464
currency 120 Text pop-ups documents in log file 466
Symphony files creating 248 fields 415
importing into views 482 defined 236 framesets 152
Synopsis. See Design synopsis 413 deleting 248 Java applets 304
System actions editing 248 OLE object error 329
creating 240 Text properties replication 466, 468, 469
shortcut keys 536 Truncation
Thousands separator in imported text 482
T setting 120
TIFF files. See Graphics 59
Twisties
customizing 45
Tab order
Time
specifying for fields 135
displaying 170
Tabbed tables
described 54
entering 121
formatting 121, 170
U
Tables Underline
formula language 123
creating 49 in Web applications 118
ranges 121
in editor applet 498 Unlinking
Time controls
in Web applications 499 design elements 429
creating 124
programmable 54 templates and databases 429
in Web applications 496
Tabular text files Unread marks
Time zones
COL files and 486, 487 color 190
fields 133
defined 482 displaying 190
setting for Domino Off-Line Services
exporting to 487 Domino 5 users and 190
subscriptions 363
importing into views 482, 487 UpdatedBy field
setting for Web applications 524
Target frames described 415
Title field
order of precedence 151 tracking edits 386
described 77, 415
specifying 151 Updating
Titles
TeamRoom template designs 426
database 31
described 479 documents 414
frameset 147
Templates Java applet files 38
window 88
agents and 420 objects 331
Toolbars
changing 419, 425 Upgrading
customizing 37
customizing 420 framesets and 147
Tools
defined 31, 419 Java applets and 293
customizing 277
design changes and 31 URL commands
organizing on the Tools menu 278
Designer 479 authentication and 522
shortcut keys 277
fields in 141 count parameters 518
Totals
linking to 423, 424 explicit 514
calculating 183
master 31 for opening resources 512
Tracking
navigator 231 for setting user preferences 524
document status 189
redesigning 420 for Web applications 48, 503
editors 386
replacing design and 428 guidelines 503
Index 553
WebDAV Work area, Designer XML (continued)
configuring 278 described 3 exporting 324
described 277 Workflow formatting with style sheets 317
editing databases with 278 applications 327, 343, 479 generating with an agent 321
replication and 282 defined 343 HTML and 315
WebQueryOpen events features 344 in Domino applications 315
agents and 307 overview 343 Java servlets 323
described 256 Worksheet files tags 315
WebQuerySave events COL files and 484, 485 terminology 316
agents and 307 exporting to 487 transforming 324
described 256 importing into views 482 viewing 324
WebSphere WriteExternalData parameter XSL
integrating with 21 in Java applets 302 style sheets 313
Width WriteObject parameter XML 317
columns 183 in Java applets 302 XSLT
Window tabs defined 316
described 3
Window titles X
described 88
WindowTitle field
XML Z
adding to forms and pages 317 ZIP files
described 415
adding to views 319 described 294
WKSCOL statement
cascading style sheets and 315
described 485
defined 313, 316
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.